Structsยง
- Constraint
Context ๐ - Simple facts learned from the normalized conjunction currently being queried.
Functionsยง
- add_
cannot_ ๐overflow_ 256 - Returns whether unsigned addition of two expressions cannot overflow 256 bits.
- add_
overflow_ ๐check - Returns whether
left > left + incrementis an impossible overflow check. - add_
with_ ๐operand - Returns the operands if
expris an addition involvingoperand. - bool_
contains_ ๐udiv - Returns whether a boolean expression syntactically contains unsigned division.
- bool_
from_ ๐word_ expr - Extracts the boolean condition represented by a word-valued
0/1expression. - collect_
normalized_ ๐conjunct - collect_
or_ ๐terms - Flattens nested bitwise-OR expressions into their leaf terms.
- expr_
contains_ ๐udiv - Returns whether a word expression syntactically contains unsigned division.
- expr_
unsigned_ ๐bits - Returns a conservative unsigned bit-width upper bound for an expression.
- extracted_
shifted_ ๐byte_ term - Returns the source word and byte index for one shifted extracted-byte term.
- extracted_
unshifted_ ๐byte_ source - Returns the source word for an unshifted byte extraction at
index. - guarded_
self_ ๐div_ word_ condition - Returns the boolean represented by
a == 0 ? 0 : a / a. - mul_
cannot_ ๐overflow_ 256 - Returns whether unsigned multiplication of two expressions cannot overflow 256 bits.
- normalize_
add_ ๐overflow_ cmp_ for_ solver - Rewrites exact unsigned-addition overflow checks when operand bounds preclude overflow.
- normalize_
bool_ ๐for_ solver - Normalizes one boolean expression into an equivalent, solver-friendlier form.
- normalize_
constraint_ ๐batch - normalize_
constraints_ ๐for_ solver - Normalizes path constraints into an equivalent, solver-friendlier form.
- normalize_
expr_ ๐eq_ zero_ for_ solver - Rewrites
expr == 0whenexprcontains exactly-normalizable unsigned division. - normalize_
expr_ ๐for_ solver - Normalizes one word expression into an equivalent, solver-friendlier form.
- normalize_
expr_ ๐ne_ zero_ for_ solver - Rewrites
expr != 0whenexprcontains exactly-normalizable unsigned division. - normalize_
ite_ ๐expr_ for_ solver - Normalizes a word-valued conditional expression.
- normalize_
udiv_ ๐bool_ for_ solver - Rewrites exact EVM unsigned-division zero/nonzero predicates without
bvudiv. - normalize_
udiv_ ๐cmp_ for_ solver - Rewrites
udiv(a, b)zero/nonzero comparisons using EVM division-by-zero semantics. - normalize_
udiv_ ๐eq_ zero - Rewrites
udiv(a, b) == 0predicates using EVM division-by-zero semantics. - rebuild_
word_ ๐from_ extracted_ byte_ terms - Rebuilds a word from OR-ed byte-extraction terms when the source is recoverable.
- self_
div_ ๐expr_ matches_ zero_ check - Returns whether
exprisa / afor the operand guarded bycond. - udiv_
nonzero_ ๐condition - Builds the exact condition for EVM
udiv(numerator, denominator) != 0. - udiv_
operands ๐ - Returns the operands for an unsigned division expression.
- udiv_
zero_ ๐condition - Builds the exact condition for EVM
udiv(numerator, denominator) == 0. - word_
bool_ ๐always_ true - Returns whether a word-valued boolean expression is an exact tautology.
- word_
bool_ ๐term - Converts one
0/1word boolean term into its boolean condition. - word_
from_ ๐bool_ expr - Converts a boolean condition into its 0/1 word representation.
- zero_
check_ ๐operand - Returns the operand tested by
operand == 0.