Module MapDomain.GenPMapSource

Parameters

module M : MapS with type key = Domain.t
module Range : Lattice.S

Signature

include Printable.S
Sourcetype t
Sourceval equal : t -> t -> bool
Sourceval hash : t -> int
Sourceval compare : t -> t -> int
Sourceval show : t -> string
Sourceval pretty : unit -> t -> Printable.Pretty.doc
Sourceval printXml : 'a BatInnerIO.output -> t -> unit
Sourceval name : unit -> string
Sourceval to_yojson : t -> Yojson.Safe.t
val tag : t -> int

Unique ID, given by HConsed, for context identification in witness

Sourceval arbitrary : unit -> t QCheck.arbitrary
Sourceval relift : t -> t
Sourcetype key = Domain.t

The type of the map keys.

Sourcetype value = Range.t

The type of the values.

val add : key -> value -> t -> t
val remove : key -> t -> t
val find : key -> t -> value
val find_opt : key -> t -> value option
val mem : key -> t -> bool
val iter : (key -> value -> unit) -> t -> unit
val map : (value -> value) -> t -> t
val filter : (key -> value -> bool) -> t -> t
val mapi : (key -> value -> value) -> t -> t
val fold : (key -> value -> 'a -> 'a) -> t -> 'a -> 'a
Sourceval add_list : (key * value) list -> t -> t
Sourceval add_list_set : key list -> value -> t -> t
Sourceval add_list_fun : key list -> (key -> value) -> t -> t
val for_all : (key -> value -> bool) -> t -> bool
val reflexive_subset_domain_for_all2 : (value -> value -> bool) -> t -> t -> bool
val idempotent_inter : (value -> value -> value) -> t -> t -> t
val nonidempotent_inter : (value -> value -> value) -> t -> t -> t
val idempotent_inter_filter : (value -> value -> value option) -> t -> t -> t
val nonidempotent_inter_filter : (value -> value -> value option) -> t -> t -> t
val idempotent_union : (value -> value -> value) -> t -> t -> t
val nonidempotent_union : (value -> value -> value) -> t -> t -> t
val difference : (value -> value -> value option) -> t -> t -> t
val cardinal : t -> int
val choose : t -> key * value
val singleton : key -> value -> t
Sourceval empty : unit -> t
val is_empty : t -> bool
val exists : (key -> value -> bool) -> t -> bool
val bindings : t -> (key * value) list