Node Poly quadratic Twist Of map splits iff
WeierstrassCurve.nodePoly_quadraticTwistOf_map_splits_iff
Plain-language statement
Twisting flips the square class (residue characteristic ≠ 2). Combining the split criterion nodePoly_map_splits_iff_isSquare with the coefficient scaling of the quadratic twist (c₄_quadraticTwistOf, c₆_quadraticTwistOf), the node polynomial of W.quadraticTwistOf t n splits over a field k of characteristic ≠ 2 exactly when D · (-c₄ c₆) is...
Exact Lean statement
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₆)))Formal artifact
Lean source
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 have key : ∀ s y : k, s ≠ 0 → (IsSquare (s ^ 2 * y) ↔ IsSquare y) := fun s y hs ↦ ⟨fun ⟨w, hw⟩ ↦ ⟨w / s, by field_simp; linear_combination hw⟩, fun ⟨w, hw⟩ ↦ ⟨s * w, by rw [hw]; ring⟩⟩ have hc₄' : φ (W.quadraticTwistOf t n).c₄ ≠ 0 := by rw [c₄_quadraticTwistOf, map_mul, map_pow]; exact mul_ne_zero (pow_ne_zero 2 hD) hc₄ rw [nodePoly_map_splits_iff_isSquare φ (W.quadraticTwistOf t n) hc₄', show -((W.quadraticTwistOf t n).c₄ * (W.quadraticTwistOf t n).c₆) = ((t ^ 2 - 4 * n) ^ 2) ^ 2 * ((t ^ 2 - 4 * n) * -(W.c₄ * W.c₆)) from by rw [c₄_quadraticTwistOf, c₆_quadraticTwistOf]; ring, map_mul, map_pow, key _ _ (show φ ((t ^ 2 - 4 * n) ^ 2) ≠ 0 by rw [map_pow]; exact pow_ne_zero 2 hD)]- Project
- Fermat's Last Theorem
- License
- Apache-2.0
- Commit
- 8dd808888295
- Source
- FLT/KnownIn1980s/EllipticCurves/QuadraticTwists/SplitMultiplicativeReduction.lean:84-99
Reuse this declaration
Bring the exact result into your workflow
The import identifies the source module. Your project still needs the pinned package dependency shown on this page.
What this badge means
This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.
Continue in this project
Related declarations
Eq finsum quotient out of bij On
AbstractHeckeOperator.eq_finsum_quotient_out_of_bijOn'
Plain-language statement
If a is fixed by V then ∑ᶠ g ∈ s, g • a is independent of the choice s of coset representatives in G for a subset of G ⧸ V
Source project: Fermat's Last Theorem
Person-level attribution pending.
Comm Group no compact automorphisms
CommGroup.no_compact_automorphisms
Plain-language statement
A connected compact Hausdorff abelian topological group does not admit a nontrivial compact group of automorphisms.
Source project: Fermat's Last Theorem
Person-level attribution pending.
Fermat Last Theorem of p ge 5
FermatLastTheorem.of_p_ge_5
Plain-language statement
If Fermat's Last Theorem is true for primes p ≥ 5, then FLT is true.
Source project: Fermat's Last Theorem
Person-level attribution pending.