diff options
author | 2013-10-01 16:04:11 +0100 | |
---|---|---|
committer | 2013-10-01 16:04:11 +0100 | |
commit | 591065d4e4388342448351a2a6ae3bdf4fbcd296 (patch) | |
tree | bbff7f25f19655f3333635a3831d5790dbf1a9bb | |
parent | 44095046bd0fd0bc1169ca7a6a19f93b5ac38e9a (diff) |
support for disabling loop entry invariant assertion checking
-rw-r--r-- | Source/Core/CommandLineOptions.cs | 1 | ||||
-rw-r--r-- | Source/VCGeneration/VC.cs | 12 |
2 files changed, 12 insertions, 1 deletions
diff --git a/Source/Core/CommandLineOptions.cs b/Source/Core/CommandLineOptions.cs index dd512c96..968333b2 100644 --- a/Source/Core/CommandLineOptions.cs +++ b/Source/Core/CommandLineOptions.cs @@ -650,6 +650,7 @@ namespace Microsoft.Boogie { {
public List<string> ProverOptions = new List<string>();
public int ProverCCLimit = 5;
+ public bool DisableLoopInvEntryAssert = false;
public bool DisableLoopInvMaintainedAssert = false;
public bool ModifyTopologicalSorting = false;
}
diff --git a/Source/VCGeneration/VC.cs b/Source/VCGeneration/VC.cs index e02f96d5..f1c01758 100644 --- a/Source/VCGeneration/VC.cs +++ b/Source/VCGeneration/VC.cs @@ -1940,7 +1940,17 @@ namespace VC { {
if (a is AssertCmd) {
Bpl.AssertCmd c = (AssertCmd) a;
- Bpl.AssertCmd b = new Bpl.LoopInitAssertCmd(c.tok, c.Expr);
+ Bpl.AssertCmd b = null;
+
+ if (CommandLineOptions.Clo.ConcurrentHoudini) {
+ if (CommandLineOptions.Clo.Cho[taskID].DisableLoopInvEntryAssert)
+ b = new Bpl.LoopInitAssertCmd(c.tok, Expr.True);
+ else
+ b = new Bpl.LoopInitAssertCmd(c.tok, c.Expr);
+ } else {
+ b = new Bpl.LoopInitAssertCmd(c.tok, c.Expr);
+ }
+
b.Attributes = c.Attributes;
b.ErrorData = c.ErrorData;
prefixOfPredicateCmdsInit.Add(b);
|