Prerequisites
Description
bv_decide fails (in some cases) if the context contains a hypothesis of the form ∀ k : α, P k → <something about BitVecs>.
Context
Bisection on nightly versions showed this as a regression in nightly-2026-08-04 (#14215 looks like the likely culprit).
Steps to Reproduce
import Std.Tactic.BVDecide
example (y : BitVec 256) : True := by
let x : BitVec 256 := y
have h : ∀ k : Nat, k < 32 → x.toNat = x.toNat := fun _ _ => rfl
have t : (0#64) ≤ (1#64) := by bv_decide
trivial
or Lean Live Link
Expected behavior: bv_decide should prove t
Actual behavior: bv_decide fails with
unknown free variable `_fvar.126`
Versions
Lean 4.36.0-nightly-2026-09-16
Target: x86_64-unknown-linux-gnu Linux
Impact
Add 👍 to issues you consider important. If others are impacted by this issue, please ask them to add 👍 to it.
Prerequisites
https://github.com/leanprover/lean4/issues
Avoid dependencies to Mathlib or Batteries.
https://live.lean-lang.org/#project=lean-nightly
(You can also use the settings there to switch to “Lean nightly”)
Description
bv_decidefails (in some cases) if the context contains a hypothesis of the form∀ k : α, P k → <something about BitVecs>.Context
Bisection on nightly versions showed this as a regression in
nightly-2026-08-04(#14215 looks like the likely culprit).Steps to Reproduce
or Lean Live Link
Expected behavior:
bv_decideshould provetActual behavior:
bv_decidefails withVersions
Impact
Add 👍 to issues you consider important. If others are impacted by this issue, please ask them to add 👍 to it.