Functor Monoid.Presentation

module Presentation: 
functor (X : Alphabet.T) -> sig .. end

Oriented presentation of a monoid.

Parameters:
X : Alphabet.T

module W: Monoid.Free(X)
type t = {
   generators : X.t list;
   rules : (W.t * W.t) list;
}
val make : X.t list ->
(W.t * W.t) list ->
t
val orient : (W.t -> W.t -> bool) ->
t -> t

Orient rules according to a partial order.

val normalize : t -> W.t -> W.t

Normalize a word.

val add_rule : t ->
W.t * W.t -> t
val reduce : t -> t

Reduce a presentation.

val complete : (W.t -> W.t -> bool) ->
t -> t

Knuth-Bendix completion wrt a total order.

module Make: 
functor (P : sig
val presentation : t
end) -> sig .. end

Make a monoid from a convergent presentation.