Christol's theorem
TheoremChristol's theorem#✓fully proved
Let \(p\) be a prime, \(r \ge 1\) a natural number, and \(K\) a finite field of characteristic \(p\) with \(q = p^r\) elements. A formal power series \(f = \sum_n f_n X^n \in K[[X]]\) is algebraic over the polynomial ring \(K[X]\) (it is a root of a nonzero polynomial with coefficients in \(K[X]\)) if and only if its coefficient sequence \(n \mapsto f_n\) is \(p\)-automatic, that is, its \(p\)-kernel is finite.
Algebraicity over \(K[X]\) is the denominator-cleared form of algebraicity over the rational function field \(K(X)\); it is not integrality over \(K[X]\). Automaticity is taken in base \(p\), not in base \(q\).
public theorem christol_theorem (K : Type*) [Field K] [Finite K] (p q r : ℕ)
[CharP K p] (hp : Nat.Prime p) (hcard : Nat.card K = q) (hq : q = p ^ r)
(hr : 0 < r) (f : PowerSeries K) :
IsAlgebraic (Polynomial K) f ↔ IsKAutomatic p (fun n => PowerSeries.coeff n f)
public def IsKAutomatic (k : ℕ) {Δ : Type*} (a : ℕ → Δ) : Prop :=
2 ≤ k ∧ Finite ↥(kKernel k a)
MathlibExt/Combinatorics/Words/Automatic.lean:52
Sources
- Adamczewski--Bell, arXiv:1205.4091v1, lines 260--265: for
qa positive integral power of the characteristic primep, a series overF_qis algebraic overF_q(t)iff its coefficient sequence isp-automatic.
Uses 6 · Used by 1
TheoremChristol's theorem, automaton form#✓fully proved
Let \(p\) be a prime, \(r \ge 1\) a natural number, and \(K\) a finite field of characteristic \(p\) with \(q = p^r\) elements. A formal power series \(f = \sum_n f_n X^n \in K[[X]]\) is algebraic over the polynomial ring \(K[X]\) (it is a root of a nonzero polynomial with coefficients in \(K[X]\)) if and only if its coefficient sequence \(n \mapsto f_n\) is \(p\)-automatic in the sense of finite automata with output.
public theorem christol_theorem_isKAutomaticSequence (K : Type) [Field K] [Fintype K]
(p q r : ℕ) [CharP K p] (hp : Nat.Prime p) (hcard : Nat.card K = q)
(hq : q = p ^ r) (hr : 0 < r) (f : PowerSeries K) :
IsAlgebraic (Polynomial K) f
↔ IsKAutomaticSequence p (fun n => PowerSeries.coeff n f)
def IsKAutomaticSequence {B : Type} [Fintype B] (k : Nat) (w : Nat → B) : Prop :=
2 ≤ k ∧
∃ q : Nat, 0 < q ∧
∃ start : Fin q,
∃ trans : Fin q → Fin k → Fin q,
∃ out : Fin q → B,
∀ n : Nat, ∀ ds : List (Fin k),
baseWordValueLSD ds = n → out (ds.foldl trans start) = w n
MathlibExt/Combinatorics/Words/CobhamUniformMorphism.lean:57
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.