This module contains the basic preprocessing pipeline framework for bv_normalize
.
Contains the result of the type analysis to be used in the structures and enums pass.
- interestingStructures : Std.HashSet Name
Structures that are interesting for the structures pass.
- interestingEnums : Std.HashSet Name
Inductives enums that are interesting for the enums pass.
- uninteresting : Std.HashSet Name
Other types that we've seen that are not interesting, currently only used as a cache.
Instances For
- 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. - typeAnalysis : TypeAnalysis
Analysis results for the structure and enum pass if required.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Elab.Tactic.BVDecide.Frontend.Normalize.PreProcessM.checkRewritten fvar = do let __do_lift ← get pure (__do_lift.rewriteCache.contains fvar)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Elab.Tactic.BVDecide.Frontend.Normalize.PreProcessM.getTypeAnalysis = do let __do_lift ← get pure __do_lift.typeAnalysis
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
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
Repeatedly run a list of Pass
until they either close the goal or an iteration doesn't change
the goal anymore.