Biabduction.PropsetFunctions for Sets of Propositions with and without sharing
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 : IR.Tenv.t -> Prop.normal Prop.t -> tSingleton set.
val mem : Prop.normal Prop.t -> t -> boolSet membership.
val add : IR.Tenv.t -> Prop.normal Prop.t -> t -> tAdd prop to propset.
val empty : tThe empty set of propositions.
val size : t -> intSize of the set
val from_proplist : IR.Tenv.t -> Prop.normal Prop.t list -> tval to_proplist : t -> Prop.normal Prop.t listval map : IR.Tenv.t -> (Prop.normal Prop.t -> Prop.normal Prop.t) -> t -> tApply function to all the elements of the propset.
val map_option :
IR.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 is_empty : t -> boolSet emptiness check.
val filter : (Prop.normal Prop.t -> bool) -> t -> tval d : Prop.normal Prop.t -> t -> unitdump a propset coming form the given initial prop