Soteria_rust_lib.Rust_valtype 'ptr meta = (Soteria_rust_lib.Typed.T.sint Typed.t, 'ptr) meta_rawtype 'ptr meta_syn = (Soteria_rust_lib.Typed.Expr.t, 'ptr) meta_rawtype ('v, 'ptr) full_ptr_raw = 'ptr * ('v, 'ptr) meta_rawtype 'ptr full_ptr = 'ptr * 'ptr metatype ('sint, 'sfloat, 'ptr) raw = | Int of 'sint| Float of 'sfloat| Ptr of ('sint, 'ptr) full_ptr_rawpointer, parametric to enable Ruxt, with optional meta
*)| Enum of 'sint * ('sint, 'sfloat, 'ptr) raw listdiscriminant * values
*)| Tuple of ('sint, 'sfloat, 'ptr) raw listcontains ordered values
*)| Union of (('sint, 'sfloat, 'ptr) raw * 'sint) listlist of blocks in the union, with their offset
*)| PolyVal of Charon.Types.type_var_idThe opaque value of a type variable, identified by (type variable index, unique identifier).
*)type 'ptr t =
(Soteria_rust_lib.Typed.T.sint Typed.t,
Soteria_rust_lib.Typed.T.sfloat Typed.t,
'ptr)
rawtype 'ptr rust_val = 'ptr ttype 'ptr syn =
(Soteria_rust_lib.Typed.Expr.t, Soteria_rust_lib.Typed.Expr.t, 'ptr) rawval pp_meta_raw :
(Stdlib.Format.formatter -> 'a -> unit) ->
(Stdlib.Format.formatter -> 'b -> unit) ->
Stdlib.Format.formatter ->
('a, 'b) meta_raw ->
unitval pp_meta_syn :
(Stdlib.Format.formatter -> 'a -> Ppx_deriving_runtime.unit) ->
Stdlib.Format.formatter ->
(Soteria_rust_lib.Typed.Expr.t, 'a) meta_raw ->
Ppx_deriving_runtime.unitval pp_full_ptr_raw :
(Stdlib.Format.formatter -> 'a -> unit) ->
(Stdlib.Format.formatter -> 'b -> unit) ->
Stdlib.Format.formatter ->
('b * ('a, 'b) meta_raw) ->
unitval pp_full_ptr_syn :
(Stdlib.Format.formatter -> 'a -> Ppx_deriving_runtime.unit) ->
Stdlib.Format.formatter ->
('a * (Soteria_rust_lib.Typed.Expr.t, 'a) meta_raw) ->
Ppx_deriving_runtime.unitval pp_syn :
(Stdlib.Format.formatter -> 'a -> Ppx_deriving_runtime.unit) ->
(Soteria_rust_lib.Typed.Expr.t, Soteria_rust_lib.Typed.Expr.t, 'a) raw Fmt.tval ppa_syn :
Stdlib.Format.formatter ->
(Soteria_rust_lib.Typed.Expr.t, Soteria_rust_lib.Typed.Expr.t, 'a) raw ->
unitval unit_ : ('a, 'b, 'c) rawval meta_exprs_syn :
('ptr -> Soteria_rust_lib.Typed.Expr.t list) ->
'ptr meta_syn ->
Soteria_rust_lib.Typed.Expr.t listval exprs_syn :
('a -> Soteria_rust_lib.Typed.Expr.t list) ->
(Soteria_rust_lib.Typed.Expr.t, Soteria_rust_lib.Typed.Expr.t, 'a) raw ->
Soteria_rust_lib.Typed.Expr.t listval to_syn :
('ptr -> 'a) ->
(Soteria_rust_lib.Typed.T.sint Typed.t, 'b Soteria__Bv_values__Typed.t, 'ptr)
raw ->
(Soteria_rust_lib.Typed.Expr.t, Soteria_rust_lib.Typed.Expr.t, 'a) rawmodule Learn_eq
(Symex : Soteria.Symex.Base with module Value = Typed) :
sig ... endval is_empty : ('a, 'b, 'c) raw -> boolis_empty v is true if the value is "empty"; ie. it doesn't contain any Base or Ptr value. We also consider Enum to be non-empty, because of the discriminant, though this *may* be wrong if it's a ZST.
Used in unsizing, to find the field with the pointer to modify.
val as_ptr : ('a Typed.t, 'b Typed.t, 'c) raw -> ('a Typed.t, 'c) full_ptr_rawval as_ptr_or :
make:([< Soteria_rust_lib.Typed.T.any NonZero Zero ] Typed.t -> 'a) ->
(([< Soteria_rust_lib.Typed.T.any ] as 'b) Typed.t, 'c Typed.t, 'a) raw ->
('b Typed.t, 'a) full_ptr_rawval as_base_f :
Charon.Types.float_type ->
('a Typed.t, [< Soteria_rust_lib.Typed.T.any ] Typed.t, 'b) raw ->
Soteria_rust_lib.Typed.T.sfloat Typed.tval as_base :
Charon.Types.literal_type ->
([< Soteria_rust_lib.Typed.T.any ] Typed.t, 'a Typed.t, 'b) raw ->
[< Soteria_rust_lib.Typed.T.any NonZero Zero ] Typed.tval as_base_i :
Charon.Values.u_int_ty ->
([< Soteria_rust_lib.Typed.T.any ] Typed.t, 'a Typed.t, 'b) raw ->
[< Soteria_rust_lib.Typed.T.any NonZero Zero ] Typed.tval subst :
((Soteria_rust_lib.Typed.Expr.t -> 'a Soteria__Bv_values__Typed.t) ->
'b ->
'c) ->
(Soteria_rust_lib.Typed.Expr.t -> 'a Soteria__Bv_values__Typed.t) ->
(Soteria_rust_lib.Typed.Expr.t, Soteria_rust_lib.Typed.Expr.t, 'b) raw ->
('d Soteria__Bv_values__Typed.t, 'e Soteria__Bv_values__Typed.t, 'c) raw