Frama-C API - Make_MapSet_Lattice
Builds a lattice mixing maps and sets, provided that each one has a lattice structure.
Parameters
module Key : Hptmap.Id_Datatypemodule KSet : Lattice_type.Lattice_Set with type O.elt = Key.tSignature
include MapSet_Lattice with type set := KSet.t and type map := KVMap.t and type key := Key.t and type v := Value.t
include Datatype.S_with_collections with type t := t
include Datatype.S with type t := t
include Datatype.S_no_copy with type t := t
include Datatype.Ty with type t := t
module Set : Datatype.Set with type elt = tmodule Map : Datatype.Map with type key = tmodule Hashtbl : Datatype.Hashtbl with type key = tinclude Lattice with type t := t
include Lattice_type.Bottom_Bounded_Join_Semi_Lattice with type t := t
include Lattice_type.Join_Semi_Lattice with type t := t
datatype of element of the lattice
include Datatype.S with type t := t
include Datatype.S_no_copy with type t := t
include Datatype.Ty with type t := t
val packed_descr : Structural_descr.packPacked version of the descriptor.
val reprs : t listList of representants of the descriptor.
val hash : t -> intHash function: same spec than Hashtbl.hash.
val pretty : Stdlib.Format.formatter -> t -> unitPretty print each value in an user-friendly way.
val mem_project : (Project_skeleton.t -> bool) -> t -> boolmem_project f x must return true iff there is a value p of type Project.t in x such that f p returns true.
include Lattice_type.With_Intersects with type t := t
val bottom : tval top : tadd key v t binds the value v to key in t. If t is a set, it adds key to the set. If v is bottom, then it removes the key from t instead.
find key t returns the value bound to key in t. It returns Value.top if t is a set that contains key. It returns Value.bottom if key does not belong to t.
If t is a singleton map binding k to v, then returns the pair (k,v).
val cached_fold : cache:Hptmap_sig.cache_type -> f:(Key.t -> Value.t -> 'a) -> joiner:('a -> 'a -> 'a) -> empty:'a -> t -> 'afor_all p t checks if all binding of t satisfy p . Always false if t is top.
exists p t checks if one binding of t satisfies p. Always true if t is top.
val pretty_debug : Stdlib.Format.formatter -> t -> unit