The subregular hierarchy is star-free (aperiodicity) #
Over a finite alphabet, each of the local classes SL_k, TSL_k, SP_k is star-free:
Language.IsStrictlyLocal.isStarFree—SL_k ⊆ SF;Language.IsTierStrictlyLocal.isStarFree—TSL_k ⊆ SF;Language.IsStrictlyPiecewise.isStarFree—SP_k ⊆ SF.
These are the "subregular hierarchy ⊆ star-free" results: each class is recognised by a
finite scanner whose transition monoid (DFA.transitionMonoid) is aperiodic, hence star-free
by Schützenberger's theorem ([Sch65] [McNP71]). They are gathered
here — rather than in per-class …StarFree.lean files (which read like construction objects, à
la mathlib's TMToPartrec), and rather than folded into the foundational StrictlyLocal /
StrictlyPiecewise / TierStrictlyLocal definition files (which would drag the heavy
StarFree / TransitionMonoid imports onto every consumer of those light files). One
topic-noun file isolates the heavy imports.
Constructions #
- SL. The recognizer is the local scanner remembering the last
k - 1augmented symbols (a reversed window) plus an absorbing dead statenone. The scanner is definite (its alive state depends only on the lastk - 1symbols), so its transition monoid is aperiodic (x ^ k = x ^ (k-1)). Boundary markersnoneᵏ⁻¹fold into the start window and acceptance set. ([McNP71] [HRT11]) - TSL. A TSL language is the preimage
tierProject T ⁻¹' (permitted.language k)under tier erasure, which isList.filterand hence a monoid homSubregular.tierProjectHom. The permitted-factor language isSL_k, star-free byIsStrictlyLocal.isStarFree, and star-freeness is closed under inverse homomorphism (Language.IsStarFree.comap), soTSL_k ⊆ SF. ([HRT11]) - SP. The recognizer is the subsequence scanner remembering the profile of
length-
≤ k-1subsequences seen so far, plus an absorbing dead state. Subsequences are blind to position, so no boundary augmentation is needed; any length-≤ ksubsequence selects≤ ksymbols, so its transition monoid is aperiodic. ([HR10] [McNP71])
[Finite α] is essential throughout: these classes over an infinite alphabet need not even be
regular.
Implementation notes #
The SL and SP scanners share scaffolding names (scanDFA, scanHom, evalFrom_none,
isStarFree_of_language_succ, …). Since private is module-scoped, each class's scaffolding is
walled off in its own namespace — Subregular.SL and Subregular.SP — so the colliding names
become distinct full names. The TSL helper tierProjectHom (which other modules may consume)
stays public in Subregular.
Reversed scanner window: up to n augmented symbols, head = most recent.
Equations
- Subregular.SL.Win α n = { w : List (Option α) // w.length ≤ n }
Instances For
Aperiodicity of the transition monoid #
The scanner is a definite automaton: its alive state depends only on the last n
symbols read (plus the monotone dead flag). Hence reading vt n+1 or n+2 times lands
in the same state — the transition monoid satisfies x ^ (n+2) = x ^ (n+1).
Recognition and the main theorem #
A bounded subsequence: a list of length ≤ n, the unit a scanner profile is built from.
Equations
- Subregular.SP.Sub α n = { s : List α // s.length ≤ n }
Instances For
A subsequence profile: the set of bounded subsequences seen so far.
Equations
- Subregular.SP.Profile α n = Set (Subregular.SP.Sub α n)
Instances For
Aperiodicity of the transition monoid #
Any subsequence of length ≤ n selects ≤ n symbols, so reading v more than n times
beyond an already-v-saturated profile adds nothing new and never completes a fresh forbidden
subsequence: the transition monoid satisfies x ^ (n+1) = x ^ n.
Recognition and the main theorem #
Tier erasure as a monoid hom FreeMonoid α →* FreeMonoid α: the byClass T
specialization of the keystone bundled hom TierProjection.applyHom. The monoid-hom laws
are inherited from applyHom rather than re-proved, since tierProject T is by definition
TierProjection.apply (TierProjection.byClass T).
Equations
Instances For
Strictly local languages are star-free ([McNP71]). Over a finite
alphabet, the local scanner remembering the last k - 1 symbols is a finite aperiodic
recognizer, so SL_k ⊆ SF. ([Finite α] is essential: SL over an infinite alphabet need
not even be regular.)
Tier-based strictly local languages are star-free ([HRT11]). Over a
finite alphabet, a TSL language is the inverse image of an SL_k language under the
tier-erasure homomorphism, and star-freeness is closed under inverse homomorphism
(IsStarFree.comap), so TSL_k ⊆ SF.
Strictly piecewise languages are star-free ([HR10]
[McNP71]). Over a finite alphabet, the subsequence scanner remembering the
length-≤ k-1 subsequences seen so far is a finite aperiodic recognizer, so SP_k ⊆ SF.
([Finite α] is essential: SP over an infinite alphabet need not even be regular.)