This module contains the implementation of the pre processing pass for reducing UIntX
/IntX
to
BitVec
and thus allow bv_decide
to reason about them.
It:
- runs the
int_toBitVec
simp set - If
USize.toBitVec
is used anywhere looks for equations of the formSystem.Platform.numBits = constant
(or flipped) and uses them to convert the system back to fixed width.
Contains information for the USize
elimination pass.
- relevantTerms : Std.HashSet Expr
Contains terms of the form
USize.toBitVec e
that we will translate to constant widthBitVec
. - relevantHyps : Std.HashSet FVarId
Contains all hypotheses that contain terms from
relevantTerms
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
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
Turn goal
into a goal containing BitVec const
instead of USize
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Builds an expression of type: const = System.Platform.numBits
from the hypotheses in the context
if possible.
Equations
- One or more equations did not get rendered due to their size.