The height one spectrum of a ring of S-integers #
Let R be a Dedekind domain with fraction field K and S a set of height-one primes of R.
TauCeti/RingTheory/DedekindDomain/SInteger/Basic.lean shows that the ring of S-integers is
again a Dedekind domain, so it has a height one spectrum of its own. This file identifies that
spectrum:
the height-one primes of πͺ_S are exactly the height-one primes of R not in S, via
v β¦ v Β· πͺ_S
(integerHeightOneSpectrumEquiv), and the correspondence carries the valuations across unchanged
(valuation_integerHeightOneSpectrumEquiv).
Two companion facts record what extension does to prime powers for v β S:
integer_comap_map_pow, that contracting the extension of v ^ n returns v ^ n, and
integer_map_le_map_pow_iff, that containment in a prime power transfers along the extension in
both directions. Multiplicities are turned into such containments by
le_count_associates_iff_le_pow in
TauCeti/RingTheory/DedekindDomain/Factorization.lean; integer_map_le_map_pow_iff is what then
carries them across the extension.
The two directions are integerPrimeOverOfNotMem, extending v β S to πͺ_S, and
integerPrimeUnder, contracting a prime of πͺ_S back to R. That they are mutually inverse is
Mathlib's Ideal.comap_map_eq_self_of_isMaximal in one direction β the extension of a maximal
v β S stays proper, so contracting it returns v β and integer_map_comap_eq β every ideal of
πͺ_S is extended β in the other.
The valuations transfer through Mathlib's HeightOneSpectrum.valuation_liesOver, which relates the
valuation at a prime to the valuation at the prime below it by the ramification index. Here that
index is 1 by Mathlib's Ideal.ramificationIdx'_map_self_eq_one, the extended ideal being the
prime above. Both readings of
the transfer are supplied β valuation_integerPrimeOverOfNotMem for a prime of R avoiding S,
and valuation_integerPrimeUnder for an arbitrary prime of πͺ_S.
Inverting S therefore removes exactly the primes of S from the spectrum and changes nothing
else, which is why the Selmer group of πͺ_S relative to β
is the Selmer group of R relative
to S. That identification is what
TauCetiRoadmap/EllipticCurves/README.md Β§Layer 6 needs for weak MordellβWeil: the finiteness of
A(S, 2) is the finiteness of a Selmer group over πͺ_S.
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), the source the roadmap's Β§Provenance
names for the Layer 6 MordellβWeil lane. Following this repository's convention for adapted
material, the upstream authorship is credited here rather than in the copyright header. This is
the height-one-spectrum half of that file; the Dedekind property came first, and the class-group
computation Cl(πͺ_S) β* Cl(R) β§Έ β¨[v] : v β Sβ© is
IsDedekindDomain.integerClassGroupEquiv in
TauCeti/RingTheory/DedekindDomain/SInteger/ClassGroup.lean, which consumes this file.
For v β S, the extension of v to πͺ_S is a proper ideal.
For v β S, the extension of v to πͺ_S is maximal.
The prime of πͺ_S above a prime v β S of R: the extension of v.
Equations
- IsDedekindDomain.integerPrimeOverOfNotMem K S hv = { asIdeal := Ideal.map (algebraMap R β₯(S.integer K)) v.asIdeal, isPrime := β―, ne_bot := β― }
Instances For
For v β S, the contraction of the extension of v ^ n is v ^ n again. Mathlib's
Ideal.comap_map_eq_self_of_isMaximal gives this only for n = 1.
For v β S, an ideal J of R is contained in v ^ k exactly when its extension to πͺ_S
is contained in the k-th power of the prime above v.
The prime of R below a prime P of πͺ_S: its contraction.
Equations
- IsDedekindDomain.integerPrimeUnder K S P = IsDedekindDomain.HeightOneSpectrum.comapOfNeBot (algebraMap R β₯(S.integer K)) P β―
Instances For
A prime under a prime of πͺ_S never lies in S.
Extending v β S to πͺ_S and contracting back returns v.
Contracting a prime of πͺ_S and extending back returns it.
The height-one primes of πͺ_S are exactly the height-one primes of R not in S.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For v β S, the prime of πͺ_S above v lies over v.
The correspondence preserves valuations: the valuation of πͺ_S at the prime above v is
the valuation of R at v. Mathlib's valuation_liesOver relates the two by the ramification
index, which is 1 here.
The correspondence preserves valuations, phrased through the equivalence. Not a simp lemma:
integerHeightOneSpectrumEquiv_apply rewrites the left-hand side to
integerPrimeOverOfNotMem first, so this form is never in normal form β the simp lemma is
valuation_integerPrimeOverOfNotMem above.
The correspondence preserves the integer-valued valuation: the Multiplicative β€-valued
valuation of the S-integers at the prime above v is the one of R at v. This is the KΛ£
companion of valuation_integerPrimeOverOfNotMem.
Transport of the integer-valued valuation, phrased through the equivalence. Not a simp
lemma: integerHeightOneSpectrumEquiv_apply rewrites the left-hand side to
integerPrimeOverOfNotMem first, so this form is never in normal form β the simp lemma is
valuationOfNeZero_integerPrimeOverOfNotMem above.
The correspondence preserves valuations, read downwards: the valuation of πͺ_S at an
arbitrary prime P is the valuation of R at the prime under P. This is the form a consumer
holding a prime of πͺ_S β rather than one of R avoiding S β can apply directly.
Not a simp lemma: its left-hand side is an unrestricted P.valuation K x, so tagging it would
rewrite every valuation on πͺ_S, including the one valuation_integerPrimeOverOfNotMem is the
normal form for.