Functions for Sets of Propositions with and without sharing
type tSets 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 ‑> tval to_proplist : t ‑> Prop.normal Prop.t listval map : InferIR.Tenv.t ‑> (Prop.normal Prop.t ‑> Prop.normal Prop.t) ‑> t ‑> tApply function to all the elements of the propset.
val map_option : InferIR.Tenv.t ‑> (Prop.normal Prop.t ‑> Prop.normal Prop.t option) ‑> t ‑> tApply function to all the elements of the propset, removing those where it returns None.
val fold : ('a ‑> Prop.normal Prop.t ‑> 'a) ‑> 'a ‑> t ‑> 'afold 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 ‑> unititer 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 * tval filter : (Prop.normal Prop.t ‑> bool) ‑> t ‑> t