@@ -9,7 +9,6 @@ public import Mathlib.Algebra.Group.Action.Pointwise.Set.Basic
99public import Mathlib.Algebra.GroupWithZero.Action.Basic
1010public import Mathlib.Algebra.GroupWithZero.Action.Units
1111public import Mathlib.Algebra.GroupWithZero.Pointwise.Set.Basic
12- public import Mathlib.Algebra.NoZeroSMulDivisors.Defs
1312
1413/-!
1514# Pointwise operations of sets in a group with zero
@@ -59,13 +58,6 @@ lemma Nonempty.smul_zero (hs : s.Nonempty) : s • (0 : Set β) = 0 :=
5958
6059lemma zero_mem_smul_set (h : (0 : β) ∈ t) : (0 : β) ∈ a • t := ⟨0 , h, smul_zero _⟩
6160
62- variable [Zero α] [NoZeroSMulDivisors α β]
63-
64- lemma zero_mem_smul_set_iff (ha : a ≠ 0 ) : (0 : β) ∈ a • t ↔ (0 : β) ∈ t := by
65- refine ⟨?_, zero_mem_smul_set⟩
66- rintro ⟨b, hb, h⟩
67- rwa [(eq_zero_or_eq_zero_of_smul_eq_zero h).resolve_left ha] at hb
68-
6961end SMulZeroClass
7062section SMulWithZero
7163
@@ -91,19 +83,6 @@ lemma zero_smul_set_subset (s : Set β) : (0 : α) • s ⊆ 0 :=
9183lemma subsingleton_zero_smul_set (s : Set β) : ((0 : α) • s).Subsingleton :=
9284 subsingleton_singleton.anti <| zero_smul_set_subset s
9385
94- variable [NoZeroSMulDivisors α β] {a : α}
95-
96- lemma zero_mem_smul_iff : 0 ∈ s • t ↔ 0 ∈ s ∧ t.Nonempty ∨ 0 ∈ t ∧ s.Nonempty where
97- mp := by
98- rintro ⟨a, ha, b, hb, h⟩
99- obtain rfl | rfl := eq_zero_or_eq_zero_of_smul_eq_zero h
100- · exact Or.inl ⟨ha, b, hb⟩
101- · exact Or.inr ⟨hb, a, ha⟩
102- mpr := by
103- rintro (⟨hs, b, hb⟩ | ⟨ht, a, ha⟩)
104- · exact ⟨0 , hs, b, hb, zero_smul _ _⟩
105- · exact ⟨a, ha, 0 , ht, smul_zero _⟩
106-
10786end SMulWithZero
10887
10988/-- If the scalar multiplication `(· • ·) : α → β → β` is distributive,
@@ -129,28 +108,14 @@ protected noncomputable def mulDistribMulActionSet [Monoid α] [Monoid β] [MulD
129108
130109scoped [Pointwise] attribute [instance] Set.distribMulActionSet Set.mulDistribMulActionSet
131110
132- instance instNoZeroSMulDivisors [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] :
133- NoZeroSMulDivisors (Set α) (Set β) where
134- eq_zero_or_eq_zero_of_smul_eq_zero {s t} h := by
111+ instance [Zero α] [Mul α] [NoZeroDivisors α] : NoZeroDivisors (Set α) where
112+ eq_zero_or_eq_zero_of_mul_eq_zero {s t} h := by
135113 by_contra! H
136- have hst : (s • t).Nonempty := h.symm.subst zero_nonempty
137- rw [Ne, ← hst.of_smul_left.subset_zero_iff, Ne,
138- ← hst.of_smul_right.subset_zero_iff] at H
114+ have hst : (s * t).Nonempty := h.symm.subst zero_nonempty
115+ rw [Ne, ← hst.of_smul_left.subset_zero_iff, Ne, ← hst.of_smul_right.subset_zero_iff] at H
139116 simp only [not_subset, mem_zero] at H
140117 obtain ⟨⟨a, hs, ha⟩, b, ht, hb⟩ := H
141- exact (eq_zero_or_eq_zero_of_smul_eq_zero <| h.subset <| smul_mem_smul hs ht).elim ha hb
142-
143- instance noZeroSMulDivisors_set [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] :
144- NoZeroSMulDivisors α (Set β) where
145- eq_zero_or_eq_zero_of_smul_eq_zero {a s} h := by
146- by_contra! H
147- have hst : (a • s).Nonempty := h.symm.subst zero_nonempty
148- rw [Ne, Ne, ← hst.of_image.subset_zero_iff, not_subset] at H
149- obtain ⟨ha, b, ht, hb⟩ := H
150- exact (eq_zero_or_eq_zero_of_smul_eq_zero <| h.subset <| smul_mem_smul_set ht).elim ha hb
151-
152- instance [Zero α] [Mul α] [NoZeroDivisors α] : NoZeroDivisors (Set α) where
153- eq_zero_or_eq_zero_of_mul_eq_zero h := eq_zero_or_eq_zero_of_smul_eq_zero h
118+ exact (eq_zero_or_eq_zero_of_mul_eq_zero <| h.subset <| mul_mem_mul hs ht).elim ha hb
154119
155120section GroupWithZero
156121variable [GroupWithZero α] [MulAction α β] {s t : Set β} {a : α}
0 commit comments