Documentation

TauCeti.NumberTheory.NumberField.Global.RayClass.Count.Basic

Counting the integral ideals of a ray class #

Let ๐”ช be a modulus of a number field K and c a ray class of ๐”ช. This file introduces rayClassIdealCountingFunction ๐”ช c x, the number of nonzero integral ideals prime to the finite part of ๐”ช that lie in the class c and have norm at most x, and proves the two facts that make it a counting function at all: the sets being counted are finite, and summing over the ray class group recovers the unrestricted count.

The carrier is integralIdealsPrimeTo ๐”ช, the monoid on which idealClass is defined, so coprimality and nonvanishing are forced by the type rather than imposed as side conditions; the zero ideal and ideals sharing a prime with the finite part cannot enter the count.

Finiteness is not proved here. TauCeti.Order.Northcott.Basic already fixes the project's convention for counting by an inclusive real cutoff, and supplies finite_setOf_natCast_le for any natural-valued Northcott function. All this file adds is the Northcott instance for the absolute norm on integralIdealsPrimeTo ๐”ช; the finiteness, and with it normLE, summatory and Nat.card_coe_normLE, then come from that shared layer. The bound is taken in โ„ rather than โ„• because the asymptotics that consume this count are.

The partition is stated first as an equivalence, idealClassSigmaEquiv, and only then in counting form. The equivalence needs no finiteness at all, and it is what a consumer weighting the classes by a character reaches for; the counting statement is its Nat.card shadow.

Main definitions #

Main results #

References #

Finiteness of the sets being counted #

The absolute norm is Northcott on the ideals prime to a modulus: only finitely many have norm below any bound. This mirrors TauCeti.instNorthcottAbsNormNonZeroDivisors, which does the same for (Ideal R)โฐ.

The nonzero integral ideals prime to ๐”ช of norm at most a real bound form a finite type. The cutoff is real, and inclusive, per the convention TauCeti.Order.Northcott.Basic fixes.

The counting function and the class partition #

noncomputable def TauCeti.GlobalNumberFields.rayClassIdealCountingFunction {K : Type u_1} [Field K] [NumberField K] (๐”ช : Modulus K) (c : RayClassGroup ๐”ช) (x : โ„) :

The ray class ideal counting function. The number of nonzero integral ideals in the ray class c of ๐”ช, prime to the finite part of ๐”ช, whose norm is at most x. The carrier already forces coprimality and nonvanishing, so the zero ideal and other classes cannot enter.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem TauCeti.GlobalNumberFields.rayClassIdealCountingFunction_def {K : Type u_1} [Field K] [NumberField K] (๐”ช : Modulus K) (c : RayClassGroup ๐”ช) (x : โ„) :
    rayClassIdealCountingFunction ๐”ช c x = Nat.card { I : โ†ฅ(integralIdealsPrimeTo ๐”ช) // (idealClass ๐”ช) I = c โˆง โ†‘(Ideal.absNorm โ†‘I) โ‰ค x }

    The counting function as the cardinality defining it. The rewrite rule turning rayClassIdealCountingFunction into the set of ideals of class c whose norm is at most x.

    noncomputable def TauCeti.GlobalNumberFields.idealClassSigmaEquiv {K : Type u_1} [Field K] [NumberField K] (๐”ช : Modulus K) (x : โ„) :
    (c : RayClassGroup ๐”ช) ร— { I : โ†ฅ(integralIdealsPrimeTo ๐”ช) // (idealClass ๐”ช) I = c โˆง โ†‘(Ideal.absNorm โ†‘I) โ‰ค x } โ‰ƒ { I : โ†ฅ(integralIdealsPrimeTo ๐”ช) // โ†‘(Ideal.absNorm โ†‘I) โ‰ค x }

    The ray classes partition the ideals of bounded norm. An ideal prime to ๐”ช of norm at most x is the same thing as a ray class together with an ideal of that class and that norm bound, because idealClass ๐”ช is a function on the carrier and the summands are exactly its fibres.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem TauCeti.GlobalNumberFields.idealClassSigmaEquiv_apply_coe {K : Type u_1} [Field K] [NumberField K] (๐”ช : Modulus K) (x : โ„) (p : (c : RayClassGroup ๐”ช) ร— { I : โ†ฅ(integralIdealsPrimeTo ๐”ช) // (idealClass ๐”ช) I = c โˆง โ†‘(Ideal.absNorm โ†‘I) โ‰ค x }) :
      โ†‘((idealClassSigmaEquiv ๐”ช x) p) = โ†‘p.snd

      The partition keeps the ideal: it only forgets which class the ideal was filed under.

      @[simp]
      theorem TauCeti.GlobalNumberFields.idealClassSigmaEquiv_symm_apply_fst {K : Type u_1} [Field K] [NumberField K] (๐”ช : Modulus K) (x : โ„) (I : { I : โ†ฅ(integralIdealsPrimeTo ๐”ช) // โ†‘(Ideal.absNorm โ†‘I) โ‰ค x }) :
      ((idealClassSigmaEquiv ๐”ช x).symm I).fst = (idealClass ๐”ช) โ†‘I

      Filing an ideal under its own ray class is the inverse of forgetting it: the class component is idealClass ๐”ช I and the ideal component is I again.

      theorem TauCeti.GlobalNumberFields.sum_rayClassIdealCountingFunction {K : Type u_1} [Field K] [NumberField K] (๐”ช : Modulus K) [Fintype (RayClassGroup ๐”ช)] (x : โ„) :
      โˆ‘ c : RayClassGroup ๐”ช, rayClassIdealCountingFunction ๐”ช c x = Nat.card { I : โ†ฅ(integralIdealsPrimeTo ๐”ช) // โ†‘(Ideal.absNorm โ†‘I) โ‰ค x }

      The class counts sum to the total. Summing rayClassIdealCountingFunction over the ray class group recovers the number of nonzero integral ideals prime to ๐”ช of norm at most x.

      The ray class group is always finite (finite_rayClassGroup), but it carries no canonical Fintype, so the enumeration is taken as a hypothesis rather than fixed to Fintype.ofFinite here; that keeps the statement usable against whichever enumeration the caller holds.