Engine.Preds
val to_yojson : t -> Yojson.Safe.t
val of_yojson : Yojson.Safe.t -> t Ppx_deriving_yojson_runtime.error_or
type abs_t = string * Gillian.Gil_syntax.Expr.t list
val length : t -> int
val is_empty : t -> bool
Given a strategy finds a predicate best matching it (int is non-null and highest possible). If consume is true, and the function returns Some _
, the predicate is also removed from the preds.
val get_lvars : t -> Utils.Prelude.SS.t
val get_alocs : t -> Utils.Prelude.SS.t
val pp : Stdlib.Format.formatter -> t -> unit
val pp_pabs : Stdlib.Format.formatter -> abs_t -> unit
val consume_pred :
maintain:bool ->
t ->
string ->
Gillian.Gil_syntax.Expr.t option list ->
Utils.Containers.SI.t ->
(Gillian.Gil_syntax.Expr.t -> Gillian.Gil_syntax.Expr.t -> bool) ->
abs_t option
consume_pred ~maintain pred_state name args_opt ins f_eq
removes the predicate best matching the triple (name, args_opt, ins)
using an equality function on values f_eq
. It does so in place, and if maintain is true, the predicate is matched but not actually removed from the state.
val substitution_in_place : Gillian.Symbolic.Subst.t -> t -> unit
val to_assertions : t -> Gillian.Gil_syntax.Asrt.t list
Turns a predicate set into a list of assertions