summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Bryan Parno <parno@microsoft.com>2015-02-09 14:10:46 -0800
committerGravatar Bryan Parno <parno@microsoft.com>2015-02-09 14:10:46 -0800
commitf9d6586f72af31d7654bf4590f47ac1292348941 (patch)
treefac77a9c293bb25e06025ce6bec9b05b7f8dd325
parenta5846ecba743c98768226f692b2f9d0448f1fd87 (diff)
Add an explicit trigger so that Z3 doesn't choose an overly generous trigger on SeqIndex
-rw-r--r--Source/Dafny/Translator.cs2
1 files changed, 1 insertions, 1 deletions
diff --git a/Source/Dafny/Translator.cs b/Source/Dafny/Translator.cs
index 45e1fe83..d722b4dd 100644
--- a/Source/Dafny/Translator.cs
+++ b/Source/Dafny/Translator.cs
@@ -870,7 +870,7 @@ namespace Microsoft.Dafny {
FunctionCall(arg.tok, BuiltinFunction.SeqIndex, predef.DatatypeType, args[i], ie)));
Bpl.Expr rhs = FunctionCall(ctor.tok, ctor.FullName, predef.DatatypeType, args);
rhs = FunctionCall(ctor.tok, BuiltinFunction.DtRank, null, rhs);
- q = new Bpl.ForallExpr(ctor.tok, bvs, Bpl.Expr.Imp(ante, Bpl.Expr.Lt(lhs, rhs)));
+ q = new Bpl.ForallExpr(ctor.tok, bvs, new Trigger(lhs.tok, true, new List<Bpl.Expr> { lhs, rhs }), Bpl.Expr.Imp(ante, Bpl.Expr.Lt(lhs, rhs)));
sink.AddTopLevelDeclaration(new Bpl.Axiom(ctor.tok, q));
// axiom (forall params, SeqRank(arg) < DtRank(#dt.ctor(params)));
CreateBoundVariables(ctor.Formals, out bvs, out args);