@@ -6,6 +6,7 @@ Authors: Patrick Massot, Johannes Hölzl
66import topology.uniform_space.uniform_convergence
77import topology.uniform_space.uniform_embedding
88import topology.uniform_space.complete_separated
9+ import topology.uniform_space.compact_separated
910import topology.algebra.group
1011import tactic.abel
1112
@@ -22,8 +23,8 @@ group naturally induces a uniform structure.
2223
2324 ## Main results
2425
25- * `topological_add_group.to_uniform_space` and `topological_add_group_is_uniform ` can be used to
26- construct a canonical uniformity for a topological add group.
26+ * `topological_add_group.to_uniform_space` and `topological_add_comm_group_is_uniform ` can be used
27+ to construct a canonical uniformity for a topological add group.
2728
2829* extension of ℤ-bilinear maps to complete groups (useful for ring completions)
2930 -/
@@ -347,8 +348,19 @@ section topological_group
347348open filter
348349variables (G : Type *) [group G] [topological_space G] [topological_group G]
349350
350- /-- The right uniformity on a topological group. -/
351- @[to_additive " The right uniformity on a topological additive group" ]
351+ /-- The right uniformity on a topological group (as opposed to the left uniformity).
352+
353+ Warning: in general the right and left uniformities do not coincide and so one does not obtain a
354+ `uniform_group` structure. Two important special cases where they _do_ coincide are for
355+ commutative groups (see `topological_comm_group_is_uniform`) and for compact Hausdorff groups (see
356+ `topological_group_is_uniform_of_compact_space`). -/
357+ @[to_additive " The right uniformity on a topological additive group (as opposed to the left
358+ uniformity).
359+
360+ Warning: in general the right and left uniformities do not coincide and so one does not obtain a
361+ `uniform_add_group` structure. Two important special cases where they _do_ coincide are for
362+ commutative additive groups (see `topological_add_comm_group_is_uniform`) and for compact Hausdorff
363+ additive groups (see `topological_add_comm_group_is_uniform_of_compact_space`)." ]
352364def topological_group.to_uniform_space : uniform_space G :=
353365{ uniformity := comap (λp:G×G, p.2 / p.1 ) (𝓝 1 ),
354366 refl :=
@@ -400,6 +412,14 @@ local attribute [instance] topological_group.to_uniform_space
400412@[to_additive] lemma uniformity_eq_comap_nhds_one' :
401413 𝓤 G = comap (λp:G×G, p.2 / p.1 ) (𝓝 (1 : G)) := rfl
402414
415+ @[to_additive] lemma topological_group_is_uniform_of_compact_space
416+ [compact_space G] [t2_space G] : uniform_group G :=
417+ ⟨begin
418+ haveI : separated_space G := separated_iff_t2.mpr (by apply_instance),
419+ apply compact_space.uniform_continuous_of_continuous,
420+ exact continuous_div',
421+ end ⟩
422+
403423variables {G}
404424
405425@[to_additive] lemma topological_group.tendsto_uniformly_iff
@@ -442,7 +462,7 @@ section
442462local attribute [instance] topological_group.to_uniform_space
443463
444464variable {G}
445- @[to_additive] lemma topological_group_is_uniform : uniform_group G :=
465+ @[to_additive] lemma topological_comm_group_is_uniform : uniform_group G :=
446466have tendsto
447467 ((λp:(G×G), p.1 / p.2 ) ∘ (λp:(G×G)×(G×G), (p.1 .2 / p.1 .1 , p.2 .2 / p.2 .1 )))
448468 (comap (λp:(G×G)×(G×G), (p.1 .2 / p.1 .1 , p.2 .2 / p.2 .1 )) ((𝓝 1 ).prod (𝓝 1 )))
@@ -460,7 +480,7 @@ open set
460480@[to_additive] lemma topological_group.t2_space_iff_one_closed :
461481 t2_space G ↔ is_closed ({1 } : set G) :=
462482begin
463- haveI : uniform_group G := topological_group_is_uniform ,
483+ haveI : uniform_group G := topological_comm_group_is_uniform ,
464484 rw [← separated_iff_t2, separated_space_iff, ← closure_eq_iff_is_closed],
465485 split; intro h,
466486 { apply subset.antisymm,
0 commit comments