@@ -3,9 +3,8 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
3
3
Released under Apache 2.0 license as described in the file LICENSE.
4
4
Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
5
5
-/
6
-
7
- import order.filter.pointwise
8
6
import group_theory.quotient_group
7
+ import order.filter.pointwise
9
8
import topology.algebra.monoid
10
9
import topology.homeomorph
11
10
import topology.compacts
@@ -119,6 +118,45 @@ lemma discrete_topology_iff_open_singleton_one : discrete_topology G ↔ is_open
119
118
120
119
end continuous_mul_group
121
120
121
+ /-!
122
+ ### Topological operations on pointwise sums and products
123
+
124
+ A few results about interior and closure of the pointwise addition/multiplication of sets in groups
125
+ with continuous addition/multiplication. See also `submonoid.top_closure_mul_self_eq` in
126
+ `topology.algebra.monoid`.
127
+ -/
128
+
129
+ section pointwise
130
+ variables [topological_space α] [group α] [has_continuous_mul α] {s t : set α}
131
+
132
+ @[to_additive]
133
+ lemma is_open.mul_left (ht : is_open t) : is_open (s * t) :=
134
+ begin
135
+ rw ←Union_mul_left_image,
136
+ exact is_open_Union (λ a, is_open_Union $ λ ha, is_open_map_mul_left a t ht),
137
+ end
138
+
139
+ @[to_additive]
140
+ lemma is_open.mul_right (hs : is_open s) : is_open (s * t) :=
141
+ begin
142
+ rw ←Union_mul_right_image,
143
+ exact is_open_Union (λ a, is_open_Union $ λ ha, is_open_map_mul_right a s hs),
144
+ end
145
+
146
+ @[to_additive]
147
+ lemma subset_interior_mul_left : interior s * t ⊆ interior (s * t) :=
148
+ interior_maximal (set.mul_subset_mul_right interior_subset) is_open_interior.mul_right
149
+
150
+ @[to_additive]
151
+ lemma subset_interior_mul_right : s * interior t ⊆ interior (s * t) :=
152
+ interior_maximal (set.mul_subset_mul_left interior_subset) is_open_interior.mul_left
153
+
154
+ @[to_additive]
155
+ lemma subset_interior_mul : interior s * interior t ⊆ interior (s * t) :=
156
+ (set.mul_subset_mul_left interior_subset).trans subset_interior_mul_left
157
+
158
+ end pointwise
159
+
122
160
section topological_group
123
161
124
162
/-!
@@ -269,7 +307,13 @@ lemma homeomorph.shear_mul_right_symm_coe :
269
307
⇑(homeomorph.shear_mul_right G).symm = λ z : G × G, (z.1 , z.1 ⁻¹ * z.2 ) :=
270
308
rfl
271
309
272
- variable {G}
310
+ variables {G}
311
+
312
+ @[to_additive]
313
+ lemma is_open.inv {s : set G} (hs : is_open s) : is_open s⁻¹ := hs.preimage continuous_inv
314
+
315
+ @[to_additive]
316
+ lemma is_closed.inv {s : set G} (hs : is_closed s) : is_closed s⁻¹ := hs.preimage continuous_inv
273
317
274
318
namespace subgroup
275
319
@@ -566,27 +610,7 @@ class add_group_with_zero_nhd (G : Type u) extends add_comm_group G :=
566
610
section filter_mul
567
611
568
612
section
569
- variables [topological_space G] [group G] [topological_group G]
570
-
571
- @[to_additive]
572
- lemma is_open.mul_left {s t : set G} : is_open t → is_open (s * t) := λ ht,
573
- begin
574
- have : ∀a, is_open ((λ (x : G), a * x) '' t) :=
575
- assume a, is_open_map_mul_left a t ht,
576
- rw ← Union_mul_left_image,
577
- exact is_open_Union (λa, is_open_Union $ λha, this _),
578
- end
579
-
580
- @[to_additive]
581
- lemma is_open.mul_right {s t : set G} : is_open s → is_open (s * t) := λ hs,
582
- begin
583
- have : ∀a, is_open ((λ (x : G), x * a) '' s),
584
- assume a, apply is_open_map_mul_right, exact hs,
585
- rw ← Union_mul_right_image,
586
- exact is_open_Union (λa, is_open_Union $ λha, this _),
587
- end
588
-
589
- variables (G)
613
+ variables (G) [topological_space G] [group G] [topological_group G]
590
614
591
615
@[to_additive]
592
616
lemma topological_group.t1_space (h : @is_closed G _ {1 }) : t1_space G :=
0 commit comments