Skip to content

Minimal example: hints that don't replay #900

Closed
@s-zanella

Description

@s-zanella

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions