States.Exclusive
module DR = Gillian.Monadic.Delayed_result
module Recovery_tactic = Gillian.General.Recovery_tactic
type t = Gillian.Gil_syntax.Expr.t option
val show : t -> Ppx_deriving_runtime.string
val to_yojson : t -> Yojson.Safe.t
val of_yojson : Yojson.Safe.t -> t Ppx_deriving_yojson_runtime.error_or
val pp_err_t :
Ppx_deriving_runtime.Format.formatter ->
err_t ->
Ppx_deriving_runtime.unit
val show_err_t : err_t -> Ppx_deriving_runtime.string
val err_t_to_yojson : err_t -> Yojson.Safe.t
val err_t_of_yojson :
Yojson.Safe.t ->
err_t Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> err_t Ppx_deriving_yojson_runtime.error_or
val pp : Gillian.Gil_syntax.Expr.t option Fmt.t
val action_from_str : string -> action option
val action_to_str : action -> string
val list_actions : unit -> (action * string list * string list) list
val pred_from_str : string -> pred option
val pred_to_str : pred -> string
val list_preds : unit -> (pred * 'a list * string list) list
val empty : unit -> t
val execute_action :
action ->
Gillian.Gil_syntax.Expr.t option ->
Gillian.Gil_syntax.Expr.t list ->
(Gillian.Gil_syntax.Expr.t option * Gillian.Gil_syntax.Expr.t list, err_t)
Stdlib.result
Monadic.Delayed.t
val consume :
pred ->
'a option ->
'b list ->
('c option * 'a list, err_t) Stdlib.result Monadic.Delayed.t
val produce :
pred ->
'a option ->
'b list ->
'b option Gillian.Monadic.Delayed.t
val substitution_in_place :
Gillian.Symbolic.Subst.t ->
Gillian.Gil_syntax.Expr.t option ->
Gillian.Gil_syntax.Expr.t option Gillian.Monadic.Delayed.t
val compose : 'a option -> 'a option -> 'a option Gillian.Monadic.Delayed.t
val is_exclusively_owned : 'a option -> 'b -> bool Gillian.Monadic.Delayed.t
val is_concrete : Gillian.Gil_syntax.Expr.t option -> bool
val instantiate :
Gillian.Gil_syntax.Expr.t list ->
Gillian.Gil_syntax.Expr.t option * 'a list
val lvars : Gillian.Gil_syntax.Expr.t option -> Gillian.Utils.Containers.SS.t
val alocs : Gillian.Gil_syntax.Expr.t option -> Gillian.Utils.Containers.SS.t
val assertions : 'a option -> (pred * 'b list * 'a list) list
val get_recovery_tactic : 'a -> 'b Recovery_tactic.t
val can_fix : err_t -> bool