Partial_inversible_map.MakeSourcemodule KeySet = Mopsa_utils.SetExt.Make(Key)Set of keys
module ValueSet = Mopsa_utils.SetExt.Make(Value)Set of values
Type of inversible maps
Pretty printer.
Widening operator
find k a find the set of values attached to key k in a. Raise Not_found of the key is not found.
find_inverse finds the set of keys attached to value v in a.
filter f a keeps all bindings (k,vs) in a such that f k vs is true
filter_inverse f a keeps all inverse bindings (v,ks) in a such that f v ks is true
set k vs a adds the binding (k,vs) to a. Previous bindings are overwritten.
add_inverse v ks a adds the binding (k,{v} ∪ find k a) to a, where k ∈ ks.
singleton k v createw a map with the singleton binding (k,{v})
fold f a init folds function f over elements (k,vs) in a
val map :
(ValueSet.t Mopsa_utils.Top.with_top -> ValueSet.t Mopsa_utils.Top.with_top) ->
t ->
tmap f a replace bindings (k,vs) in a with (k,f vs)