This module contains the implementation of the pre processing pass for automatically splitting up structures containing information about supported types into individual parts recursively.
The implementation operates on all "interesting" types where a type is interesting if it is a non recursive structure and at least one of the following conditions hold:
- it contains something of type
BitVec/UIntX/IntX/Bool - it is parametrized by an interesting type
- it contains another interesting type
For these it:
- Iterates over all variables in the local context that have an interesting type. For these it recursively asserts all of the contained hypotheses as local facts
- It post-processes with a custom simp-set that:
def
Lean.Meta.Tactic.BVDecide.Normalize.addStructureSimpLemmas
(simprocs : Simprocs)
(theorems : SimpTheoremsArray)
:
Add simp lemmas that we want to apply to structures that we find interesting to simprocs and
theorems.
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.