Skip to content

Commit 854a2aa

Browse files
committed
chore(NonZeroDivisors): clean up (#21288)
Follow-up to #20871, which was only code moves.
1 parent d202ded commit 854a2aa

File tree

1 file changed

+108
-96
lines changed

1 file changed

+108
-96
lines changed

Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean

Lines changed: 108 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ non-commutative monoids.
1818
## Notations
1919
2020
This file declares the notations:
21-
- `R⁰` for the submonoid of non-zero-divisors of `R`, in the locale `nonZeroDivisors`.
22-
- `R⁰[M]` for the submonoid of non-zero smul-divisors of `R` with respect to `M`, in the locale
21+
- `M₀⁰` for the submonoid of non-zero-divisors of `M₀`, in the locale `nonZeroDivisors`.
22+
- `M₀⁰[M]` for the submonoid of non-zero smul-divisors of `M₀` with respect to `M`, in the locale
2323
`nonZeroSMulDivisors`
2424
2525
Use the statement `open scoped nonZeroDivisors nonZeroSMulDivisors` to access this notation in
@@ -29,8 +29,10 @@ your own code.
2929

3030
assert_not_exists Ring
3131

32+
open Function
33+
3234
section
33-
variable (M₀ : Type*) [MonoidWithZero M₀]
35+
variable (M₀ : Type*) [MonoidWithZero M₀] {x : M₀}
3436

3537
/-- The collection of elements of a `MonoidWithZero` that are not left zero divisors form a
3638
`Submonoid`. -/
@@ -39,12 +41,11 @@ def nonZeroDivisorsLeft : Submonoid M₀ where
3941
one_mem' := by simp
4042
mul_mem' {x} {y} hx hy := fun z hz ↦ hx _ <| hy _ (mul_assoc z x y ▸ hz)
4143

42-
@[simp] lemma mem_nonZeroDivisorsLeft_iff {x : M₀} :
43-
x ∈ nonZeroDivisorsLeft M₀ ↔ ∀ y, y * x = 0 → y = 0 :=
44-
Iff.rfl
44+
@[simp]
45+
lemma mem_nonZeroDivisorsLeft_iff : x ∈ nonZeroDivisorsLeft M₀ ↔ ∀ y, y * x = 0 → y = 0 := .rfl
4546

46-
lemma nmem_nonZeroDivisorsLeft_iff {r : M₀} :
47-
r ∉ nonZeroDivisorsLeft M₀ ↔ {s | s * r = 0s0}.Nonempty := by
47+
lemma nmem_nonZeroDivisorsLeft_iff :
48+
x ∉ nonZeroDivisorsLeft M₀ ↔ {y | y * x = 0y0}.Nonempty := by
4849
simpa [mem_nonZeroDivisorsLeft_iff] using Set.nonempty_def.symm
4950

5051
/-- The collection of elements of a `MonoidWithZero` that are not right zero divisors form a
@@ -54,12 +55,11 @@ def nonZeroDivisorsRight : Submonoid M₀ where
5455
one_mem' := by simp
5556
mul_mem' := fun {x} {y} hx hy z hz ↦ hy _ (hx _ ((mul_assoc x y z).symm ▸ hz))
5657

57-
@[simp] lemma mem_nonZeroDivisorsRight_iff {x : M₀} :
58-
x ∈ nonZeroDivisorsRight M₀ ↔ ∀ y, x * y = 0 → y = 0 :=
59-
Iff.rfl
58+
@[simp]
59+
lemma mem_nonZeroDivisorsRight_iff : x ∈ nonZeroDivisorsRight M₀ ↔ ∀ y, x * y = 0 → y = 0 := .rfl
6060

61-
lemma nmem_nonZeroDivisorsRight_iff {r : M₀} :
62-
r ∉ nonZeroDivisorsRight M₀ ↔ {s | r * s = 0s0}.Nonempty := by
61+
lemma nmem_nonZeroDivisorsRight_iff :
62+
x ∉ nonZeroDivisorsRight M₀ ↔ {y | x * y = 0y0}.Nonempty := by
6363
simpa [mem_nonZeroDivisorsRight_iff] using Set.nonempty_def.symm
6464

6565
lemma nonZeroDivisorsLeft_eq_right (M₀ : Type*) [CommMonoidWithZero M₀] :
@@ -85,148 +85,160 @@ lemma nonZeroDivisorsLeft_eq_right (M₀ : Type*) [CommMonoidWithZero M₀] :
8585

8686
end
8787

88-
/-- The submonoid of non-zero-divisors of a `MonoidWithZero` `R`. -/
89-
def nonZeroDivisors (R : Type*) [MonoidWithZero R] : Submonoid R where
88+
/-- The submonoid of non-zero-divisors of a `MonoidWithZero` `M₀`. -/
89+
def nonZeroDivisors (M₀ : Type*) [MonoidWithZero M₀] : Submonoid M₀ where
9090
carrier := { x | ∀ z, z * x = 0 → z = 0 }
9191
one_mem' _ hz := by rwa [mul_one] at hz
9292
mul_mem' hx₁ hx₂ _ hz := by
9393
rw [← mul_assoc] at hz
9494
exact hx₁ _ (hx₂ _ hz)
9595

96-
/-- The notation for the submonoid of non-zerodivisors. -/
97-
scoped[nonZeroDivisors] notation:9000 R "⁰" => nonZeroDivisors R
96+
/-- The notation for the submonoid of non-zero divisors. -/
97+
scoped[nonZeroDivisors] notation:9000 M₀ "⁰" => nonZeroDivisors M₀
9898

99-
/-- Let `R` be a monoid with zero and `M` an additive monoid with an `R`-action, then the collection
100-
of non-zero smul-divisors forms a submonoid. These elements are also called `M`-regular. -/
101-
def nonZeroSMulDivisors (R : Type*) [MonoidWithZero R] (M : Type _) [Zero M] [MulAction R M] :
102-
Submonoid R where
99+
/-- Let `M₀` be a monoid with zero and `M` an additive monoid with an `M₀`-action, then the
100+
collection of non-zero smul-divisors forms a submonoid.
101+
102+
These elements are also called `M`-regular. -/
103+
def nonZeroSMulDivisors (M₀ : Type*) [MonoidWithZero M₀] (M : Type*) [Zero M] [MulAction M₀ M] :
104+
Submonoid M₀ where
103105
carrier := { r | ∀ m : M, r • m = 0 → m = 0}
104-
one_mem' m h := (one_smul R m) ▸ h
106+
one_mem' m h := (one_smul M₀ m) ▸ h
105107
mul_mem' {r₁ r₂} h₁ h₂ m H := h₂ _ <| h₁ _ <| mul_smul r₁ r₂ m ▸ H
106108

107109
/-- The notation for the submonoid of non-zero smul-divisors. -/
108-
scoped[nonZeroSMulDivisors] notation:9000 R "⁰[" M "]" => nonZeroSMulDivisors R M
110+
scoped[nonZeroSMulDivisors] notation:9000 M₀ "⁰[" M "]" => nonZeroSMulDivisors M₀ M
109111

110112
open nonZeroDivisors
111113

112114
section MonoidWithZero
113-
variable {M M' M₁ R R' F : Type*} [MonoidWithZero M] [MonoidWithZero M'] [CommMonoidWithZero M₁]
115+
variable {F M₀ M₀' : Type*} [MonoidWithZero M] [MonoidWithZero M'] {r x y : M₀}
114116

115-
theorem mem_nonZeroDivisors_iff {r : M} : r ∈ M⁰ ↔ ∀ x, x * r = 0 → x = 0 := Iff.rfl
117+
theorem mem_nonZeroDivisors_iff : r ∈ M⁰ ↔ ∀ x, x * r = 0 → x = 0 := Iff.rfl
116118

117-
lemma nmem_nonZeroDivisors_iff {r : M} : r ∉ M⁰ ↔ {s | s * r = 0 ∧ s ≠ 0}.Nonempty := by
119+
lemma nmem_nonZeroDivisors_iff : r ∉ M⁰ ↔ {s | s * r = 0 ∧ s ≠ 0}.Nonempty := by
118120
simpa [mem_nonZeroDivisors_iff] using Set.nonempty_def.symm
119121

120-
theorem mul_right_mem_nonZeroDivisors_eq_zero_iff {x r : M} (hr : r ∈ M⁰) : x * r = 0 ↔ x = 0 :=
122+
theorem mul_right_mem_nonZeroDivisors_eq_zero_iff (hr : r ∈ M⁰) : x * r = 0 ↔ x = 0 :=
121123
⟨hr _, by simp +contextual⟩
124+
122125
@[simp]
123-
theorem mul_right_coe_nonZeroDivisors_eq_zero_iff {x : M} {c : M⁰} : x * c = 0 ↔ x = 0 :=
126+
theorem mul_right_coe_nonZeroDivisors_eq_zero_iff {c : M⁰} : x * c = 0 ↔ x = 0 :=
124127
mul_right_mem_nonZeroDivisors_eq_zero_iff c.prop
125128

126-
theorem mul_left_mem_nonZeroDivisors_eq_zero_iff {r x : M₁} (hr : r ∈ M₁⁰) : r * x = 0 ↔ x = 0 := by
127-
rw [mul_comm, mul_right_mem_nonZeroDivisors_eq_zero_iff hr]
129+
lemma IsUnit.mem_nonZeroDivisors (hx : IsUnit x) : x ∈ M₀⁰ := fun _ ↦ hx.mul_left_eq_zero.mp
128130

129-
@[simp]
130-
theorem mul_left_coe_nonZeroDivisors_eq_zero_iff {c : M₁⁰} {x : M₁} : (c : M₁) * x = 0 ↔ x = 0 :=
131-
mul_left_mem_nonZeroDivisors_eq_zero_iff c.prop
131+
section Nontrivial
132+
variable [Nontrivial M₀]
132133

133-
theorem zero_not_mem_nonZeroDivisors [Nontrivial M] : 0 ∉ M⁰ :=
134-
fun h ↦ one_ne_zero <| h 1 <| mul_zero _
134+
theorem zero_not_mem_nonZeroDivisors : 0 ∉ M₀⁰ := fun h ↦ one_ne_zero <| h 1 <| mul_zero _
135135

136-
theorem nonZeroDivisors.ne_zero [Nontrivial M] {x} (hx : x ∈ M⁰) : x ≠ 0 :=
136+
theorem nonZeroDivisors.ne_zero (hx : x ∈ M⁰) : x ≠ 0 :=
137137
ne_of_mem_of_not_mem hx zero_not_mem_nonZeroDivisors
138138

139139
@[simp]
140-
theorem nonZeroDivisors.coe_ne_zero [Nontrivial M] (x : M⁰) : (x : M) ≠ 0 :=
141-
nonZeroDivisors.ne_zero x.2
140+
theorem nonZeroDivisors.coe_ne_zero (x : M₀⁰) : (x : M₀) ≠ 0 := nonZeroDivisors.ne_zero x.2
142141

143-
theorem mul_mem_nonZeroDivisors {a b : M₁} : a * b ∈ M₁⁰ ↔ a ∈ M₁⁰ ∧ b ∈ M₁⁰ := by
144-
constructor
145-
· intro h
146-
constructor <;> intro x h' <;> apply h
147-
· rw [← mul_assoc, h', zero_mul]
148-
· rw [mul_comm a b, ← mul_assoc, h', zero_mul]
149-
· rintro ⟨ha, hb⟩ x hx
150-
apply ha
151-
apply hb
152-
rw [mul_assoc, hx]
142+
end Nontrivial
153143

154-
lemma IsUnit.mem_nonZeroDivisors {a : M} (ha : IsUnit a) : a ∈ M⁰ :=
155-
fun _ h ↦ ha.mul_left_eq_zero.mp h
144+
section NoZeroDivisors
145+
variable [NoZeroDivisors M₀]
156146

157-
theorem eq_zero_of_ne_zero_of_mul_right_eq_zero [NoZeroDivisors M] {x y : M} (hnx : x ≠ 0)
158-
(hxy : y * x = 0) : y = 0 :=
159-
Or.resolve_right (eq_zero_or_eq_zero_of_mul_eq_zero hxy) hnx
147+
theorem eq_zero_of_ne_zero_of_mul_right_eq_zero (hx : x ≠ 0) (hxy : y * x = 0) : y = 0 :=
148+
Or.resolve_right (eq_zero_or_eq_zero_of_mul_eq_zero hxy) hx
160149

161-
theorem eq_zero_of_ne_zero_of_mul_left_eq_zero [NoZeroDivisors M] {x y : M} (hnx : x ≠ 0)
162-
(hxy : x * y = 0) : y = 0 :=
163-
Or.resolve_left (eq_zero_or_eq_zero_of_mul_eq_zero hxy) hnx
150+
theorem eq_zero_of_ne_zero_of_mul_left_eq_zero (hx : x ≠ 0) (hxy : x * y = 0) : y = 0 :=
151+
Or.resolve_left (eq_zero_or_eq_zero_of_mul_eq_zero hxy) hx
164152

165-
theorem mem_nonZeroDivisors_of_ne_zero [NoZeroDivisors M] {x : M} (hx : x ≠ 0) : x ∈ M⁰ := fun _ ↦
153+
theorem mem_nonZeroDivisors_of_ne_zero (hx : x ≠ 0) : x ∈ M⁰ := fun _ ↦
166154
eq_zero_of_ne_zero_of_mul_right_eq_zero hx
167155

168-
@[simp] lemma mem_nonZeroDivisors_iff_ne_zero [NoZeroDivisors M] [Nontrivial M] {x : M} :
169-
x ∈ M⁰ ↔ x ≠ 0 := ⟨nonZeroDivisors.ne_zero, mem_nonZeroDivisors_of_ne_zero⟩
156+
@[simp] lemma mem_nonZeroDivisors_iff_ne_zero [Nontrivial M₀] : x ∈ M₀⁰ ↔ x ≠ 0 :=
157+
⟨nonZeroDivisors.ne_zero, mem_nonZeroDivisors_of_ne_zero⟩
158+
159+
theorem le_nonZeroDivisors_of_noZeroDivisors {S : Submonoid M₀} (hS : (0 : M₀) ∉ S) :
160+
S ≤ M₀⁰ := fun _ hx _ hy ↦
161+
Or.recOn (eq_zero_or_eq_zero_of_mul_eq_zero hy) id fun h ↦
162+
absurd (h ▸ hx : (0 : M₀) ∈ S) hS
163+
164+
theorem powers_le_nonZeroDivisors_of_noZeroDivisors (hx : x ≠ 0) : Submonoid.powers x ≤ M₀⁰ :=
165+
le_nonZeroDivisors_of_noZeroDivisors fun h ↦ hx (h.recOn fun _ ↦ pow_eq_zero)
166+
167+
end NoZeroDivisors
170168

171-
variable [FunLike F M M']
169+
variable [FunLike F M₀ M₀']
172170

173-
theorem map_ne_zero_of_mem_nonZeroDivisors [Nontrivial M] [ZeroHomClass F M M'] (g : F)
174-
(hg : Function.Injective (g : M → M')) {x : M} (h : x ∈ M⁰) : g x ≠ 0 := fun h0 ↦
171+
theorem map_ne_zero_of_mem_nonZeroDivisors [Nontrivial M] [ZeroHomClass F M₀ M₀'] (g : F)
172+
(hg : Injective (g : M → M')) {x : M} (h : x ∈ M⁰) : g x ≠ 0 := fun h0 ↦
175173
one_ne_zero (h 1 ((one_mul x).symm ▸ hg (h0.trans (map_zero g).symm)))
176174

177-
theorem map_mem_nonZeroDivisors [Nontrivial M] [NoZeroDivisors M'] [ZeroHomClass F M M'] (g : F)
178-
(hg : Function.Injective g) {x : M} (h : x ∈ M⁰) : g x ∈ M'⁰ := fun _ hz ↦
175+
theorem map_mem_nonZeroDivisors [Nontrivial M] [NoZeroDivisors M'] [ZeroHomClass F M₀ M₀'] (g : F)
176+
(hg : Injective g) {x : M} (h : x ∈ M⁰) : g x ∈ M'⁰ := fun _ hz ↦
179177
eq_zero_of_ne_zero_of_mul_right_eq_zero (map_ne_zero_of_mem_nonZeroDivisors g hg h) hz
180178

181-
theorem MulEquivClass.map_nonZeroDivisors {R S F : Type*} [MonoidWithZero R] [MonoidWithZero S]
182-
[EquivLike F R S] [MulEquivClass F R S] (h : F) :
183-
Submonoid.map h (nonZeroDivisors R) = nonZeroDivisors S := by
184-
let h : R ≃* S := h
179+
theorem MulEquivClass.map_nonZeroDivisors {M₀ S F : Type*} [MonoidWithZero M₀] [MonoidWithZero S]
180+
[EquivLike F M₀ S] [MulEquivClass F M₀ S] (h : F) :
181+
Submonoid.map h (nonZeroDivisors M₀) = nonZeroDivisors S := by
182+
let h : M₀ ≃* S := h
185183
show Submonoid.map h.toMonoidHom _ = _
186184
ext
187185
simp_rw [Submonoid.map_equiv_eq_comap_symm, Submonoid.mem_comap, mem_nonZeroDivisors_iff,
188186
← h.symm.forall_congr_right, h.symm.coe_toMonoidHom, h.symm.toEquiv_eq_coe, h.symm.coe_toEquiv,
189187
← map_mul, map_eq_zero_iff _ h.symm.injective]
190188

191-
theorem le_nonZeroDivisors_of_noZeroDivisors [NoZeroDivisors M] {S : Submonoid M}
192-
(hS : (0 : M) ∉ S) : S ≤ M⁰ := fun _ hx _ hy ↦
193-
Or.recOn (eq_zero_or_eq_zero_of_mul_eq_zero hy) id fun h ↦
194-
absurd (h ▸ hx : (0 : M) ∈ S) hS
195-
196-
theorem powers_le_nonZeroDivisors_of_noZeroDivisors [NoZeroDivisors M] {a : M} (ha : a ≠ 0) :
197-
Submonoid.powers a ≤ M⁰ :=
198-
le_nonZeroDivisors_of_noZeroDivisors fun h ↦ absurd (h.recOn fun _ hn ↦ pow_eq_zero hn) ha
199-
200-
theorem map_le_nonZeroDivisors_of_injective [NoZeroDivisors M'] [MonoidWithZeroHomClass F M M']
201-
(f : F) (hf : Function.Injective f) {S : Submonoid M} (hS : S ≤ M⁰) : S.map f ≤ M'⁰ := by
202-
cases subsingleton_or_nontrivial M
189+
theorem map_le_nonZeroDivisors_of_injective [NoZeroDivisors M₀'] [MonoidWithZeroHomClass F M₀ M₀']
190+
(f : F) (hf : Injective f) {S : Submonoid M₀} (hS : S ≤ M₀⁰) : S.map f ≤ M₀'⁰ := by
191+
cases subsingleton_or_nontrivial M₀
203192
· simp [Subsingleton.elim S ⊥]
204-
· exact le_nonZeroDivisors_of_noZeroDivisors fun h ↦
205-
let ⟨x, hx, hx0⟩ := h
206-
zero_ne_one (hS (hf (hx0.trans (map_zero f).symm) ▸ hx : 0 ∈ S) 1 (mul_zero 1)).symm
193+
· refine le_nonZeroDivisors_of_noZeroDivisors ?_
194+
rintro ⟨x, hx, hx0⟩
195+
exact one_ne_zero <| hS (hf (hx0.trans (map_zero f).symm) ▸ hx : 0 ∈ S) 1 (mul_zero 1)
207196

208-
theorem nonZeroDivisors_le_comap_nonZeroDivisors_of_injective [NoZeroDivisors M']
209-
[MonoidWithZeroHomClass F M M'] (f : F) (hf : Function.Injective f) : M⁰ ≤ M'⁰.comap f :=
197+
theorem nonZeroDivisors_le_comap_nonZeroDivisors_of_injective [NoZeroDivisors M']
198+
[MonoidWithZeroHomClass F M₀ M₀'] (f : F) (hf : Injective f) : M⁰ ≤ M'⁰.comap f :=
210199
Submonoid.le_comap_of_map_le _ (map_le_nonZeroDivisors_of_injective _ hf le_rfl)
211200

212201
/-- If an element maps to a non-zero-divisor via injective homomorphism,
213-
then it is non-zero-divisor. -/
214-
theorem mem_nonZeroDivisors_of_injective [MonoidWithZeroHomClass F M M'] {f : F}
215-
(hf : Function.Injective f) {a : M} (ha : f a ∈ M'⁰) : a ∈ M⁰ :=
216-
fun x hx ↦ hf <| map_zero f ▸ ha (f x) (map_mul f x a ▸ map_zero f ▸ congrArg f hx)
202+
then it is a non-zero-divisor. -/
203+
theorem mem_nonZeroDivisors_of_injective [MonoidWithZeroHomClass F M₀ M₀'] {f : F}
204+
(hf : Injective f) (hx : f x ∈ M'⁰) : x ∈ M⁰ :=
205+
fun y hy ↦ hf <| map_zero f ▸ hx (f y) (map_mul f y x ▸ map_zero f ▸ congrArg f hy)
217206

218207
@[deprecated (since := "2025-02-03")]
219208
alias mem_nonZeroDivisor_of_injective := mem_nonZeroDivisors_of_injective
220209

221-
theorem comap_nonZeroDivisors_le_of_injective [MonoidWithZeroHomClass F M M'] {f : F}
222-
(hf : Function.Injective f) : M'⁰.comap f ≤ M⁰ :=
210+
theorem comap_nonZeroDivisors_le_of_injective [MonoidWithZeroHomClass F M₀ M₀'] {f : F}
211+
(hf : Injective f) : M'⁰.comap f ≤ M⁰ :=
223212
fun _ ha ↦ mem_nonZeroDivisors_of_injective hf (Submonoid.mem_comap.mp ha)
224213

225214
@[deprecated (since := "2025-02-03")]
226215
alias comap_nonZeroDivisor_le_of_injective := comap_nonZeroDivisors_le_of_injective
227216

228217
end MonoidWithZero
229218

219+
section CommMonoidWithZero
220+
variable {M₀ : Type*} [CommMonoidWithZero M₀] {a b r x : M₀}
221+
222+
lemma mul_left_mem_nonZeroDivisors_eq_zero_iff (hr : r ∈ M₀⁰) : r * x = 0 ↔ x = 0 := by
223+
rw [mul_comm, mul_right_mem_nonZeroDivisors_eq_zero_iff hr]
224+
225+
@[simp]
226+
lemma mul_left_coe_nonZeroDivisors_eq_zero_iff {c : M₀⁰} : (c : M₀) * x = 0 ↔ x = 0 :=
227+
mul_left_mem_nonZeroDivisors_eq_zero_iff c.prop
228+
229+
lemma mul_mem_nonZeroDivisors : a * b ∈ M₀⁰ ↔ a ∈ M₀⁰ ∧ b ∈ M₀⁰ where
230+
mp h := by
231+
constructor <;> intro x h' <;> apply h
232+
· rw [← mul_assoc, h', zero_mul]
233+
· rw [mul_comm a b, ← mul_assoc, h', zero_mul]
234+
mpr := by
235+
rintro ⟨ha, hb⟩ x hx
236+
apply ha
237+
apply hb
238+
rw [mul_assoc, hx]
239+
240+
end CommMonoidWithZero
241+
230242
section GroupWithZero
231243
variable {G₀ : Type*} [GroupWithZero G₀] {x : G₀}
232244

@@ -248,21 +260,21 @@ section nonZeroSMulDivisors
248260

249261
open nonZeroSMulDivisors nonZeroDivisors
250262

251-
variable {R M : Type*} [MonoidWithZero R] [Zero M] [MulAction R M]
263+
variable {M₀ M : Type*} [MonoidWithZero M₀] [Zero M] [MulAction M₀ M] {x : M₀}
252264

253-
lemma mem_nonZeroSMulDivisors_iff {x : R} : x ∈ R⁰[M] ↔ ∀ (m : M), x • m = 0 → m = 0 := Iff.rfl
265+
lemma mem_nonZeroSMulDivisors_iff : x ∈ M₀⁰[M] ↔ ∀ (m : M), x • m = 0 → m = 0 := Iff.rfl
254266

255-
variable (R)
267+
variable (M₀)
256268

257269
@[simp]
258270
lemma unop_nonZeroSMulDivisors_mulOpposite_eq_nonZeroDivisors :
259-
(Rᵐᵒᵖ ⁰[R]).unop = R⁰ := rfl
271+
(M₀ᵐᵒᵖ ⁰[M₀]).unop = M₀⁰ := rfl
260272

261273
/-- The non-zero `•`-divisors with `•` as right multiplication correspond with the non-zero
262274
divisors. Note that the `MulOpposite` is needed because we defined `nonZeroDivisors` with
263275
multiplication on the right. -/
264276
lemma nonZeroSMulDivisors_mulOpposite_eq_op_nonZeroDivisors :
265-
Rᵐᵒᵖ ⁰[R] = R⁰.op := rfl
277+
M₀ᵐᵒᵖ ⁰[M₀] = M₀⁰.op := rfl
266278

267279
end nonZeroSMulDivisors
268280

0 commit comments

Comments
 (0)