Tree_state.Tree_blockmodule Encoder : sig ... endtype rust_val = Sptr.t Rust_val.tval pp_rust_val :
(Soteria_rust_lib.Typed.T.sint Typed.t,
Soteria_rust_lib.Typed.T.sfloat Typed.t,
Sptr.t)
Rust_val.raw
Fmt.tmodule MemVal : sig ... endmodule Expr : sig ... endtype nonrec sint = MemVal.S_bounded_int.t Sptr.DecayMapMonad.Value.tmodule Range : sig ... endmodule Split_tree : sig ... endA Split_tree is a simplified representation of a tree, that has no offset. It however indicates, on Nodes, at what offset the split occurs, relative to that node's start.
module Node : sig ... endmodule Tree : sig ... endval pp :
Ppx_deriving_runtime.Format.formatter ->
t ->
Ppx_deriving_runtime.unitval show : t -> Ppx_deriving_runtime.stringmodule SM : sig ... endval is_empty : t -> boolval pp_pretty : Stdlib.Format.formatter -> t -> unitval pp_syn :
Ppx_deriving_runtime.Format.formatter ->
syn ->
Ppx_deriving_runtime.unitval show_syn : syn -> Ppx_deriving_runtime.stringval lift_fixes :
offset:'a Sptr.DecayMapMonad.Value.t ->
len:'b Sptr.DecayMapMonad.Value.t ->
MemVal.syn list ->
syn listval lift_miss :
offset:'a Sptr.DecayMapMonad.Value.t ->
len:'b Sptr.DecayMapMonad.Value.t ->
('c, 'd, MemVal.syn list) Sptr.DecayMapMonad.Result.t ->
('c, 'd, syn list) Sptr.DecayMapMonad.Result.tval lift_miss_c :
offset:'a Sptr.DecayMapMonad.Value.t ->
len:'b Sptr.DecayMapMonad.Value.t ->
('c, MemVal.syn list) Sptr.DecayMapMonad.Consumer.t ->
('c, syn list) Sptr.DecayMapMonad.Consumer.tval of_opt :
?mk_fixes:(unit -> 'a list Sptr.DecayMapMonad.t) ->
'b option ->
('b, 'c, 'a) Sptr.DecayMapMonad.Result.tval with_bound_check :
?mk_fixes:(unit -> syn list list Sptr.DecayMapMonad.t) ->
sint ->
(Tree.t ->
('a * Tree.t, [> `OutOfBounds ] as 'b, syn list)
Sptr.DecayMapMonad.Result.t) ->
('a, 'b, syn list) SM.Result.tval assert_exclusively_owned :
t option ->
(unit, 'a, syn list) Sptr.DecayMapMonad.Result.tval get_raw_tree_owned :
MemVal.S_bounded_int.t Sptr.DecayMapMonad.Value.t ->
MemVal.S_bounded_int.t Sptr.DecayMapMonad.Value.t ->
((MemVal.t, MemVal.S_bounded_int.t Sptr.DecayMapMonad.Value.t)
Soteria__Sym_states__Tree_block.tree,
[> `OutOfBounds ],
syn list)
SM.Result.tval put_raw_tree :
MemVal.S_bounded_int.t Sptr.DecayMapMonad.Value.t ->
Tree.t ->
(unit, [> `OutOfBounds ], syn list) SM.Result.tval consume_bound :
Sptr.DecayMapMonad.Value.Expr.t ->
t option ->
(t option, 'a) Sptr.DecayMapMonad.Consumer.tval produce_bound :
Expr.t ->
t option ->
t option Sptr.DecayMapMonad.Producer.tval produce_mem_val :
Expr.t ->
Expr.t ->
MemVal.syn ->
t option ->
t option Sptr.DecayMapMonad.Producer.tval consume_mem_val :
Expr.t ->
Expr.t ->
MemVal.syn ->
t option ->
(t option, syn list) Sptr.DecayMapMonad.Consumer.tval consume :
syn ->
t option ->
(t option, syn list) Sptr.DecayMapMonad.Consumer.tval produce : syn -> t option -> t option Sptr.DecayMapMonad.Producer.tval lift_symex : 'a Sptr.DecayMapMonad.Symex.t -> 'a SM.tval sint_to_int :
[< Soteria__Bv_values__Typed.T.any ] Soteria__Bv_values__Typed.t ->
int Sptr.DecayMapMonad.tval collect_leaves :
Tree.t ->
((rust_val
* [> Soteria__Bv_values__Typed.T.sint ] Soteria__Bv_values__Typed.t)
list,
'a,
'b)
Sptr.DecayMapMonad.Result.tval decode_mem_val :
ty:Charon.Types.ty ->
Encoder.rust_val MemVal.value_raw ->
Soteria_rust_lib__Sptr.DecayMap.t ->
((Encoder.rust_val,
[> `InvalidLayout of Charon.Types.ty | `UninitializedMemoryAccess ],
'a)
Soteria.Symex.Compo_res.t
* Soteria_rust_lib__Sptr.DecayMap.t)
Rustsymex.tval decode_lazy :
ty:Charon.Types.ty ->
Tree.t ->
Soteria_rust_lib__Sptr.DecayMap.t ->
((Encoder.rust_val, 'a, 'b) Soteria.Symex.Compo_res.t
* Soteria_rust_lib__Sptr.DecayMap.t)
Rustsymex.tval decode_tree :
ty:Charon.Types.ty ->
Tree.t ->
(Encoder.rust_val,
[> `InvalidLayout of Charon.Types.ty | `UninitializedMemoryAccess ],
'a)
Sptr.DecayMapMonad.Result.tval uninit : (sint * sint) -> Tree_borrow.tb_state -> Tree.tval zeros : (sint * sint) -> Tree_borrow.tb_state -> Tree.tval mk_fix_typed :
'a Sptr.DecayMapMonad.Value.t ->
Charon.Types.ty ->
unit ->
Soteria_rust_lib__Sptr.DecayMap.t ->
(syn list list * Soteria_rust_lib__Sptr.DecayMap.t) Rustsymex.tval mk_fix_any :
'a Sptr.DecayMapMonad.Value.t ->
'b Sptr.DecayMapMonad.Value.t ->
unit ->
syn list listval mk_fix_any_s :
'a Sptr.DecayMapMonad.Value.t ->
'b Sptr.DecayMapMonad.Value.t ->
unit ->
syn list list Sptr.DecayMapMonad.tval as_owned :
?mk_fixes:
(unit ->
Soteria_rust_lib__Sptr.DecayMap.t ->
('a list * Soteria_rust_lib__Sptr.DecayMap.t) Rustsymex.t) ->
('b * 'c, 'd) tree ->
(('b * 'c) -> ('e, 'f, 'a) Sptr.DecayMapMonad.Result.t) ->
('e, 'f, 'a) Sptr.DecayMapMonad.Result.tval check_owned :
Soteria_rust_lib.Typed.T.sint Typed.t ->
[< Soteria_rust_lib.Typed.T.nonzero ] Typed.t ->
(unit, [> `OutOfBounds ], syn list) SM.Result.tval load :
ignore_borrow:bool ->
Soteria_rust_lib.Typed.T.sint Typed.t ->
Charon.Types.ty ->
Tree_borrow.tag option ->
Tree_borrow.t ->
(Encoder.rust_val,
[> `AliasingError
| `InvalidLayout of Charon.Types.ty
| `OutOfBounds
| `UninitializedMemoryAccess ],
syn list)
Soteria.Symex.Compo_res.t
SM.tval store :
[ `NonZero | `Zero ] Typed.t ->
rust_val ->
Tree_borrow.tag option ->
Tree_borrow.t ->
(unit,
[> `AliasingError | `InvalidLayout of Charon.Types.ty | `OutOfBounds ],
syn list)
SM.Result.tval get_init_leaves :
Soteria_rust_lib.Typed.T.sint Typed.t ->
[< Soteria_rust_lib.Typed.T.nonzero ] Typed.t ->
((rust_val * Soteria_rust_lib.Typed.T.sint Typed.t) list,
[> `OutOfBounds ],
syn list)
SM.Result.tval uninit_range :
Soteria_rust_lib.Typed.T.sint Typed.t ->
Soteria_rust_lib.Typed.T.sint Typed.t ->
(unit, [> `OutOfBounds ], syn list) SM.Result.tval zero_range :
Soteria_rust_lib.Typed.T.sint Typed.t ->
Soteria_rust_lib.Typed.T.sint Typed.t ->
(unit, [> `OutOfBounds ], syn list) SM.Result.tval with_tb_access :
Soteria_rust_lib.Typed.T.sint Typed.t ->
Soteria_rust_lib.Typed.T.sint Typed.t ->
(Tree_borrow.tb_state ->
(Tree_borrow.tb_state, [> `OutOfBounds ] as 'a, syn list)
Soteria.Symex.Compo_res.t
Rustsymex.t) ->
(unit, 'a, syn list) SM.Result.tval protect :
Soteria_rust_lib.Typed.T.sint Typed.t ->
Soteria_rust_lib.Typed.T.sint Typed.t ->
Tree_borrow.tag ->
Tree_borrow.t ->
(unit, [> `AliasingError | `OutOfBounds ], syn list) SM.Result.tval unprotect :
Soteria_rust_lib.Typed.T.sint Typed.t ->
Soteria_rust_lib.Typed.T.sint Typed.t ->
Tree_borrow.tag ->
Tree_borrow.t ->
(unit, [> `OutOfBounds ], syn list) SM.Result.tval tb_access :
Soteria_rust_lib.Typed.T.sint Typed.t ->
Soteria_rust_lib.Typed.T.sint Typed.t ->
Tree_borrow.tag ->
Tree_borrow.t ->
(unit, [> `AliasingError | `OutOfBounds ], syn list) SM.Result.t