FLT/KnownIn1980s/EllipticCurves/ReductionBaseChange.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned project documentation, Pinned FLT blueprint introduction
12 declarations, 0 contain sorry, 0 declared as axioms
Reduction theory under base change
Let k β l be a valuative extension of nonarchimedean local fields and let E/k be an
elliptic curve with split multiplicative reduction. This file proves that the two reduction
instances currently sorried in FLT.KnownIn1980s.EllipticCurves.TateCurve transfer to the
base change (stated for an arbitrary such E, not just Tate curves):
(E.baseChange l).IsMinimal πͺ[l](isMinimal_baseChange, and theHasMultiplicativeReductioninstance which yields it by parent projection)(E.baseChange l).HasSplitMultiplicativeReduction πͺ[l]
Neither is provable by assembling existing declarations: mathlib's reduction API
(Mathlib.AlgebraicGeometry.EllipticCurve.Reduction) has no minimality criterion and no
base-change results at all, and mathlib's ValuativeExtension provides only the map of
value groups mapValueGroupWithZero, not the induced ring map πͺ[k] β+* πͺ[l] of rings
of integers. FLT PR #1081 (branch logos2) also leaves both instances sorried.
Mathematical route
The whole point is that minimality by itself is not preserved by base change β
yΒ² = xΒ³ + p is minimal over β_p but not over β_p(p^{1/6}) β so one cannot argue
about minimality abstractly. The multiplicative reduction hypothesis rescues everything
through a single mechanism: it forces |cβ| = 1, and "integral with |cβ| = 1" is a
property that (i) forces minimality and (ii) is visibly preserved by any valuative
extension.
Mathlib phrases HasMultiplicativeReduction at the field level β its two non-parent
fields are statements about the adic valuation of W.Ξ and W.cβ as elements of the
field β and this branch already has both halves of the translation apparatus:
- the bridges
ValuativeRel.adicValuation_lt_one_iffandadicValuation_eq_one_iff(FLT.Mathlib.RingTheory.Valuation.ValuativeRel.Basic) convert between the adic valuation of the DVRπͺ[k], in which mathlib's reduction theory is phrased, and the canonical valuation ofk, on the two distinctions that matter (< 1and= 1); - strict monotonicity of
ValuativeExtension.mapValueGroupWithZerotransfers the canonical valuation alongk β l.
So everything except the minimality criterion and the splitness clause is a field-level
valuation chase along the chain adic over k β canonical over k β canonical over l
β adic over l. In detail:
Transfer of the canonical valuation (
ValuativeExtension.valuation_algebraMap_le_one,_lt_one,_eq_oneβ proved below, not sorried). A valuative extension preserves|x| β€ 1,|x| < 1and|x| = 1, becausemapValueGroupWithZerois a strictly monotone monoid-with-zero homomorphism sendingvaluation k xtovaluation l (algebraMap k l x). (The< 1case duplicatesTateCurve.valuation_algebraMap_lt_onefromTateCurveBaseChange; when de-blueprinting, consolidate all three next to the bridges inFLT.Mathlib.RingTheory.Valuation.ValuativeRel.Basic.)Functoriality of the integers (
ValuativeExtension.integerMap), needed only for the splitness clause (step 5). Byvaluation_algebraMap_le_one,algebraMap k lrestricts to a mapπͺ[k] β+* πͺ[l]; it is a local homomorphism (byvaluation_algebraMap_lt_one) and hence induces a map of residue fields (residueMap). TheIsMinimalandHasMultiplicativeReductiontransfers below do not use any of this.The minimality criterion (
WeierstrassCurve.isMinimal_of_valuation_cβ_eq_one). An integral Weierstrass equation whosecβhas adic valuation1is minimal β the unit-cβcase of the KrausβLaska criterion "v(cβ) < 4orv(Ξ) < 12implies minimal" (Silverman AEC, Remark VII.1.1). This is the one genuinely new piece of mathematics, and it is mathlib-worthy. It is stated at the field level to match mathlib'sHasMultiplicativeReduction.multiplicativeReduction, which is exactly the fact consumers hold.Base change of the integral model. Integrality transfers coefficientwise: each coefficient of
E.baseChange lisalgebraMap k lof the corresponding coefficient ofE, andvaluation_algebraMap_le_onekeeps it integral (isIntegral_of_exists_lift). For the splitness clause we also recordintegralModel_baseChange_map: the integral model of the base change is theintegerMap-image of the integral model, by uniqueness of lifts along the injective mapπͺ[l] β l.Multiplicative reduction.
badReductionandmultiplicativeReductiontransfer along the chain above: adic|Ξ| < 1overkconverts to the canonical valuation (adicValuation_lt_one_iff+integralModel_Ξ_eq), moves along the extension (valuation_algebraMap_lt_one+map_Ξ), and converts back overl(adicValuation_lt_one_iffagain); same for|cβ| = 1with theeq_onelemmas. Minimality is step 2 applied to the transferred|cβ| = 1. NointegerMap, noIsLocalHom. Note multiplicative reduction is preserved by arbitrary extensions of local fields (Silverman AEC, VII.5.4(b)) β no unramifiedness is needed, in contrast to good reduction.Splitness. Mathlib's
HasSplitMultiplicativeReductiondemands that the explicit quadraticcβTΒ² + aβcβT - (54bβ - 3bβbβ + aβcβ)(tangent directions at the node) split over the residue field. By 3 the quadratic of thel-model is the image of the quadratic of thek-model under the induced map of residue fields (IsLocalRing.ResidueField.map (integerMap k l)), and a split polynomial stays split under any ring map (Polynomial.Splits.map). Splitness can only be gained, never lost, when the residue field grows. This is the only step that usesintegerMap,residueMapandintegralModel_baseChange_map.
The base-change transfer is packaged as theorems here rather than instances, so that
the consuming instances live in FLT.KnownIn1980s.EllipticCurves.TateCurve, where this file
is imported: the two sorried instances there are filled by isMinimal_baseChange and
hasSplitMultiplicativeReduction_baseChange (which also yields IsMinimal and
HasMultiplicativeReduction by class-parent projection).
The k-side adic β canonical conversions of valuation_cβ_baseChange_eq_one and
valuation_Ξ_baseChange_lt_one duplicate the downstream WeierstrassCurve.valuation_cβ_eq_one
and valuation_Ξ_lt_one of TateCurve; they are reduction-theoretic rather than
Tate-theoretic, so consider extracting the k-side halves as shared lemmas (or moving those
TateCurve lemmas here) when de-blueprinting.
References
- Silverman, The arithmetic of elliptic curves, VII Β§1 (minimal Weierstrass equations, Remark VII.1.1 for the minimality criterion) and VII.5.4 (behaviour of reduction type under field extension).
Imports (4)
Imported by 2 files
- def
ValuativeExtension.integerMapDocumented declaration: integerMap line 170 sourceSource documentation
The restriction of
algebraMap k lto the rings of integers:πͺ[k]is the subring(valuation k).integerofk, andvaluation_algebraMap_le_onesaysalgebraMap k lmaps it into(valuation l).integer.Implementation note: it may be worth defining the
Algebra πͺ[k] πͺ[l]instance directly instead, so thatWeierstrassCurve.baseChange(rather thanmap) can be used on integral models inintegralModel_baseChange_mapbelow; whichever is chosen, this is the underlying ring homomorphism.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,ValuativeRel,Algebra,ValuativeExtension,RingHom,Subtype,Membership.mem,Subring,Valuation.integer,ValuativeRel.ValueGroupWithZero,ValuativeRel.valuationProof uses:
RingHom.restrict,Algebra.algebraMap29 instances, coercions and auxiliary constants left out.
noncomputable def integerMap : πͺ[k] β+* πͺ[l] := β¦
- theorem
ValuativeExtension.integerMap_coeintegerMapis the algebra map on underlying elements line 177 sourceSource documentation
integerMapis the algebra map on underlying elements.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,ValuativeRel,Algebra,ValuativeExtension,Subtype,Membership.mem,Subring,Valuation.integer,ValuativeRel.ValueGroupWithZero,ValuativeRel.valuation,Eq,RingHom, ValuativeExtension.integerMap,Algebra.algebraMapProof uses:
rfl40 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
theorem integerMap_coe (x : πͺ[k]) : (integerMap k l x : l) = algebraMap k l (x : k) := β¦Mentions: ValuativeExtension.integerMap
- instance
ValuativeExtension.(instance at line 186)line 186 sourceSource documentation
integerMapis a local homomorphism: ifintegerMap xis a unit thenxis a unit. Non-units of the integer subring are exactly the elements of valuation< 1(Valuation.Integer.not_isUnit_iff_valuation_lt_one), andvaluation k x < 1givesvaluation l (integerMap k l x) < 1byvaluation_algebraMap_lt_one. Needed only to makeIsLocalRing.ResidueField.mapapplicable inresidueMap.instance : IsLocalHom (integerMap k l) where β¦
Mentions: ValuativeExtension.integerMap
- theorem
ValuativeExtension.algebraMap_integerMapDocumented declaration: algebraMap_integerMap line 198 sourceSource documentation
The commuting square
algebraMap πͺ[l] l β integerMap = algebraMap k l β algebraMap πͺ[k] kunderlyingintegerMap: on underlying elements both sendxtoalgebraMap k l x(integerMap_coe, andalgebraMap πͺ[Β·] Β·is the subring inclusion). This is the functoriality used to transfer integral models along the base change.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,ValuativeRel,Algebra,ValuativeExtension,Subtype,Membership.mem,Subring,Valuation.integer,ValuativeRel.ValueGroupWithZero,ValuativeRel.valuation,Eq,RingHom,Algebra.algebraMap, ValuativeExtension.integerMapProof uses: ValuativeExtension.integerMap_coe
32 instances, coercions and auxiliary constants left out.
theorem algebraMap_integerMap (x : πͺ[k]) : algebraMap πͺ[l] l (integerMap k l x) = algebraMap k l (algebraMap πͺ[k] k x) := β¦Mentions: ValuativeExtension.integerMap
- def
ValuativeExtension.residueMapThe induced map of residue fieldsπͺ[k]/π[k] β+* πͺ[l]/π[l], from the local homomorphismintegerMapline 219 sourceSource documentation
The induced map of residue fields
πͺ[k]/π[k] β+* πͺ[l]/π[l], from the local homomorphismintegerMap. (An honest definition, not a sorry: it isIsLocalRing.ResidueField.mapofintegerMap k l.)standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,ValuativeRel,TopologicalSpace,IsNonarchimedeanLocalField,Algebra,ValuativeExtension,RingHom,IsLocalRing.ResidueField,Subtype,Membership.mem,Subring,Valuation.integer,ValuativeRel.ValueGroupWithZero,ValuativeRel.valuationProof uses:
IsLocalRing.ResidueField.map, ValuativeExtension.integerMap32 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
noncomputable def residueMap : IsLocalRing.ResidueField πͺ[k] β+* IsLocalRing.ResidueField πͺ[l] := β¦ - instance
WeierstrassCurve.(instance at line 257)line 257 sourceSource documentation
Base change along a valuative extension preserves integrality, coefficientwise: each coefficient of
E.baseChange lisalgebraMap k lof the corresponding coefficient ofE(map_aβ, β¦), which is integral overk(integralModel_aβ_eq, β¦, and elements ofπͺ[k]havevaluation k Β· β€ 1), so stays integral overlbyvaluation_algebraMap_le_one; conclude withisIntegral_of_exists_lift. (No functoriality ofmapis needed.)instance [IsIntegral πͺ[k] E] : IsIntegral πͺ[l] (E.baseChange l) := β¦
- theorem
WeierstrassCurve.integralModel_baseChange_mapThe integral model of the base change is the base change of the integral model line 277 sourceSource documentation
The integral model of the base change is the base change of the integral model. Both sides are lifts of
E.baseChange lalong the injective mapπͺ[l] β l(injectivity fromIsFractionRing), and lifts along an injective map are unique: compare coefficientwise viaintegralModel_aβ_eqon both sides and the commuting squarealgebraMap_integerMap. (Only the splitness clause of step 5 consumes this.)standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,ValuativeRel,Algebra,ValuativeExtension,WeierstrassCurve,WeierstrassCurve.IsIntegral,Subtype,Membership.mem,Subring,Valuation.integer,ValuativeRel.ValueGroupWithZero,ValuativeRel.valuation,Eq,WeierstrassCurve.integralModel,WeierstrassCurve.baseChange,WeierstrassCurve.map, ValuativeExtension.integerMapProof uses:
WeierstrassCurve.map_injective,Algebra.algebraMap,IsFractionRing.injective,id,RingHom,RingHom.comp,RingHom.ext, ValuativeExtension.algebraMap_integerMap,Eq.mpr,congrArg,WeierstrassCurve.map_map,Eq.symm,WeierstrassCurve.baseChange_integralModel_eq39 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
theorem integralModel_baseChange_map [IsIntegral πͺ[k] E] : integralModel πͺ[l] (E.baseChange l) = (integralModel πͺ[k] E).map (integerMap k l) := by β¦ - theorem
WeierstrassCurve.valuation_cβ_baseChange_eq_oneThecβof the base change has adic valuation1line 296 sourceSource documentation
The
cβof the base change has adic valuation1. Multiplicative reduction ofEmakes the canonical valuation|E.cβ| = 1(viaadicValuation_eq_one_iffandintegralModel_cβ_eq, as inWeierstrassCurve.valuation_cβ_eq_one); this transfers tolbyvaluation_algebraMap_eq_one, and converts back to the adic valuation overπͺ[l]. Shared byisMinimal_baseChangeand multiplicative reduction of the base change.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,ValuativeRel,TopologicalSpace,IsNonarchimedeanLocalField,Algebra,ValuativeExtension,WeierstrassCurve,WeierstrassCurve.HasMultiplicativeReduction,Subtype,Membership.mem,Subring,Valuation.integer,ValuativeRel.ValueGroupWithZero,ValuativeRel.valuation,Eq,WithZero,Multiplicative,Int,Valuation,IsDedekindDomain.HeightOneSpectrum.valuationand 4 moreProof uses:
WeierstrassCurve.HasMultiplicativeReduction.multiplicativeReduction,Eq.mpr,RingHom,Algebra.algebraMap,WeierstrassCurve.integralModel,id,congrArg,Eq.symm,WeierstrassCurve.integralModel_cβ_eq,Iff.mp, ValuativeRel.adicValuation_eq_one_iff,Eq.mp,WeierstrassCurve.map_cβ, ValuativeExtension.valuation_algebraMap_eq_one,Iff.mpr96 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
theorem valuation_cβ_baseChange_eq_one [HasMultiplicativeReduction πͺ[k] E] : (IsDiscreteValuationRing.maximalIdeal πͺ[l]).valuation l (E.baseChange l).cβ = 1 := by β¦ - theorem
WeierstrassCurve.valuation_Ξ_baseChange_lt_oneThe discriminant of the base change has adic valuation< 1line 312 sourceSource documentation
The discriminant of the base change has adic valuation
< 1. Multiplicative reduction ofEmakes|E.Ξ| < 1(viaadicValuation_lt_one_iffandintegralModel_Ξ_eq, as inWeierstrassCurve.valuation_Ξ_lt_one); this transfers tolbyvaluation_algebraMap_lt_one, and converts back to the adic valuation overπͺ[l].standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,ValuativeRel,TopologicalSpace,IsNonarchimedeanLocalField,Algebra,ValuativeExtension,WeierstrassCurve,WeierstrassCurve.HasMultiplicativeReduction,Subtype,Membership.mem,Subring,Valuation.integer,ValuativeRel.ValueGroupWithZero,ValuativeRel.valuation,LT.lt,WithZero,Multiplicative,Int,Valuation,IsDedekindDomain.HeightOneSpectrum.valuationand 4 moreProof uses:
WeierstrassCurve.HasMultiplicativeReduction.badReduction,Eq.mpr,RingHom,Algebra.algebraMap,WeierstrassCurve.integralModel,id,Eq,congrArg,Eq.symm,WeierstrassCurve.integralModel_Ξ_eq,Iff.mp, ValuativeRel.adicValuation_lt_one_iff,Eq.mp,WeierstrassCurve.map_Ξ, ValuativeExtension.valuation_algebraMap_lt_one,Iff.mpr105 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
theorem valuation_Ξ_baseChange_lt_one [HasMultiplicativeReduction πͺ[k] E] : (IsDiscreteValuationRing.maximalIdeal πͺ[l]).valuation l (E.baseChange l).Ξ < 1 := by β¦ - theorem
WeierstrassCurve.isMinimal_baseChangeDocumented declaration: isMinimal_baseChange line 334 sourceSource documentation
Base change along a valuative extension preserves minimality in the presence of multiplicative reduction (minimality alone is not preserved:
yΒ² = xΒ³ + pis minimal overβ_pbut not overβ_p(p^{1/6})): multiplicative reduction makes|cβ| = 1(valuation_cβ_baseChange_eq_one), and unitcβforces minimality (isMinimal_of_valuation_cβ_eq_one).A
theoremrather than aninstance: theHasMultiplicativeReductioninstance below yieldsIsMinimal πͺ[l] (E.baseChange l)again by class-parent projection, and a second instance path to it would overlap (cf. theoverlappingInstanceslinter and mathlib#41391).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,ValuativeRel,TopologicalSpace,IsNonarchimedeanLocalField,Algebra,ValuativeExtension,WeierstrassCurve,WeierstrassCurve.HasMultiplicativeReduction,Subtype,Membership.mem,Subring,Valuation.integer,ValuativeRel.ValueGroupWithZero,ValuativeRel.valuation,WeierstrassCurve.IsMinimal,WeierstrassCurve.baseChangeProof uses: WeierstrassCurve.isMinimal_of_valuation_cβ_eq_one, WeierstrassCurve.valuation_cβ_baseChange_eq_one
37 instances, coercions and auxiliary constants left out.
theorem isMinimal_baseChange [HasMultiplicativeReduction πͺ[k] E] : IsMinimal πͺ[l] (E.baseChange l) := β¦ - theorem
WeierstrassCurve.hasMultiplicativeReduction_baseChangeDocumented declaration: hasMultiplicativeReduction_baseChange line 347 sourceSource documentation
Base change along a valuative extension preserves multiplicative reduction (Silverman AEC, VII.5.4(b); true for arbitrary extensions of local fields β contrast good reduction, which needs unramifiedness): minimality is
isMinimal_baseChange, and thebadReduction/multiplicativeReductionfields arevaluation_Ξ_baseChange_lt_oneandvaluation_cβ_baseChange_eq_one.Stated as a
theoremrather than aninstanceso that the consuming instance lives inFLT.KnownIn1980s.EllipticCurves.TateCurve; use it there viaWeierstrassCurve.hasMultiplicativeReduction_baseChange.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,ValuativeRel,TopologicalSpace,IsNonarchimedeanLocalField,Algebra,ValuativeExtension,WeierstrassCurve,WeierstrassCurve.HasMultiplicativeReduction,Subtype,Membership.mem,Subring,Valuation.integer,ValuativeRel.ValueGroupWithZero,ValuativeRel.valuation,WeierstrassCurve.baseChangeProof uses:
WeierstrassCurve.IsMinimal, WeierstrassCurve.isMinimal_baseChange,WeierstrassCurve.HasMultiplicativeReduction.mk, WeierstrassCurve.valuation_Ξ_baseChange_lt_one, WeierstrassCurve.valuation_cβ_baseChange_eq_one34 instances, coercions and auxiliary constants left out.
theorem hasMultiplicativeReduction_baseChange [HasMultiplicativeReduction πͺ[k] E] : HasMultiplicativeReduction πͺ[l] (E.baseChange l) where β¦ - theorem
WeierstrassCurve.hasSplitMultiplicativeReduction_baseChangeBase change along a valuative extension preserves split multiplicative reduction: the residue field only grows, and a split quadratic stays split under any ring map line 368 sourceSource documentation
Base change along a valuative extension preserves split multiplicative reduction: the residue field only grows, and a split quadratic stays split under any ring map.
Proof: multiplicative reduction is
hasMultiplicativeReduction_baseChange. For splitness, byintegralModel_baseChange_mapthe integral model overπͺ[l]isintegerMapof the one overπͺ[k], so the node polynomial transfers asmap_nodePoly. The residue squareresidue πͺ[l] β integerMap = residueMap β residue πͺ[k](IsLocalRing.ResidueField.map_residue) andPolynomial.map_mapidentify the reduced quadratic overπ[l]with theresidueMap-image of the reduced quadratic overπ[k], which splits by hypothesis; conclude withPolynomial.Splits.map. This is the only placeintegerMap,residueMapandintegralModel_baseChange_mapare used.Stated as a
theoremrather than aninstanceso that the consuming instance lives inFLT.KnownIn1980s.EllipticCurves.TateCurve; use it there viaWeierstrassCurve.hasSplitMultiplicativeReduction_baseChange.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,ValuativeRel,TopologicalSpace,IsNonarchimedeanLocalField,Algebra,ValuativeExtension,WeierstrassCurve,WeierstrassCurve.HasSplitMultiplicativeReduction,Subtype,Membership.mem,Subring,Valuation.integer,ValuativeRel.ValueGroupWithZero,ValuativeRel.valuation,WeierstrassCurve.baseChangeProof uses:
WeierstrassCurve.HasMultiplicativeReduction, WeierstrassCurve.hasMultiplicativeReduction_baseChange,WeierstrassCurve.HasSplitMultiplicativeReduction.mk,Polynomial.Splits,IsLocalRing.ResidueField,Polynomial.map,Algebra.algebraMap, WeierstrassCurve.nodePoly,WeierstrassCurve.integralModel,WeierstrassCurve.HasSplitMultiplicativeReduction.splitMultiplicativeReduction,Eq,RingHom,RingHom.comp,IsLocalRing.residue, ValuativeExtension.integerMap, ValuativeExtension.residueMap,RingHom.ext,IsLocalRing.ResidueField.map_residue,id,HSub.hSuband 23 more77 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
theorem hasSplitMultiplicativeReduction_baseChange [HasSplitMultiplicativeReduction πͺ[k] E] : HasSplitMultiplicativeReduction πͺ[l] (E.baseChange l) where β¦