Parameter PersistentArrayNCA.Relation

type t

The type of elements of the group.

val equal : t -> t -> bool

Equality of relations

val pretty : Stdlib.Format.formatter -> t -> unit

Pretty printer for relations

val identity : t

The identity relation

val compose : t -> t -> t

Monoid composition, written using the functional convention compose f g is f \circ g. Should be associative, and compatible with identity:

  • For all x, G.compose x G.identity = G.compose G.identity x = x
  • For all x y z, G.compose x (G.compose y z) = G.compose (G.compose x y) z
val inverse : t -> t

Group inversion, should verify for all x: G.compose x (G.inverse x) = G.compose (G.inverse x) x = G.identity

val hash : t -> int

a hashing function