Definitions/Def_LanglandsTunnell_TowerCounting.lean
Frobenius-labelled prime counts over a cyclic subgroup
Throughout, L is a number field that is Galois over \mathbb{Q}. Three counting objects are defined. First, oddJ is the finite set \{1,3,5,7\}\subseteq\mathbb{N} of odd residues modulo 8. Second, labelledCount takes \sigma\in\operatorname{Gal}(L/\mathbb{Q}), a finite set S_0 of naturals, a label m\in\mathbb{Z}/8 and a natural number \ell, and returns a natural number: it is 0 when \ell\in S_0 and when \ell is not prime; otherwise it is the number (as Set.ncard) of primes \mathfrak{q} of the ring of integers of the fixed field L^{\langle\sigma\rangle} — the intermediate field of invariants of the subgroup Subgroup.zpowers σ generated by \sigma — that lie over the ideal \ell\mathbb{Z}, subject to two conditions: the residue ring at \mathfrak{q} has exactly \ell elements (so \mathfrak{q} has residue degree one over \ell), and there exists a prime ideal Q of \mathcal{O}_L lying over both \mathfrak{q} and \ell\mathbb{Z} whose inertia subgroup in \operatorname{Gal}(L/\mathbb{Q}) is trivial and whose arithmetic Frobenius arithFrobAt ℤ (L ≃ₐ[ℚ] L) Q is equal, on the nose and not merely up to conjugacy, to \sigma^{m} for the natural number underlying m. Third, classIndicator takes \sigma and \ell and returns 1 or 0 according as \ell is prime and some prime Q of \mathcal{O}_L over \ell\mathbb{Z} has trivial inertia subgroup in \operatorname{Gal}(L/\mathbb{Q}) and arithmetic Frobenius conjugate to \sigma, or not. Two accompanying lemmas record the evident bounds: labelledCount_of_mem_S₀ states that labelledCount σ S₀ m ℓ vanishes for \ell\in S_0, and classIndicator_le_one that classIndicator σ ℓ \le 1. The finiteness of the residue rings needed to speak of Frobenius is supplied by the prime Q lying over \ell\mathbb{Z} with \ell prime.
Relation to Mathlib
The two counting functions are the project's own; they are assembled from Mathlib's arithmetic Frobenius arithFrobAt, the inertia subgroup of a prime, Ideal.primesOver and FixedPoints.intermediateField, together with the project's abbreviation ratPrimeIdeal ℓ for the ideal \ell\mathbb{Z}.
Where it is used
These counts are the bookkeeping for the Galois-side density argument that produces auxiliary primes with prescribed Frobenius behaviour: the statement that for every \sigma and every finite set S of primes there is \ell\notin S at which \sigma is realised, up to conjugacy and up to a power coprime to its order, by a Frobenius element. That existence statement is what feeds the construction of Taylor–Wiles primes q\equiv 1 \pmod{p^n} at which the residual representation has distinct rational eigenvalues.
References
- J. Neukirch, Algebraic Number Theory, Grundlehren der mathematischen Wissenschaften 322, Springer, 1999
- J. Tunnell, Artin's conjecture for representations of octahedral type, Bulletin of the American Mathematical Society (N.S.) 5 (1981), 173–175
- R. P. Langlands, Base Change for GL(2), Annals of Mathematics Studies 96, Princeton University Press, 1980
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 49 lines
- 5 declarations
- used in the statements of 0 theorems and imported by 0 proofs
- imports 1 definition modules
Source file: Definitions/Def_LanglandsTunnell_TowerCounting.lean
Imports
Imported by
Declarations
- def
LanglandsTunnell.oddJ - def
LanglandsTunnell.labelledCount - theorem
LanglandsTunnell.labelledCount_of_mem_S₀ - def
LanglandsTunnell.classIndicator - theorem
LanglandsTunnell.classIndicator_le_one
Source
import Definitions.Def_TaylorWiles_Primes import Mathlib.FieldTheory.Galois.IsGaloisGroup ↗ set_option autoImplicit false namespace LanglandsTunnell open NumberField Ideal FrobeniusDensity def oddJ : Finset ℕ := {1, 3, 5, 7} variable {L : Type*} [Field L] [NumberField L] [IsGalois ℚ L] open scoped Classical in noncomputable def labelledCount (σ : L ≃ₐ[ℚ] L) (S₀ : Finset ℕ) (m : Fin 8) (ℓ : ℕ) : ℕ := if ℓ ∈ S₀ then 0 else if hℓ : ℓ.Prime then {𝔮 ∈ (ratPrimeIdeal ℓ).primesOver (𝓞 (FixedPoints.intermediateField (Subgroup.zpowers σ) : IntermediateField ℚ L)) | Nat.card ((𝓞 (FixedPoints.intermediateField (Subgroup.zpowers σ) : IntermediateField ℚ L)) ⧸ 𝔮) = ℓ ∧ ∃ (Q : Ideal (𝓞 L)) (_ : Q.IsPrime) (_ : Q.LiesOver 𝔮) (_ : Q.LiesOver (ratPrimeIdeal ℓ)) (_ : Q.inertia (L ≃ₐ[ℚ] L) = ⊥), haveI : Finite ((𝓞 L) ⧸ Q) := finite_quotient_of_ne_bot (ne_bot_of_liesOver_ratPrimeIdeal hℓ) arithFrobAt ℤ (L ≃ₐ[ℚ] L) Q = σ ^ (m : ℕ)}.ncard else 0 theorem labelledCount_of_mem_S₀ (σ : L ≃ₐ[ℚ] L) (S₀ : Finset ℕ) (m : Fin 8) {ℓ : ℕ} (h : ℓ ∈ S₀) : labelledCount σ S₀ m ℓ = 0 := by simp [labelledCount, h] open scoped Classical in noncomputable def classIndicator (σ : L ≃ₐ[ℚ] L) (ℓ : ℕ) : ℕ := if ∃ _ : ℓ.Prime, ∃ (Q : Ideal (𝓞 L)) (_ : Q.IsPrime) (_ : Q.LiesOver (ratPrimeIdeal ℓ)) (_ : Q.inertia (L ≃ₐ[ℚ] L) = ⊥), haveI : Finite ((𝓞 L) ⧸ Q) := finite_quotient_of_ne_bot (ne_bot_of_liesOver_ratPrimeIdeal ‹ℓ.Prime›) IsConj σ (arithFrobAt ℤ (L ≃ₐ[ℚ] L) Q) then 1 else 0 theorem classIndicator_le_one (σ : L ≃ₐ[ℚ] L) (ℓ : ℕ) : classIndicator σ ℓ ≤ 1 := by unfold classIndicator; split <;> simp end LanglandsTunnell
Statements phrased using this module (0)
No statement module imports it directly (it is used through other definition modules or by proofs).