Functions for Sets of Propositions with and without sharing
type t
Sets of propositions. The invariant is maintaned that Prop.prop_rename_primed_footprint_vars is called on any prop added to the set.
val from_proplist : InferIR.Tenv.t ‑> Prop.normal Prop.t list ‑> t
val to_proplist : t ‑> Prop.normal Prop.t list
val map : InferIR.Tenv.t ‑> (Prop.normal Prop.t ‑> Prop.normal Prop.t) ‑> t ‑> t
Apply function to all the elements of the propset.
val map_option : InferIR.Tenv.t ‑> (Prop.normal Prop.t ‑> Prop.normal Prop.t option) ‑> t ‑> t
Apply function to all the elements of the propset, removing those where it returns None
.
val fold : ('a ‑> Prop.normal Prop.t ‑> 'a) ‑> 'a ‑> t ‑> 'a
fold f pset a
computes (f pN ... (f p2 (f p1 a))...)
,
where p1 ... pN
are the elements of pset, in increasing
order.
val iter : (Prop.normal Prop.t ‑> unit) ‑> t ‑> unit
iter f pset
computes (f p1;f p2;..;f pN)
where p1 ... pN
are the elements of pset, in increasing order.
val partition : (Prop.normal Prop.t ‑> bool) ‑> t ‑> t * t
val filter : (Prop.normal Prop.t ‑> bool) ‑> t ‑> t