@@ -56,6 +56,20 @@ theorem isClosed_mulTSupport (f : X → α) : IsClosed (mulTSupport f) :=
5656theorem mulTSupport_eq_empty_iff {f : X → α} : mulTSupport f = ∅ ↔ f = 1 := by
5757 rw [mulTSupport, closure_empty_iff, mulSupport_eq_empty_iff]
5858
59+ @[to_additive (attr := simp)]
60+ theorem mulTSupport_fun_one : mulTSupport (fun _ ↦ 1 : X → α) = ∅ := by
61+ rw [mulTSupport, mulSupport_fun_one, closure_empty]
62+
63+ @[to_additive (attr := simp)]
64+ theorem mulTSupport_one : mulTSupport (1 : X → α) = ∅ := by
65+ rw [mulTSupport, mulSupport_one, closure_empty]
66+
67+ @[to_additive]
68+ theorem mulTSupport_binop_subset [One β] [One γ] (op : α → β → γ)
69+ (op1 : op 1 1 = 1 ) (f : X → α) (g : X → β) :
70+ mulTSupport (fun x ↦ op (f x) (g x)) ⊆ mulTSupport f ∪ mulTSupport g :=
71+ closure_mono (mulSupport_binop_subset op op1 f g) |>.trans closure_union.subset
72+
5973@[to_additive]
6074theorem image_eq_one_of_notMem_mulTSupport {f : X → α} {x : X} (hx : x ∉ mulTSupport f) : f x = 1 :=
6175 mulSupport_subset_iff'.mp (subset_mulTSupport f) x hx
@@ -86,20 +100,49 @@ theorem tsupport_mul_subset_right {α : Type*} [MulZeroClass α] {f g : X → α
86100
87101end One
88102
89- theorem tsupport_smul_subset_left {M α} [TopologicalSpace X] [Zero M] [Zero α] [SMulWithZero M α]
103+ section Operations
104+
105+ variable [TopologicalSpace X]
106+
107+ @[to_additive (attr := simp)]
108+ theorem mulTSupport_mul [MulOneClass α] (f g : X → α) :
109+ (mulTSupport fun x ↦ f x * g x) ⊆ mulTSupport f ∪ mulTSupport g :=
110+ mulTSupport_binop_subset (· * ·) (by simp) f g
111+
112+ @[to_additive]
113+ theorem mulTSupport_pow [Monoid α] (f : X → α) (n : ℕ) :
114+ (mulTSupport fun x => f x ^ n) ⊆ mulTSupport f :=
115+ closure_mono <| mulSupport_pow f n
116+
117+ @[to_additive (attr := simp)]
118+ theorem mulTSupport_fun_inv [DivisionMonoid α] (f : X → α) :
119+ (mulTSupport fun x => (f x)⁻¹) = mulTSupport f :=
120+ congrArg closure <| mulSupport_fun_inv f
121+
122+ @[to_additive (attr := simp)]
123+ theorem mulTSupport_inv [DivisionMonoid α] (f : X → α) :
124+ mulTSupport f⁻¹ = mulTSupport f :=
125+ mulTSupport_fun_inv f
126+
127+ @[to_additive]
128+ theorem mulTSupport_mul_inv [DivisionMonoid α] (f g : X → α) :
129+ (mulTSupport fun x => f x * (g x)⁻¹) ⊆ mulTSupport f ∪ mulTSupport g :=
130+ mulTSupport_binop_subset (· * ·⁻¹) (by simp) f g
131+
132+ @[to_additive]
133+ theorem mulTSupport_div [DivisionMonoid α] (f g : X → α) :
134+ (mulTSupport fun x => f x / g x) ⊆ mulTSupport f ∪ mulTSupport g :=
135+ mulTSupport_binop_subset (· / ·) one_div_one f g
136+
137+ theorem tsupport_smul_subset_left {M α} [Zero M] [Zero α] [SMulWithZero M α]
90138 (f : X → M) (g : X → α) : (tsupport fun x => f x • g x) ⊆ tsupport f :=
91139 closure_mono <| support_smul_subset_left f g
92140
93- theorem tsupport_smul_subset_right {M α} [TopologicalSpace X] [ Zero α] [SMulZeroClass M α]
141+ theorem tsupport_smul_subset_right {M α} [Zero α] [SMulZeroClass M α]
94142 (f : X → M) (g : X → α) : (tsupport fun x => f x • g x) ⊆ tsupport g :=
95143 closure_mono <| support_smul_subset_right f g
96144
97- @[to_additive]
98- theorem mulTSupport_mul [TopologicalSpace X] [MulOneClass α] {f g : X → α} :
99- (mulTSupport fun x ↦ f x * g x) ⊆ mulTSupport f ∪ mulTSupport g :=
100- closure_minimal
101- ((mulSupport_mul f g).trans (union_subset_union (subset_mulTSupport _) (subset_mulTSupport _)))
102- (isClosed_closure.union isClosed_closure)
145+ end Operations
103146
104147section
105148
0 commit comments