AbstractDomain.SafeInvertedMap
Similar 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 : WithTop
include IStdlib.PrettyPrintable.PPMonoMap
with type key = Key.t
with type value = ValueDomain.t
include IStdlib.PrettyPrintable.MonoMap
with type key = Key.t
with type value = ValueDomain.t
type key = Key.t
type value = ValueDomain.t
val empty : t
val is_empty : t -> bool
val cardinal : t -> int
val is_singleton_or_more :
t ->
(key * value) IStdlib.IContainer.singleton_or_more
include IStdlib.PrettyPrintable.PrintableType with type t := t
val pp_key : IStdlib.PrettyPrintable.F.formatter -> key -> unit