Definite and locally trivial semigroups #
A semigroup is definite when each of its idempotents is a right zero, reverse definite when
each is a left zero, and locally trivial when every idempotent e satisfies e * s * e = e for
every s. In a finite semigroup each condition is equivalent to an equation on all sufficiently
long products, which is the form in which these semigroups recognize the definite, reverse definite
and generalized definite languages.
Main definitions #
Semigroup.IsDefinite,Semigroup.IsReverseDefinite,Semigroup.IsLocallyTrivial: the three conditions.
Main results #
Semigroup.IsDefinite.of_injective,.of_surjective,.prodand their mirrors: closure under subsemigroups, quotients and products.Semigroup.IsDefinite.isRightZero_map,Semigroup.IsReverseDefinite.isLeftZero_map,Semigroup.IsLocallyTrivial.map_mul_map_eq: in a finite semigroup satisfying the condition, every product of at least|S|elements is a right zero, a left zero, respectively absorbs anything placed between two copies of it.Semigroup.IsDefinite.of_isRightZero_mapand its two mirrors: the converse, for any bound.
Implementation notes #
Pin calls definite semigroups righty trivial and reverse definite ones lefty trivial. The long-product characterizations are Propositions XI.4.15–XI.4.17 of Pin's lecture notes.
References #
A semigroup is definite when every idempotent is a right zero.
Equations
- Semigroup.IsDefinite S = ∀ (e : S), IsIdempotentElem e → IsRightZero e
Instances For
A semigroup is reverse definite when every idempotent is a left zero.
Equations
- Semigroup.IsReverseDefinite S = ∀ (e : S), IsIdempotentElem e → IsLeftZero e
Instances For
A semigroup is locally trivial when every idempotent e absorbs anything placed between two
copies of it, e * s * e = e.
Equations
- Semigroup.IsLocallyTrivial S = ∀ (e : S), IsIdempotentElem e → ∀ (s : S), e * s * e = e
Instances For
Closure properties #
Long products #
Each condition is equivalent to an equation on all sufficiently long products: S is definite
exactly when long products are right zeros, reverse definite when they are left zeros, and locally
trivial when they absorb any element placed between two copies. A product is the image of a word
under a homomorphism f out of a free semigroup. One direction holds with the bound |S|, by
FreeSemigroup.exists_isIdempotentElem_map_eq_mul_mul; the other holds for any bound once f is
surjective, because an idempotent is the image of arbitrarily long words.
A semigroup is definite when, for some bound, every product of at least that many elements is a right zero.
In a finite definite semigroup, a product of at least |S| elements is a right zero.
In a finite reverse definite semigroup, a product of at least |S| elements is a left
zero.
In a finite locally trivial semigroup, a product of at least |S| elements absorbs anything
placed between two copies of it.