Bit-vector operations and constraints
MkBV creates a bit-vector numeral from an integer.
MkBVAShr creates a bit-vector arithmetic shift right.
MkBVAdd creates a bit-vector addition.
MkBVAddNoOverflow creates a predicate that checks that the bit-wise addition of t1 and t2 does not overflow. If isSigned is true, checks for signed overflow.
MkBVAddNoUnderflow creates a predicate that checks that the bit-wise signed addition of t1 and t2 does not underflow.
MkBVAnd creates a bit-vector bitwise AND.
Bit-vector operations MkBVConst creates a bit-vector constant with the given name and size.
MkBVExtRotateLeft rotates the bits of t1 to the left by the number of bits given by t2. Both t1 and t2 must be bit-vectors of the same width.
MkBVExtRotateRight rotates the bits of t1 to the right by the number of bits given by t2. Both t1 and t2 must be bit-vectors of the same width.
MkBVFromInt64 creates a bit-vector from an int64.
MkBVLShr creates a bit-vector logical shift right.
MkBVMul creates a bit-vector multiplication.
MkBVMulNoOverflow creates a predicate that checks that the bit-wise multiplication of t1 and t2 does not overflow. If isSigned is true, checks for signed overflow.
MkBVMulNoUnderflow creates a predicate that checks that the bit-wise signed multiplication of t1 and t2 does not underflow.
MkBVNeg creates a bit-vector negation.
MkBVNegNoOverflow creates a predicate that checks that bit-wise negation does not overflow when t1 is interpreted as a signed bit-vector.
MkBVNot creates a bit-vector bitwise NOT.
MkBVOr creates a bit-vector bitwise OR.
MkBVRedAnd computes the bitwise AND reduction of a bit-vector, returning a 1-bit vector.
MkBVRedOr computes the bitwise OR reduction of a bit-vector, returning a 1-bit vector.
MkBVRotateLeft rotates the bits of t to the left by i positions.
MkBVRotateRight rotates the bits of t to the right by i positions.
MkBVSDiv creates a signed bit-vector division.
MkBVSGE creates a signed bit-vector greater-than-or-equal.
MkBVSGT creates a signed bit-vector greater-than.
MkBVSLE creates a signed bit-vector less-than-or-equal.
MkBVSLT creates a signed bit-vector less-than.
MkBVSRem creates a signed bit-vector remainder.
MkBVSdivNoOverflow creates a predicate that checks that the bit-wise signed division of t1 and t2 does not overflow.
MkBVShl creates a bit-vector shift left.
MkBVSub creates a bit-vector subtraction.
MkBVSubNoOverflow creates a predicate that checks that the bit-wise signed subtraction of t1 and t2 does not overflow.
MkBVSubNoUnderflow creates a predicate that checks that the bit-wise subtraction of t1 and t2 does not underflow. If isSigned is true, checks for signed underflow.
MkBVUDiv creates an unsigned bit-vector division.
MkBVUGE creates an unsigned bit-vector greater-than-or-equal.
MkBVUGT creates an unsigned bit-vector greater-than.
MkBVULE creates an unsigned bit-vector less-than-or-equal.
MkBVULT creates an unsigned bit-vector less-than.
MkBVURem creates an unsigned bit-vector remainder.
MkBVXor creates a bit-vector bitwise XOR.
MkConcat creates a bit-vector concatenation.
MkExtract creates a bit-vector extraction.
MkRepeat repeats the given bit-vector t a total of i times.
MkSignExt creates a bit-vector sign extension.
MkZeroExt creates a bit-vector zero extension.