Esempio n. 1
0
        public override TERM ExctractRaiseCondition(IContextCore <TERM> solver, TERM guard)
        {
            TERM tcond = trueCase.ExctractRaiseCondition(solver, And(solver, guard, condition));
            TERM fcond = falseCase.ExctractRaiseCondition(solver, And(solver, guard, solver.MkNot(condition)));

            return(Or(solver, tcond, fcond));
        }
Esempio n. 2
0
        public override TERM ExctractRaiseCondition(IContextCore <TERM> solver, TERM guard)
        {
            TERM cond        = solver.False;
            TERM defaultcond = solver.True;

            foreach (var c in cases)
            {
                var  set    = solver.MkEq(input, c.Key);
                TERM guard1 = And(solver, guard, set);
                TERM cond1  = c.Value.ExctractRaiseCondition(solver, guard1);
                cond        = Or(solver, cond, cond1);
                defaultcond = And(solver, defaultcond, solver.MkNot(set));
            }
            cond = Or(solver, cond, defaultcase.ExctractRaiseCondition(solver, And(solver, guard, defaultcond)));
            return(cond);
        }