diff options
author | qadeer <qadeer@microsoft.com> | 2012-04-29 22:52:37 -0700 |
---|---|---|
committer | qadeer <qadeer@microsoft.com> | 2012-04-29 22:52:37 -0700 |
commit | 5c6bd094022687cce2c0fedd10a82bcc212b33d5 (patch) | |
tree | b284414f9b429623479d3c33387203dcedc655e6 /Source/Provers | |
parent | 6f9c19ac2ae18cb8ea3cc3814109f6bb3004c330 (diff) |
clean up in stratified inlining
Diffstat (limited to 'Source/Provers')
-rw-r--r-- | Source/Provers/SMTLib/ProverInterface.cs | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/Source/Provers/SMTLib/ProverInterface.cs b/Source/Provers/SMTLib/ProverInterface.cs index c65406b4..65c4e130 100644 --- a/Source/Provers/SMTLib/ProverInterface.cs +++ b/Source/Provers/SMTLib/ProverInterface.cs @@ -804,6 +804,7 @@ namespace Microsoft.Boogie.SMTLib {
unsatCore = new List<int>();
+ Push();
// Name the assumptions
var nameToAssumption = new Dictionary<string, int>();
int i = 0;
@@ -820,23 +821,23 @@ namespace Microsoft.Boogie.SMTLib }
Check();
- var prevOutcome = CheckOutcomeCore(handler);
-
- if (prevOutcome != Outcome.Valid)
- {
- return prevOutcome;
+ var outcome = CheckOutcomeCore(handler);
+
+ if (outcome != Outcome.Valid) {
+ Pop();
+ return outcome;
}
Contract.Assert(usingUnsatCore, "SMTLib prover not setup for computing unsat cores");
SendThisVC("(get-unsat-core)");
var resp = Process.GetProverResponse();
unsatCore = new List<int>();
- if(resp.Name != "") unsatCore.Add(nameToAssumption[resp.Name]);
+ if (resp.Name != "") unsatCore.Add(nameToAssumption[resp.Name]);
foreach (var s in resp.Arguments) unsatCore.Add(nameToAssumption[s.Name]);
FlushLogFile();
-
- return prevOutcome;
+ Pop();
+ return outcome;
}
public override void Push()
|