File: Mathlib/RingTheory/Int/Basic.lean

full_name: Int.gcd_eq_one_iff_coprime
code: theorem gcd_eq_one_iff_coprime {a b : ℤ} : Int.gcd a b = 1 ↔ IsCoprime a b 
goal: a.gcd b = 1 ↔ IsCoprime a b

full_name: Int.coprime_iff_nat_coprime
code: theorem coprime_iff_nat_coprime {a b : ℤ} : IsCoprime a b ↔ Nat.Coprime a.natAbs b.natAbs 
goal: IsCoprime a b ↔ a.natAbs.Coprime b.natAbs

full_name: Int.gcd_ne_one_iff_gcd_mul_right_ne_one
code: /-- If `gcd a (m * n) ≠ 1`, then `gcd a m ≠ 1` or `gcd a n ≠ 1`. -/
theorem gcd_ne_one_iff_gcd_mul_right_ne_one {a : ℤ} {m n : ℕ} :
    a.gcd (m * n) ≠ 1 ↔ a.gcd m ≠ 1 ∨ a.gcd n ≠ 1 
goal: a.gcd (↑m * ↑n) ≠ 1 ↔ a.gcd ↑m ≠ 1 ∨ a.gcd ↑n ≠ 1

full_name: Int.sq_of_gcd_eq_one
code: theorem sq_of_gcd_eq_one {a b c : ℤ} (h : Int.gcd a b = 1) (heq : a * b = c ^ 2) :
    ∃ a0 : ℤ, a = a0 ^ 2 ∨ a = -a0 ^ 2 
goal: ∃ a0, a = a0 ^ 2 ∨ a = -a0 ^ 2

full_name: Int.sq_of_coprime
code: theorem sq_of_coprime {a b c : ℤ} (h : IsCoprime a b) (heq : a * b = c ^ 2) :
    ∃ a0 : ℤ, a = a0 ^ 2 ∨ a = -a0 ^ 2 
goal: ∃ a0, a = a0 ^ 2 ∨ a = -a0 ^ 2

full_name: Int.natAbs_euclideanDomain_gcd
code: theorem natAbs_euclideanDomain_gcd (a b : ℤ) :
    Int.natAbs (EuclideanDomain.gcd a b) = Int.gcd a b 
goal: (EuclideanDomain.gcd a b).natAbs = a.gcd b

full_name: Int.Prime.dvd_mul
code: theorem Int.Prime.dvd_mul {m n : ℤ} {p : ℕ} (hp : Nat.Prime p) (h : (p : ℤ) ∣ m * n) :
    p ∣ m.natAbs ∨ p ∣ n.natAbs 
goal: p ∣ m.natAbs ∨ p ∣ n.natAbs

full_name: Int.Prime.dvd_mul'
code: theorem Int.Prime.dvd_mul' {m n : ℤ} {p : ℕ} (hp : Nat.Prime p) (h : (p : ℤ) ∣ m * n) :
    (p : ℤ) ∣ m ∨ (p : ℤ) ∣ n 
goal: ↑p ∣ m ∨ ↑p ∣ n

full_name: Int.Prime.dvd_pow
code: theorem Int.Prime.dvd_pow {n : ℤ} {k p : ℕ} (hp : Nat.Prime p) (h : (p : ℤ) ∣ n ^ k) :
    p ∣ n.natAbs 
goal: p ∣ n.natAbs

full_name: Int.Prime.dvd_pow'
code: theorem Int.Prime.dvd_pow' {n : ℤ} {k p : ℕ} (hp : Nat.Prime p) (h : (p : ℤ) ∣ n ^ k) :
    (p : ℤ) ∣ n 
goal: ↑p ∣ n

full_name: prime_two_or_dvd_of_dvd_two_mul_pow_self_two
code: theorem prime_two_or_dvd_of_dvd_two_mul_pow_self_two {m : ℤ} {p : ℕ} (hp : Nat.Prime p)
    (h : (p : ℤ) ∣ 2 * m ^ 2) : p = 2 ∨ p ∣ Int.natAbs m 
goal: p = 2 ∨ p ∣ m.natAbs

full_name: Int.exists_prime_and_dvd
code: theorem Int.exists_prime_and_dvd {n : ℤ} (hn : n.natAbs ≠ 1) : ∃ p, Prime p ∧ p ∣ n 
goal: ∃ p, Prime p ∧ p ∣ n

full_name: Int.prime_iff_natAbs_prime
code: theorem Int.prime_iff_natAbs_prime {k : ℤ} : Prime k ↔ Nat.Prime k.natAbs 
goal: Prime k ↔ Nat.Prime k.natAbs

full_name: Int.zmultiples_natAbs
code: theorem zmultiples_natAbs (a : ℤ) :
    AddSubgroup.zmultiples (a.natAbs : ℤ) = AddSubgroup.zmultiples a 
goal: AddSubgroup.zmultiples ↑a.natAbs = AddSubgroup.zmultiples a

full_name: Int.span_natAbs
code: theorem span_natAbs (a : ℤ) : Ideal.span ({(a.natAbs : ℤ)} : Set ℤ) = Ideal.span {a} 
goal: Ideal.span {↑a.natAbs} = Ideal.span {a}

full_name: Int.eq_pow_of_mul_eq_pow_odd_left
code: theorem eq_pow_of_mul_eq_pow_odd_left {a b c : ℤ} (hab : IsCoprime a b) {k : ℕ} (hk : Odd k)
    (h : a * b = c ^ k) : ∃ d, a = d ^ k 
goal: ∃ d, a = d ^ k

full_name: Int.eq_pow_of_mul_eq_pow_odd_right
code: theorem eq_pow_of_mul_eq_pow_odd_right {a b c : ℤ} (hab : IsCoprime a b) {k : ℕ} (hk : Odd k)
    (h : a * b = c ^ k) : ∃ d, b = d ^ k 
goal: ∃ d, b = d ^ k

full_name: Int.eq_pow_of_mul_eq_pow_odd
code: theorem eq_pow_of_mul_eq_pow_odd {a b c : ℤ} (hab : IsCoprime a b) {k : ℕ} (hk : Odd k)
    (h : a * b = c ^ k) : (∃ d, a = d ^ k) ∧ ∃ e, b = e ^ k 
goal: (∃ d, a = d ^ k) ∧ ∃ e, b = e ^ k