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

Commit 366a23f

Browse files
committed
feat(topology/constructions): frontier/interior/closure in X × Y (#6594)
1 parent 9ff7458 commit 366a23f

File tree

5 files changed

+44
-1
lines changed

5 files changed

+44
-1
lines changed

src/data/set/basic.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2061,6 +2061,9 @@ set.subset.antisymm (snd_image_prod_subset _ _)
20612061
$ λ y y_in, let ⟨x, x_in⟩ := hs in
20622062
⟨(x, y), ⟨x_in, y_in⟩, rfl⟩
20632063

2064+
lemma prod_diff_prod : s.prod t \ s₁.prod t₁ = s.prod (t \ t₁) ∪ (s \ s₁).prod t :=
2065+
by { ext x, by_cases h₁ : x.1 ∈ s₁; by_cases h₂ : x.2 ∈ t₁; simp * }
2066+
20642067
/-- A product set is included in a product set if and only factors are included, or a factor of the
20652068
first set is empty. -/
20662069
lemma prod_subset_prod_iff :

src/order/filter/basic.lean

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2271,6 +2271,16 @@ begin
22712271
⟨prod.fst ⁻¹' t₁, ⟨t₁, ht₁, subset.refl _⟩, prod.snd ⁻¹' t₂, ⟨t₂, ht₂, subset.refl _⟩, h⟩
22722272
end
22732273

2274+
@[simp] lemma prod_mem_prod_iff {s : set α} {t : set β} {f : filter α} {g : filter β}
2275+
[f.ne_bot] [g.ne_bot] :
2276+
s.prod t ∈ f ×ᶠ g ↔ s ∈ f ∧ t ∈ g :=
2277+
⟨λ h, let ⟨s', hs', t', ht', H⟩ := mem_prod_iff.1 h in (prod_subset_prod_iff.1 H).elim
2278+
(λ ⟨hs's, ht't⟩, ⟨mem_sets_of_superset hs' hs's, mem_sets_of_superset ht' ht't⟩)
2279+
(λ h, h.elim
2280+
(λ hs'e, absurd hs'e (nonempty_of_mem_sets hs').ne_empty)
2281+
(λ ht'e, absurd ht'e (nonempty_of_mem_sets ht').ne_empty)),
2282+
λ h, prod_mem_prod h.1 h.2
2283+
22742284
lemma comap_prod (f : α → β × γ) (b : filter β) (c : filter γ) :
22752285
comap f (b ×ᶠ c) = (comap (prod.fst ∘ f) b) ⊓ (comap (prod.snd ∘ f) c) :=
22762286
by erw [comap_inf, filter.comap_comap, filter.comap_comap]

src/topology/algebra/ordered.lean

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,12 @@ begin
532532
convert hb₂ using 2, simp only [not_le.symm], refl
533533
end
534534

535+
lemma frontier_Iic_subset (a : α) : frontier (Iic a) ⊆ {a} :=
536+
frontier_le_subset_eq (@continuous_id α _) continuous_const
537+
538+
lemma frontier_Ici_subset (a : α) : frontier (Ici a) ⊆ {a} :=
539+
@frontier_Iic_subset (order_dual α) _ _ _ _
540+
535541
lemma frontier_lt_subset_eq (hf : continuous f) (hg : continuous g) :
536542
frontier {b | f b < g b} ⊆ {b | f b = g b} :=
537543
by rw ← frontier_compl;

src/topology/basic.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,10 @@ by rw [closure_compl, frontier, diff_eq]
433433
@[simp] lemma frontier_compl (s : set α) : frontier sᶜ = frontier s :=
434434
by simp only [frontier_eq_closure_inter_closure, compl_compl, inter_comm]
435435

436+
@[simp] lemma frontier_univ : frontier (univ : set α) = ∅ := by simp [frontier]
437+
438+
@[simp] lemma frontier_empty : frontier (∅ : set α) = ∅ := by simp [frontier]
439+
436440
lemma frontier_inter_subset (s t : set α) :
437441
frontier (s ∩ t) ⊆ (frontier s ∩ closure t) ∪ (closure s ∩ frontier t) :=
438442
begin

src/topology/constructions.lean

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,13 @@ instance [discrete_topology α] [discrete_topology β] : discrete_topology (α
186186
⟨eq_of_nhds_eq_nhds $ assume ⟨a, b⟩,
187187
by rw [nhds_prod_eq, nhds_discrete α, nhds_discrete β, nhds_bot, filter.prod_pure_pure]⟩
188188

189+
lemma prod_mem_nhds_iff {s : set α} {t : set β} {a : α} {b : β} :
190+
s.prod t ∈ 𝓝 (a, b) ↔ s ∈ 𝓝 a ∧ t ∈ 𝓝 b :=
191+
by rw [nhds_prod_eq, prod_mem_prod_iff]
192+
189193
lemma prod_mem_nhds_sets {s : set α} {t : set β} {a : α} {b : β}
190194
(ha : s ∈ 𝓝 a) (hb : t ∈ 𝓝 b) : set.prod s t ∈ 𝓝 (a, b) :=
191-
by rw [nhds_prod_eq]; exact prod_mem_prod ha hb
195+
prod_mem_nhds_iff.2 ⟨ha, hb
192196

193197
lemma nhds_swap (a : α) (b : β) : 𝓝 (a, b) = (𝓝 (b, a)).map prod.swap :=
194198
by rw [nhds_prod_eq, filter.prod_comm, nhds_prod_eq]; refl
@@ -342,6 +346,22 @@ have (𝓝 a ×ᶠ 𝓝 b) ⊓ 𝓟 (set.prod s t) = (𝓝 a ⊓ 𝓟 s) ×ᶠ (
342346
by rw [←prod_inf_prod, prod_principal_principal],
343347
by simp [closure_eq_cluster_pts, cluster_pt, nhds_prod_eq, this]; exact prod_ne_bot
344348

349+
lemma interior_prod_eq (s : set α) (t : set β) :
350+
interior (s.prod t) = (interior s).prod (interior t) :=
351+
set.ext $ λ ⟨a, b⟩, by simp only [mem_interior_iff_mem_nhds, mem_prod, prod_mem_nhds_iff]
352+
353+
lemma frontier_prod_eq (s : set α) (t : set β) :
354+
frontier (s.prod t) = (closure s).prod (frontier t) ∪ (frontier s).prod (closure t) :=
355+
by simp only [frontier, closure_prod_eq, interior_prod_eq, prod_diff_prod]
356+
357+
@[simp] lemma frontier_prod_univ_eq (s : set α) :
358+
frontier (s.prod (univ : set β)) = (frontier s).prod univ :=
359+
by simp [frontier_prod_eq]
360+
361+
@[simp] lemma frontier_univ_prod_eq (s : set β) :
362+
frontier ((univ : set α).prod s) = (univ : set α).prod (frontier s) :=
363+
by simp [frontier_prod_eq]
364+
345365
lemma map_mem_closure2 {s : set α} {t : set β} {u : set γ} {f : α → β → γ} {a : α} {b : β}
346366
(hf : continuous (λp:α×β, f p.1 p.2)) (ha : a ∈ closure s) (hb : b ∈ closure t)
347367
(hu : ∀a b, a ∈ s → b ∈ t → f a b ∈ u) :

0 commit comments

Comments
 (0)