Idempotent powers in finite monoids and semigroups #
In a finite monoid the powers x, x², x³, … must repeat, so some
positive power x^N is idempotent; any two idempotent positive
powers of x coincide, so the omega power Monoid.omegaPow x —
the unique idempotent in the cyclic subsemigroup ⟨x⟩ — is well
defined. The semigroup case follows by adjoining an identity
(WithOne).
omegaPow is the substrate for the algebraic characterization of
subregular language classes ([Pin]; [Eil76];
[Lam26] §6.2): definite languages are exactly those whose
syntactic monoid satisfies s · x^ω = x^ω, reverse-definite ones
x^ω · s = x^ω, and so on (Core/Computability/Variety/).
Main results #
Monoid.exists_pos_pow_isIdempotent— existence, by pigeonhole.IsIdempotentElem.pow_eq_pow— uniqueness: idempotent positive powers of the same element coincide (no finiteness needed).Monoid.omegaPow— the omega powerx^ω, canonical byMonoid.omegaPow_unique;IsIdempotentElem.omegaPow_eq,Monoid.omegaPow_pow.Semigroup.exists_isIdempotentElem,Semigroup.exists_isIdempotentElem_map_eq— the semigroup transfers consumed bySemigroup/Pseudovariety.lean.
omegaPow is defined by Classical.choose, hence noncomputable;
omegaPow_unique makes it independent of the choice.
[UPSTREAM] candidate (Mathlib.Algebra.Group.Idempotent sibling).
Periodicity of powers #
Idempotent positive powers of the same element coincide — no
finiteness needed: x^a = (x^a)^b = (x^b)^a = x^b. This is what makes
the omega power canonical.
Existence of an idempotent power #
Pigeonhole on monoid powers: in a finite monoid, the sequence
of powers x^1, x^2, x^3, … must repeat — there exist indices
i < j with x^i = x^j.
Existence of an idempotent power: in a finite monoid M,
every element x : M has a positive power x^N that is idempotent.
Pigeonhole gives x^i = x^j with i < j; N = j·(j - i) is a
positive multiple of the period at least i, so x^N = x^(2N) by
pow_period.
The omega power #
The omega power x^ω of an element x in a finite monoid:
the idempotent positive power of x (unique by omegaPow_unique),
realized via Classical.choose against exists_pos_pow_isIdempotent.
Equations
- Monoid.omegaPow x = x ^ ⋯.choose
Instances For
The exponent witnessing omegaPow x (a positive natural number
such that x raised to it is idempotent).
Equations
- Monoid.omegaPowExponent x = ⋯.choose
Instances For
The omega power of x is idempotent.
Any idempotent positive power of x equals omegaPow x: the
omega power is canonical, independent of the chosen exponent.
An idempotent element is its own omega power.
The omega power of x is stable under any positive power: raising
omegaPow x to any n ≥ 1 gives omegaPow x back. Direct
consequence of idempotence (IsIdempotentElem.pow_eq from mathlib).
Semigroups: transfer through WithOne #
WithOne S is a finite monoid when S is a finite semigroup, positive
powers of a coerced element are themselves coerced, and WithOne.coe_inj
transfers idempotency back. The payoff is the structural fact behind the
equational description of semigroup pseudovarieties: a preimage of an
idempotent need not be idempotent, but an idempotent power of a
preimage is one and has the same image.
WithOne S is Option S, so it inherits finiteness.
Idempotency is detected by the coercion into WithOne.
A positive power of a coerced element of WithOne S is itself coerced.
A finite nonempty semigroup contains an idempotent.
A surjective homomorphism lifts an idempotent to an idempotent: replace a preimage by an idempotent power of it, which the homomorphism still sends to the (idempotent) target.