The Chebotarev density theorem

The declarations the status of Tau Ceti's roadmap names, and the other results named in the modules where only this status names declarations, or in folders below the areas where only it names 2 or more, as Tau Ceti has them at commit ace60277.

TheoremThe Chebotarev density theorem#

For a finite Galois extension L / K of number fields and a conjugacy class C of Gal(L/K), the primes of 𝓞 K whose Frobenius in L lies in C have Dirichlet density #C / #Gal(L/K).

NumberField.Chebotarev.hasDirichletDensity_frobeniusPrimeSet.{u_1, u_2} (K : Type u_1)
  (L : Type u_2) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L]
  (C : ConjClasses Gal(L/K)) :
  NumberField.Set.HasDirichletDensity (NumberField.Chebotarev.frobeniusPrimeSet K L C)
    (↑(Nat.card ↑C.carrier) / ↑(Nat.card Gal(L/K)))
Lean

Formalized in Tau Ceti as NumberField.Chebotarev.hasDirichletDensity_frobeniusPrimeSet.

Other forms

The Chebotarev density theorem, for Chebyshev's ψ. Formalized in Tau Ceti as NumberField.Chebotarev.frobeniusPsi_asymptotic.

NumberField.Chebotarev.frobeniusPsi_asymptotic.{u_1, u_2} (K : Type u_1) (L : Type u_2) [Field K]
  [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L]
  (C : ConjClasses Gal(L/K)) :
  (fun x =>
      NumberField.Chebotarev.frobeniusPsi K L C x -
        ↑(Nat.card ↑C.carrier) / ↑(Nat.card Gal(L/K)) * x) =o[Filter.atTop]
    fun x => x

The Chebotarev density theorem, for Chebyshev's ψ, as a limit. Formalized in Tau Ceti as NumberField.Chebotarev.tendsto_frobeniusPsi.

NumberField.Chebotarev.tendsto_frobeniusPsi.{u_1, u_2} (K : Type u_1) (L : Type u_2) [Field K]
  [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L]
  (C : ConjClasses Gal(L/K)) :
  Filter.Tendsto (fun x => NumberField.Chebotarev.frobeniusPsi K L C x / x) Filter.atTop
    (nhds (↑(Nat.card ↑C.carrier) / ↑(Nat.card Gal(L/K))))
Sources
Uses 9 · Used by 2

TheoremNumberField.Chebotarev.hasNaturalDensity_frobeniusPrimeSet#

Natural-density Chebotarev: among the primes of K, the primes with arithmetic Frobenius class C have density #C / #Gal(L/K).

NumberField.Chebotarev.hasNaturalDensity_frobeniusPrimeSet.{u_1, u_2} (K : Type u_1) (L : Type u_2)
  [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L]
  (C : ConjClasses Gal(L/K)) :
  NumberField.Set.HasNaturalDensity (NumberField.Chebotarev.frobeniusPrimeSet K L C)
    (↑(Nat.card ↑C.carrier) / ↑(Nat.card Gal(L/K)))
Uses 2

TheoremWeighted Chebotarev for abelian extensions#

If Gal(L/K) is abelian, then for every σ ∈ Gal(L/K) the Frobenius ψ function of σ satisfies ψ_σ(x) = x / #Gal(L/K) + o(x).

NumberField.Chebotarev.frobeniusPsi_asymptotic_of_mul_comm.{u_1, u_2} {K : Type u_1} {L : Type u_2}
  [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L]
  (hab : ∀ (σ τ : Gal(L/K)), σ * τ = τ * σ) (σ : Gal(L/K)) :
  (fun x =>
      NumberField.Chebotarev.frobeniusPsi K L (ConjClasses.mk σ) x -
        1 / ↑(Nat.card Gal(L/K)) * x) =o[Filter.atTop]
    fun x => x
Uses 10 · Used by 1

TheoremNon-Galois Chebotarev for splitting types#

The primes with residue-degree multiset μ in E have density the total proportion of elements whose action on Gal(L/K) ⧸ Gal(L/E) has full cycle type μ, expressed as a sum of conjugacy-class proportions. No normality of E/K or realizability hypothesis on μ is needed.

NumberField.Chebotarev.hasDirichletDensity_setOf_map_inertiaDeg_eq.{u_1, u_2} (K : Type u_1)
  (L : Type u_2) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L]
  (E : IntermediateField K L) (μ : Multiset ℕ) :
  NumberField.Set.HasDirichletDensity
    {𝔭 | Multiset.map (fun P => (↑P).inertiaDeg (NumberField.RingOfIntegers K)) Finset.univ.val = μ}
    (∑ C with (MulAction.toPerm (Quotient.out C)).fullCycleType = μ,
      ↑(Nat.card ↑C.carrier) / ↑(Nat.card Gal(L/K)))
Uses 3

TheoremDirichlet's theorem on primes in arithmetic progressions, with Dirichlet density#

For m ≠ 0 and a a unit modulo m, the primes of 𝓞 ℚ whose absolute norm is congruent to a modulo m have Dirichlet density 1 / φ(m).

NumberField.Chebotarev.hasDirichletDensity_primesCongruent (m a : ℕ) [NeZero m] (ha : IsUnit ↑a) :
  NumberField.Set.HasDirichletDensity {𝔭 | Ideal.absNorm 𝔭.asIdeal % m = a % m} (1 / ↑m.totient)
Uses 5

DefinitionThe primes of K with Artin class C in L#

A height-one prime 𝔭 of 𝓞 K belongs to frobeniusPrimeSet K L C when 𝔭 is unramified in L — so that artinSymbol is applicable — and its Artin class is C.

The unramifiedness proof is packaged existentially rather than assumed, because artinSymbol takes it as an argument and no value is assigned at a ramified prime. See mem_frobeniusPrimeSet_iff_artinSymbol_eq for the form used once such a proof is available.

The carrier and this membership condition are taken from TauCetiRoadmap/Chebotarev/Suggested.lean, lines 64–76, described in the section Frobenius prime sets and finite exceptional sets of TauCetiRoadmap/Chebotarev/README.md.

NumberField.Chebotarev.frobeniusPrimeSet.{u_1, u_2} (K : Type u_1) (L : Type u_2) [Field K]
  [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L]
  (C : ConjClasses Gal(L/K)) :
  Set (IsDedekindDomain.HeightOneSpectrum (NumberField.RingOfIntegers K))
Used by 5

TheoremThe fixed-field Frobenius fiber count#

Let sigma represent the conjugacy class C, and let p be an unramified prime with Artin class C. The number of primes of L ^ <sigma> above p whose relative Artin class in L / L ^ <sigma> is represented by sigma.toFixedFieldAlgEquiv is

#Gal(L/K) / (#C * orderOf sigma).

The division is exact by ConjClasses.card_carrier_mul_orderOf_dvd.

NumberField.Chebotarev.fixedField_frobenius_fiber_card.{u_1, u_2} {K : Type u_1} {L : Type u_2}
  [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] [IsGalois K L]
  (C : ConjClasses Gal(L/K)) (sigma : Gal(L/K)) (hsigma : sigma ∈ C.carrier)
  (p : IsDedekindDomain.HeightOneSpectrum (NumberField.RingOfIntegers K))
  (hp : p ∈ NumberField.Chebotarev.frobeniusPrimeSet K L C) :
  Nat.card
      { P //
        IsDedekindDomain.HeightOneSpectrum.under (NumberField.RingOfIntegers K) P = p ∧
          P ∈
            NumberField.Chebotarev.frobeniusPrimeSet
              (↥(IntermediateField.fixedField (Subgroup.zpowers sigma))) L
              (ConjClasses.mk sigma.toFixedFieldAlgEquiv) } =
    Nat.card Gal(L/K) / (Nat.card ↑C.carrier * orderOf sigma)
Uses 2 · Used by 2

DefinitionThe crossing constant#

The number of tagged elements of the auxiliary cyclic group H — those whose order is divisible by f — divided by #Aut_K(L) * #H.

That is the tag proportion within H, divided in addition by the order of Aut_K(L), which enters only through its order: the denominator that turns a count of tags into the density contributed by one auxiliary prime.

TauCeti.NumberField.Chebotarev.crossingConstant.{u_1, u_2, u_3} (K : Type u_1) (L : Type u_2)
  [CommSemiring K] [Semiring L] [Algebra K L] {H : Type u_3} [Group H] [Fintype H] (f : ℕ) : ℝ
Used by 3

TheoremThe crossing constant approaches 1 / #Aut_K(L)#

For every δ < 1 / #Aut_K(L) there is a level r such that the crossing constant of every cyclic group whose order is divisible by f ^ r exceeds δ.

The level depends only on δ, f and the order of Aut_K(L), not on the cyclic group, so a consumer that can choose an auxiliary group of any level pushes the crossing bound arbitrarily close to 1 / #Aut_K(L).

TauCeti.NumberField.Chebotarev.exists_forall_lt_crossingConstant.{u_1, u_2, u_4} (K : Type u_1)
  (L : Type u_2) [CommSemiring K] [Semiring L] [Algebra K L] (f : ℕ) {δ : ℝ}
  (hδ : δ < 1 / ↑(Nat.card (L ≃ₐ[K] L))) :
  ∃ r,
    ∀ (H : Type u_4) [inst : Group H] [inst_1 : Fintype H] [IsCyclic H],
      f ^ r ∣ Nat.card H → δ < TauCeti.NumberField.Chebotarev.crossingConstant K L f
Uses 2 · Used by 2

TheoremThe prime number theorem for arithmetic progressions#

At every nonzero level m, the number of primes of 𝒪 ℚ whose norms are congruent to an invertible residue a modulo m is asymptotic to Li(x) / φ(m). This is the logarithmic-integral form of equidistribution among the invertible residue classes.

NumberField.Chebotarev.primeCount_primesCongruent_isEquivalent_logIntegral (m a : ℕ) [NeZero m]
  (ha : IsUnit ↑a) :
  Asymptotics.IsEquivalent Filter.atTop
    (fun x => TauCeti.primeCount ℚ {p | Ideal.absNorm p.asIdeal % m = a % m} x) fun x =>
    1 / ↑m.totient * TauCeti.Real.logIntegral x
Uses 2

The dependency explorer needs JavaScript and its graph data.

Download the complete graph data.