Skip to content

Commit df5c1e1

Browse files
committed
feat: inv lemmas for uniform convergence, missing to_fun attributes (#35384)
1 parent 73ff1bf commit df5c1e1

File tree

1 file changed

+52
-8
lines changed

1 file changed

+52
-8
lines changed

Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean

Lines changed: 52 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -144,48 +144,92 @@ section UniformConvergence
144144

145145
variable {ι : Type*} {l : Filter ι} {l' : Filter β} {f f' : ι → β → α} {g g' : β → α} {s : Set β}
146146

147-
@[to_additive]
147+
@[to_additive (attr := to_fun)]
148148
theorem TendstoUniformlyOnFilter.mul (hf : TendstoUniformlyOnFilter f g l l')
149149
(hf' : TendstoUniformlyOnFilter f' g' l l') : TendstoUniformlyOnFilter (f * f') (g * g') l l' :=
150150
fun u hu =>
151151
((uniformContinuous_mul.comp_tendstoUniformlyOnFilter (hf.prodMk hf')) u hu).diag_of_prod_left
152152

153-
@[to_additive]
153+
attribute [to_additive existing] TendstoUniformlyOnFilter.fun_mul
154+
155+
@[to_additive (attr := to_fun)]
154156
theorem TendstoUniformlyOnFilter.div (hf : TendstoUniformlyOnFilter f g l l')
155157
(hf' : TendstoUniformlyOnFilter f' g' l l') : TendstoUniformlyOnFilter (f / f') (g / g') l l' :=
156158
fun u hu =>
157159
((uniformContinuous_div.comp_tendstoUniformlyOnFilter (hf.prodMk hf')) u hu).diag_of_prod_left
158160

159-
@[to_additive]
161+
attribute [to_additive existing] TendstoUniformlyOnFilter.fun_div
162+
163+
@[to_additive (attr := to_fun)]
164+
theorem TendstoUniformlyOnFilter.inv (hf : TendstoUniformlyOnFilter f g l l') :
165+
TendstoUniformlyOnFilter (f⁻¹) (g⁻¹) l l' :=
166+
fun u hu ↦ uniformContinuous_inv.comp_tendstoUniformlyOnFilter hf u hu
167+
168+
attribute [to_additive existing] TendstoUniformlyOnFilter.fun_inv
169+
170+
@[to_additive (attr := to_fun)]
160171
theorem TendstoUniformlyOn.mul (hf : TendstoUniformlyOn f g l s)
161172
(hf' : TendstoUniformlyOn f' g' l s) : TendstoUniformlyOn (f * f') (g * g') l s := fun u hu =>
162173
((uniformContinuous_mul.comp_tendstoUniformlyOn (hf.prodMk hf')) u hu).diag_of_prod
163174

164-
@[to_additive]
175+
attribute [to_additive existing] TendstoUniformlyOn.fun_mul
176+
177+
@[to_additive (attr := to_fun)]
165178
theorem TendstoUniformlyOn.div (hf : TendstoUniformlyOn f g l s)
166179
(hf' : TendstoUniformlyOn f' g' l s) : TendstoUniformlyOn (f / f') (g / g') l s := fun u hu =>
167180
((uniformContinuous_div.comp_tendstoUniformlyOn (hf.prodMk hf')) u hu).diag_of_prod
168181

169-
@[to_additive]
182+
attribute [to_additive existing] TendstoUniformlyOn.fun_div
183+
184+
@[to_additive (attr := to_fun)]
185+
theorem TendstoUniformlyOn.inv (hf : TendstoUniformlyOn f g l s) :
186+
TendstoUniformlyOn (f⁻¹) (g⁻¹) l s :=
187+
fun u hu ↦ uniformContinuous_inv.comp_tendstoUniformlyOn hf u hu
188+
189+
attribute [to_additive existing] TendstoUniformlyOn.fun_inv
190+
191+
@[to_additive (attr := to_fun)]
170192
theorem TendstoUniformly.mul (hf : TendstoUniformly f g l) (hf' : TendstoUniformly f' g' l) :
171193
TendstoUniformly (f * f') (g * g') l := fun u hu =>
172194
((uniformContinuous_mul.comp_tendstoUniformly (hf.prodMk hf')) u hu).diag_of_prod
173195

174-
@[to_additive]
196+
attribute [to_additive existing] TendstoUniformly.fun_mul
197+
198+
@[to_additive (attr := to_fun)]
175199
theorem TendstoUniformly.div (hf : TendstoUniformly f g l) (hf' : TendstoUniformly f' g' l) :
176200
TendstoUniformly (f / f') (g / g') l := fun u hu =>
177201
((uniformContinuous_div.comp_tendstoUniformly (hf.prodMk hf')) u hu).diag_of_prod
178202

179-
@[to_additive]
203+
attribute [to_additive existing] TendstoUniformly.fun_div
204+
205+
@[to_additive (attr := to_fun)]
206+
theorem TendstoUniformly.inv (hf : TendstoUniformly f g l) :
207+
TendstoUniformly (f⁻¹) (g⁻¹) l :=
208+
fun u hu ↦ uniformContinuous_inv.comp_tendstoUniformly hf u hu
209+
210+
attribute [to_additive existing] TendstoUniformly.fun_inv
211+
212+
@[to_additive (attr := to_fun)]
180213
theorem UniformCauchySeqOn.mul (hf : UniformCauchySeqOn f l s) (hf' : UniformCauchySeqOn f' l s) :
181214
UniformCauchySeqOn (f * f') l s := fun u hu => by
182215
simpa using (uniformContinuous_mul.comp_uniformCauchySeqOn (hf.prod' hf')) u hu
183216

184-
@[to_additive]
217+
attribute [to_additive existing] UniformCauchySeqOn.fun_mul
218+
219+
@[to_additive (attr := to_fun)]
185220
theorem UniformCauchySeqOn.div (hf : UniformCauchySeqOn f l s) (hf' : UniformCauchySeqOn f' l s) :
186221
UniformCauchySeqOn (f / f') l s := fun u hu => by
187222
simpa using (uniformContinuous_div.comp_uniformCauchySeqOn (hf.prod' hf')) u hu
188223

224+
attribute [to_additive existing] UniformCauchySeqOn.fun_div
225+
226+
@[to_additive (attr := to_fun)]
227+
theorem UniformCauchySeqOn.inv (hf : UniformCauchySeqOn f l s) :
228+
UniformCauchySeqOn (f⁻¹) l s :=
229+
fun u hu ↦ by simpa using (uniformContinuous_inv.comp_uniformCauchySeqOn hf u hu)
230+
231+
attribute [to_additive existing] UniformCauchySeqOn.fun_inv
232+
189233
end UniformConvergence
190234

191235
section LocalUniformConvergence

0 commit comments

Comments
 (0)