Exemplo n.º 1
0
 public override IEnumerable <Move <Rule <TERM> > > EnumerateMoves(IContextCore <TERM> solver, int source, TERM guard)
 {
     foreach (var move in trueCase.EnumerateMoves(solver, source, And(solver, guard, condition)))
     {
         yield return(move);
     }
     foreach (var move in falseCase.EnumerateMoves(solver, source, And(solver, guard, solver.MkNot(condition))))
     {
         yield return(move);
     }
 }
Exemplo n.º 2
0
        public override IEnumerable <Move <Rule <TERM> > > EnumerateMoves(IContextCore <TERM> solver, int source, TERM guard)
        {
            TERM defaultcond = solver.True;

            foreach (var c in cases)
            {
                var set = solver.MkEq(input, c.Key);
                defaultcond = And(solver, defaultcond, solver.MkNot(set));
                foreach (var m in c.Value.EnumerateMoves(solver, source, And(solver, guard, set)))
                {
                    yield return(m);
                }
            }
            foreach (var m in defaultcase.EnumerateMoves(solver, source, And(solver, guard, defaultcond)))
            {
                yield return(m);
            }
        }