Module UnionFind.LookupMap

For each representative t' of an equivalence class, the LookupMap maps t' to a map that maps z to a term in the data structure that is equal to *(z + t').

type t = T.t ZMap.t TMap.t
val equal : t -> t -> Ppx_deriving_runtime.bool
val compare : t -> t -> Ppx_deriving_runtime.int
val hash : t -> int
val bindings : 'a TMap.t -> (TMap.key * 'a) list
val add : TMap.key -> 'a -> 'a TMap.t -> 'a TMap.t
val remove : TMap.key -> 'a TMap.t -> 'a TMap.t
val empty : 'a TMap.t
val find_opt : TMap.key -> 'a TMap.t -> 'a option
val find : TMap.key -> 'a TMap.t -> 'a
val zmap_bindings : 'a ZMap.t -> (ZMap.key * 'a) list
val zmap_find_opt : ZMap.key -> 'a ZMap.t -> 'a option
val zmap_add : ZMap.key -> 'a -> 'a ZMap.t -> 'a ZMap.t
val map_find_opt : (TMap.key * ZMap.key) -> t -> T.t option

Returns the element to which (v, r) is mapped, or None if (v, r) is mapped to nothing.

val map_add : (TMap.key * ZMap.key) -> T.t -> t -> T.t ZMap.t TMap.t
val show_map : t -> string
val shift : TMap.key -> Z.t -> TMap.key -> 'a ZMap.t TMap.t -> 'a ZMap.t TMap.t

The value at v' is shifted by r and then added for v. The old entry for v' is removed.

val successors : TMap.key -> t -> (ZMap.key * T.t) list

Find all outgoing edges of v in the automata.

val comp_t_cmap_repr : TSet.t ZMap.t TMap.t -> TMap.key -> (ZMap.key * TMap.key) list

Find all elements that are in the same equivalence class as t, given the cmap.