Defining a monoid given by generators and relations #
Given relations rels
on the free monoid on a type α
, this file constructs the monoid
given by generators x : α
and relations rels
.
Main definitions #
PresentedMonoid rels
: the quotient of the free monoid on a typeα
by the closure of one-step reductions (arising from a binary relation on free monoid elementsrels
).PresentedMonoid.of
: The canonical map fromα
to a presented monoid with generatorsα
.PresentedMonoid.lift f
: the canonical monoid homomorphismPresentedMonoid rels → M
, given a functionf : α → G
from a typeα
to a monoidM
which satisfies the relationsrels
.
Tags #
generators, relations, monoid presentations
Given a set of relations, rels
, over a type α
, PresentedMonoid
constructs the monoid with
generators x : α
and relations rels
as a quotient of a congruence structure over rels.
Equations
- PresentedMonoid rel = (conGen rel).Quotient
Instances For
Given a set of relations, rels
, over a type α
, PresentedAddMonoid
constructs
the monoid with generators x : α
and relations rels
as a quotient of an AddCon structure over
rels
Equations
- PresentedAddMonoid rel = (addConGen rel).Quotient
Instances For
The quotient map from the free monoid on α
to the presented monoid with the same generators
and the given relations rels
.
Equations
- PresentedMonoid.mk rels = { toFun := Quotient.mk (conGen rels).toSetoid, map_one' := ⋯, map_mul' := ⋯ }
Instances For
The quotient map from the free additive monoid on α
to the presented additive
monoid with the same generators and the given relations rels
Equations
- PresentedAddMonoid.mk rels = { toFun := Quotient.mk (addConGen rels).toSetoid, map_zero' := ⋯, map_add' := ⋯ }
Instances For
of
is the canonical map from α
to a presented monoid with generators x : α
. The term x
is mapped to the equivalence class of the image of x
in FreeMonoid α
.
Equations
- PresentedMonoid.of rels x = (PresentedMonoid.mk rels) (FreeMonoid.of x)
Instances For
of
is the canonical map from α
to a presented additive monoid with generators
x : α
. The term x
is mapped to the equivalence class of the image of x
in FreeAddMonoid α
Equations
- PresentedAddMonoid.of rels x = (PresentedAddMonoid.mk rels) (FreeAddMonoid.of x)
Instances For
The generators of a presented monoid generate the presented monoid. That is, the submonoid
closure of the set of generators equals ⊤
.
The generators of a presented additive monoid generate the presented
additive monoid. That is, the additive submonoid closure of the set of generators equals ⊤
The extension of a map f : α → M
that satisfies the given relations to a monoid homomorphism
from PresentedMonoid rels → M
.
Equations
- PresentedMonoid.lift f h = (conGen rels).lift (FreeMonoid.lift f) ⋯
Instances For
The extension of a map f : α → M
that satisfies the given relations to an
additive-monoid homomorphism from PresentedAddMonoid rels → M
Equations
- PresentedAddMonoid.lift f h = (addConGen rels).lift (FreeAddMonoid.lift f) ⋯