summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar mkawa <unknown>2009-12-05 06:31:24 +0000
committerGravatar mkawa <unknown>2009-12-05 06:31:24 +0000
commit786e335fbfe03ca283fd9dd784251802f6a88f19 (patch)
tree6cb619cc83015da3fed3d07948c766fd0370b5ad
parent484464cefdef3c894a2b831e8628b370e3554b90 (diff)
Z3 parameters to help it bail out of fruitless searches faster
print _all_ the attributes of an assert this time add simpletypes to the visitor
-rw-r--r--Source/Core/AbsyCmd.ssc10
-rw-r--r--Source/Core/StandardVisitor.ssc5
-rw-r--r--Source/Provers/Z3/Prover.ssc3
3 files changed, 15 insertions, 3 deletions
diff --git a/Source/Core/AbsyCmd.ssc b/Source/Core/AbsyCmd.ssc
index de40c2e8..723b40e3 100644
--- a/Source/Core/AbsyCmd.ssc
+++ b/Source/Core/AbsyCmd.ssc
@@ -2022,11 +2022,17 @@ namespace Microsoft.Boogie
public override void Emit(TokenTextWriter! stream, int level)
{
stream.Write(this, level, "assert ");
- if (this.Attributes != null)
- this.Attributes.Emit(stream);
+ EmitAttributes(stream);
this.Expr.Emit(stream);
stream.WriteLine(";");
}
+ protected void EmitAttributes(TokenTextWriter! stream)
+ {
+ for (QKeyValue kv = this.Attributes; kv != null; kv = kv.Next) {
+ kv.Emit(stream);
+ stream.Write(" ");
+ }
+ }
public override void Typecheck(TypecheckingContext! tc)
{
Expr.Typecheck(tc);
diff --git a/Source/Core/StandardVisitor.ssc b/Source/Core/StandardVisitor.ssc
index 192ed7a4..a44290e8 100644
--- a/Source/Core/StandardVisitor.ssc
+++ b/Source/Core/StandardVisitor.ssc
@@ -269,6 +269,11 @@ namespace Microsoft.Boogie
node = (GlobalVariable) this.VisitVariable(node);
return node;
}
+ public virtual SimpleVariable! VisitSimpleVariable(SimpleVariable! node)
+ {
+ node = (SimpleVariable) this.VisitSimpleVariable(node);
+ return node;
+ }
public virtual GotoCmd! VisitGotoCmd(GotoCmd! node)
{
node.labelTargets = this.VisitBlockSeq((!)node.labelTargets);
diff --git a/Source/Provers/Z3/Prover.ssc b/Source/Provers/Z3/Prover.ssc
index a737b0ae..3bcaf15e 100644
--- a/Source/Provers/Z3/Prover.ssc
+++ b/Source/Provers/Z3/Prover.ssc
@@ -70,7 +70,8 @@ namespace Microsoft.Boogie.Z3
AddOption(parms, "NNF_SK_HACK", "true");
// More or less like MAM=0.
- AddOption(parms, "QI_EAGER_THRESHOLD", "100");
+ AddOption(parms, "QI_EAGER_THRESHOLD", "5");
+ AddOption(parms, "QI_LAZY_THRESHOLD", "5");
// Make the integer model more diverse by default, speeds up some benchmarks a lot.
AddOption(parms, "ARITH_RANDOM_INITIAL_VALUE", "true");