mathlib documentation

data.​int.​modeq

data.​int.​modeq

def int.​modeq  :
ℤ → ℤ → ℤ → Prop

Equations
theorem int.​modeq.​refl {n : ℤ} (a : ℤ) :
a ≡ a [ZMOD n]

theorem int.​modeq.​symm {n a b : ℤ} :
a ≡ b [ZMOD n] → b ≡ a [ZMOD n]

theorem int.​modeq.​trans {n a b c : ℤ} :
a ≡ b [ZMOD n] → b ≡ c [ZMOD n] → a ≡ c [ZMOD n]

@[instance]

Equations
theorem int.​modeq.​modeq_zero_iff {n a : ℤ} :
a ≡ 0 [ZMOD n] ↔ n ∣ a

theorem int.​modeq.​modeq_iff_dvd {n a b : ℤ} :
a ≡ b [ZMOD n] ↔ n ∣ b - a

theorem int.​modeq.​modeq_of_dvd_of_modeq {n m a b : ℤ} :
m ∣ n → a ≡ b [ZMOD n] → a ≡ b [ZMOD m]

theorem int.​modeq.​modeq_mul_left' {n a b c : ℤ} :
0 ≤ c → a ≡ b [ZMOD n] → c * a ≡ c * b [ZMOD c * n]

theorem int.​modeq.​modeq_mul_right' {n a b c : ℤ} :
0 ≤ c → a ≡ b [ZMOD n] → a * c ≡ b * c [ZMOD n * c]

theorem int.​modeq.​modeq_add {n a b c d : ℤ} :
a ≡ b [ZMOD n] → c ≡ d [ZMOD n] → a + c ≡ b + d [ZMOD n]

theorem int.​modeq.​modeq_add_cancel_left {n a b c d : ℤ} :
a ≡ b [ZMOD n] → a + c ≡ b + d [ZMOD n] → c ≡ d [ZMOD n]

theorem int.​modeq.​modeq_add_cancel_right {n a b c d : ℤ} :
c ≡ d [ZMOD n] → a + c ≡ b + d [ZMOD n] → a ≡ b [ZMOD n]

theorem int.​modeq.​mod_modeq (a n : ℤ) :
a % n ≡ a [ZMOD n]

theorem int.​modeq.​modeq_neg {n a b : ℤ} :
a ≡ b [ZMOD n] → -a ≡ -b [ZMOD n]

theorem int.​modeq.​modeq_sub {n a b c d : ℤ} :
a ≡ b [ZMOD n] → c ≡ d [ZMOD n] → a - c ≡ b - d [ZMOD n]

theorem int.​modeq.​modeq_mul_left {n a b : ℤ} (c : ℤ) :
a ≡ b [ZMOD n] → c * a ≡ c * b [ZMOD n]

theorem int.​modeq.​modeq_mul_right {n a b : ℤ} (c : ℤ) :
a ≡ b [ZMOD n] → a * c ≡ b * c [ZMOD n]

theorem int.​modeq.​modeq_mul {n a b c d : ℤ} :
a ≡ b [ZMOD n] → c ≡ d [ZMOD n] → a * c ≡ b * d [ZMOD n]

theorem int.​modeq.​modeq_of_modeq_mul_left {n a b : ℤ} (m : ℤ) :
a ≡ b [ZMOD m * n] → a ≡ b [ZMOD n]

theorem int.​modeq.​modeq_of_modeq_mul_right {n a b : ℤ} (m : ℤ) :
a ≡ b [ZMOD n * m] → a ≡ b [ZMOD n]

theorem int.​modeq.​gcd_a_modeq (a b : ℕ) :
↑a * a.gcd_a b ≡ ↑(a.gcd b) [ZMOD ↑b]

theorem int.​modeq.​modeq_add_fac {a b n : ℤ} (c : ℤ) :
a ≡ b [ZMOD n] → a + n * c ≡ b [ZMOD n]

theorem int.​modeq.​mod_coprime {a b : ℕ} :
a.coprime b → (∃ (y : ℤ), ↑a * y ≡ 1 [ZMOD ↑b])

theorem int.​modeq.​exists_unique_equiv (a : ℤ) {b : ℤ} :
0 < b → (∃ (z : ℤ), 0 ≤ z ∧ z < b ∧ z ≡ a [ZMOD b])

theorem int.​modeq.​exists_unique_equiv_nat (a : ℤ) {b : ℤ} :
0 < b → (∃ (z : ℕ), ↑z < b ∧ ↑z ≡ a [ZMOD b])

@[simp]
theorem int.​mod_mul_right_mod (a b c : ℤ) :
a % (b * c) % b = a % b

@[simp]
theorem int.​mod_mul_left_mod (a b c : ℤ) :
a % (b * c) % c = a % c