All proofs
Project-declaredLean 4.32.0 · mathlib@249c48c2

J valuation of bad prime

FreyCurve.j_valuation_of_bad_prime

Plain-language statement

The q-adic valuation of the j-invariant of the Frey curve is a multiple of p if 2 < q is a prime of bad reduction.

Exact Lean statement

lemma j_valuation_of_bad_prime (P : FreyPackage) {q : ℕ} (hqPrime : q.Prime)
    (hqbad : (q : ℤ) ∣ P.a * P.b * P.c) (hqodd : 2 < q) :
    (P.p : ℤ) ∣ padicValRat q P.freyCurve.j

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
lemma j_valuation_of_bad_prime (P : FreyPackage) {q : } (hqPrime : q.Prime)    (hqbad : (q : ) ∣ P.a * P.b * P.c) (hqodd : 2 < q) :    (P.p : ) ∣ padicValRat q P.freyCurve.j := by  have := Fact.mk hqPrime  have hqPrime' := Nat.prime_iff_prime_int.mp hqPrime  have h₀ : ((P.c ^ (2 * P.p) - (P.a * P.b) ^ P.p) ^ 3 : )  0 := by    rw_mod_cast [pow_mul',  P.hFLT, mul_pow]    exact pow_ne_zero _ <| ne_of_gt <| j_pos_aux _ _ (pow_ne_zero _ P.hb0)  have h₁ : P.a * P.b * P.c  0 := mul_ne_zero (mul_ne_zero P.ha0 P.hb0) P.hc0  rw [FreyCurve.j, padicValRat.div (mul_ne_zero (by norm_num) h₀) (pow_ne_zero _ (mod_cast h₁)),    padicValRat.mul (by norm_num) h₀, padicValRat.pow,  Nat.cast_two,     padicValRat_of_nat, padicValNat_primes hqodd.ne', Nat.cast_zero, mul_zero, zero_add]  have : ¬ (q : ) ∣ (P.c^(2*P.p)-(P.a*P.b)^P.p) ^ 3 := by    rw [hqPrime'.dvd_pow_iff_dvd three_ne_zero]    have hq' : Xor ((q : ) ∣ P.a * P.b) ((q : ) ∣ P.c) := by      rw [xor_iff_not_iff, iff_iff_and_or_not_and_not]      rintro (hab, hc | hab, hc)      · rw [hqPrime'.dvd_mul] at hab        apply hqPrime'.not_dvd_one        cases hab with        | inl ha => rw [ P.hgcdac]; exact dvd_gcd ha hc        | inr hb => rw [ P.hgcdbc]; exact dvd_gcd hb hc      · rw [hqPrime'.dvd_mul] at hqbad        exact hqbad.rec hab hc    have h2p0 := mul_ne_zero two_ne_zero P.hp0    cases hq' with    | inl h =>      rw [dvd_sub_left (dvd_pow h.1 P.hp0), hqPrime'.dvd_pow_iff_dvd h2p0]      exact h.2    | inr h =>      rw [dvd_sub_right (dvd_pow h.1 h2p0), hqPrime'.dvd_pow_iff_dvd P.hp0]      exact h.2  norm_cast  rw [padicValRat.of_int, padicValInt.eq_zero_of_not_dvd this, Nat.cast_zero, zero_sub,    Int.cast_pow, padicValRat.pow, dvd_neg, Nat.cast_mul]  exact dvd_mul_of_dvd_left (dvd_mul_left _ _) _
Project
Fermat's Last Theorem
License
Apache-2.0
Commit
8dd808888295
Source
FLT/FreyCurve/Basic.lean:157-192

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

Project-declaredLean 4.32.0

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

number theoryarithmetic geometryFermat's Last Theorem

Source project: Fermat's Last Theorem

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

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.

number theoryarithmetic geometryFermat's Last Theorem

Source project: Fermat's Last Theorem

Person-level attribution pending.

View proof record