Documentation

Mathlib.Topology.Algebra.Group.SubmonoidClosure

Topological closure of the submonoid closure #

In this file we prove several versions of the following statement: if G is a compact topological group and s : Set G, then the topological closures of Submonoid.closure s and Subgroup.closure s are equal.

The proof is based on the following observation, see mapClusterPt_self_zpow_atTop_pow: each x^m, m : ℤ is a limit point (MapClusterPt) of the sequence x^n, n : ℕ, as n → ∞.

theorem mapClusterPt_atTop_zpow_iff_pow {G : Type u_1} [DivInvMonoid G] [TopologicalSpace G] {x : G} {y : G} :
(MapClusterPt x Filter.atTop fun (x : ) => y ^ x) MapClusterPt x Filter.atTop fun (x : ) => y ^ x
theorem mapClusterPt_atTop_zsmul_iff_nsmul {G : Type u_1} [SubNegMonoid G] [TopologicalSpace G] {x : G} {y : G} :
(MapClusterPt x Filter.atTop fun (x : ) => x y) MapClusterPt x Filter.atTop fun (x : ) => x y
theorem mapClusterPt_self_zpow_atTop_pow {G : Type u_1} [Group G] [TopologicalSpace G] [CompactSpace G] [TopologicalGroup G] (x : G) (m : ) :
MapClusterPt (x ^ m) Filter.atTop fun (x_1 : ) => x ^ x_1
theorem mapClusterPt_self_zsmul_atTop_nsmul {G : Type u_1} [AddGroup G] [TopologicalSpace G] [CompactSpace G] [TopologicalAddGroup G] (x : G) (m : ) :
MapClusterPt (m x) Filter.atTop fun (x_1 : ) => x_1 x
theorem mapClusterPt_one_atTop_pow {G : Type u_1} [Group G] [TopologicalSpace G] [CompactSpace G] [TopologicalGroup G] (x : G) :
MapClusterPt 1 Filter.atTop fun (x_1 : ) => x ^ x_1
theorem mapClusterPt_zero_atTop_nsmul {G : Type u_1} [AddGroup G] [TopologicalSpace G] [CompactSpace G] [TopologicalAddGroup G] (x : G) :
MapClusterPt 0 Filter.atTop fun (x_1 : ) => x_1 x
theorem mapClusterPt_self_atTop_pow {G : Type u_1} [Group G] [TopologicalSpace G] [CompactSpace G] [TopologicalGroup G] (x : G) :
MapClusterPt x Filter.atTop fun (x_1 : ) => x ^ x_1
theorem mapClusterPt_self_atTop_nsmul {G : Type u_1} [AddGroup G] [TopologicalSpace G] [CompactSpace G] [TopologicalAddGroup G] (x : G) :
MapClusterPt x Filter.atTop fun (x_1 : ) => x_1 x
theorem mapClusterPt_atTop_pow_tfae {G : Type u_1} [Group G] [TopologicalSpace G] [CompactSpace G] [TopologicalGroup G] (x : G) (y : G) :
[MapClusterPt x Filter.atTop fun (x : ) => y ^ x, MapClusterPt x Filter.atTop fun (x : ) => y ^ x, x closure (Set.range fun (x : ) => y ^ x), x closure (Set.range fun (x : ) => y ^ x)].TFAE
theorem mapClusterPt_atTop_nsmul_tfae {G : Type u_1} [AddGroup G] [TopologicalSpace G] [CompactSpace G] [TopologicalAddGroup G] (x : G) (y : G) :
[MapClusterPt x Filter.atTop fun (x : ) => x y, MapClusterPt x Filter.atTop fun (x : ) => x y, x closure (Set.range fun (x : ) => x y), x closure (Set.range fun (x : ) => x y)].TFAE
theorem mapClusterPt_atTop_pow_iff_mem_topologicalClosure_zpowers {G : Type u_1} [Group G] [TopologicalSpace G] [CompactSpace G] [TopologicalGroup G] {x : G} {y : G} :
(MapClusterPt x Filter.atTop fun (x : ) => y ^ x) x (Subgroup.zpowers y).topologicalClosure
theorem mapClusterPt_atTop_nsmul_iff_mem_topologicalClosure_zmultiples {G : Type u_1} [AddGroup G] [TopologicalSpace G] [CompactSpace G] [TopologicalAddGroup G] {x : G} {y : G} :
(MapClusterPt x Filter.atTop fun (x : ) => x y) x (AddSubgroup.zmultiples y).topologicalClosure
@[simp]
theorem mapClusterPt_inv_atTop_pow {G : Type u_1} [Group G] [TopologicalSpace G] [CompactSpace G] [TopologicalGroup G] {x : G} {y : G} :
(MapClusterPt x⁻¹ Filter.atTop fun (x : ) => y ^ x) MapClusterPt x Filter.atTop fun (x : ) => y ^ x
@[simp]
theorem mapClusterPt_neg_atTop_nsmul {G : Type u_1} [AddGroup G] [TopologicalSpace G] [CompactSpace G] [TopologicalAddGroup G] {x : G} {y : G} :
(MapClusterPt (-x) Filter.atTop fun (x : ) => x y) MapClusterPt x Filter.atTop fun (x : ) => x y
theorem closure_range_zpow_eq_pow {G : Type u_1} [Group G] [TopologicalSpace G] [CompactSpace G] [TopologicalGroup G] (x : G) :
closure (Set.range fun (x_1 : ) => x ^ x_1) = closure (Set.range fun (x_1 : ) => x ^ x_1)
theorem closure_range_zsmul_eq_nsmul {G : Type u_1} [AddGroup G] [TopologicalSpace G] [CompactSpace G] [TopologicalAddGroup G] (x : G) :
closure (Set.range fun (x_1 : ) => x_1 x) = closure (Set.range fun (x_1 : ) => x_1 x)
theorem denseRange_zpow_iff_pow {G : Type u_1} [Group G] [TopologicalSpace G] [CompactSpace G] [TopologicalGroup G] {x : G} :
(DenseRange fun (x_1 : ) => x ^ x_1) DenseRange fun (x_1 : ) => x ^ x_1
theorem denseRange_zsmul_iff_nsmul {G : Type u_1} [AddGroup G] [TopologicalSpace G] [CompactSpace G] [TopologicalAddGroup G] {x : G} :
(DenseRange fun (x_1 : ) => x_1 x) DenseRange fun (x_1 : ) => x_1 x
theorem topologicalClosure_subgroupClosure_toSubmonoid {G : Type u_1} [Group G] [TopologicalSpace G] [CompactSpace G] [TopologicalGroup G] (s : Set G) :
(Subgroup.closure s).topologicalClosure = (Submonoid.closure s).topologicalClosure