Пример #1
0
        internal static Vertex TranslateToRobdd(BoolExpr <T_Identifier> expr, ConversionContext <T_Identifier> context)
        {
            Debug.Assert(null != expr, "must provide an expression");
            ToDecisionDiagramConverter <T_Identifier> converter =
                new ToDecisionDiagramConverter <T_Identifier>(context);

            return(expr.Accept(converter));
        }
Пример #2
0
        internal static List <TermExpr <T_Identifier> > GetTerms(BoolExpr <T_Identifier> expression)
        {
            Debug.Assert(null != expression, "expression must be given");
            LeafVisitor <T_Identifier> visitor = new LeafVisitor <T_Identifier>();

            expression.Accept(visitor);
            return(visitor._terms);
        }
Пример #3
0
 internal static int CountTerms(BoolExpr <T_Identifier> expression)
 {
     Debug.Assert(null != expression);
     return(expression.Accept(s_instance));
 }
Пример #4
0
 internal static BoolExpr <DomainConstraint <T_Variable, T_Element> > EliminateNot <T_Variable, T_Element>(BoolExpr <DomainConstraint <T_Variable, T_Element> > expression)
 {
     return(expression.Accept(NonNegatedDomainConstraintTreeVisitor <T_Variable, T_Element> .Instance));
 }
 internal override BoolExpr <T_Identifier> LocalSimplify(BoolExpr <T_Identifier> expression)
 {
     return(expression.Accept(Simplifier <T_Identifier> .Instance));
 }
 internal override BoolExpr <DomainConstraint <T_Variable, T_Element> > LocalSimplify(BoolExpr <DomainConstraint <T_Variable, T_Element> > expression)
 {
     expression = NegationPusher.EliminateNot <T_Variable, T_Element>(expression);
     return(expression.Accept(Simplifier <DomainConstraint <T_Variable, T_Element> > .Instance));
 }