File: Mathlib/NumberTheory/FLT/Basic.lean

full_name: FermatLastTheoremWith
code: /-- Statement of Fermat's Last Theorem over a given semiring with a specific exponent. -/
def FermatLastTheoremWith (α : Type*) [Semiring α] (n : ℕ) : Prop 
goal: Prop

full_name: FermatLastTheoremFor
code: /-- Statement of Fermat's Last Theorem over the naturals for a given exponent. -/
def FermatLastTheoremFor (n : ℕ) : Prop 
goal: Prop

full_name: FermatLastTheorem
code: /-- Statement of Fermat's Last Theorem: `a ^ n + b ^ n = c ^ n` has no nontrivial natural solution
when `n ≥ 3`.

This is now a theorem of Wiles and Taylor--Wiles; see
https://github.com/ImperialCollegeLondon/FLT for an ongoing Lean formalisation of
a proof. -/
def FermatLastTheorem : Prop 
goal: Prop

full_name: fermatLastTheoremFor_zero
code: lemma fermatLastTheoremFor_zero : FermatLastTheoremFor 0 
goal: FermatLastTheoremFor 0

full_name: not_fermatLastTheoremFor_one
code: lemma not_fermatLastTheoremFor_one : ¬ FermatLastTheoremFor 1 
goal: ¬FermatLastTheoremFor 1

full_name: not_fermatLastTheoremFor_two
code: lemma not_fermatLastTheoremFor_two : ¬ FermatLastTheoremFor 2 
goal: ¬FermatLastTheoremFor 2

full_name: FermatLastTheoremWith.mono
code: lemma FermatLastTheoremWith.mono (hmn : m ∣ n) (hm : FermatLastTheoremWith α m) :
    FermatLastTheoremWith α n 
goal: FermatLastTheoremWith α n

full_name: FermatLastTheoremFor.mono
code: lemma FermatLastTheoremFor.mono (hmn : m ∣ n) (hm : FermatLastTheoremFor m) :
    FermatLastTheoremFor n 
goal: FermatLastTheoremFor n

full_name: fermatLastTheoremWith_nat_int_rat_tfae
code: lemma fermatLastTheoremWith_nat_int_rat_tfae (n : ℕ) :
    TFAE [FermatLastTheoremWith ℕ n, FermatLastTheoremWith ℤ n, FermatLastTheoremWith ℚ n] 
goal: [FermatLastTheoremWith ℕ n, FermatLastTheoremWith ℤ n, FermatLastTheoremWith ℚ n].TFAE

full_name: fermatLastTheoremFor_iff_nat
code: lemma fermatLastTheoremFor_iff_nat {n : ℕ} : FermatLastTheoremFor n ↔ FermatLastTheoremWith ℕ n 
goal: FermatLastTheoremFor n ↔ FermatLastTheoremWith ℕ n

full_name: fermatLastTheoremFor_iff_int
code: lemma fermatLastTheoremFor_iff_int {n : ℕ} : FermatLastTheoremFor n ↔ FermatLastTheoremWith ℤ n 
goal: FermatLastTheoremFor n ↔ FermatLastTheoremWith ℤ n

full_name: fermatLastTheoremFor_iff_rat
code: lemma fermatLastTheoremFor_iff_rat {n : ℕ} : FermatLastTheoremFor n ↔ FermatLastTheoremWith ℚ n 
goal: FermatLastTheoremFor n ↔ FermatLastTheoremWith ℚ n

full_name: fermatLastTheoremWith_of_fermatLastTheoremWith_coprime
code: /-- To prove Fermat Last Theorem in any semiring that is a `NormalizedGCDMonoid` one can assume
that the `gcd` of `{a, b, c}` is `1`. -/
lemma fermatLastTheoremWith_of_fermatLastTheoremWith_coprime {n : ℕ} {R : Type*} [CommSemiring R]
    [IsDomain R] [DecidableEq R] [NormalizedGCDMonoid R]
    (hn : ∀ a b c : R, a ≠ 0 → b ≠ 0 → c ≠ 0 → ({a, b, c} : Finset R).gcd id = 1 →
      a ^ n + b ^ n ≠ c ^ n) :
    FermatLastTheoremWith R n 
goal: FermatLastTheoremWith R n

full_name: dvd_c_of_prime_of_dvd_a_of_dvd_b_of_FLT
code: lemma dvd_c_of_prime_of_dvd_a_of_dvd_b_of_FLT {n : ℕ} {p : ℤ} (hp : Prime p)  {a b c : ℤ}
    (hpa : p ∣ a) (hpb : p ∣ b) (HF : a ^ n + b ^ n + c ^ n = 0) : p ∣ c 
goal: p ∣ c

full_name: isCoprime_of_gcd_eq_one_of_FLT
code: lemma isCoprime_of_gcd_eq_one_of_FLT {n : ℕ} {a b c : ℤ} (Hgcd : Finset.gcd {a, b, c} id = 1)
    (HF : a ^ n + b ^ n + c ^ n = 0) : IsCoprime a b 
goal: IsCoprime a b