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 add : InferIR.Tenv.t ‑> InferModules.Prop.normal InferModules.Prop.t ‑> t ‑> t
Add prop
to propset.
val from_proplist : InferIR.Tenv.t ‑> InferModules.Prop.normal InferModules.Prop.t list ‑> t
val to_proplist : t ‑> InferModules.Prop.normal InferModules.Prop.t list
val map : InferIR.Tenv.t ‑> (InferModules.Prop.normal InferModules.Prop.t ‑> InferModules.Prop.normal InferModules.Prop.t) ‑> t ‑> t
Apply function to all the elements of the propset.
val map_option : InferIR.Tenv.t ‑> (InferModules.Prop.normal InferModules.Prop.t ‑> InferModules.Prop.normal InferModules.Prop.t option) ‑> t ‑> t
Apply function to all the elements of the propset, removing those where it returns None
.
val fold : ('a ‑> InferModules.Prop.normal InferModules.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 : (InferModules.Prop.normal InferModules.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 : (InferModules.Prop.normal InferModules.Prop.t ‑> bool) ‑> t ‑> t * t
val filter : (InferModules.Prop.normal InferModules.Prop.t ‑> bool) ‑> t ‑> t
val d : InferModules.Prop.normal InferModules.Prop.t ‑> t ‑> unit
dump a propset coming form the given initial prop