summaryrefslogtreecommitdiff
path: root/Source/VCGeneration/StratifiedVC.cs
diff options
context:
space:
mode:
authorGravatar Unknown <akashl@akash-desk.fareast.corp.microsoft.com>2012-05-02 14:30:26 +0530
committerGravatar Unknown <akashl@akash-desk.fareast.corp.microsoft.com>2012-05-02 14:30:26 +0530
commitfc196de27a54c5d1f83afda43bcedc4bfa18010f (patch)
treef393adcaca1dd45f7ae42c152a24b6c869b27734 /Source/VCGeneration/StratifiedVC.cs
parent8655c78cdab0b11e36b3686defa808f73049b582 (diff)
Slightly better management of outermost Push-Pop and FlushAxioms
Diffstat (limited to 'Source/VCGeneration/StratifiedVC.cs')
-rw-r--r--Source/VCGeneration/StratifiedVC.cs11
1 files changed, 8 insertions, 3 deletions
diff --git a/Source/VCGeneration/StratifiedVC.cs b/Source/VCGeneration/StratifiedVC.cs
index f3a7e27e..ad83b7fe 100644
--- a/Source/VCGeneration/StratifiedVC.cs
+++ b/Source/VCGeneration/StratifiedVC.cs
@@ -1282,6 +1282,9 @@ namespace VC
// Record current time
var startTime = DateTime.UtcNow;
+ // Flush any axioms that came with the program before we start SI on this implementation
+ prover.AssertAxioms();
+
// Run live variable analysis
if (CommandLineOptions.Clo.LiveVariableAnalysis == 2)
{
@@ -1308,6 +1311,11 @@ namespace VC
var coverageManager = new CoverageGraphManager(calls);
coverageManager.addMain();
+
+ // We'll restore the original state of the theorem prover at the end
+ // of this procedure
+ prover.Push();
+
// Put all of the necessary state into one object
var vState = new VerificationState(vc, calls, prover, reporter, prover2, new EmptyErrorHandler());
vState.vcSize += SizeComputingVisitor.ComputeSize(vc);
@@ -1315,9 +1323,6 @@ namespace VC
if (useSummary) summaryComputation = new SummaryComputation(vState, computeUnderBound);
- // We'll restore the original state of the theorem prover at the end
- // of this procedure
- vState.checker.prover.Push();
Outcome ret = Outcome.ReachedBound;