AbstractDomain.SafeInvertedMapSimilar to InvertedMap but it guarantees that it has a canonical form. For example, both {a -> top_v} and empty represent the same abstract value top in InvertedMap, but in this implementation, top is always implemented as empty by not adding the top_v explicitly.
module ValueDomain : WithTopinclude IStdlib.PrettyPrintable.PPMonoMap
with type key = Key.t
with type value = ValueDomain.tinclude IStdlib.PrettyPrintable.MonoMap
with type key = Key.t
with type value = ValueDomain.ttype key = Key.ttype value = ValueDomain.tval empty : tval is_empty : t -> boolval cardinal : t -> intval is_singleton_or_more :
t ->
(key * value) IStdlib.IContainer.singleton_or_moreinclude IStdlib.PrettyPrintable.PrintableType with type t := tval pp_key : IStdlib.PrettyPrintable.F.formatter -> key -> unit