The class group of the S-integers #
For a Dedekind domain R with fraction field K and a set S of height one primes, the class
group of the ring 𝒪_S of S-integers is the class group of R modulo the classes of the primes
in S:
IsDedekindDomain.integerClassGroupEquiv : ClassGroup 𝒪_S ≃* ClassGroup R ⧸ ⟨[v] : v ∈ S⟩.
Main definitions #
IsDedekindDomain.integerClassGroupEquiv: the isomorphism above.
Main results #
IsDedekindDomain.finite_integer_classGroup:Cl(𝒪_S)is finite wheneverCl(R)is.IsDedekindDomain.integer_extendedHom_mk0_idealUnder: the class ofIis extended from the class of its contraction — the explicit preimage witnessing surjectivity, so a consumer holding a concreteIneed not go throughExists.choose.IsDedekindDomain.integerClassGroupEquiv_symm_mk,..._extendedHomand..._mk0: how the isomorphism evaluates, on a class extended fromCl(R)and on a concreteClassGroup.mk0.
The proof is the first isomorphism theorem applied to extension of ideals Cl(R) → Cl(𝒪_S):
IsDedekindDomain.integer_extendedHom_surjective: extension is surjective, because every ideal of𝒪_Sis extended fromR(integer_map_comap_eq);IsDedekindDomain.ker_integer_extendedHom: its kernel is generated by the classes of the primes inS. One inclusion is that a prime ofSextends to⊤(integer_map_asIdeal_eq_top); the other compares multiplicities offS, which is whatIsDedekindDomain.integer_count_coeIdeal_mapandIsDedekindDomain.integer_count_spanSingletonsupply — they are inTauCeti/RingTheory/DedekindDomain/SInteger/Factorization.lean, since neither mentions the class group — and then appliesClassGroup.mk0_mem_closure_of_count_eq.
IsDedekindDomain.finite_integer_classGroup is the consequence the arithmetic wants: Cl(𝒪_S) is
finite whenever Cl(R) is, being a quotient of it. That is one of the two finiteness inputs to
weak Mordell–Weil (the other being the S-unit theorem), so this advances
TauCetiRoadmap/EllipticCurves/README.md §Layer 6 (Mordell–Weil), whose Kummer argument needs
E(K)/2E(K) finite.
Adapted from Michael Stoll's elliptic-curves formalisation
(github.com/MichaelStollBayreuth/EllipticCurves, EllipticCurves/Mathlib/SIntegers.lean at the
roadmap's pin 66889eada51a, Apache 2.0, by Michael Stoll). Following this repository's
convention for adapted material, the upstream authorship is credited here rather than in the
copyright header. Stoll's unprefixed names are given the integer prefix that
TauCeti/RingTheory/DedekindDomain/SInteger/ already uses.
The explicit preimage under extension: the class of I is extended from the class of the
contraction of I to R. Every ideal of 𝒪_S is generated by its contraction
(integer_map_comap_eq), so extending the contraction returns I.
This is the content of integer_extendedHom_surjective, stated rather than hidden inside an
existential: a consumer holding a concrete I can name its preimage instead of recovering it from
Exists.choose.
Extension of ideals Cl(R) → Cl(𝒪_S) is surjective.
The class group of 𝒪_S is finite as soon as that of R is, being a quotient of it. This is
one of the two finiteness inputs to weak Mordell–Weil.
The kernel of extension is exactly the subgroup generated by the classes of the primes in
S.
The class group of the S-integers. Cl(𝒪_S) is Cl(R) modulo the classes of the primes
in S: the first isomorphism theorem applied to extension of ideals.
Equations
Instances For
integerClassGroupEquiv in the stated direction: the class extended from c : Cl(R) maps to
the class of c in the quotient.
integerClassGroupEquiv inverts extension: the class of c in the quotient corresponds to the
class extended from c : Cl(R). The symm counterpart of integerClassGroupEquiv_extendedHom.
integerClassGroupEquiv evaluated on a concrete ideal: the class of I corresponds to the
class of the contraction of I to R. This is the evaluation to use when the argument is
literally a ClassGroup.mk0; integerClassGroupEquiv_extendedHom is the one phrased through
extension.