Module InferModules__Propset
Functions for Sets of Propositions with and without sharing
Sets of Propositions
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 singleton : InferIR.Tenv.t -> InferModules.Prop.normal InferModules.Prop.t -> t
Singleton set.
val mem : InferModules.Prop.normal InferModules.Prop.t -> t -> bool
Set membership.
val add : InferIR.Tenv.t -> InferModules.Prop.normal InferModules.Prop.t -> t -> t
Add
prop
to propset.
val empty : t
The empty set of propositions.
val size : t -> int
Size of the set
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))...)
, wherep1 ... 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) wherep1 ... pN
are the elements of pset, in increasing order.
val partition : (InferModules.Prop.normal InferModules.Prop.t -> bool) -> t -> t * t
val subseteq : t -> t -> bool
val is_empty : t -> bool
Set emptiness check.
val filter : (InferModules.Prop.normal InferModules.Prop.t -> bool) -> t -> t
Pretty print
val d : InferModules.Prop.normal InferModules.Prop.t -> t -> unit
dump a propset coming form the given initial prop