Closed
Description
Here's a minimal example of recorded hints that don't replay.
This seem to happen a lot in larger examples (see e.g. #893).
$ cat M.fst
module M
let n = 1ul
$ bin/fstar.exe M.fst --hint_info --record_hints
(./M.fst(2,0-2,11))
Query (M.n, 1) succeeded in 674 milliseconds with fuel 2 and ifuel 1
Verified module: M (790 milliseconds)
All verification conditions discharged successfully
$ bin/fstar.exe M.fst --hint_info --use_hints
(/Users/anonymous/fstar/M.fst) digest is valid; using hints db.
(./M.fst(2,0-2,11))
Query (M.n, 1) failed (with hint) in 61 milliseconds with fuel 2 and ifuel 1
(./M.fst(2,0-2,11))
Query (M.n, 1) succeeded in 651 milliseconds with fuel 2 and ifuel 1
Hint-info (./M.fst(2,0-2,11)): Replay failed in 61 milliseconds
Verified module: M (881 milliseconds)
All verification conditions discharged successfully
$ cat M.fst.hints
[
"69Qǎ\u0010Q????7?\u001d?",
[
[
"M.n",
1,
2,
1,
[
"@query", "b2t_def", "equation_FStar.UInt.fits",
"equation_FStar.UInt.max_int", "equation_FStar.UInt.min_int",
"equation_FStar.UInt.size", "equation_FStar.UInt32.n",
"equation_Prims.nat", "function_token_typing_FStar.UInt32.n",
"lemma_FStar.UInt.pow2_values", "primitive_Prims.op_AmpAmp",
"primitive_Prims.op_LessThanOrEqual",
"primitive_Prims.op_Subtraction",
"projection_inverse_BoxBool_proj_0",
"projection_inverse_BoxInt_proj_0",
"refinement_interpretation_Tm_refine_ba523126f67e00e7cd55f0b92f16681d"
],
0
]
]
]
$ z3 --version
Z3 version 4.5.0 - 64 bit
Looking at the Z3 queries using --log_queries
I didn't notice anything odd. Looks like everything in the computed unsat core is in the query used to replay the hint.
@wintersteiger Do you mind having a look to see if this is an issue with the F* encoding or internal to Z3?
queries.zip