File: Mathlib/Algebra/Ring/Int.lean

full_name: Int.instCommRing
code: instance instCommRing : CommRing ℤ 
goal: CommRing ℤ

full_name: Int.instCancelCommMonoidWithZero
code: instance instCancelCommMonoidWithZero : CancelCommMonoidWithZero ℤ 
goal: CancelCommMonoidWithZero ℤ

full_name: Int.instCharZero
code: instance instCharZero : CharZero ℤ 
goal: CharZero ℤ

full_name: Int.instMulDivCancelClass
code: instance instMulDivCancelClass : MulDivCancelClass ℤ 
goal: MulDivCancelClass ℤ

full_name: Int.cast_mul
code: @[simp, norm_cast]
lemma cast_mul {α : Type*} [NonAssocRing α] : ∀ m n, ((m * n : ℤ) : α) = m * n 
goal: ↑(m * n) = ↑m * ↑n

full_name: Int.cast_pow
code: @[simp, norm_cast] lemma cast_pow {R : Type*} [Ring R] (n : ℤ) (m : ℕ) :
    ↑(n ^ m) = (n ^ m : R) 
goal: ↑(n ^ m) = ↑n ^ m

full_name: Int.instCommSemiring
code: instance instCommSemiring : CommSemiring ℤ 
goal: CommSemiring ℤ

full_name: Int.instSemiring
code: instance instSemiring     : Semiring ℤ     
goal: Semiring ℤ

full_name: Int.instRing
code: instance instRing         : Ring ℤ         
goal: Ring ℤ

full_name: Int.instDistrib
code: instance instDistrib      : Distrib ℤ      
goal: Distrib ℤ

full_name: Int.units_eq_one_or
code: lemma units_eq_one_or (u : ℤˣ) : u = 1 ∨ u = -1 
goal: u = 1 ∨ u = -1

full_name: Int.units_ne_iff_eq_neg
code: lemma units_ne_iff_eq_neg {u v : ℤˣ} : u ≠ v ↔ u = -v 
goal: u ≠ v ↔ u = -v

full_name: Int.odd_iff
code: lemma odd_iff : Odd n ↔ n % 2 = 1 
goal: Odd n ↔ n % 2 = 1

full_name: Int.not_odd_iff
code: lemma not_odd_iff : ¬Odd n ↔ n % 2 = 0 
goal: ¬Odd n ↔ n % 2 = 0

full_name: Int.even_iff_not_odd
code: lemma even_iff_not_odd : Even n ↔ ¬Odd n 
goal: Even n ↔ ¬Odd n

full_name: Int.odd_iff_not_even
code: @[simp] lemma odd_iff_not_even : Odd n ↔ ¬Even n 
goal: Odd n ↔ ¬Even n

full_name: Int.even_or_odd
code: lemma even_or_odd (n : ℤ) : Even n ∨ Odd n 
goal: Even n ∨ Odd n

full_name: Int.even_or_odd'
code: lemma even_or_odd' (n : ℤ) : ∃ k, n = 2 * k ∨ n = 2 * k + 1 
goal: ∃ k, n = 2 * k ∨ n = 2 * k + 1

full_name: Int.even_xor'_odd
code: lemma even_xor'_odd (n : ℤ) : Xor' (Even n) (Odd n) 
goal: Xor' (Even n) (Odd n)

full_name: Int.even_xor'_odd'
code: lemma even_xor'_odd' (n : ℤ) : ∃ k, Xor' (n = 2 * k) (n = 2 * k + 1) 
goal: ∃ k, Xor' (n = 2 * k) (n = 2 * k + 1)

full_name: Int.instDecidablePredOdd
code: instance : DecidablePred (Odd : ℤ → Prop) 
goal: DecidablePred Odd

full_name: Int.even_add'
code: lemma even_add' : Even (m + n) ↔ (Odd m ↔ Odd n) 
goal: Even (m + n) ↔ (Odd m ↔ Odd n)

full_name: Int.not_even_bit1
code: @[simp, deprecated (since := "2023-01-26")]
lemma not_even_bit1 (n : ℤ) : ¬Even (2 * n + 1) 
goal: ¬Even (2 * n + 1)

full_name: Int.not_even_two_mul_add_one
code: lemma not_even_two_mul_add_one (n : ℤ) : ¬ Even (2 * n + 1) 
goal: ¬Even (2 * n + 1)

full_name: Int.even_sub'
code: lemma even_sub' : Even (m - n) ↔ (Odd m ↔ Odd n) 
goal: Even (m - n) ↔ (Odd m ↔ Odd n)

full_name: Int.odd_mul
code: lemma odd_mul : Odd (m * n) ↔ Odd m ∧ Odd n 
goal: Odd (m * n) ↔ Odd m ∧ Odd n

full_name: Int.Odd.of_mul_left
code: lemma Odd.of_mul_left (h : Odd (m * n)) : Odd m 
goal: Odd m

full_name: Int.Odd.of_mul_right
code: lemma Odd.of_mul_right (h : Odd (m * n)) : Odd n 
goal: Odd n

full_name: Int.odd_pow
code: @[parity_simps] lemma odd_pow {n : ℕ} : Odd (m ^ n) ↔ Odd m ∨ n = 0 
goal: Odd (m ^ n) ↔ Odd m ∨ n = 0

full_name: Int.odd_pow'
code: lemma odd_pow' {n : ℕ} (h : n ≠ 0) : Odd (m ^ n) ↔ Odd m 
goal: Odd (m ^ n) ↔ Odd m

full_name: Int.odd_add
code: @[parity_simps] lemma odd_add : Odd (m + n) ↔ (Odd m ↔ Even n) 
goal: Odd (m + n) ↔ (Odd m ↔ Even n)

full_name: Int.odd_add'
code: lemma odd_add' : Odd (m + n) ↔ (Odd n ↔ Even m) 
goal: Odd (m + n) ↔ (Odd n ↔ Even m)

full_name: Int.ne_of_odd_add
code: lemma ne_of_odd_add (h : Odd (m + n)) : m ≠ n 
goal: m ≠ n

full_name: Int.odd_sub
code: @[parity_simps] lemma odd_sub : Odd (m - n) ↔ (Odd m ↔ Even n) 
goal: Odd (m - n) ↔ (Odd m ↔ Even n)

full_name: Int.odd_sub'
code: lemma odd_sub' : Odd (m - n) ↔ (Odd n ↔ Even m) 
goal: Odd (m - n) ↔ (Odd n ↔ Even m)

full_name: Int.even_mul_succ_self
code: lemma even_mul_succ_self (n : ℤ) : Even (n * (n + 1)) 
goal: Even (n * (n + 1))

full_name: Int.even_mul_pred_self
code: lemma even_mul_pred_self (n : ℤ) : Even (n * (n - 1)) 
goal: Even (n * (n - 1))

full_name: Int.odd_coe_nat
code: @[norm_cast] lemma odd_coe_nat (n : ℕ) : Odd (n : ℤ) ↔ Odd n 
goal: Odd ↑n ↔ Odd n

full_name: Int.natAbs_even
code: @[simp] lemma natAbs_even : Even n.natAbs ↔ Even n 
goal: Even n.natAbs ↔ Even n

full_name: Int.natAbs_odd
code: lemma natAbs_odd : Odd n.natAbs ↔ Odd n 
goal: Odd n.natAbs ↔ Odd n

full_name: Int.four_dvd_add_or_sub_of_odd
code: lemma four_dvd_add_or_sub_of_odd {a b : ℤ} (ha : Odd a) (hb : Odd b) :
    4 ∣ a + b ∨ 4 ∣ a - b 
goal: 4 ∣ a + b ∨ 4 ∣ a - b

full_name: Int.two_mul_ediv_two_add_one_of_odd
code: lemma two_mul_ediv_two_add_one_of_odd : Odd n → 2 * (n / 2) + 1 = n 
goal: Odd n → 2 * (n / 2) + 1 = n

full_name: Int.ediv_two_mul_two_add_one_of_odd
code: lemma ediv_two_mul_two_add_one_of_odd : Odd n → n / 2 * 2 + 1 = n 
goal: Odd n → n / 2 * 2 + 1 = n

full_name: Int.add_one_ediv_two_mul_two_of_odd
code: lemma add_one_ediv_two_mul_two_of_odd : Odd n → 1 + n / 2 * 2 = n 
goal: Odd n → 1 + n / 2 * 2 = n

full_name: Int.two_mul_ediv_two_of_odd
code: lemma two_mul_ediv_two_of_odd (h : Odd n) : 2 * (n / 2) = n - 1 
goal: 2 * (n / 2) = n - 1

full_name: Int.isSquare_natCast_iff
code: @[norm_cast, simp]
theorem isSquare_natCast_iff {n : ℕ} : IsSquare (n : ℤ) ↔ IsSquare n 
goal: IsSquare ↑n ↔ IsSquare n

full_name: Int.isSquare_ofNat_iff
code: @[simp]
theorem isSquare_ofNat_iff {n : ℕ} :
    IsSquare (no_index (OfNat.ofNat n) : ℤ) ↔ IsSquare (OfNat.ofNat n : ℕ) 
goal: IsSquare (OfNat.ofNat n) ↔ IsSquare (OfNat.ofNat n)