No public endorsements yet.
Loading review…
Sign in with ORCIDConcept map
In the paper
- page 131 of the paper of lax-157538, Transducers
Definition
The -type of a string (Definition C.4.12 of Transducers) is defined by induction on : the -type of every string is the same, and the -type of is the set of triples
over all factorisations of around one of its letters. Two strings have the same -type if and only if they satisfy the same first-order sentences of quantifier rank at most (Lemma C.4.13); -types refine, are a congruence for concatenation and are aperiodic (Lemma C.4.15), which is what makes the first-order definable languages the aperiodic ones (Theorem C.4.11).
Lean source view on GitHub
| 1 | import Mathlib.Data.Set.Basic |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: The k-type of a string |
| 6 | type: definition |
| 7 | --- |
| 8 | The *-type* of a string (Definition C.4.12 of *Transducers*) is defined by |
| 9 | induction on : the -type of every string is the same, and the |
| 10 | -type of is the set of triples |
| 11 | |
| 12 | over all factorisations of around one of its letters. Two strings have the |
| 13 | same -type if and only if they satisfy the same first-order sentences of |
| 14 | quantifier rank at most (Lemma C.4.13); -types refine, are a congruence |
| 15 | for concatenation and are aperiodic (Lemma C.4.15), which is what makes the |
| 16 | first-order definable languages the aperiodic ones (Theorem C.4.11). |
| 17 | |
| 18 | # Formalization notes |
| 19 | |
| 20 | `TpType A k` is the type of `k`-types, `Unit` for `k = 0` and sets of triples |
| 21 | for `k + 1`, and `tp k w` the `k`-type of `w`. Over a finite alphabet there are |
| 22 | finitely many `k`-types for every `k`, which is not part of the definition. |
| 23 | -/ |
| 24 | |
| 25 | namespace Lax314295.KTypes |
| 26 | |
| 27 | /-- The type of `k`-types over the alphabet `A`. -/ |
| 28 | def TpType (A : Type) : ℕ → Type |
| 29 | | 0 => Unit |
| 30 | | k + 1 => Set (TpType A k × A × TpType A k) |
| 31 | |
| 32 | /-- The `k`-type of a string: trivial for `k = 0`, and for `k + 1` the set of |
| 33 | triples `(tp k w₁, a, tp k w₂)` over the factorisations `w = w₁ a w₂`. -/ |
| 34 | def tp {A : Type} : (k : ℕ) → List A → TpType A k |
| 35 | | 0, _ => () |
| 36 | | k + 1, w => |
| 37 | {t : TpType A k × A × TpType A k | |
| 38 | ∃ (w₁ : List A) (a : A) (w₂ : List A), w = w₁ ++ a :: w₂ ∧ t = (tp k w₁, a, tp k w₂)} |
| 39 | |
| 40 | end Lax314295.KTypes |
| 41 |
Formalization notes
is the type of -types, for and sets of triples for , and the -type of . Over a finite alphabet there are finitely many -types for every , which is not part of the definition.
Builds on
none
Used by
From Mathlib
Community review
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above; your ORCID profile must share a public name.
0 comments