diff --git a/src/Lean/Elab/Tactic/BVDecide/Frontend/BVDecide.lean b/src/Lean/Elab/Tactic/BVDecide/Frontend/BVDecide.lean index dc25332165..d2e29adf82 100644 --- a/src/Lean/Elab/Tactic/BVDecide/Frontend/BVDecide.lean +++ b/src/Lean/Elab/Tactic/BVDecide/Frontend/BVDecide.lean @@ -357,6 +357,7 @@ def reflectBV (g : MVarId) : M ReflectionResult := g.withContext do let mut sats := #[] let mut unusedHypotheses := {} for hyp in hyps do + checkSystem "bv_decide" if let (some reflected, lemmas) ← (SatAtBVLogical.of (mkFVar hyp)).run then sats := (sats ++ lemmas).push reflected else diff --git a/src/Lean/Elab/Tactic/BVDecide/Frontend/BVDecide/Reify.lean b/src/Lean/Elab/Tactic/BVDecide/Frontend/BVDecide/Reify.lean index 07ce17a40e..c53119d9f3 100644 --- a/src/Lean/Elab/Tactic/BVDecide/Frontend/BVDecide/Reify.lean +++ b/src/Lean/Elab/Tactic/BVDecide/Frontend/BVDecide/Reify.lean @@ -33,6 +33,7 @@ where Reify `x`, returns `none` if the reification procedure failed. -/ go (origExpr : Expr) : LemmaM (Option ReifiedBVExpr) := do + checkSystem "bv_decide" match_expr origExpr with | BitVec.ofNat _ _ => goBvLit origExpr | HAnd.hAnd _ _ _ _ lhsExpr rhsExpr => @@ -340,6 +341,7 @@ where Reify `t`, returns `none` if the reification procedure failed. -/ go (origExpr : Expr) : LemmaM (Option ReifiedBVLogical) := do + checkSystem "bv_decide" match_expr origExpr with | Bool.true => ReifiedBVLogical.mkBoolConst true | Bool.false => ReifiedBVLogical.mkBoolConst false diff --git a/src/Lean/Elab/Tactic/BVDecide/Frontend/Normalize/Basic.lean b/src/Lean/Elab/Tactic/BVDecide/Frontend/Normalize/Basic.lean index 229a1e6212..9ec9621bd8 100644 --- a/src/Lean/Elab/Tactic/BVDecide/Frontend/Normalize/Basic.lean +++ b/src/Lean/Elab/Tactic/BVDecide/Frontend/Normalize/Basic.lean @@ -159,6 +159,7 @@ Repeatedly run a list of `Pass` until they either close the goal or an iteration the goal anymore. -/ partial def fixpointPipeline (passes : List Pass) (goal : MVarId) : PreProcessM (Option MVarId) := do + checkSystem "bv_decide" let mut newGoal := goal for pass in passes do if let some nextGoal ← pass.run newGoal then