@@ -8,6 +8,7 @@ import topology.continuous_function.ordered
8
8
import topology.algebra.uniform_group
9
9
import topology.uniform_space.compact_convergence
10
10
import topology.algebra.star
11
+ import topology.algebra.infinite_sum
11
12
import algebra.algebra.pi
12
13
import algebra.algebra.subalgebra.basic
13
14
import tactic.field_simp
@@ -180,51 +181,43 @@ end subtype
180
181
181
182
namespace continuous_map
182
183
184
+ variables {α β : Type *} [topological_space α] [topological_space β]
185
+
183
186
@[to_additive]
184
- instance {α : Type *} {β : Type *} [topological_space α]
185
- [topological_space β] [semigroup β] [has_continuous_mul β] : semigroup C(α, β) :=
187
+ instance [semigroup β] [has_continuous_mul β] : semigroup C(α, β) :=
186
188
coe_injective.semigroup _ coe_mul
187
189
188
190
@[to_additive]
189
- instance {α : Type *} {β : Type *} [topological_space α]
190
- [topological_space β] [comm_semigroup β] [has_continuous_mul β] : comm_semigroup C(α, β) :=
191
+ instance [comm_semigroup β] [has_continuous_mul β] : comm_semigroup C(α, β) :=
191
192
coe_injective.comm_semigroup _ coe_mul
192
193
193
194
@[to_additive]
194
- instance {α : Type *} {β : Type *} [topological_space α]
195
- [topological_space β] [mul_one_class β] [has_continuous_mul β] : mul_one_class C(α, β) :=
195
+ instance [mul_one_class β] [has_continuous_mul β] : mul_one_class C(α, β) :=
196
196
coe_injective.mul_one_class _ coe_one coe_mul
197
197
198
- instance {α : Type *} {β : Type *} [topological_space α]
199
- [topological_space β] [mul_zero_class β] [has_continuous_mul β] : mul_zero_class C(α, β) :=
198
+ instance [mul_zero_class β] [has_continuous_mul β] : mul_zero_class C(α, β) :=
200
199
coe_injective.mul_zero_class _ coe_zero coe_mul
201
200
202
- instance {α : Type *} {β : Type *} [topological_space α] [topological_space β]
203
- [semigroup_with_zero β] [has_continuous_mul β] : semigroup_with_zero C(α, β) :=
201
+ instance [semigroup_with_zero β] [has_continuous_mul β] : semigroup_with_zero C(α, β) :=
204
202
coe_injective.semigroup_with_zero _ coe_zero coe_mul
205
203
206
204
@[to_additive]
207
- instance {α : Type *} {β : Type *} [topological_space α] [topological_space β]
208
- [monoid β] [has_continuous_mul β] : monoid C(α, β) :=
205
+ instance [monoid β] [has_continuous_mul β] : monoid C(α, β) :=
209
206
coe_injective.monoid _ coe_one coe_mul coe_pow
210
207
211
- instance {α : Type *} {β : Type *} [topological_space α] [topological_space β]
212
- [monoid_with_zero β] [has_continuous_mul β] : monoid_with_zero C(α, β) :=
208
+ instance [monoid_with_zero β] [has_continuous_mul β] : monoid_with_zero C(α, β) :=
213
209
coe_injective.monoid_with_zero _ coe_zero coe_one coe_mul coe_pow
214
210
215
211
@[to_additive]
216
- instance {α : Type *} {β : Type *} [topological_space α]
217
- [topological_space β] [comm_monoid β] [has_continuous_mul β] : comm_monoid C(α, β) :=
212
+ instance [comm_monoid β] [has_continuous_mul β] : comm_monoid C(α, β) :=
218
213
coe_injective.comm_monoid _ coe_one coe_mul coe_pow
219
214
220
- instance {α : Type *} {β : Type *} [topological_space α] [topological_space β]
221
- [comm_monoid_with_zero β] [has_continuous_mul β] : comm_monoid_with_zero C(α, β) :=
215
+ instance [comm_monoid_with_zero β] [has_continuous_mul β] : comm_monoid_with_zero C(α, β) :=
222
216
coe_injective.comm_monoid_with_zero _ coe_zero coe_one coe_mul coe_pow
223
217
224
218
@[to_additive]
225
- instance {α : Type *} {β : Type *} [topological_space α]
226
- [locally_compact_space α] [topological_space β]
227
- [has_mul β] [has_continuous_mul β] : has_continuous_mul C(α, β) :=
219
+ instance [locally_compact_space α] [has_mul β] [has_continuous_mul β] :
220
+ has_continuous_mul C(α, β) :=
228
221
⟨begin
229
222
refine continuous_of_continuous_uncurry _ _,
230
223
have h1 : continuous (λ x : (C(α, β) × C(α, β)) × α, x.fst.fst x.snd) :=
@@ -237,56 +230,53 @@ end⟩
237
230
/-- Coercion to a function as an `monoid_hom`. Similar to `monoid_hom.coe_fn`. -/
238
231
@[to_additive " Coercion to a function as an `add_monoid_hom`. Similar to `add_monoid_hom.coe_fn`." ,
239
232
simps]
240
- def coe_fn_monoid_hom {α : Type *} {β : Type *} [topological_space α] [topological_space β]
241
- [monoid β] [has_continuous_mul β] : C(α, β) →* (α → β) :=
233
+ def coe_fn_monoid_hom [monoid β] [has_continuous_mul β] : C(α, β) →* (α → β) :=
242
234
{ to_fun := coe_fn, map_one' := coe_one, map_mul' := coe_mul }
243
235
236
+ variables (α)
237
+
244
238
/-- Composition on the left by a (continuous) homomorphism of topological monoids, as a
245
239
`monoid_hom`. Similar to `monoid_hom.comp_left`. -/
246
240
@[to_additive " Composition on the left by a (continuous) homomorphism of topological `add_monoid`s,
247
241
as an `add_monoid_hom`. Similar to `add_monoid_hom.comp_left`." , simps]
248
- protected def _root_.monoid_hom.comp_left_continuous (α : Type *) {β : Type *} {γ : Type *}
249
- [topological_space α] [topological_space β] [monoid β] [has_continuous_mul β]
242
+ protected def _root_.monoid_hom.comp_left_continuous
243
+ {γ : Type *} [monoid β] [has_continuous_mul β]
250
244
[topological_space γ] [monoid γ] [has_continuous_mul γ] (g : β →* γ) (hg : continuous g) :
251
245
C(α, β) →* C(α, γ) :=
252
246
{ to_fun := λ f, (⟨g, hg⟩ : C(β, γ)).comp f,
253
247
map_one' := ext $ λ x, g.map_one,
254
248
map_mul' := λ f₁ f₂, ext $ λ x, g.map_mul _ _ }
255
249
250
+ variables {α}
251
+
256
252
/-- Composition on the right as a `monoid_hom`. Similar to `monoid_hom.comp_hom'`. -/
257
253
@[to_additive " Composition on the right as an `add_monoid_hom`. Similar to
258
254
`add_monoid_hom.comp_hom'`." , simps]
259
- def comp_monoid_hom' {α : Type *} {β : Type *} {γ : Type *}
260
- [topological_space α] [topological_space β] [topological_space γ]
255
+ def comp_monoid_hom' {γ : Type *} [topological_space γ]
261
256
[mul_one_class γ] [has_continuous_mul γ] (g : C(α, β)) : C(β, γ) →* C(α, γ) :=
262
257
{ to_fun := λ f, f.comp g, map_one' := one_comp g, map_mul' := λ f₁ f₂, mul_comp f₁ f₂ g }
263
258
264
259
open_locale big_operators
265
- @[simp, to_additive] lemma coe_prod {α : Type *} {β : Type *} [comm_monoid β]
266
- [topological_space α] [topological_space β] [has_continuous_mul β]
260
+ @[simp, to_additive] lemma coe_prod [comm_monoid β] [has_continuous_mul β]
267
261
{ι : Type *} (s : finset ι) (f : ι → C(α, β)) :
268
262
⇑(∏ i in s, f i) = (∏ i in s, (f i : α → β)) :=
269
263
(coe_fn_monoid_hom : C(α, β) →* _).map_prod f s
270
264
271
265
@[to_additive]
272
- lemma prod_apply {α : Type *} {β : Type *} [comm_monoid β]
273
- [topological_space α] [topological_space β] [has_continuous_mul β]
266
+ lemma prod_apply [comm_monoid β] [has_continuous_mul β]
274
267
{ι : Type *} (s : finset ι) (f : ι → C(α, β)) (a : α) :
275
268
(∏ i in s, f i) a = (∏ i in s, f i a) :=
276
269
by simp
277
270
278
271
@[to_additive]
279
- instance {α : Type *} {β : Type *} [topological_space α] [topological_space β]
280
- [group β] [topological_group β] : group C(α, β) :=
272
+ instance [group β] [topological_group β] : group C(α, β) :=
281
273
coe_injective.group _ coe_one coe_mul coe_inv coe_div coe_pow coe_zpow
282
274
283
275
@[to_additive]
284
- instance {α : Type *} {β : Type *} [topological_space α]
285
- [topological_space β] [comm_group β] [topological_group β] : comm_group C(α, β) :=
276
+ instance [comm_group β] [topological_group β] : comm_group C(α, β) :=
286
277
coe_injective.comm_group _ coe_one coe_mul coe_inv coe_div coe_pow coe_zpow
287
278
288
- @[to_additive] instance {α : Type *} {β : Type *} [topological_space α]
289
- [topological_space β] [comm_group β] [topological_group β] : topological_group C(α, β) :=
279
+ @[to_additive] instance [comm_group β] [topological_group β] : topological_group C(α, β) :=
290
280
{ continuous_mul := by
291
281
{ letI : uniform_space β := topological_group.to_uniform_space β,
292
282
have : uniform_group β := topological_comm_group_is_uniform,
@@ -305,6 +295,30 @@ coe_injective.comm_group _ coe_one coe_mul coe_inv coe_div coe_pow coe_zpow
305
295
exactI λ K hK, uniform_continuous_inv.comp_tendsto_uniformly_on
306
296
(tendsto_iff_forall_compact_tendsto_uniformly_on.mp filter.tendsto_id K hK), } }
307
297
298
+ -- TODO: rewrite the next three lemmas for products and deduce sum case via `to_additive`, once
299
+ -- definition of `tprod` is in place
300
+
301
+ /-- If `α` is locally compact, and an infinite sum of functions in `C(α, β)`
302
+ converges to `g` (for the compact-open topology), then the pointwise sum converges to `g x` for
303
+ all `x ∈ α`. -/
304
+ lemma has_sum_apply {γ : Type *} [locally_compact_space α] [add_comm_monoid β] [has_continuous_add β]
305
+ {f : γ → C(α, β)} {g : C(α, β)} (hf : has_sum f g) (x : α) :
306
+ has_sum (λ i : γ, f i x) (g x) :=
307
+ begin
308
+ let evₓ : add_monoid_hom C(α, β) β := (pi.eval_add_monoid_hom _ x).comp coe_fn_add_monoid_hom,
309
+ exact hf.map evₓ (continuous_map.continuous_eval_const' x),
310
+ end
311
+
312
+ lemma summable_apply [locally_compact_space α] [add_comm_monoid β] [has_continuous_add β]
313
+ {γ : Type *} {f : γ → C(α, β)} (hf : summable f) (x : α) :
314
+ summable (λ i : γ, f i x) :=
315
+ (has_sum_apply hf.has_sum x).summable
316
+
317
+ lemma tsum_apply [locally_compact_space α] [t2_space β] [add_comm_monoid β] [has_continuous_add β]
318
+ {γ : Type *} {f : γ → C(α, β)} (hf : summable f) (x : α) :
319
+ (∑' (i:γ), f i x) = (∑' (i:γ), f i) x :=
320
+ (has_sum_apply hf.has_sum x).tsum_eq
321
+
308
322
end continuous_map
309
323
310
324
end group_structure
0 commit comments