Pseudovarieties of finite monoids and semigroups #
This file defines pseudovarieties of finite monoids and of finite semigroups. A pseudovariety is a class of finite monoids, or of finite semigroups, closed under submonoids or subsemigroups, quotients and finite direct products, the empty product being the trivial one. Pseudovarieties are the algebraic side of Eilenberg's variety theorem, which matches the monoid ones with the varieties of regular languages and the semigroup ones with the varieties of languages of nonempty words.
Main definitions #
Monoid.Pseudovariety,Semigroup.Pseudovariety: classes of finite monoids, respectively semigroups, closed under substructures, quotients and products.Monoid.Pseudovariety.generated: the least pseudovariety containing a class of finite monoids.Monoid.aperiodicVariety: the pseudovariety of finite aperiodic monoids.Semigroup.definiteVariety,Semigroup.reverseDefiniteVariety,Semigroup.locallyTrivialVariety: the pseudovarieties D, K and LI.
Main results #
Monoid.Pseudovariety.pi_mem: closure under finite dependent products.Monoid.Pseudovariety.mem_quotient_of_le,mem_quotient_ker,mem_quotient_infand their semigroup counterparts: closure properties of quotients by congruences.- The pseudovarieties of finite monoids form a complete lattice, with infimum the intersection.
Implementation notes #
mem is a total predicate on Type u monoids or semigroups that implies finiteness
(finite_of_mem), so the order on pseudovarieties is inclusion of classes of finite structures and
is antisymmetric. The structures live in a fixed universe u, like mathlib's MorphismProperty;
concrete pseudovarieties are universe-polymorphic definitions. The semigroup pseudovarieties
D, K and LI have no monoid counterpart, since their conditions at the idempotent 1
force triviality; the pseudovariety N of nilpotent semigroups is the intersection of D and
K and is not bundled.
References #
A pseudovariety of finite monoids is a class of finite monoids closed under submonoids, quotients and finite products, with closure phrased through injective and surjective homomorphisms.
The monoids belonging to the pseudovariety.
Every member is finite.
- sub {M N : Type u} [Monoid M] [Monoid N] {f : M →* N} : Function.Injective ⇑f → self.mem N → self.mem M
The domain of an injective homomorphism into a member is a member.
- quot {M N : Type u} [Monoid M] [Monoid N] {f : M →* N} : Function.Surjective ⇑f → self.mem M → self.mem N
The codomain of a surjective homomorphism from a member is a member.
The product of two members is a member.
- memUnit : self.mem PUnit.{u + 1}
The trivial monoid is a member.
Instances For
Equations
- One or more equations did not get rendered due to their size.
A subquotient of a member is a member.
Quotients by congruences #
Membership of a quotient descends along a coarsening of congruences.
The quotient by the kernel of a homomorphism into a member is a member.
The quotient by the meet of two congruences is a member when both quotients are.
Finite products #
A pseudovariety is closed under finite dependent products.
The lattice of pseudovarieties #
Equations
- One or more equations did not get rendered due to their size.
Equations
The pseudovariety generated by a class of monoids is the least pseudovariety containing its finite members.
Equations
- Monoid.Pseudovariety.generated S = sInf {V : Monoid.Pseudovariety | ∀ (N : Type ?u.1) [inst : Monoid N] [Finite N], S N → V.mem N}
Instances For
The pseudovariety of finite aperiodic monoids, the algebraic counterpart of the star-free languages.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A pseudovariety of finite semigroups is a class of finite semigroups closed under
subsemigroups, quotients and finite products, with closure phrased through injective and surjective
MulHoms.
The semigroups belonging to the pseudovariety.
Every member is finite.
- sub {S T : Type u} [Semigroup S] [Semigroup T] {f : S →ₙ* T} : Function.Injective ⇑f → self.mem T → self.mem S
The domain of an injective homomorphism into a member is a member.
- quot {S T : Type u} [Semigroup S] [Semigroup T] {f : S →ₙ* T} : Function.Surjective ⇑f → self.mem S → self.mem T
The codomain of a surjective homomorphism from a member is a member.
The product of two members is a member.
- memUnit : self.mem PUnit.{u + 1}
The trivial semigroup is a member.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Membership of a quotient descends along a coarsening of congruences.
The quotient by the kernel of a homomorphism into a member is a member.
The quotient by the meet of two congruences is a member when both quotients are.
The bundled pseudovarieties #
The pseudovariety D of definite semigroups.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pseudovariety K of reverse definite semigroups.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pseudovariety LI of locally trivial semigroups.
Equations
- One or more equations did not get rendered due to their size.