summaryrefslogtreecommitdiff
path: root/Source/Provers/SMTLib/ProverInterface.cs
diff options
context:
space:
mode:
authorGravatar wuestholz <unknown>2013-05-29 17:45:48 -0700
committerGravatar wuestholz <unknown>2013-05-29 17:45:48 -0700
commit84670125bef08609d4c447c27f245fef530ebcd2 (patch)
treecd87b5adccb94c21c640b07cac912aa954c033c3 /Source/Provers/SMTLib/ProverInterface.cs
parent6a9e8449f14e8c3858ab0809036e68a0a43c2d4e (diff)
Minor change to prevent prover errors during trace extraction
Diffstat (limited to 'Source/Provers/SMTLib/ProverInterface.cs')
-rw-r--r--Source/Provers/SMTLib/ProverInterface.cs6
1 files changed, 5 insertions, 1 deletions
diff --git a/Source/Provers/SMTLib/ProverInterface.cs b/Source/Provers/SMTLib/ProverInterface.cs
index d91ca010..7cd3b3cd 100644
--- a/Source/Provers/SMTLib/ProverInterface.cs
+++ b/Source/Provers/SMTLib/ProverInterface.cs
@@ -790,7 +790,7 @@ namespace Microsoft.Boogie.SMTLib
handler.OnModel(xlabels, model);
}
- if (labels == null || errorsLeft == 0) break;
+ if (labels == null || !labels.Any() || errorsLeft == 0) break;
if (CommandLineOptions.Clo.UseLabels) {
var negLabels = labels.Where(l => l.StartsWith("@")).ToArray();
@@ -800,6 +800,10 @@ namespace Microsoft.Boogie.SMTLib
posLabels = Enumerable.Empty<string>();
var conjuncts = posLabels.Select(s => "(not " + lbl(s) + ")").Concat(negLabels.Select(lbl)).ToArray();
var expr = conjuncts.Length == 1 ? conjuncts[0] : ("(or " + conjuncts.Concat(" ") + ")");
+ if (!conjuncts.Any())
+ {
+ expr = "false";
+ }
SendThisVC("(assert " + expr + ")");
SendThisVC("(check-sat)");
}