Palindromic fixed points of morphisms
AbbreviationThe ternary alphabet of Labbé's counterexample#✓fully proved
The alphabet is the three-letter set \(\{0, 1, 2\}\).
Labbé's counterexample is over a ternary alphabet.
abbrev Sigma := Fin 3
Used by 14
AbbreviationMorphisms of the ternary alphabet#✓fully proved
A morphism of the ternary alphabet \(\{0, 1, 2\}\) is given by its letter map: a function \(\varphi\) that sends each letter \(a\) to a finite word \(\varphi(a)\) over \(\{0, 1, 2\}\), possibly the empty word.
abbrev Morphism := Sigma → List Sigma
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
Uses 1 · Used by 8
DefinitionImage of a word under a morphism#✓fully proved
A morphism \(\varphi\) acts on a word \(w = w_1 w_2 \cdots w_k\) by \(\varphi(w) = \varphi(w_1) \varphi(w_2) \cdots \varphi(w_k)\), the concatenation of the images of its letters; the empty word is sent to the empty word.
def extend (φ : Morphism) (w : List Sigma) : List Sigma :=
List.flatten (w.map φ)
abbrev Morphism := Sigma → List Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:32
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
Uses 2 · Used by 1
DefinitionIterated images of words under a morphism#✓fully proved
Let \(\varphi\) be a morphism of the ternary alphabet \(\{0, 1, 2\}\), acting on finite words letter by letter. Its iterates \(\varphi^n\) on finite words are defined by \(\varphi^0(w) = w\) and \(\varphi^{n+1}(w) = \varphi(\varphi^n(w))\) for every natural number \(n\) and every finite word \(w\) over \(\{0, 1, 2\}\).
def extendIter (φ : Morphism) : Nat → List Sigma → List Sigma
| 0 => id
| n + 1 => (extend φ) ∘ (extendIter φ n)
abbrev Morphism := Sigma → List Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:32
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
def extend (φ : Morphism) (w : List Sigma) : List Sigma :=
List.flatten (w.map φ)
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:35
Uses 3 · Used by 2
DefinitionPrimitive morphisms#✓fully proved
Let \(\varphi\) be a morphism of the ternary alphabet \(\{0, 1, 2\}\), sending each letter to a finite word, and let \(\varphi^n\) be the \(n\)-th iterate of its letter by letter extension to finite words, with \(\varphi^0\) the identity. Then \(\varphi\) is primitive when there is a natural number \(n\) such that for all letters \(a\) and \(b\), the letter \(b\) occurs in the word \(\varphi^n(a)\).
def IsPrimitive (φ : Morphism) : Prop :=
∃ n : Nat, ∀ a b : Sigma, b ∈ extendIter φ n [a]
abbrev Morphism := Sigma → List Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:32
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
def extendIter (φ : Morphism) : Nat → List Sigma → List Sigma
| 0 => id
| n + 1 => (extend φ) ∘ (extendIter φ n)
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:39
Uses 3 · Used by 1
DefinitionPalindromes#✓fully proved
A finite word \(w\) over the alphabet \(\{0, 1, 2\}\) is a palindrome when it equals its reversal, that is, reads the same backwards; in particular the empty word is a palindrome.
def IsPalindrome (w : List Sigma) : Prop := w = w.reverse
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
Uses 1 · Used by 2
DefinitionClass P#✓fully proved
A morphism \(\varphi\) is in class P (Hof–Knill–Simon) when there is a palindrome \(p\) such that for every letter \(a\), \(\varphi(a) = p q_a\) for some palindrome \(q_a\). The palindromes \(p\) and \(q_a\) may be empty.
def InClassP (φ : Morphism) : Prop :=
∃ p : List Sigma, IsPalindrome p ∧
∀ a : Sigma, ∃ q : List Sigma, IsPalindrome q ∧ φ a = p ++ q
abbrev Morphism := Sigma → List Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:32
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
def IsPalindrome (w : List Sigma) : Prop := w = w.reverse
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:48
Sources
- Labbé 2014, Section 2.
Uses 3 · Used by 1
AbbreviationInfinite words#✓fully proved
An infinite word over the alphabet \(\{0, 1, 2\}\) is a sequence \(u = u_0 u_1 u_2 \cdots\) of letters indexed by the natural numbers, that is, a map \(\mathbb{N} \to \{0, 1, 2\}\).
abbrev InfWord := Nat → Sigma
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
Uses 1 · Used by 6
DefinitionOccurrence of a word at a position#✓fully proved
A finite word \(w = w_0 w_1 \cdots w_{n-1}\) over the ternary alphabet \(\{0, 1, 2\}\) occurs in an infinite word \(u = u_0 u_1 u_2 \cdots\) over the same alphabet at position \(k\) when \(w_i = u_{k+i}\) for every \(i < n\).
def OccursAt (w : List Sigma) (u : InfWord) (k : Nat) : Prop :=
∀ i : Fin w.length, w[i] = u (k + i.val)
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
abbrev InfWord := Nat → Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:57
Uses 2 · Used by 2
DefinitionFactors of an infinite word#✓fully proved
A finite word \(w\) is a factor of an infinite word \(u\) when it occurs in \(u\) at some position: there is \(k \in \mathbb{N}\) with \(w_i = u_{k+i}\) for every \(i < |w|\) (letters of \(w\) indexed from \(0\)). In particular the empty word is a factor of every infinite word.
def IsFactor (w : List Sigma) (u : InfWord) : Prop :=
∃ k : Nat, OccursAt w u k
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
abbrev InfWord := Nat → Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:57
def OccursAt (w : List Sigma) (u : InfWord) (k : Nat) : Prop :=
∀ i : Fin w.length, w[i] = u (k + i.val)
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:60
Uses 3 · Used by 2
DefinitionFixed point of a morphism#✓fully proved
An infinite word \(u\) is a fixed point of a morphism \(\varphi\) when it is the limit of the iterates of a prolongable letter: there is a letter \(a\) such that \(\varphi(a)\) begins with \(a\), the words \(\varphi^m(a)\) (\(m \ge 0\)) are arbitrarily long, and every \(\varphi^m(a)\) is a prefix of \(u\).
def IsFixedPoint (φ : Morphism) (u : InfWord) : Prop :=
∃ a : Sigma, (φ a).head? = some a ∧
(∀ L : Nat, ∃ m : Nat,
L ≤ (extendIter φ m [a]).length) ∧
∀ m : Nat, ∀ i : Fin (extendIter φ m [a]).length,
(extendIter φ m [a])[i] = u i.val
abbrev Morphism := Sigma → List Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:32
abbrev InfWord := Nat → Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:57
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
def extendIter (φ : Morphism) : Nat → List Sigma → List Sigma
| 0 => id
| n + 1 => (extend φ) ∘ (extendIter φ n)
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:39
Uses 4 · Used by 1
DefinitionPalindromic infinite words#✓fully proved
An infinite word \(u = u_0 u_1 u_2 \cdots\) over the ternary alphabet \(\{0, 1, 2\}\) is palindromic when it has arbitrarily long palindromic factors: for every natural number \(N\) there is a finite word \(w = w_0 \cdots w_{n-1}\) with \(n \ge N\) that reads the same backwards and occurs in \(u\): for some position \(k\), \(w_i = u_{k+i}\) for all \(i < n\).
Over the finite ternary alphabet this is equivalent to having infinitely many palindromic factors.
def IsPalindromic (u : InfWord) : Prop :=
∀ N : Nat, ∃ w : List Sigma, N ≤ w.length ∧ IsPalindrome w ∧ IsFactor w u
abbrev InfWord := Nat → Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:57
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
def IsPalindrome (w : List Sigma) : Prop := w = w.reverse
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:48
def IsFactor (w : List Sigma) (u : InfWord) : Prop :=
∃ k : Nat, OccursAt w u k
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:64
Sources
- Labbé 2014.
Uses 4 · Used by 1
DefinitionUniformly recurrent infinite words#✓fully proved
Let \(u = u_0 u_1 u_2 \cdots\) be an infinite word over the ternary alphabet \(\{0, 1, 2\}\), and say that a finite word \(w = w_0 \cdots w_{n-1}\) occurs in \(u\) at position \(m\) when \(w_i = u_{m+i}\) for every \(i < n\). Then \(u\) is uniformly recurrent when for every finite word \(w\) that occurs in \(u\) at some position, there is a natural number \(B\) such that for every position \(k\), the word \(w\) occurs in \(u\) at position \(k + j\) for some \(j \le B\).
def IsUniformlyRecurrent (u : InfWord) : Prop :=
∀ w : List Sigma, IsFactor w u →
∃ B : Nat, ∀ k : Nat, ∃ j : Nat, j ≤ B ∧ OccursAt w u (k + j)
abbrev InfWord := Nat → Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:57
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
def IsFactor (w : List Sigma) (u : InfWord) : Prop :=
∃ k : Nat, OccursAt w u k
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:64
def OccursAt (w : List Sigma) (u : InfWord) (k : Nat) : Prop :=
∀ i : Fin w.length, w[i] = u (k + i.val)
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:60
Uses 4 · Used by 1
DefinitionConjugate morphisms#✓fully proved
Let \(\psi\) and \(\theta\) be morphisms of the ternary alphabet \(\{0, 1, 2\}\), each sending every letter to a finite word, and write \(xy\) for the concatenation of words \(x\) and \(y\). Then \(\psi\) and \(\theta\) are conjugate when there is a finite word \(w\) such that \(\psi(a) w = w \theta(a)\) for every letter \(a\), or there is a finite word \(w\) such that \(\theta(a) w = w \psi(a)\) for every letter \(a\).
def MorphConjugate (ψ θ : Morphism) : Prop :=
(∃ w : List Sigma, ∀ a : Sigma, ψ a ++ w = w ++ θ a) ∨
(∃ w : List Sigma, ∀ a : Sigma, θ a ++ w = w ++ ψ a)
abbrev Morphism := Sigma → List Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:32
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
Sources
- Labbé 2014, Section 2; Lothaire.
Uses 2 · Used by 1
DefinitionIdentity morphism#✓fully proved
A morphism \(\psi\) is the identity morphism when \(\psi(a)\) is the one-letter word \(a\) for every letter \(a\).
def IsIdentityMorphism (ψ : Morphism) : Prop :=
∀ a : Sigma, ψ a = [a]
abbrev Morphism := Sigma → List Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:32
abbrev Sigma := Fin 3
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:29
Uses 2 · Used by 1
DefinitionPalindromic uniformly recurrent fixed point outside class P#✓fully proved
The proposition that there exist a primitive morphism \(\varphi\) on the alphabet \(\{0, 1, 2\}\) and an infinite word \(u\) such that \(u\) is a fixed point of \(\varphi\), \(u\) is palindromic and uniformly recurrent, and no morphism \(\psi\) that has \(u\) as a fixed point and is not the identity is conjugate to a morphism in class P.
Here a fixed point of a morphism \(\psi\) is an infinite word \(u\) for which there is a letter \(a\) such that \(\psi(a)\) begins with \(a\), the words \(\psi^m(a)\) are arbitrarily long, and every \(\psi^m(a)\) is a prefix of \(u\).
def conjecture : Prop :=
∃ φ : Morphism, IsPrimitive φ ∧
∃ u : InfWord, IsFixedPoint φ u ∧ IsPalindromic u ∧
IsUniformlyRecurrent u ∧
¬ ∃ ψ : Morphism, IsFixedPoint ψ u ∧ ¬ IsIdentityMorphism ψ ∧
∃ θ : Morphism, MorphConjugate ψ θ ∧ InClassP θ
abbrev Morphism := Sigma → List Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:32
def IsPrimitive (φ : Morphism) : Prop :=
∃ n : Nat, ∀ a b : Sigma, b ∈ extendIter φ n [a]
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:44
abbrev InfWord := Nat → Sigma
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:57
def IsFixedPoint (φ : Morphism) (u : InfWord) : Prop :=
∃ a : Sigma, (φ a).head? = some a ∧
(∀ L : Nat, ∃ m : Nat,
L ≤ (extendIter φ m [a]).length) ∧
∀ m : Nat, ∀ i : Fin (extendIter φ m [a]).length,
(extendIter φ m [a])[i] = u i.val
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:68
def IsPalindromic (u : InfWord) : Prop :=
∀ N : Nat, ∃ w : List Sigma, N ≤ w.length ∧ IsPalindrome w ∧ IsFactor w u
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:78
def IsUniformlyRecurrent (u : InfWord) : Prop :=
∀ w : List Sigma, IsFactor w u →
∃ B : Nat, ∀ k : Nat, ∃ j : Nat, j ≤ B ∧ OccursAt w u (k + j)
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:82
def IsIdentityMorphism (ψ : Morphism) : Prop :=
∀ a : Sigma, ψ a = [a]
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:94
def MorphConjugate (ψ θ : Morphism) : Prop :=
(∃ w : List Sigma, ∀ a : Sigma, ψ a ++ w = w ++ θ a) ∨
(∃ w : List Sigma, ∀ a : Sigma, θ a ++ w = w ++ ψ a)
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:89
def InClassP (φ : Morphism) : Prop :=
∃ p : List Sigma, IsPalindrome p ∧
∀ a : Sigma, ∃ q : List Sigma, IsPalindrome q ∧ φ a = p ++ q
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:52
Sources
- [OWR-4425-004] Labbé, A counterexample to a question of Hof, Knill and Simon, EJC 21 (2014) #P3.11, Theorem 1.
Uses 9 · Used by 1
TheoremLabbé's palindromic fixed point outside class P#●ready to prove
The conjecture holds: there exist a primitive morphism \(\varphi\) on the alphabet \(\{0, 1, 2\}\) (some power \(\varphi^n\) maps every letter to a word containing every letter) and an infinite word \(u\) such that \(u\) is a fixed point of \(\varphi\), \(u\) is palindromic (it has arbitrarily long palindromic factors) and uniformly recurrent (for every factor \(w\) of \(u\) there is \(B\) such that, for every \(k\), \(w\) occurs in \(u\) starting at some position in \([k, k + B]\)), and no morphism \(\psi\) that has \(u\) as a fixed point and is not the identity is conjugate to a morphism \(\theta\) in class P. Here \(u\) is a fixed point of \(\psi\) when, for some letter \(a\), the word \(\psi(a)\) begins with \(a\), the words \(\psi^m(a)\) are arbitrarily long, and every \(\psi^m(a)\) is a prefix of \(u\); \(\psi\) and \(\theta\) are conjugate when there is a word \(w\) with \(\psi(a)w = w\theta(a)\) for every letter \(a\), or with \(\theta(a)w = w\psi(a)\) for every letter \(a\); and \(\theta\) is in class P when there is a palindrome \(p\) such that each \(\theta(a)\) is \(p\) followed by a palindrome.
Over a binary alphabet the question of Hof, Knill and Simon has a positive answer (Tan 2007).
public theorem_wanted conjecture_holds : conjecture
def conjecture : Prop :=
∃ φ : Morphism, IsPrimitive φ ∧
∃ u : InfWord, IsFixedPoint φ u ∧ IsPalindromic u ∧
IsUniformlyRecurrent u ∧
¬ ∃ ψ : Morphism, IsFixedPoint ψ u ∧ ¬ IsIdentityMorphism ψ ∧
∃ θ : Morphism, MorphConjugate ψ θ ∧ InClassP θ
WantedExt/Combinatorics/PalindromicRecurrentOutsidePWanted.lean:103
Sources
- Sébastien Labbé, A counterexample to a question of Hof, Knill and Simon, Electron. J. Combin. 21 (2014) #P3.11, https://doi.org/10.37236/3758.
Uses 1
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.