Module AbstractDomain.InvertedMap
Map domain ordered by intersection over the set of bindings, so the top element is the empty map. Every element implictly maps to top unless it is explicitly bound to something else
Parameters
Signature
include IStdlib.PrettyPrintable.PPMonoMap
include IStdlib.PrettyPrintable.MonoMap
val empty : tval is_empty : t -> boolval mem : key -> t -> boolval add : key -> value -> t -> tval update : key -> (value option -> value option) -> t -> tval singleton : key -> value -> tval remove : key -> t -> tval merge : (key -> value option -> value option -> value option) -> t -> t -> tval union : (key -> value -> value -> value option) -> t -> t -> tval compare : (value -> value -> int) -> t -> t -> intval equal : (value -> value -> bool) -> t -> t -> boolval iter : (key -> value -> unit) -> t -> unitval fold : (key -> value -> 'a -> 'a) -> t -> 'a -> 'aval for_all : (key -> value -> bool) -> t -> boolval exists : (key -> value -> bool) -> t -> boolval filter : (key -> value -> bool) -> t -> tval filter_map : (key -> value -> value option) -> t -> tval partition : (key -> value -> bool) -> t -> t * tval cardinal : t -> intval bindings : t -> (key * value) listval min_binding : t -> key * valueval min_binding_opt : t -> (key * value) optionval max_binding : t -> key * valueval max_binding_opt : t -> (key * value) optionval choose : t -> key * valueval choose_opt : t -> (key * value) optionval split : key -> t -> t * value option * tval find : key -> t -> valueval find_opt : key -> t -> value optionval find_first : (key -> bool) -> t -> key * valueval find_first_opt : (key -> bool) -> t -> (key * value) optionval find_last : (key -> bool) -> t -> key * valueval find_last_opt : (key -> bool) -> t -> (key * value) optionval map : (value -> value) -> t -> tval mapi : (key -> value -> value) -> t -> tval is_singleton_or_more : t -> (key * value) IStdlib.IContainer.singleton_or_moreval fold_map : t -> init:'a -> f:('a -> value -> 'a * value) -> 'a * tval fold_mapi : t -> init:'a -> f:(key -> 'a -> value -> 'a * value) -> 'a * tval of_seq : (key * value) Stdlib.Seq.t -> t
include IStdlib.PrettyPrintable.PrintableType with type t := t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val pp_key : IStdlib.PrettyPrintable.F.formatter -> key -> unit