Zulip Chat Archive
Stream: Is there code for X?
Topic: Addition of interiors
Yaël Dillies (Dec 02 2021 at 23:29):
I feel like this is basically the definition of has_continuous_add
, but I can't pin down what to do exactly.
import topology.algebra.module
open_locale pointwise
lemma interior_add_interior_subset {α : Type*} [topological_space α] [add_comm_group α]
[has_continuous_add α] {s t : set α} :
interior s + interior t ⊆ interior (s + t) :=
Yaël Dillies (Dec 02 2021 at 23:33):
And in the same vein I also need
lemma is_open_map_neg : is_open_map (λ x : α, -x) := sorry
lemma is_open_map_add : is_open_map (λ x : α × α, x.1 + x.2) := sorry
lemma is_open_map_sub : is_open_map (λ x : α × α, x.1 - x.2) := sorry
Heather Macbeth (Dec 02 2021 at 23:42):
For the latter ones, check out docs#homeomorph.neg, thus you can do homeomorph.neg.is_open_map
. We have homeomorph.add
too, but it would only give openness of addition-with-left-variable-fixed.
Heather Macbeth (Dec 02 2021 at 23:58):
The first one reduces to one of your second lemmas, the openness of the full addition map.
import topology.algebra.module
open_locale pointwise
variables {α : Type*} [topological_space α] [add_comm_group α]
lemma is_open_map_add : is_open_map (λ x : α × α, x.1 + x.2) := sorry
lemma interior_add_interior_subset {s t : set α} :
interior s + interior t ⊆ interior (s + t) :=
begin
rw subset_interior_iff_subset_of_open,
{ rintros x ⟨a, b, ha, hb, rfl⟩,
exact set.add_mem_add (interior_subset ha) (interior_subset hb) },
{ rw ← set.add_image_prod,
apply is_open_map_add,
rw is_open_prod_iff',
left,
exact ⟨is_open_interior, is_open_interior⟩ }
end
Yaël Dillies (Dec 03 2021 at 00:04):
I'mstealingthatproofthankyouverymuch
Heather Macbeth (Dec 03 2021 at 00:11):
Actually, slicker proof that doesn't use the mystery lemma:
import topology.algebra.module
open_locale pointwise
variables {α : Type*} [topological_space α] [add_comm_group α] [has_continuous_add α]
lemma interior_add_interior_subset {s t : set α} :
interior s + interior t ⊆ interior (s + t) :=
begin
rw subset_interior_iff_subset_of_open,
{ rintros x ⟨a, b, ha, hb, rfl⟩,
exact set.add_mem_add (interior_subset ha) (interior_subset hb) },
{ rw ← set.Union_add_left_image,
apply is_open_bUnion,
intros x hx,
refine (homeomorph.add_left x).is_open_map _ _,
exact is_open_interior }
end
Heather Macbeth (Dec 03 2021 at 00:14):
That one will actually show that s + interior t ⊆ interior (s + t)
or vice versa.
Yaël Dillies (Dec 03 2021 at 00:20):
Is there some more general result about open maps α × α → α
?
Anatole Dedecker (Dec 03 2021 at 07:02):
I'm not at my computer so I can't golf, but I think there should be a one or two line proof using docs#is_open.add_left, docs#interior_maximal and docs#set.add_subset_add
Pascal Schoppenhauer (Dec 05 2021 at 12:45):
@Heather Macbeth Hey I'm sorry to bother you, but I'm still very new to Lean and I would like to understand what the "rintros" command does. I have seen it in many simple examples but I can't find a good explanation of what its purpose is.
Eric Wieser (Dec 05 2021 at 12:47):
tactic#rintro might be helpful (rintros
is the same as rintro
)
Last updated: Dec 20 2023 at 11:08 UTC