MemVal.S_bounded_intinclude module type of struct include Typed endinclude module type of struct include Soteria.Bv_values.Typed endmodule T = Soteria_c_lib.Typed.Ttype +'a ty = 'a Soteria.Bv_values.Typed.tyTypes
val ppa_ty : Stdlib.Format.formatter -> 'a ty -> unitval t_float : Soteria.Bv_values.Svalue.FloatPrecision.t -> [> T.sfloat ] tytype sbool = T.sboolBasic value operations
val is_bool_ty : 'a ty -> boolval get_ty : 'a Soteria.Bv_values.Typed.t -> Soteria.Bv_values.Svalue.tyval type_type : Soteria.Bv_values.Svalue.ty -> 'a tyval untype_type : 'a ty -> Soteria.Bv_values.Svalue.tyval kind : 'a Soteria.Bv_values.Typed.t -> Soteria.Bv_values.Svalue.t_kindval mk_var : Soteria.Symex.Var.t -> 'a ty -> 'a Soteria.Bv_values.Typed.tval iter_vars :
'a Soteria.Bv_values.Typed.t ->
((Soteria.Symex.Var.t * 'b ty) -> unit) ->
unitval type_ : Soteria.Bv_values.Svalue.t -> 'a Soteria.Bv_values.Typed.tval type_checked :
Soteria.Bv_values.Svalue.t ->
'a ty ->
'a Soteria.Bv_values.Typed.t optionval cast : 'a Soteria.Bv_values.Typed.t -> 'b Soteria.Bv_values.Typed.tval cast_checked :
'a Soteria.Bv_values.Typed.t ->
'b ty ->
'b Soteria.Bv_values.Typed.t optionval cast_checked2 :
'a Soteria.Bv_values.Typed.t ->
'b Soteria.Bv_values.Typed.t ->
('c Soteria.Bv_values.Typed.t * 'c Soteria.Bv_values.Typed.t * 'c ty) optionval cast_float :
'a Soteria.Bv_values.Typed.t ->
[> T.sfloat ] Soteria.Bv_values.Typed.t optionval cast_int :
'a Soteria.Bv_values.Typed.t ->
([> T.sint ] Soteria.Bv_values.Typed.t * int) optionval is_float : 'a ty -> boolval size_of_int : [< T.sint ] Soteria.Bv_values.Typed.t -> intval untyped : 'a Soteria.Bv_values.Typed.t -> Soteria.Bv_values.Svalue.tval untyped_list :
'a Soteria.Bv_values.Typed.t list ->
Soteria.Bv_values.Svalue.t listval pp :
(Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter ->
'a Soteria.Bv_values.Typed.t ->
unitval ppa : Stdlib.Format.formatter -> 'a Soteria.Bv_values.Typed.t -> unitval equal :
([< T.any ] as 'a) Soteria.Bv_values.Typed.t ->
'a Soteria.Bv_values.Typed.t ->
boolval compare :
([< T.any ] as 'a) Soteria.Bv_values.Typed.t ->
'a Soteria.Bv_values.Typed.t ->
intval hash : ('a -> int) -> 'a Soteria.Bv_values.Typed.t -> intval hasha : 'a Soteria.Bv_values.Typed.t -> intval unique_tag : [< T.any ] Soteria.Bv_values.Typed.t -> intTyped constructors
val sem_eq :
'a Soteria.Bv_values.Typed.t ->
'a Soteria.Bv_values.Typed.t ->
sbool Soteria.Bv_values.Typed.tval sem_eq_untyped :
'a Soteria.Bv_values.Typed.t ->
'b Soteria.Bv_values.Typed.t ->
sbool Soteria.Bv_values.Typed.tBoolean operations
module type Bool_ := sig ... endinclude Bool_val v_true : [> sbool ] Soteria.Bv_values.Typed.tval v_false : [> sbool ] Soteria.Bv_values.Typed.tval and_lazy :
[< sbool ] Soteria.Bv_values.Typed.t ->
(unit -> [< sbool ] Soteria.Bv_values.Typed.t) ->
[> sbool ] Soteria.Bv_values.Typed.tSimilar to and_, but the rhs is only evaluated if the lhs is not the concrete false. In other words, this is a short-circuiting and. Avoids some errors, like a division by zero in 0 != x && n / x when x is 0.
val conj :
[< sbool ] Soteria.Bv_values.Typed.t list ->
[> sbool ] Soteria.Bv_values.Typed.tval split_ands :
[< sbool ] Soteria.Bv_values.Typed.t ->
([> sbool ] Soteria.Bv_values.Typed.t -> unit) ->
unitval or_lazy :
[< sbool ] Soteria.Bv_values.Typed.t ->
(unit -> [< sbool ] Soteria.Bv_values.Typed.t) ->
[> sbool ] Soteria.Bv_values.Typed.tSimilar to or_, but the rhs is only evaluated if the lhs is not the concrete true. In other words, this is a short-circuiting or. Avoids some errors, like a division by zero in 0 == x || n / x when x is 0.
val distinct :
'a Soteria.Bv_values.Typed.t list ->
[> sbool ] Soteria.Bv_values.Typed.tval ite :
[< sbool ] Soteria.Bv_values.Typed.t ->
'a Soteria.Bv_values.Typed.t ->
'a Soteria.Bv_values.Typed.t ->
'a Soteria.Bv_values.Typed.tmodule Bool = Soteria_c_lib.Typed.BoolFloating point operations
module Float = Soteria_c_lib.Typed.Floatmodule SSeq = Soteria_c_lib.Typed.SSeqmodule Infix = Soteria_c_lib.Typed.Infixmodule Expr = Soteria_c_lib.Typed.Exprmodule BitVec = Typed.BitVecmodule Ptr = Typed.Ptrmodule Syntax = Typed.Syntaxinclude module type of struct include Typed.BitVec endinclude module type of struct include Soteria.Bv_values.Typed.BitVec endval mk :
int ->
Z.t ->
[> Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.tval mk_masked :
int ->
Z.t ->
[> Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.tval mki :
int ->
int ->
[> Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.tval mki_masked :
int ->
int ->
[> Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.tval mk_nz :
int ->
Z.t ->
[> Soteria.Bv_values.Typed.T.nonzero ] Soteria.Bv_values.Typed.tval mki_nz :
int ->
int ->
[> Soteria.Bv_values.Typed.T.nonzero ] Soteria.Bv_values.Typed.tval to_z :
[< Soteria.Bv_values.Typed.T.any ] Soteria.Bv_values.Typed.t ->
Z.t optionval mul :
?checked:bool ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.T.sint_ovf ] Soteria.Bv_values.Typed.tval div :
signed:bool ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[< Soteria.Bv_values.Typed.T.nonzero ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.T.sint_ovf ] Soteria.Bv_values.Typed.tval rem :
signed:bool ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[< Soteria.Bv_values.Typed.T.nonzero ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.T.sint_ovf ] Soteria.Bv_values.Typed.tval add_overflows :
signed:bool ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.sbool ] Soteria.Bv_values.Typed.tval sub_overflows :
signed:bool ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.sbool ] Soteria.Bv_values.Typed.tval mul_overflows :
signed:bool ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.sbool ] Soteria.Bv_values.Typed.tval neg_overflows :
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.sbool ] Soteria.Bv_values.Typed.tval gt :
signed:bool ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.sbool ] Soteria.Bv_values.Typed.tval geq :
signed:bool ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.sbool ] Soteria.Bv_values.Typed.tval extend :
signed:bool ->
int ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.tval extract :
int ->
int ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.tval to_bool :
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.sbool ] Soteria.Bv_values.Typed.tval not_bool :
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.tval of_float :
rounding:Soteria.Bv_values.Svalue.RoundingMode.t ->
signed:bool ->
size:int ->
[< Soteria.Bv_values.Typed.T.sfloat ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.tval to_float :
rounding:Soteria.Bv_values.Svalue.RoundingMode.t ->
signed:bool ->
fp:Soteria.Bv_values.Svalue.FloatPrecision.t ->
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.T.sfloat ] Soteria.Bv_values.Typed.tval to_float_raw :
[< Soteria.Bv_values.Typed.T.sint ] Soteria.Bv_values.Typed.t ->
[> Soteria.Bv_values.Typed.T.sfloat ] Soteria.Bv_values.Typed.tval cast_to_size_t : 'a Typed.t -> Soteria_c_lib.Typed.T.sint Typed.t optiontype t = T.sint