Module Algebra.Generate.Presentation

module Presentation: Algebra.Presentation(K)(X)

module M: Monoid.Free(X)
module A: Algebra.Free(K)(M)
type t = {
   leq : M.t -> M.t -> bool;
   generators : X.t list;
   rules : (M.t * A.t) list;
}
val free : (M.t -> M.t -> bool) ->
X.t list -> t
val orient : t ->
A.t ->
M.t * A.t

Orient a polynomial as a rule.

val add_rule : t ->
M.t * A.t -> t

Add a rule to a presentation.

val add_relation : t -> A.t -> t

Add a relation to a presentation.

val make : (M.t -> M.t -> bool) ->
X.t list -> A.t list -> t

Create a presentation from an alphabet and a list of monomials.

val heads : t -> M.t list

Minimal reducible words.

val to_string : t -> string
val normalize : t ->
A.t -> A.t

Normalize words.

val buchberger : t -> t

Buchberger's completion algorithm.

val reduce : t -> t

Reduce a presentation.

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

Algebra given by a convergent presentation.

module Augmentation: sig .. end

Augmentations for presented algebras.

module Anick: sig .. end

Anick resolution.