@@ -180,6 +180,9 @@ protected theorem eq_mul_of_div_eq_left {a b c : ℕ} (H1 : b ∣ a) (H2 : a / b
180
180
a = c * b :=
181
181
by rw [mul_comm, nat.eq_mul_of_div_eq_right H1 H2]
182
182
183
+ protected theorem mul_div_cancel_left' {a b : ℕ} (Hd : a ∣ b) : a * (b / a) = b :=
184
+ by rw [mul_comm,nat.div_mul_cancel Hd]
185
+
183
186
protected theorem div_mod_unique {n k m d : ℕ} (h : 0 < k) :
184
187
n / k = d ∧ n % k = m ↔ m + k * d = n ∧ m < k :=
185
188
⟨λ ⟨e₁, e₂⟩, e₁ ▸ e₂ ▸ ⟨mod_add_div _ _, mod_lt _ h⟩,
@@ -372,6 +375,8 @@ by induction k; simp [*, add_succ, bind_assoc]
372
375
theorem pow_add (a m n : ℕ) : a^(m + n) = a^m * a^n :=
373
376
by induction n; simp [*, pow_succ, mul_assoc]
374
377
378
+ theorem pow_two (a : ℕ) : a ^ 2 = a * a := show (1 * a) * a = _, by rw one_mul
379
+
375
380
theorem pow_dvd_pow (a : ℕ) {m n : ℕ} (h : m ≤ n) : a^m ∣ a^n :=
376
381
by rw [← nat.add_sub_cancel' h, pow_add]; apply dvd_mul_right
377
382
@@ -382,6 +387,9 @@ theorem pow_dvd_pow_of_dvd {a b : ℕ} (h : a ∣ b) : ∀ n:ℕ, a^n ∣ b^n
382
387
theorem mul_pow (a b n : ℕ) : (a * b) ^ n = a ^ n * b ^ n :=
383
388
by induction n; simp [*, nat.pow_succ, mul_comm, mul_assoc, mul_left_comm]
384
389
390
+ protected theorem pow_mul (a b n : ℕ) : n ^ (a * b) = (n ^ a) ^ b :=
391
+ by induction b; simp [*, nat.succ_eq_add_one, nat.pow_add, mul_add, mul_comm]
392
+
385
393
@[simp] theorem bodd_div2_eq (n : ℕ) : bodd_div2 n = (bodd n, div2 n) :=
386
394
by unfold bodd div2; cases bodd_div2 n; refl
387
395
0 commit comments