diff options
author | Bryan Parno <parno@microsoft.com> | 2015-02-09 14:10:46 -0800 |
---|---|---|
committer | Bryan Parno <parno@microsoft.com> | 2015-02-09 14:10:46 -0800 |
commit | f9d6586f72af31d7654bf4590f47ac1292348941 (patch) | |
tree | fac77a9c293bb25e06025ce6bec9b05b7f8dd325 | |
parent | a5846ecba743c98768226f692b2f9d0448f1fd87 (diff) |
Add an explicit trigger so that Z3 doesn't choose an overly generous trigger on SeqIndex
-rw-r--r-- | Source/Dafny/Translator.cs | 2 |
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);
|