Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 678566f

Browse files
committed
feat(topology/algebra/group): Addition of interiors (#10659)
This proves `interior s * t ⊆ interior (s * t)`, a few prerequisites, and generalizes to `is_open.mul_left`/`is_open.mul_right`.
1 parent eedb906 commit 678566f

File tree

3 files changed

+63
-30
lines changed

3 files changed

+63
-30
lines changed

src/algebra/pointwise.lean

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,12 @@ end
216216
lemma mul_subset_mul [has_mul α] (h₁ : s₁ ⊆ t₁) (h₂ : s₂ ⊆ t₂) : s₁ * s₂ ⊆ t₁ * t₂ :=
217217
image2_subset h₁ h₂
218218

219+
@[to_additive]
220+
lemma mul_subset_mul_left [has_mul α] (h : t₁ ⊆ t₂) : s * t₁ ⊆ s * t₂ := image2_subset_left h
221+
222+
@[to_additive]
223+
lemma mul_subset_mul_right [has_mul α] (h : s₁ ⊆ s₂) : s₁ * t ⊆ s₂ * t := image2_subset_right h
224+
219225
lemma pow_subset_pow [monoid α] (hst : s ⊆ t) (n : ℕ) :
220226
s ^ n ⊆ t ^ n :=
221227
begin

src/data/set/basic.lean

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -682,7 +682,7 @@ begin
682682
end
683683

684684
theorem ssubset_insert {s : set α} {a : α} (h : a ∉ s) : s ⊂ insert a s :=
685-
ssubset_iff_insert.2 ⟨a, h, subset.refl _
685+
ssubset_iff_insert.2 ⟨a, h, subset.rfl
686686

687687
theorem insert_comm (a b : α) (s : set α) : insert a (insert b s) = insert b (insert a s) :=
688688
ext $ λ x, or.left_comm
@@ -1477,9 +1477,8 @@ instance (f : α → β) (s : set α) [nonempty s] : nonempty (f '' s) :=
14771477
f '' s ⊆ t ↔ s ⊆ f ⁻¹' t :=
14781478
ball_image_iff
14791479

1480-
theorem image_preimage_subset (f : α → β) (s : set β) :
1481-
f '' (f ⁻¹' s) ⊆ s :=
1482-
image_subset_iff.2 (subset.refl _)
1480+
theorem image_preimage_subset (f : α → β) (s : set β) : f '' (f ⁻¹' s) ⊆ s :=
1481+
image_subset_iff.2 subset.rfl
14831482

14841483
theorem subset_preimage_image (f : α → β) (s : set α) :
14851484
s ⊆ f ⁻¹' (f '' s) :=
@@ -2551,8 +2550,7 @@ variable {α : Type*}
25512550
def inclusion {s t : set α} (h : s ⊆ t) : s → t :=
25522551
λ x : s, (⟨x, h x.2⟩ : t)
25532552

2554-
@[simp] lemma inclusion_self {s : set α} (x : s) :
2555-
inclusion (set.subset.refl _) x = x :=
2553+
@[simp] lemma inclusion_self {s : set α} (x : s) : inclusion subset.rfl x = x :=
25562554
by { cases x, refl }
25572555

25582556
@[simp] lemma inclusion_right {s t : set α} (h : s ⊆ t) (x : t) (m : (x : α) ∈ s) :
@@ -2657,6 +2655,11 @@ lemma mem_image2_iff (hf : injective2 f) : f a b ∈ image2 f s t ↔ a ∈ s
26572655
lemma image2_subset (hs : s ⊆ s') (ht : t ⊆ t') : image2 f s t ⊆ image2 f s' t' :=
26582656
by { rintro _ ⟨a, b, ha, hb, rfl⟩, exact mem_image2_of_mem (hs ha) (ht hb) }
26592657

2658+
lemma image2_subset_left (ht : t ⊆ t') : image2 f s t ⊆ image2 f s t' := image2_subset subset.rfl ht
2659+
2660+
lemma image2_subset_right (hs : s ⊆ s') : image2 f s t ⊆ image2 f s' t :=
2661+
image2_subset hs subset.rfl
2662+
26602663
lemma forall_image2_iff {p : γ → Prop} :
26612664
(∀ z ∈ image2 f s t, p z) ↔ ∀ (x ∈ s) (y ∈ t), p (f x y) :=
26622665
⟨λ h x hx y hy, h _ ⟨x, y, hx, hy, rfl⟩, λ h z ⟨x, y, hx, hy, hz⟩, hz ▸ h x hx y hy⟩

src/topology/algebra/group.lean

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
55
-/
6-
7-
import order.filter.pointwise
86
import group_theory.quotient_group
7+
import order.filter.pointwise
98
import topology.algebra.monoid
109
import topology.homeomorph
1110
import topology.compacts
@@ -119,6 +118,45 @@ lemma discrete_topology_iff_open_singleton_one : discrete_topology G ↔ is_open
119118

120119
end continuous_mul_group
121120

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+
122160
section topological_group
123161

124162
/-!
@@ -269,7 +307,13 @@ lemma homeomorph.shear_mul_right_symm_coe :
269307
⇑(homeomorph.shear_mul_right G).symm = λ z : G × G, (z.1, z.1⁻¹ * z.2) :=
270308
rfl
271309

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
273317

274318
namespace subgroup
275319

@@ -566,27 +610,7 @@ class add_group_with_zero_nhd (G : Type u) extends add_comm_group G :=
566610
section filter_mul
567611

568612
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]
590614

591615
@[to_additive]
592616
lemma topological_group.t1_space (h : @is_closed G _ {1}) : t1_space G :=

0 commit comments

Comments
 (0)