Documentation

Mathlib.NumberTheory.ClassNumber.Finite

Class numbers of global fields #

In this file, we use the notion of "admissible absolute value" to prove finiteness of the class group for number fields and function fields.

Main definitions #

noncomputable def ClassGroup.normBound {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] (abv : AbsoluteValue R ) {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) :

If b is an R-basis of S of cardinality n, then normBound abv b is an integer such that for every R-integral element a : S with coordinates ≤ y, we have algebra.norm a ≤ norm_bound abv b * y ^ n. (See also norm_leandnorm_lt`).

Equations
    Instances For
      theorem ClassGroup.normBound_pos {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] (abv : AbsoluteValue R ) {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) :
      0 < normBound abv bS
      theorem ClassGroup.norm_le {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] (abv : AbsoluteValue R ) {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (a : S) {y : } (hy : ∀ (k : ι), abv ((bS.repr a) k) y) :
      abv ((Algebra.norm R) a) normBound abv bS * y ^ Fintype.card ι

      If the R-integral element a : S has coordinates ≤ y with respect to some basis b, its norm is less than normBound abv b * y ^ dim S.

      theorem ClassGroup.norm_lt {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] (abv : AbsoluteValue R ) {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) {T : Type u_6} [Ring T] [LinearOrder T] [IsStrictOrderedRing T] (a : S) {y : T} (hy : ∀ (k : ι), (abv ((bS.repr a) k)) < y) :
      (abv ((Algebra.norm R) a)) < (normBound abv bS) * y ^ Fintype.card ι

      If the R-integral element a : S has coordinates < y with respect to some basis b, its norm is strictly less than normBound abv b * y ^ dim S.

      theorem ClassGroup.exists_min {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] (abv : AbsoluteValue R ) (I : (nonZeroDivisors (Ideal S))) :
      bI, b 0 cI, abv ((Algebra.norm R) c) < abv ((Algebra.norm R) b)c = 0

      A nonzero ideal has an element of minimal norm.

      noncomputable def ClassGroup.cardM {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) :

      If we have a large enough set of elements in R^ι, then there will be a pair whose remainders are close together. We'll show that all sets of cardinality at least cardM bS adm elements satisfy this condition.

      The value of cardM is not at all optimal: for specific choices of R, the minimum cardinality can be exponentially smaller.

      Equations
        Instances For
          noncomputable def ClassGroup.distinctElems {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] :
          Fin (cardM bS adm).succ R

          In the following results, we need a large set of distinct elements of R.

          Equations
            Instances For
              noncomputable def ClassGroup.finsetApprox {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] :

              finsetApprox is a finite set such that each fractional ideal in the integral closure contains an element close to finsetApprox.

              Equations
                Instances For
                  theorem ClassGroup.finsetApprox.zero_notMem {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] :
                  0finsetApprox bS adm
                  @[deprecated ClassGroup.finsetApprox.zero_notMem (since := "2025-05-23")]
                  theorem ClassGroup.finsetApprox.zero_not_mem {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] :
                  0finsetApprox bS adm

                  Alias of ClassGroup.finsetApprox.zero_notMem.

                  @[simp]
                  theorem ClassGroup.mem_finsetApprox {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] {x : R} :
                  x finsetApprox bS adm ∃ (i : Fin (cardM bS adm).succ) (j : Fin (cardM bS adm).succ), i j (distinctElems bS adm) i - (distinctElems bS adm) j = x
                  theorem ClassGroup.exists_mem_finsetApprox {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] (a : S) {b : R} (hb : b 0) :
                  ∃ (q : S), rfinsetApprox bS adm, abv ((Algebra.norm R) (r a - b q)) < abv ((Algebra.norm R) ((algebraMap R S) b))

                  We can approximate a / b : L with q / r, where r has finitely many options for L.

                  theorem ClassGroup.exists_mem_finset_approx' {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] [Algebra.IsAlgebraic R S] (a : S) {b : S} (hb : b 0) :
                  ∃ (q : S), rfinsetApprox bS adm, abv ((Algebra.norm R) (r a - q * b)) < abv ((Algebra.norm R) b)

                  We can approximate a / b : L with q / r, where r has finitely many options for L.

                  theorem ClassGroup.prod_finsetApprox_ne_zero {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] :
                  (algebraMap R S) (∏ mfinsetApprox bS adm, m) 0
                  theorem ClassGroup.ne_bot_of_prod_finsetApprox_mem {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] (J : Ideal S) (h : (algebraMap R S) (∏ mfinsetApprox bS adm, m) J) :
                  theorem ClassGroup.exists_mk0_eq_mk0 {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] [IsDedekindDomain S] [Algebra.IsAlgebraic R S] (I : (nonZeroDivisors (Ideal S))) :
                  ∃ (J : (nonZeroDivisors (Ideal S))), mk0 I = mk0 J (algebraMap R S) (∏ mfinsetApprox bS adm, m) J

                  Each class in the class group contains an ideal J such that M := Π m ∈ finsetApprox is in J.

                  noncomputable def ClassGroup.mkMMem {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] [IsDedekindDomain S] (J : { J : Ideal S // (algebraMap R S) (∏ mfinsetApprox bS adm, m) J }) :

                  ClassGroup.mkMMem is a specialization of ClassGroup.mk0 to (the finite set of) ideals that contain M := ∏ m ∈ finsetApprox L f abs, m. By showing this function is surjective, we prove that the class group is finite.

                  Equations
                    Instances For
                      theorem ClassGroup.mkMMem_surjective {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] [IsDedekindDomain S] [Algebra.IsAlgebraic R S] :
                      noncomputable def ClassGroup.fintypeOfAdmissibleOfAlgebraic {R : Type u_1} {S : Type u_2} [EuclideanDomain R] [CommRing S] [IsDomain S] [Algebra R S] {abv : AbsoluteValue R } {ι : Type u_5} [DecidableEq ι] [Fintype ι] (bS : Module.Basis ι R S) (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] [IsDedekindDomain S] [Algebra.IsAlgebraic R S] :

                      The class number theorem: the class group of an integral closure S of R in an algebraic extension L is finite if there is an admissible absolute value.

                      See also ClassGroup.fintypeOfAdmissibleOfFinite where L is a finite extension of K = Frac(R), supplying most of the required assumptions automatically.

                      Equations
                        Instances For
                          noncomputable def ClassGroup.fintypeOfAdmissibleOfFinite {R : Type u_1} {S : Type u_2} (K : Type u_3) (L : Type u_4) [EuclideanDomain R] [CommRing S] [IsDomain S] [Field K] [Field L] [Algebra R K] [IsFractionRing R K] [Algebra K L] [FiniteDimensional K L] [Algebra.IsSeparable K L] [algRL : Algebra R L] [IsScalarTower R K L] [Algebra R S] [Algebra S L] [ist : IsScalarTower R S L] {abv : AbsoluteValue R } (adm : abv.IsAdmissible) [Infinite R] [DecidableEq R] [IsIntegralClosure S R L] :

                          The main theorem: the class group of an integral closure S of R in a finite extension L of K = Frac(R) is finite if there is an admissible absolute value.

                          See also ClassGroup.fintypeOfAdmissibleOfAlgebraic where L is an algebraic extension of R, that includes some extra assumptions.

                          Equations
                            Instances For