Esempio n. 1
0
        protected DeclFreeProverContext(DeclFreeProverContext ctxt)
        {
            Contract.Requires(ctxt != null);
            this.gen        = ctxt.gen;
            this.genOptions = ctxt.genOptions;
            Boogie2VCExprTranslator t = (Boogie2VCExprTranslator)ctxt.translator.Clone();

            Contract.Assert(t != null);
            this.translator           = t;
            this.orderingAxiomBuilder = new OrderingAxiomBuilder(ctxt.gen, t, ctxt.orderingAxiomBuilder);

            StringBuilder cmds = new StringBuilder();

            distincts      = new List <Variable>(ctxt.distincts);
            axiomConjuncts = new List <VCExpr>(ctxt.axiomConjuncts);

            if (ctxt.exprTranslator == null)
            {
                exprTranslator = null;
            }
            else
            {
                exprTranslator = (VCExprTranslator)cce.NonNull(ctxt.exprTranslator.Clone());
            }
        }
Esempio n. 2
0
        private void SetupOrderingAxiomBuilder(VCExpressionGenerator gen, Boogie2VCExprTranslator t)
        {
            OrderingAxiomBuilder oab = new OrderingAxiomBuilder(gen, t);

            Contract.Assert(oab != null);
            oab.Setup();
            this.orderingAxiomBuilder = oab;
        }
Esempio n. 3
0
 public OrderingAxiomBuilder(VCExpressionGenerator gen,
                             Boogie2VCExprTranslator translator,
                             OrderingAxiomBuilder builder) {
   Contract.Requires(gen != null);
   Contract.Requires(translator != null);
   Contract.Requires(builder != null);
   this.Gen = gen;
   this.Translator = translator;
   OneStepFuns = new Dictionary<Type, Function>(builder.OneStepFuns);
   Constants = new List<Constant>(builder.Constants);
   CompleteConstantsOpen = new List<Constant>(builder.CompleteConstantsOpen);
   AllAxioms = new List<VCExpr>(builder.AllAxioms);
   IncAxioms = new List<VCExpr>(builder.IncAxioms);
 }
Esempio n. 4
0
 public OrderingAxiomBuilder(VCExpressionGenerator gen,
                             Boogie2VCExprTranslator translator,
                             OrderingAxiomBuilder builder)
 {
     Contract.Requires(gen != null);
     Contract.Requires(translator != null);
     Contract.Requires(builder != null);
     this.Gen              = gen;
     this.Translator       = translator;
     OneStepFuns           = new Dictionary <Type, Function>(builder.OneStepFuns);
     Constants             = new List <Constant>(builder.Constants);
     CompleteConstantsOpen = new List <Constant>(builder.CompleteConstantsOpen);
     AllAxioms             = new List <VCExpr>(builder.AllAxioms);
     IncAxioms             = new List <VCExpr>(builder.IncAxioms);
 }
Esempio n. 5
0
        protected DeclFreeProverContext(DeclFreeProverContext ctxt)
        {
            Contract.Requires(ctxt != null);
              this.gen = ctxt.gen;
              this.genOptions = ctxt.genOptions;
              Boogie2VCExprTranslator t = (Boogie2VCExprTranslator)ctxt.translator.Clone();
              Contract.Assert(t != null);
              this.translator = t;
              this.orderingAxiomBuilder = new OrderingAxiomBuilder(ctxt.gen, t, ctxt.orderingAxiomBuilder);

              StringBuilder cmds = new StringBuilder ();

              distincts = new List<Variable>(ctxt.distincts);
              axiomConjuncts = new List<VCExpr>(ctxt.axiomConjuncts);

              if (ctxt.exprTranslator == null)
            exprTranslator = null;
              else
            exprTranslator = (VCExprTranslator)cce.NonNull(ctxt.exprTranslator.Clone());
        }
Esempio n. 6
0
 private void SetupOrderingAxiomBuilder(VCExpressionGenerator gen, Boogie2VCExprTranslator t)
 {
     OrderingAxiomBuilder oab = new OrderingAxiomBuilder(gen, t);
       Contract.Assert(oab != null);
       oab.Setup();
       this.orderingAxiomBuilder = oab;
 }