public ISet <NamedDeclaration> CollectNamedDeclarations(VCExpr node, IVCVarFunTranslator translator)
        {
            this.translator   = translator;
            NamedDeclarations = new HashSet <NamedDeclaration>();

            node.Accept(this, true);
            return(NamedDeclarations);
        }
Ejemplo n.º 2
0
        public void AddAxiom(VCExpr axiom, LineariserOptions linOptions)
        {
            Z3apiExprLineariser visitor = new Z3apiExprLineariser(this, namer);
            Term term = (Term)axiom.Accept(visitor, linOptions);

            log("(assert {0})", term);
            z3.AssertCnstr(term);
        }
Ejemplo n.º 3
0
        public void AddConjecture(VCExpr vc, LineariserOptions linOptions)
        {
            VCExpr not_vc = (VCExpr)this.gen.Not(vc);
            Z3apiExprLineariser visitor = new Z3apiExprLineariser(this, namer);
            Term term = (Term)not_vc.Accept(visitor, linOptions);

            log("(assert {0})", term);
            z3.AssertCnstr(term);
        }
Ejemplo n.º 4
0
 public void Linearise(VCExpr expr, LineariserOptions options)
 {
     Contract.Requires(expr != null);
     Contract.Requires(options != null);
     expr.Accept <bool, LineariserOptions>(this, options);
 }
 public Term TranslateExtractor(VCExpr extractor)
 {
     return(extractor.Accept(this, true));
 }
Ejemplo n.º 6
0
 public void Print(VCExpr expr, TextWriter wr)
 {
     Contract.Requires(wr != null);
     Contract.Requires(expr != null);
     expr.Accept <bool, TextWriter /*!*/>(this, wr);
 }
Ejemplo n.º 7
0
        public Term VCExprToTerm(VCExpr expr, LineariserOptions linOptions)
        {
            Z3apiExprLineariser visitor = new Z3apiExprLineariser(this, namer);

            return((Term)expr.Accept(visitor, linOptions));
        }
Ejemplo n.º 8
0
 public Term Linearise(VCExpr expr, LineariserOptions options)
 {
     Contract.Requires(options != null);
     Contract.Requires(expr != null);
     return(expr.Accept <Term, LineariserOptions>(this, options));
 }