This module contains the implementation of bv_normalize which is effectively a custom bv_normalize
simp set that is called like this: simp only [seval, bv_normalize]. The rules in bv_normalize
fulfill two goals:
- Turn all hypothesis involving
BoolandBitVecinto the formx = truewherexonly consists of a operations onBoolandBitVec. In particular noPropshould be contained. This makes the reflection procedure further down the pipeline much easier to implement. - Apply simplification rules from the Bitwuzla SMT solver.
The bitblaster for multiplication introduces symbolic branches over the right hand side.
If we have an expression of the form c * x where c is constant we should change it to x * c
such that these symbolic branches get constant folded by the AIG framework.
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
- goal : Option Lean.MVarId
- stats : Lean.Meta.Simp.Stats
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.