Skip to content

Commit eaede86

Browse files
committed
feat(Algebra/Divisibility): generalise mul_dvd_mul_left to Monoid (#11695)
`mul_dvd_mul_left` was implemented for `CommMonoid`. We have generalised it to `Monoid`.
1 parent 6983af4 commit eaede86

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

Mathlib/Algebra/Divisibility/Basic.lean

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ theorem exists_dvd_and_dvd_of_dvd_mul [DecompositionMonoid α] {b c a : α} (H :
130130
end Semigroup
131131

132132
section Monoid
133-
variable [Monoid α] {a b : α} {m n : ℕ}
133+
variable [Monoid α] {a b c : α} {m n : ℕ}
134134

135135
@[refl, simp]
136136
theorem dvd_refl (a : α) : a ∣ a :=
@@ -167,6 +167,12 @@ alias Dvd.dvd.pow := dvd_pow
167167
lemma dvd_pow_self (a : α) {n : ℕ} (hn : n ≠ 0) : a ∣ a ^ n := dvd_rfl.pow hn
168168
#align dvd_pow_self dvd_pow_self
169169

170+
theorem mul_dvd_mul_left (a : α) (h : b ∣ c) : a * b ∣ a * c := by
171+
obtain ⟨d, rfl⟩ := h
172+
use d
173+
rw [mul_assoc]
174+
#align mul_dvd_mul_left mul_dvd_mul_left
175+
170176
end Monoid
171177

172178
section CommSemigroup
@@ -228,15 +234,11 @@ section CommMonoid
228234

229235
variable [CommMonoid α] {a b : α}
230236

231-
theorem mul_dvd_mul_left (a : α) {b c : α} (h : b ∣ c) : a * b ∣ a * c :=
232-
mul_dvd_mul (dvd_refl a) h
233-
#align mul_dvd_mul_left mul_dvd_mul_left
234-
235237
theorem mul_dvd_mul_right (h : a ∣ b) (c : α) : a * c ∣ b * c :=
236238
mul_dvd_mul h (dvd_refl c)
237239
#align mul_dvd_mul_right mul_dvd_mul_right
238240

239-
theorem pow_dvd_pow_of_dvd {a b : α} (h : a ∣ b) : ∀ n : ℕ, a ^ n ∣ b ^ n
241+
theorem pow_dvd_pow_of_dvd (h : a ∣ b) : ∀ n : ℕ, a ^ n ∣ b ^ n
240242
| 0 => by rw [pow_zero, pow_zero]
241243
| n + 1 => by
242244
rw [pow_succ, pow_succ]

0 commit comments

Comments
 (0)