Bigraph.IsoImplementation of finite isomorphisms over non negative integers.
val pp :
Ppx_deriving_runtime.Format.formatter ->
t ->
Ppx_deriving_runtime.unitval show : t -> Ppx_deriving_runtime.stringval to_yojson : t -> Yojson.Safe.tval of_yojson : Yojson.Safe.t -> t Ppx_deriving_yojson_runtime.error_orThese follow the standard Map module conventions.
val cardinal : t -> intval empty : tval fold : (int -> int -> 'b -> 'b) -> t -> 'b -> 'bval mem : int -> t -> boolval for_all : (int -> int -> bool) -> t -> booladd i j iso adds a new pair (i, j) to isomorphism iso. If i or j are already bound in iso, iso is returned unmodified. Both i and j must be non negative.
val of_list : (int * int) list -> tof_list l returns an isomorphism with the elements in list l. In case of conflicting pairs, the left-most is added to the isomorphism.
val apply : t -> int -> int optionapply iso i returns the value associated to i by isomorphism iso.
transform ~iso_dom ~iso_codom i returns the isomorphism obtained by applying iso_dom and iso_codom to the domain and co-domain of i, respectively. An entry of i whose domain key is not in iso_dom or whose value is not in iso_codom is dropped.
apply_auto iso auto returns the isomorphism obtained by applying automorphism auto to the domain of iso, keeping codomain values. An entry whose domain key is not mapped by auto is dropped.
gen_isos iso autos generates the symmetric isomorphisms of iso by using autos, a list of automorphisms over the domain of iso. Entries in iso not mapped by an automorphism are ignored.
val is_id : t -> boolReturns true if an isomorphism is an identity, false otherwise.