This module contains the implementation of the pre processing pass for handling enum inductive types.
The implementation:
- generates mappings from enum inductives occurring in the goal to sufficiently large
BitVecand replaces equality on the enum inductives with equality on these mapping functions. - Constant folds these mappings if appropriate.
- Adds bounds on the values returned by the mappings if the size of the enum inductive does not fit into a power of two.
- Handles applications of these mappings to
ite,condand basic match statements.
Equations
- Lean.Meta.Tactic.BVDecide.Normalize.enumToBitVecSuffix = "enumToBitVec"
Instances For
Equations
- One or more equations did not get rendered due to their size.