- A vector of bits
- Has no initial value
- A
BitVec
of8 bits
=1 byte
- A
BitVec
with initial value
- A way to convert between different Z3 data types
ZeroExt
extends withtrailing
0sSignExt
extends withleading
0sZeroExt(24, foo)
-> extends an8-bit
bytefoo
to a32-bit
int
- The theorem solver
- Constrains are added using
Solver.add(...)
-
When performing operations on Z3 data types, Z3 will use the
expression
rather than computing the values:foo = BitVecVal(0, 8) bar = [BitVec(f"bar_{i}", 8) for i in range(0, 3)] for i in range(0, 3): foo += bar[i] # result actual value of foo: # (foo + bar[0] + bar[1] + bar[2])