public ISet <NamedDeclaration> CollectNamedDeclarations(VCExpr node, IVCVarFunTranslator translator) { this.translator = translator; NamedDeclarations = new HashSet <NamedDeclaration>(); node.Accept(this, true); return(NamedDeclarations); }
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); }
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); }
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)); }
public void Print(VCExpr expr, TextWriter wr) { Contract.Requires(wr != null); Contract.Requires(expr != null); expr.Accept <bool, TextWriter /*!*/>(this, wr); }
public Term VCExprToTerm(VCExpr expr, LineariserOptions linOptions) { Z3apiExprLineariser visitor = new Z3apiExprLineariser(this, namer); return((Term)expr.Accept(visitor, linOptions)); }
public Term Linearise(VCExpr expr, LineariserOptions options) { Contract.Requires(options != null); Contract.Requires(expr != null); return(expr.Accept <Term, LineariserOptions>(this, options)); }