fix: handling BitVec.ofNat with Nat fvars in bv_decide (#5484)

This commit is contained in:
Henrik Böving 2024-09-26 23:38:18 +02:00 committed by GitHub
parent 91a033488c
commit 13969ad667
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 5 additions and 1 deletions

View file

@ -343,7 +343,7 @@ where
return mkApp4 congrProof (toExpr inner.width) innerExpr innerEval innerProof
goBvLit (x : Expr) : M (Option ReifiedBVExpr) := do
let some ⟨width, bvVal⟩ ← getBitVecValue? x | return none
let some ⟨width, bvVal⟩ ← getBitVecValue? x | return ← ofAtom x
let bvExpr : BVExpr width := .const bvVal
let expr := mkApp2 (mkConst ``BVExpr.const) (toExpr width) (toExpr bvVal)
let proof := do

View file

@ -0,0 +1,4 @@
import Std.Tactic.BVDecide
theorem cex (n : Nat) (hn : BitVec.ofNat 64 n ≠ 0) : BitVec.ofNat 64 n ≠ 0#64 := by
bv_decide