This module contains the basic preprocessing pipeline framework for bv_normalize.
Instances For
- mvarIdTarget (mvar : MVarId) : Target
- grindTarget (goal : Grind.Goal) : Target
Instances For
The various kinds of matches supported by the match to cond infrastructure.
- simpleEnum
(info : InductiveVal)
(ctors : Array ConstructorVal)
: MatchKind
It is a full match statement on an enum inductive with one constructor handled per arm. The ctors are listed in the order they occur in the match statement in
ctors. - enumWithDefault
(info : InductiveVal)
(ctors : Array ConstructorVal)
: MatchKind
It is a match statement on an enum inductive with a default arm, all explicitly handled ctors are listed in
ctorsin the order they occur in the match statement.
Instances For
The enum inductive that the match discriminates on.
Instances For
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.
- interestingMatchers : Std.HashMap Name MatchKind
func.match_xauxiliary declarations that we consider interesting. - uninteresting : Std.HashSet Name
Other types that we've seen that are not interesting, currently only used as a cache.
Instances For
Instances For
Instances For
The immutable context of the bv_normalize preprocessing pipeline.
- config : Elab.Tactic.BVDecide.BVDecideConfig
The configuration that the tactic was called with.
The types that the structure and enum analysis is restricted to, as provided by the
typesclause. If this isnonethe analysis discovers the relevant types on its own.
Instances For
- rewriteSimpCache : Sym.Simp.Cache
Cache for the
Simpcomponent of the rewriter. - rewriteDSimpCache : Sym.DSimp.Cache
Cache for the
DSimpcomponent of the rewriter. - acCache : Sym.Simp.Cache
Cache for the
Simpcomponent of the AC pass. - typeAnalysis : TypeAnalysis
Analysis results for the structure and enum pass if required.
- target : Target
The target we are operating on.
The set of hypotheses we are operating on. These should be interpreted from withing the lctx of the goal. But they may not necessarily be fvars registered in the goal.
- didChange : Bool
A didChange flag for our fixpoint simplification loop.
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
A pass in the normalization pipeline. It operates on the current set of hypotheses stored in the
PreProcessM monad. If it manages to find a way to close the associated goal it can indicate so by
returning true. Otherwise it should always return false.
- name : Name
- run' : PreProcessM Bool
Instances For
Instances For
Repeatedly run a list of Pass until they either close the goal or an iteration doesn't change
the goal anymore.