FLT/KnownIn1980s/EllipticCurves/QuadraticTwists/SplitMultiplicativeReduction.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
11 declarations, 0 contain sorry, 0 declared as axioms
Multiplicative reduction becomes split after a quadratic twist
Let R be a discrete valuation ring with fraction field K (for example the ring of integers
of a nonarchimedean local field), and let E be an elliptic curve over K with multiplicative
reduction. This file proves that if the reduction is nonsplit, then the quadratic twist of E
(FLT.KnownIn1980s.EllipticCurves.QuadraticTwists.QuadraticTwists) by the unramified quadratic
extension of K (FLT.Mathlib.RingTheory.Unramified.LocalRing) has
split multiplicative reduction: the reduction of the twist is the same nodal cubic with the
Galois action on the two tangent directions at the node twisted into triviality.
Main definitions and statements
WeierstrassCurve.exists_quadraticTwist_hasSplitMultiplicativeReduction: over the fraction field of a discrete valuation ring, an elliptic curve with nonsplit multiplicative reduction has a quadratic twist with split multiplicative reduction.
The generic ingredients — the node polynomial WeierstrassCurve.nodePoly with its splitting
criteria, and the invariance of split multiplicative reduction under isomorphism of minimal
models (WeierstrassCurve.HasSplitMultiplicativeReduction.of_isMinimal_smul) — are in
FLT.Mathlib.AlgebraicGeometry.EllipticCurve.Reduction and
FLT.Mathlib.Algebra.QuadraticDiscriminant.
TODO
- Behaviour of reduction types under twisting in general: over the fraction field of a DVR, an unramified quadratic twist preserves good and multiplicative reduction (exchanging split and nonsplit), while a ramified quadratic twist of a curve with good or multiplicative reduction has additive reduction (at least in residue characteristic ≠ 2).
- Compatibility with the Tate curve (
FLT.KnownIn1980s.EllipticCurves.TateCurve): forEwith nonsplit multiplicative reduction over a nonarchimedean local field, the Galois representation ofEis the unramified quadratic twist of the Tate-curve representation of its split twist. This is the main FLT-facing application of this file together withexists_quadraticTwist_hasSplitMultiplicativeReduction.
References
- [J. Silverman, The Arithmetic of Elliptic Curves][silverman2009], VII.§1 and VII.§5
- [J.-P. Serre, Propriétés galoisiennes des points d'ordre fini des courbes elliptiques], §5.3 (for the interaction of twists with reduction types)
Imports (9)
- FLT.KnownIn1980s.EllipticCurves.QuadraticTwists.QuadraticTwists
- FLT.Mathlib.Algebra.Algebra.Equiv
- FLT.Mathlib.AlgebraicGeometry.EllipticCurve.Reduction
- FLT.Mathlib.RingTheory.Norm.Quotient
- FLT.Mathlib.RingTheory.Unramified.LocalRing
- Mathlib.LinearAlgebra.Charpoly.ToMatrix
- Mathlib.RingTheory.Flat.TorsionFree
- Mathlib.RingTheory.LocalRing.Quotient
- Mathlib.RingTheory.Localization.NormTrace
Imported by 1 file
- lemma
WeierstrassCurve.nodePoly_quadraticTwistOf_map_splits_iffTwisting flips the square class (residue characteristic ≠ 2) line 84 sourceSource documentation
Twisting flips the square class (residue characteristic ≠ 2). Combining the split criterion
nodePoly_map_splits_iff_isSquarewith the coefficient scaling of the quadratic twist (c₄_quadraticTwistOf,c₆_quadraticTwistOf), the node polynomial ofW.quadraticTwistOf t nsplits over a fieldkof characteristic≠ 2exactly whenD · (-c₄ c₆)is a square there, whereD = t² - 4n. Thus twisting multiplies the square class governing splitting byD: it converts a nonsplit reduction into a split one precisely whenDand-c₄ c₆lie in the same square class.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Field,NeZero,OfNat.ofNat,Nat,RingHom,WeierstrassCurve,Ne,WeierstrassCurve.c₄,HSub.hSub,HPow.hPow,HMul.hMul,Iff,Polynomial.Splits,Polynomial.map, WeierstrassCurve.nodePoly, WeierstrassCurve.quadraticTwistOf,IsSquare,Neg.neg,WeierstrassCurve.c₆Proof uses:
Iff.intro,Eq,Exists.intro,HDiv.hDiv,Eq.mpr,inferInstance,CommGroupWithZero,GroupWithZero,id,Mathlib.Tactic.FieldSimp.eq_eq_cancel_eq,Mathlib.Tactic.FieldSimp.NF.eval,Mathlib.Tactic.FieldSimp.NF.cons,Prod.mk,Int,List.nil,Prod,Mathlib.Tactic.FieldSimp.eq_mul_of_eq_eq_eq_mul,rfl,Eq.trans,Eq.refland 99 more127 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
lemma nodePoly_quadraticTwistOf_map_splits_iff {A : Type*} [CommRing A] {k : Type*} [Field k] [NeZero (2 : k)] (φ : A →+* k) (W : WeierstrassCurve A) (t n : A) (hc₄ : φ W.c₄ ≠ 0) (hD : φ (t ^ 2 - 4 * n) ≠ 0) : ((W.quadraticTwistOf t n).nodePoly.map φ).Splits ↔ IsSquare (φ ((t ^ 2 - 4 * n) * -(W.c₄ * W.c₆))) := by … - theorem
WeierstrassCurve.baseChange_integralModel_quadraticTwistOfDocumented declaration: baseChange_integralModel_quadraticTwistOf line 105 sourceSource documentation
The
R-model twist base-changes to the twist overK: forEintegral overR, twisting its integral model byt, n : Rand base-changing toKequals twistingEby the images(algebraMap R K t, algebraMap R K n). Together with the coefficient laws this is the bridge from theK-twistE.quadraticTwist Lto a genuineR-model whose reduction can be computed.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,WeierstrassCurve,CommRing,Algebra,WeierstrassCurve.IsIntegral,Eq,WeierstrassCurve.baseChange, WeierstrassCurve.quadraticTwistOf,WeierstrassCurve.integralModel,RingHom,Algebra.algebraMapProof uses:
id,Eq.mpr,WeierstrassCurve.map,congrArg, WeierstrassCurve.quadraticTwistOf_map,WeierstrassCurve.baseChange_integralModel_eq,Eq.refl16 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem baseChange_integralModel_quadraticTwistOf [IsIntegral R E] (t n : R) : ((E.integralModel R).quadraticTwistOf t n)⁄K = E.quadraticTwistOf (algebraMap R K t) (algebraMap R K n) := by …Mentions: WeierstrassCurve.quadraticTwistOf
- theorem
WeierstrassCurve.Δ_baseChange_quadraticTwistOf_ne_zeroThe base change of the twisted integral model has nonzero discriminant: itsΔis(t'² - 4n')⁶ · Δ(Δ_quadraticTwistOf), and both factors are nonzero line 118 sourceSource documentation
The base change of the twisted integral model has nonzero discriminant: its
Δis(t'² - 4n')⁶ · Δ(Δ_quadraticTwistOf), and both factors are nonzero.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,WeierstrassCurve,CommRing,Algebra,IsFractionRing,IsDomain,WeierstrassCurve.IsElliptic,WeierstrassCurve.IsIntegral,Ne,HSub.hSub,HPow.hPow,Nat,OfNat.ofNat,HMul.hMul,WeierstrassCurve.Δ,WeierstrassCurve.baseChange, WeierstrassCurve.quadraticTwistOf,WeierstrassCurve.integralModelProof uses:
Eq,IsUnit.ne_zero,WeierstrassCurve.isUnit_Δ,Eq.mpr,RingHom,Algebra.algebraMap,id,congrArg,Eq.symm,WeierstrassCurve.integralModel_Δ_eq,map_zero,Eq.refl,WeierstrassCurve.map_Δ, WeierstrassCurve.Δ_quadraticTwistOf,Not,Ne.eq_1,propext,map_eq_zero_iff,IsFractionRing.injective,Orand 6 more69 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
theorem Δ_baseChange_quadraticTwistOf_ne_zero [E.IsElliptic] [IsIntegral R E] (t' n' : R) (hD : t' ^ 2 - 4 * n' ≠ 0) : ((((E.integralModel R).quadraticTwistOf t' n'))⁄K).Δ ≠ 0 := by …Mentions: WeierstrassCurve.quadraticTwistOf
- theorem
WeierstrassCurve.hasMultiplicativeReduction_baseChange_quadraticTwistOfThe twist by a unit discriminant keeps multiplicative reduction line 137 sourceSource documentation
The twist by a unit discriminant keeps multiplicative reduction. If
Ehas multiplicative reduction andD = t² - 4nis a unit ofR(residue≠ 0), then the base change of theR-model twist(E.integralModel R).quadraticTwistOf t nagain has multiplicative reduction: itsc₄ = D² · c₄is a unit (so the model is minimal and the reduction multiplicative) and itsΔ = D⁶ · Δstill has positive valuation.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,WeierstrassCurve,CommRing,Algebra,IsFractionRing,IsDomain,IsDiscreteValuationRing,WeierstrassCurve.HasMultiplicativeReduction,Ne,IsLocalRing.ResidueField,RingHom,IsLocalRing.residue,HSub.hSub,HPow.hPow,Nat,OfNat.ofNat,HMul.hMul,WeierstrassCurve.baseChange, WeierstrassCurve.quadraticTwistOf,WeierstrassCurve.integralModelProof uses:
Eq.mpr,id,Eq,congrArg,rfl,WeierstrassCurve.IsIntegral,WeierstrassCurve.IsIntegral.mk,Exists.intro,WeierstrassCurve.c₄, WeierstrassCurve.c₄_quadraticTwistOf,map_mul,map_pow,mul_ne_zero,pow_ne_zero, WeierstrassCurve.residue_integralModel_c₄_ne_zero,WeierstrassCurve.Δ, WeierstrassCurve.Δ_quadraticTwistOf, WeierstrassCurve.residue_integralModel_Δ_eq_zero,MulZeroClass.mul_zero,Eq.refland 23 more112 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
theorem hasMultiplicativeReduction_baseChange_quadraticTwistOf [E.HasMultiplicativeReduction R] (t n : R) (hD : residue R (t ^ 2 - 4 * n) ≠ 0) : (((E.integralModel R).quadraticTwistOf t n)⁄K).HasMultiplicativeReduction R := by …Mentions: WeierstrassCurve.quadraticTwistOf
- theorem
WeierstrassCurve.notMem_range_algebraMap_of_residue_notMemDocumented declaration: notMem_range_algebraMap_of_residue_notMem line 164 sourceSource documentation
If the residue of an integral element
θofSdoes not come from the residue field ofR, thenθdoes not come fromKeither: an element ofKintegral over the integrally closedRlies inR, and residues are compatible.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,CommRing,Algebra,IsFractionRing,IsDomain,IsDiscreteValuationRing,IsLocalRing,Algebra.IsIntegral,IsLocalHom,RingHom,Algebra.algebraMap,IsScalarTower,Not,Membership.mem,IsLocalRing.ResidueField,Set,Set.range,IsLocalRing.residueProof uses:
Eq,False,IsIntegral,IsIntegral.map,AlgHom,IsScalarTower.toAlgHom,Algebra.IsIntegral.isIntegral,Iff.mp,isIntegral_algHom_iff,FaithfulSMul.algebraMap_injective,Eq.mp,congrArg,Eq.symm,Exists,IsIntegrallyClosed.isIntegral_iff,Exists.intro,Eq.mpr,id,of_eq_true,eq_selfand 8 more52 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
theorem notMem_range_algebraMap_of_residue_notMem {S : Type u} [CommRing S] [IsLocalRing S] [Algebra R S] [Algebra.IsIntegral R S] [IsLocalHom (algebraMap R S)] {L : Type u} [Field L] [Algebra K L] [Algebra R L] [Algebra S L] [IsScalarTower R S L] [IsScalarTower R K L] [IsFractionRing S L] {θ : S} (hθ : residue S θ ∉ Set.range (algebraMap (ResidueField R) (ResidueField S))) : algebraMap S L θ ∉ Set.range (algebraMap K L) := by … - theorem
WeierstrassCurve.nodePoly_map_root_relationsDocumented declaration: nodePoly_map_root_relations line 191 sourceSource documentation
If the root of the reduced node polynomial
P̄(assumed irreducible) satisfies a monic quadratic relationX² - t·X + nover the residue field, then comparing with the defining relation ofP̄(aeval_root_nodePoly_map) and using the linear independence of1and the root (AdjoinRoot.eq_zero_of_mul_root_add_eq_zero) yields the relationsφc₄·t + φ(a₁c₄) = 0andφc₄·n + φκ = 0(φ = residue,κ = 54b₆ - 3b₂b₄ + a₂c₄).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,WeierstrassCurve,CommRing,Algebra,IsFractionRing,IsDomain,IsDiscreteValuationRing,WeierstrassCurve.HasMultiplicativeReduction,Irreducible,Polynomial,IsLocalRing.ResidueField,Polynomial.map,Algebra.algebraMap, WeierstrassCurve.nodePoly,WeierstrassCurve.integralModel,Eq,AdjoinRoot,HAdd.hAdd,HSub.hSub,HPow.hPowand 13 moreProof uses:
rfl,Fact,Fact.mk,Eq.mp,congrArg,Polynomial.natDegree, WeierstrassCurve.natDegree_nodePoly_map, WeierstrassCurve.aeval_root_nodePoly_map,Neg.neg, AdjoinRoot.eq_zero_of_mul_root_add_eq_zero,Eq.ge,Eq.mpr,id,congrFun',congr,Eq.trans,map_mul,map_add,map_neg,Mathlib.Tactic.LinearCombination.eq_of_eqand 59 more116 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
theorem nodePoly_map_root_relations [E.HasMultiplicativeReduction R] (hirr : Irreducible ((E.integralModel R).nodePoly.map (algebraMap R (ResidueField R)))) {t n : ResidueField R} (hρ : AdjoinRoot.root ((E.integralModel R).nodePoly.map (algebraMap R (ResidueField R))) ^ 2 - algebraMap (ResidueField R) (AdjoinRoot ((E.integralModel R).nodePoly.map (algebraMap R (ResidueField R)))) t * AdjoinRoot.root ((E.integralModel R).nodePoly.map (algebraMap R (ResidueField R))) + algebraMap (ResidueField R) (AdjoinRoot ((E.integralModel R).nodePoly.map (algebraMap R (ResidueField R)))) n = 0) : residue R (E.integralModel R).c₄ * t + residue R ((E.integralModel R).a₁ * (E.integralModel R).c₄) = 0 … - theorem
WeierstrassCurve.residue_c₄_mul_residue_eq_neg_c₆Documented declaration: residue_c₄_mul_residue_eq_neg_c₆ line 237 sourceSource documentation
The key identity
φc₄ · φ(t'² - 4n') = -φc₆of the twisting datum(t', n'): if its residues satisfy the trace and norm relations cut out by the node polynomial (κ = 54 b₆ - 3 b₂ b₄ + a₂ c₄), then the discriminant identitysplitPolynomial_discrimturns them into this identity.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,WeierstrassCurve,CommRing,Algebra,IsFractionRing,IsDomain,IsDiscreteValuationRing,WeierstrassCurve.HasMultiplicativeReduction,Eq,IsLocalRing.ResidueField,HAdd.hAdd,HMul.hMul,RingHom,IsLocalRing.residue,WeierstrassCurve.c₄,WeierstrassCurve.integralModel,WeierstrassCurve.a₁,OfNat.ofNat,HSub.hSub,Natand 7 moreProof uses:
Eq.mpr,id,congrArg,rfl, WeierstrassCurve.splitPolynomial_discrim,mul_left_cancel₀, WeierstrassCurve.residue_integralModel_c₄_ne_zero,congrFun',Eq.trans,map_sub,congr,map_pow,map_mul,map_ofNat,Mathlib.Tactic.LinearCombination.eq_of_eq,Mathlib.Tactic.LinearCombination.add_eq_eq,Eq.mp,map_add,map_neg,Mathlib.Tactic.LinearCombination.mul_const_eqand 57 more115 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
theorem residue_c₄_mul_residue_eq_neg_c₆ [E.HasMultiplicativeReduction R] (t' n' : R) (hA : residue R (E.integralModel R).c₄ * residue R t' + residue R ((E.integralModel R).a₁ * (E.integralModel R).c₄) = 0) (hB : residue R (E.integralModel R).c₄ * residue R n' + residue R (54 * (E.integralModel R).b₆ - 3 * (E.integralModel R).b₂ * (E.integralModel R).b₄ + (E.integralModel R).a₂ * (E.integralModel R).c₄) = 0) : residue R (E.integralModel R).c₄ * residue R (t' ^ 2 - 4 * n') = -residue R (E.integralModel R).c₆ := by … - theorem
WeierstrassCurve.nodePoly_quadraticTwistOf_map_splits_of_residue_of_two_eq_zeroDocumented declaration: nodePoly_quadraticTwistOf_map_splits_of_residue_of_two_eq_zero line 268 sourceSource documentation
The residue characteristic
2case ofnodePoly_quadraticTwistOf_map_splits_of_residue: the Artin–Schreier split condition (nodePoly_map_splits_iff_of_two_eq_zero) holds withz = 0, becauseφ κ_W = 0. Indeedκ_W = D³κ - D²·n·a₁²·c₄(kappa_quadraticTwistOf), andφκ = -φc₄·φn(hB),φa₁ = -φt'(hA),φD = φt'²(as4 = 0), soφκ_W = -φD²·φc₄·φn·(φD + φa₁²) = -φD²·φc₄·φn·(2·φt'²) = 0.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,WeierstrassCurve,CommRing,Algebra,IsFractionRing,IsDomain,IsDiscreteValuationRing,WeierstrassCurve.HasMultiplicativeReduction,Eq,IsLocalRing.ResidueField,OfNat.ofNat,Nat,HAdd.hAdd,HMul.hMul,RingHom,IsLocalRing.residue,WeierstrassCurve.c₄,WeierstrassCurve.integralModel,WeierstrassCurve.a₁,HSub.hSuband 9 moreProof uses:
HPow.hPow,Neg.neg,WeierstrassCurve.c₆, WeierstrassCurve.residue_c₄_mul_residue_eq_neg_c₆,Ne, WeierstrassCurve.residue_integralModel_c₆_ne_zero,Iff.mp,neg_eq_zero,Eq.mpr,id,congrArg,Eq.symm,MulZeroClass.mul_zero,Eq.refl,rfl, WeierstrassCurve.residue_integralModel_c₄_ne_zero,IsLocalRing.ResidueField.algebraMap_eq,Mathlib.Meta.NormNum.isNat_eq_true,Mathlib.Meta.NormNum.isNat_ofNat,Mathlib.Meta.NormNum.instAtLeastTwoand 88 more107 instances, coercions and auxiliary constants left out.
Tactic trace: 46 steps
Open to load the checked before-and-after goal states.
theorem nodePoly_quadraticTwistOf_map_splits_of_residue_of_two_eq_zero [E.HasMultiplicativeReduction R] (t' n' : R) (h2 : (2 : ResidueField R) = 0) (hA : residue R (E.integralModel R).c₄ * residue R t' + residue R ((E.integralModel R).a₁ * (E.integralModel R).c₄) = 0) (hB : residue R (E.integralModel R).c₄ * residue R n' + residue R (54 * (E.integralModel R).b₆ - 3 * (E.integralModel R).b₂ * (E.integralModel R).b₄ + (E.integralModel R).a₂ * (E.integralModel R).c₄) = 0) : Polynomial.Splits (((E.integralModel R).quadraticTwistOf t' n').nodePoly.map (algebraMap R (ResidueField R))) := by …Mentions: WeierstrassCurve.quadraticTwistOf
- theorem
WeierstrassCurve.nodePoly_quadraticTwistOf_map_splits_of_residueDocumented declaration: nodePoly_quadraticTwistOf_map_splits_of_residue line 339 sourceSource documentation
If the residues of
(t', n')satisfy the trace and norm relations cut out by the node polynomial, then the node polynomial of the quadratic twist of the integral model by(t', n')splits over the residue field: the key identityφc₄ · φ(t'² - 4n') = -φc₆(residue_c₄_mul_residue_eq_neg_c₆) reduces this to a square-class computation for residue characteristic≠ 2, and to an Artin–Schreier computation for residue characteristic2(nodePoly_quadraticTwistOf_map_splits_of_residue_of_two_eq_zero).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,WeierstrassCurve,CommRing,Algebra,IsFractionRing,IsDomain,IsDiscreteValuationRing,WeierstrassCurve.HasMultiplicativeReduction,Eq,IsLocalRing.ResidueField,HAdd.hAdd,HMul.hMul,RingHom,IsLocalRing.residue,WeierstrassCurve.c₄,WeierstrassCurve.integralModel,WeierstrassCurve.a₁,OfNat.ofNat,HSub.hSub,Natand 9 moreProof uses:
Ne,Or,ne_or_eq,HPow.hPow,Neg.neg,WeierstrassCurve.c₆, WeierstrassCurve.residue_c₄_mul_residue_eq_neg_c₆, WeierstrassCurve.residue_integralModel_c₆_ne_zero,Iff.mp,neg_eq_zero,Eq.mpr,id,congrArg,Eq.symm,MulZeroClass.mul_zero,Eq.refl, WeierstrassCurve.residue_integralModel_c₄_ne_zero,NeZero,NeZero.mk,IsSquareand 59 more101 instances, coercions and auxiliary constants left out.
Tactic trace: 19 steps
Open to load the checked before-and-after goal states.
theorem nodePoly_quadraticTwistOf_map_splits_of_residue [E.HasMultiplicativeReduction R] (t' n' : R) (hA : residue R (E.integralModel R).c₄ * residue R t' + residue R ((E.integralModel R).a₁ * (E.integralModel R).c₄) = 0) (hB : residue R (E.integralModel R).c₄ * residue R n' + residue R (54 * (E.integralModel R).b₆ - 3 * (E.integralModel R).b₂ * (E.integralModel R).b₄ + (E.integralModel R).a₂ * (E.integralModel R).c₄) = 0) : Polynomial.Splits (((E.integralModel R).quadraticTwistOf t' n').nodePoly.map (algebraMap R (ResidueField R))) := by …Mentions: WeierstrassCurve.quadraticTwistOf
- theorem
WeierstrassCurve.hasSplitMultiplicativeReduction_quadraticTwistOf_of_residueDocumented declaration: hasSplitMultiplicativeReduction_quadraticTwistOf_of_residue line 372 sourceSource documentation
Packaging
nodePoly_quadraticTwistOf_map_splits_of_residue: if the base change of the twisted integral model has multiplicative reduction and the residues of(t', n')satisfy the trace and norm relations, then the reduction is split multiplicative.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,WeierstrassCurve,CommRing,Algebra,IsFractionRing,IsDomain,IsDiscreteValuationRing,WeierstrassCurve.HasMultiplicativeReduction,WeierstrassCurve.baseChange, WeierstrassCurve.quadraticTwistOf,WeierstrassCurve.integralModel,Eq,IsLocalRing.ResidueField,HAdd.hAdd,HMul.hMul,RingHom,IsLocalRing.residue,WeierstrassCurve.c₄,WeierstrassCurve.a₁,OfNat.ofNatand 7 moreProof uses:
WeierstrassCurve.HasSplitMultiplicativeReduction.mk,Eq.mpr,Polynomial.Splits,Polynomial.map,Algebra.algebraMap,Polynomial,Polynomial.C,HPow.hPow,Polynomial.X,id,congrArg, WeierstrassCurve.integralModel_baseChange, WeierstrassCurve.nodePoly_quadraticTwistOf_map_splits_of_residue74 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem hasSplitMultiplicativeReduction_quadraticTwistOf_of_residue [E.HasMultiplicativeReduction R] (t' n' : R) [hW : (((E.integralModel R).quadraticTwistOf t' n')⁄K).HasMultiplicativeReduction R] (hA : residue R (E.integralModel R).c₄ * residue R t' + residue R ((E.integralModel R).a₁ * (E.integralModel R).c₄) = 0) (hB : residue R (E.integralModel R).c₄ * residue R n' + residue R (54 * (E.integralModel R).b₆ - 3 * (E.integralModel R).b₂ * (E.integralModel R).b₄ + (E.integralModel R).a₂ * (E.integralModel R).c₄) = 0) : (((E.integralModel R).quadraticTwistOf t' n')⁄K).HasSplitMultiplicativeReduction R := by …Mentions: WeierstrassCurve.quadraticTwistOf
- theorem
WeierstrassCurve.exists_quadraticTwist_hasSplitMultiplicativeReductionDocumented declaration: exists_quadraticTwist_hasSplitMultiplicativeReduction line 404 sourceSource documentation
If
Ehas multiplicative reduction which is not split, thenEhas a quadratic twist with split multiplicative reduction — namely the twist by the unramified quadratic extension ofK: the reduction of the twist is the same nodal cubic with the Galois action on the two tangent directions at the node twisted into triviality.Mathlib's reduction-type predicates apply to a specific Weierstrass equation and require it to be minimal, while our chosen model
E.quadraticTwist Lof the twist need not be; so the conclusion is phrased via the minimal model(E.quadraticTwist L).minimal R. (Being split multiplicative is intrinsic, so any other minimal model would do.)The nonsplitness hypothesis
hcannot be dropped: ifEalready has split multiplicative reduction then no quadratic twist ofEhas split multiplicative reduction, since the unramified quadratic twist has nonsplit multiplicative reduction and ramified quadratic twists have additive reduction.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,WeierstrassCurve,CommRing,Algebra,IsFractionRing,IsDomain,IsDiscreteValuationRing,WeierstrassCurve.IsElliptic,WeierstrassCurve.HasMultiplicativeReduction,Not,WeierstrassCurve.HasSplitMultiplicativeReduction,Exists,Algebra.IsQuadraticExtension,Algebra.IsSeparable,WeierstrassCurve.minimal, WeierstrassCurve.quadraticTwistProof uses:
Polynomial,IsLocalRing.ResidueField,Polynomial.map,Algebra.algebraMap, WeierstrassCurve.nodePoly,WeierstrassCurve.integralModel,Eq,rfl,Irreducible, WeierstrassCurve.irreducible_nodePoly_map,Fact,Fact.mk,Nat,Polynomial.natDegree,OfNat.ofNat, WeierstrassCurve.natDegree_nodePoly_map,Module.finrank,AdjoinRoot,Eq.trans, AdjoinRoot.finrank_eq_natDegree and 93 more123 instances, coercions and auxiliary constants left out.
Tactic trace: 41 steps
Open to load the checked before-and-after goal states.
theorem exists_quadraticTwist_hasSplitMultiplicativeReduction [E.HasMultiplicativeReduction R] (h : ¬E.HasSplitMultiplicativeReduction R) : ∃ (L : Type u) (_ : Field L) (_ : Algebra K L) (_ : Algebra.IsQuadraticExtension K L) (_ : Algebra.IsSeparable K L), ((E.quadraticTwist L).minimal R).HasSplitMultiplicativeReduction R := by …