BlockTree.Tree
val to_yojson : t -> Yojson.Safe.t
val of_yojson : Yojson.Safe.t -> t Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> t Ppx_deriving_yojson_runtime.error_or
module Lift : sig ... end
val is_concrete : t -> bool
val box_range_and_node :
(Gillian.Gil_syntax.Expr.t * Gillian.Gil_syntax.Expr.t) ->
Node.t ->
PrintBox.t
val box_full : t -> PrintBox.t
val pp_full : Stdlib.Format.formatter -> t -> unit
val is_empty : t -> bool
val realign : t -> Gillian.Gil_syntax.Expr.t -> t
val with_children : t -> left:t -> right:t -> t Monadic.Delayed.t
val update_parent_perm : t -> left:t -> right:t -> t Monadic.Delayed.t
val sval_leaf :
low:Gillian.Gil_syntax.Expr.t ->
perm:Perm.t ->
value:SVal.t ->
chunk:Chunk.t ->
t
val sarr_leaf :
low:Gillian.Gil_syntax.Expr.t ->
perm:Perm.t ->
size:Gillian.Gil_syntax.Expr.t ->
array:SVArr.t ->
chunk:Chunk.t ->
t
val split :
range:(Gillian.Gil_syntax.Expr.t * Gillian.Gil_syntax.Expr.t) ->
t ->
(Node.t * t * t) Monadic.Delayed.t
val extend_if_needed :
t ->
(Gillian.Gil_syntax.Expr.t * Gillian.Gil_syntax.Expr.t) ->
t Monadic__Delayed.t
val cons_array :
t ->
Gillian.Gil_syntax.Expr.t ->
Chunk.t ->
Gillian.Gil_syntax.Expr.t ->
(SVArr.t * Perm.t option * t, err) DR.t
val prod_array :
t ->
Gillian.Gil_syntax.Expr.t ->
Gillian.Gil_syntax.Expr.t ->
Chunk.t ->
SVArr.t ->
Perm.t ->
(t, err) DR.t
val get_perm_at : t -> Gillian.Gil_syntax.Expr.t -> (Perm.t, err) DR.t
val weak_valid_pointer : t -> Gillian.Gil_syntax.Expr.t -> (bool, err) DR.t
val drop_perm :
t ->
Gillian.Gil_syntax.Expr.t ->
Gillian.Gil_syntax.Expr.t ->
Perm.t ->
(t, err) DR.t
val assertions :
t ->
(LActions.ga
* Gillian.Gil_syntax.Expr.t list
* Gillian.Gil_syntax.Expr.t list)
list
val assertions_others : t -> Gillian.Gil_syntax.Asrt.atom list
val substitution :
svarr_subst:(SVArr.t -> SVArr.t) ->
sval_subst:(SVal.t -> SVal.t) ->
le_subst:(Gillian.Gil_syntax.Expr.t -> Gillian.Gil_syntax.Expr.t) ->
t ->
t
val box : t -> PrintBox.t
val pp : Stdlib.Format.formatter -> t -> unit