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 compare : t ‑> t ‑> int

Compare propsets

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 union : t ‑> t ‑> t

Set union.

val inter : t ‑> t ‑> t

Set intersection

val add : InferIR.Tenv.t ‑> InferModules.Prop.normal InferModules.Prop.t ‑> t ‑> t

Add prop to propset.

val diff : t ‑> t ‑> t

Set difference.

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))...), 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 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