This module contains the basic preprocessing pipeline framework for bv_normalize
.
- rewriteCache : Std.HashSet FVarId
Contains
FVarId
that we already know are inbv_normalize
simp normal form and thus don't need to be processed again when we visit the next time.
Instances For
@[reducible, inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
- Lean.Elab.Tactic.BVDecide.Frontend.Normalize.PreProcessM.checkRewritten fvar = do let __do_lift ← get pure (__do_lift.rewriteCache.contains fvar)
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.Normalize.PreProcessM.run
{α : Type}
(cfg : BVDecideConfig)
(goal : MVarId)
(x : PreProcessM α)
:
MetaM α
Equations
- One or more equations did not get rendered due to their size.
Instances For
A pass in the normalization pipeline. Takes the current goal and produces a refined one or closes
the goal fully, indicated by returning none
.
- name : Name
- run' : MVarId → PreProcessM (Option MVarId)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
partial def
Lean.Elab.Tactic.BVDecide.Frontend.Normalize.Pass.fixpointPipeline
(passes : List Pass)
(goal : MVarId)
:
Repeatedly run a list of Pass
until they either close the goal or an iteration doesn't change
the goal anymore.