Tree_state.StateKeyinclude module type of struct include Typed endinclude module type of struct include Soteria.Bv_values.Typed endmodule T = Soteria_rust_lib.Typed.Ttype +'a ty = 'a Soteria.Bv_values.Typed.tyTypes
val ppa_ty : Stdlib.Format.formatter -> 'a ty -> unittype 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 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 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 of_bool : bool -> [> sbool ] Soteria.Bv_values.Typed.tval to_bool : 'a Soteria.Bv_values.Typed.t -> bool optionval and_ :
[< sbool ] Soteria.Bv_values.Typed.t ->
[< sbool ] Soteria.Bv_values.Typed.t ->
[> 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_ :
[< sbool ] Soteria.Bv_values.Typed.t ->
[< sbool ] Soteria.Bv_values.Typed.t ->
[> sbool ] Soteria.Bv_values.Typed.tval 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 not :
[< sbool ] Soteria.Bv_values.Typed.t ->
[> 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_rust_lib.Typed.BoolFloating point operations
module SSeq = Soteria_rust_lib.Typed.SSeqmodule Infix = Soteria_rust_lib.Typed.Infixmodule Expr = Soteria_rust_lib.Typed.ExprCastError (value, expected, got)
val cast_checked :
ty:
([< `Bool
| `Float
| `List of T.any & T.any
| `Loc
| `NonZero
| `Overflowed
| `Ptr
| `Zero ] as 'a)
ty ->
[< `Bool
| `Float
| `List of T.any & T.any
| `Loc
| `NonZero
| `Overflowed
| `Ptr
| `Zero ]
Soteria.Bv_values.Typed.t ->
'a Soteria.Bv_values.Typed.tval cast_checked2 :
[< `Bool
| `Float
| `List of T.any & T.any
| `Loc
| `NonZero
| `Overflowed
| `Ptr
| `Zero ]
Soteria.Bv_values.Typed.t ->
'a Soteria.Bv_values.Typed.t ->
'b Soteria.Bv_values.Typed.t * 'c Soteria.Bv_values.Typed.t * 'd tyval cast_lit :
Charon.Types.literal_type ->
[< `Bool
| `Float
| `List of T.any & T.any
| `Loc
| `NonZero
| `Overflowed
| `Ptr
| `Zero ]
Soteria.Bv_values.Typed.t ->
[< `Bool
| `Float
| `List of T.any & T.any
| `Loc
| `NonZero
| `Overflowed
| `Ptr
| `Zero NonZero Zero ]
Soteria.Bv_values.Typed.tval cast_i :
Charon.Values.u_int_ty ->
[< `Bool
| `Float
| `List of T.any & T.any
| `Loc
| `NonZero
| `Overflowed
| `Ptr
| `Zero ]
Soteria.Bv_values.Typed.t ->
[< `Bool
| `Float
| `List of T.any & T.any
| `Loc
| `NonZero
| `Overflowed
| `Ptr
| `Zero NonZero Zero ]
Soteria.Bv_values.Typed.tval cast_f :
Charon.Types.float_type ->
[< `Bool
| `Float
| `List of T.any & T.any
| `Loc
| `NonZero
| `Overflowed
| `Ptr
| `Zero ]
Soteria.Bv_values.Typed.t ->
T.sfloat Soteria.Bv_values.Typed.tval cast_float :
[< `Bool
| `Float
| `List of T.any & T.any
| `Loc
| `NonZero
| `Overflowed
| `Ptr
| `Zero ]
Soteria.Bv_values.Typed.t ->
[> T.sfloat ] Soteria.Bv_values.Typed.tval cast_int :
[< `Bool
| `Float
| `List of T.any & T.any
| `Loc
| `NonZero
| `Overflowed
| `Ptr
| `Zero ]
Soteria.Bv_values.Typed.t ->
[> T.sint ] Soteria.Bv_values.Typed.t * intDEPRECATED: it is unlikely you need this; the interpreter should be well typed
module BitVec = Typed.BitVecmodule BV = Soteria_rust_lib.Typed.BVmodule Float = Typed.Floatmodule Ptr = Typed.Ptrmodule Syntax = Typed.Syntaxtype syn = Expr.tval pp_syn :
Ppx_deriving_runtime.Format.formatter ->
syn ->
Ppx_deriving_runtime.unitval show_syn : syn -> Ppx_deriving_runtime.stringval to_syn : 'a Soteria__Bv_values__Typed.t -> Expr.tval learn_eq : syn -> t -> (unit, 'a) DecayMapMonad.Consumer.tval pp : Stdlib.Format.formatter -> 'a Soteria.Bv_values.Typed.t -> unitval show : [ `Loc ] Soteria.Bv_values.Typed.t -> stringval to_int : [< T.any ] Soteria.Bv_values.Typed.t -> intval simplify :
'a DecayMapMonad.Value.t ->
'a DecayMapMonad.Value.t DecayMapMonad.tval distinct :
'a Soteria.Bv_values.Typed.t list ->
[> sbool ] Soteria.Bv_values.Typed.tval fresh :
unit ->
[> Soteria__Bv_values__Typed.T.sloc ] DecayMapMonad.Value.t DecayMapMonad.t