Module Symbolic.Pure_context
val to_yojson : t -> Yojson.Safe.tval of_yojson : Yojson.Safe.t -> t Ppx_deriving_yojson_runtime.error_orval init : unit -> tinit () returns a fresh empty collection of pure formulae
val to_list : t -> Gil_syntax.Expr.t listto_list pfs serialises the pure formulae pfs into a list
val of_list : Gil_syntax.Expr.t list -> tof_list fs deserialises a list of formulae fs into pure formulae
val to_set : t -> Gil_syntax.Expr.Set.tval mem : t -> Gil_syntax.Expr.t -> boolmem pfs f return true iff the formula f is part of the pure formulae pfs
val extend : t -> Gil_syntax.Expr.t -> unitextend pfs f extends the pure formulae pfs with the formula f
val clear : t -> unitclear pfs empties the pure formulae pfs
val length : t -> intlength pfs returns the length of the pure formulae pfs
merge_into_left pfsl pfsr merges the pure formulae pfsr with the pure formulae pfsl
val set : t -> Gil_syntax.Expr.t list -> unitset pfs fs sets the pure formulae pfs to fs
val iter : (Gil_syntax.Expr.t -> unit) -> t -> unititer f pfs iterates over the pure formulae pfs using the function f
val fold_left : ('a -> Gil_syntax.Expr.t -> 'a) -> 'a -> t -> 'afold_left f ac pfs folds over the pure formulae pfs using the function f and initial accumulator ac
val map_inplace : (Gil_syntax.Expr.t -> Gil_syntax.Expr.t) -> t -> unitmap_inplace f pfs is like a map operation, but performing in place
val substitution : Symbolic.Subst.t -> t -> unitsubstitution subst pfs substitutes the substutition subst in the pure formulae pfs in-place
val subst_expr_for_expr : Gil_syntax.Expr.t -> Gil_syntax.Expr.t -> t -> unitsubst_expr_for_expr e_to_subst e_subst pfs substitutes the expression e_to_subst with the expression e_subst in the pure formulae pfs in-place
val lvars : t -> Utils.Containers.SS.tlvars pfs returns the set containing all the lvars occurring in pfs
val alocs : t -> Utils.Containers.SS.tReturns the set containing all the alocs occurring in --pfs--
alocs pfs returns the set containing all the abstract locations occurring in pfs
val clocs : t -> Utils.Containers.SS.tclocs pfs returns the set containing all the concrete locations occurring in pfs
val pp : Stdlib.Format.formatter -> t -> unitpp fmt pfs prints the pure formulae pfs
val pp_by_need :
(Utils.Containers.SS.t * Utils.Containers.SS.t * Utils.Containers.SS.t) ->
Stdlib.Format.formatter ->
t ->
unitpp pvars lvars locs fmt pfs prints the pure formulae pfs relevnt to pvars, lvars and locs
val filter_with_info :
(Utils.Containers.SS.t * Utils.Containers.SS.t * Utils.Containers.SS.t) ->
t ->
tfilter_with_info pvars lvars locs pfs returns only the pfs relevant to pvars, lvars, and locs
val sort : t -> unitsort pfs sorts the pure formulae pfs
val remove_duplicates : t -> unitval clean_up : t -> unitval get_relevant_info :
Utils.Containers.SS.t ->
Utils.Containers.SS.t ->
Utils.Containers.SS.t ->
t ->
Utils.Containers.SS.t * Utils.Containers.SS.t * Utils.Containers.SS.tval filter_map_stop :
(Gil_syntax.Expr.t -> [ `Stop | `Filter | `Replace of Gil_syntax.Expr.t ]) ->
t ->
boolval filter_stop_cond :
keep:(Gil_syntax.Expr.t -> bool) ->
cond:(Gil_syntax.Expr.t -> bool) ->
t ->
boolSee Gillian.Utils.Ext_list.filter_stop_cond
val filter : (Gil_syntax.Expr.t -> bool) -> t -> unitval filter_map : (Gil_syntax.Expr.t -> Gil_syntax.Expr.t option) -> t -> unitval exists : (Gil_syntax.Expr.t -> bool) -> t -> boolval get_nth : int -> t -> Gil_syntax.Expr.t optionGets the nths formula. There are very few good use cases for this function, and uses should generaly use iterators instead. O(n)