package bitwuzla
Library
Module
Module type
Parameter
Class
Class type
Bit-vector
of_int sort value
create a bit-vector value from its unsigned integer representation.
If given value does not fit into a bit-vector of given size (sort), the value is truncated to fit.
of_z sort value
create a bit-vector value from its unsigned integer representation.
If given value does not fit into a bit-vector of given size (sort), the value is truncated to fit.
of_string sort value
create a bit-vector value from its string representation.
Prefix determine the base of the string representation:
0b
for binary;0x
for hexadecimal;- others for decimal.
Given value must fit into a bit-vector of given size (sort).
type (!'a, !'b) operator =
| Add : (t -> t -> t, t * t) operator
(*Bit-vector addition.
SMT-LIB:
*)bvadd
| And : (t -> t -> t, t * t) operator
(*Bit-vector and.
SMT-LIB:
*)bvand
| Ashr : (t -> t -> t, t * t) operator
(*Bit-vector arithmetic right shift.
SMT-LIB:
*)bvashr
| Concat : (t -> t -> t, t * t) operator
(*Bit-vector concat.
SMT-LIB:
*)concat
| Extract : (hi:int -> lo:int -> t -> t, int * int * t) operator
(*Bit-vector extract.
SMT-LIB:
*)extract
(indexed)| Mul : (t -> t -> t, t * t) operator
(*Bit-vector multiplication.
SMT-LIB:
*)bvmul
| Neg : (t -> t, t) operator
(*Bit-vector negation (two's complement).
SMT-LIB:
*)bvneg
| Not : (t -> t, t) operator
(*Bit-vector not (one's complement).
SMT-LIB:
*)bvnot
| Or : (t -> t -> t, t * t) operator
(*Bit-vector or.
SMT-LIB:
*)bvor
| Rol : (t -> t -> t, t * t) operator
(*Bit-vector rotate left (not indexed).
This is a non-indexed variant of SMT-LIB
*)rotate_left
.| Ror : (t -> t -> t, t * t) operator
(*Bit-vector rotate right.
This is a non-indexed variant of SMT-LIB
*)rotate_right
.| Sdiv : (t -> t -> t, t * t) operator
(*Bit-vector signed division.
SMT-LIB:
*)bvsdiv
| Sge : (t -> t -> t, t * t) operator
(*Bit-vector signed greater than or equal.
SMT-LIB:
*)bvsge
| Sgt : (t -> t -> t, t * t) operator
(*Bit-vector signed greater than.
SMT-LIB:
*)bvsgt
| Shl : (t -> t -> t, t * t) operator
(*Bit-vector signed less than.
SMT-LIB:
*)bvslt
| Shr : (t -> t -> t, t * t) operator
(*Bit-vector logical right shift.
SMT-LIB:
*)bvshr
| Sle : (t -> t -> t, t * t) operator
(*Bit-vector signed less than or equal.
SMT-LIB:
*)bvsle
| Slt : (t -> t -> t, t * t) operator
(*Bit-vector signed less than.
SMT-LIB:
*)bvslt
| Smod : (t -> t -> t, t * t) operator
(*Bit-vector signed modulo.
SMT-LIB:
*)bvsmod
| Srem : (t -> t -> t, t * t) operator
(*Bit-vector signed remainder.
SMT-LIB:
*)bvsrem
| Sub : (t -> t -> t, t * t) operator
(*Bit-vector subtraction.
SMT-LIB:
*)bvsub
| Udiv : (t -> t -> t, t * t) operator
(*Bit-vector unsigned division.
SMT-LIB:
*)bvudiv
| Uge : (t -> t -> t, t * t) operator
(*Bit-vector unsigned greater than or equal.
SMT-LIB:
*)bvuge
| Ugt : (t -> t -> t, t * t) operator
(*Bit-vector unsigned greater than.
SMT-LIB:
*)bvugt
| Ule : (t -> t -> t, t * t) operator
(*Bit-vector unsigned less than or equal.
SMT-LIB:
*)bvule
| Ult : (t -> t -> t, t * t) operator
(*Bit-vector unsigned less than.
SMT-LIB:
*)bvult
| Urem : (t -> t -> t, t * t) operator
(*Bit-vector unsigned remainder.
SMT-LIB:
*)bvurem
| Xor : (t -> t -> t, t * t) operator
(*Bit-vector xor.
SMT-LIB:
*)bvxor
The term operator.
val term : ('a, 'b) operator -> 'a
term op ..
create a bit-vector term constructor of given kind.
sadd_overflow t0 t1
create a bit-vector signed addition overflow test.
uadd_overflow t0 t1
create a bit-vector unsigned addition overflow test.
ssub_overflow t0 t1
create a bit-vector signed substraction overflow test.
usub_overflow t0 t1
create a bit-vector ubsigned substraction overflow test.
smul_overflow t0 t1
create a bit-vector signed multiplication overflow test.
umul_overflow t0 t1
create a bit-vector unsigned multiplication overflow test.
sdiv_overflow t0 t1
create a bit-vector signed division overflow test.
shift_right_logical t0 t1
create a bit-vector logical right shift.