Skip to content

Commit d899146

Browse files
committed
feat(Geometry/Manifold): interior and boundary of open subsets of manifolds (leanprover-community#32759)
A belongs to the interior / boundary of an open submanifold iff it belongs to the interior / boundary, when regarded as a point of the ambient manifold.
1 parent 600d7a7 commit d899146

2 files changed

Lines changed: 43 additions & 1 deletion

File tree

Mathlib/Geometry/Manifold/ChartedSpace.lean

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1311,6 +1311,8 @@ protected instance instChartedSpace : ChartedSpace H s where
13111311
simp only [mem_iUnion, mem_singleton_iff]
13121312
use x
13131313

1314+
lemma chartAt_eq {s : Opens M} {x : s} : chartAt H x = (chartAt H x.1).subtypeRestr ⟨x⟩ := rfl
1315+
13141316
/-- If `s` is a non-empty open subset of `M`, every chart of `s` is the restriction
13151317
of some chart on `M`. -/
13161318
lemma chart_eq {s : Opens M} (hs : Nonempty s) {e : OpenPartialHomeomorph s H}

Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ Define the interior and boundary of a manifold.
2424
- `BoundarylessManifold.isInteriorPoint`: if `M` is boundaryless, every point is an interior point
2525
- `ModelWithCorners.Boundaryless.boundary_eq_empty` and `of_boundary_eq_empty`:
2626
`M` is boundaryless if and only if its boundary is empty
27+
28+
- `ModelWithCorners.interior_open`: the interior of `u : Opens M` is the preimage of the interior
29+
of `M` under the inclusion
30+
- `ModelWithCorners.boundary_open`: the boundary of `u : Opens M` is the preimage of the boundary
31+
of `M` under the inclusion
32+
- `ModelWithCorners.BoundarylessManifold.open`: if `M` is boundaryless, so is `u : Opens M`
33+
2734
- `ModelWithCorners.interior_prod`: the interior of `M × N` is the product of the interiors
2835
of `M` and `N`.
2936
- `ModelWithCorners.boundary_prod`: the boundary of `M × N` is `∂M × N ∪ (M × ∂N)`.
@@ -190,6 +197,39 @@ lemma Boundaryless.of_boundary_eq_empty (h : I.boundary M = ∅) : BoundarylessM
190197

191198
end BoundarylessManifold
192199

200+
/-! Interior and boundary of open subsets of a manifold. -/
201+
section opens
202+
203+
open TopologicalSpace
204+
205+
/-- For `u : Opens M`, `x : u` is an interior point iff `x.val : M` is. -/
206+
lemma isInteriorPoint_iff_isInteriorPoint_val {u : Opens M} {x : u} :
207+
I.IsInteriorPoint x ↔ I.IsInteriorPoint x.1 := by
208+
simpa [I.isInteriorPoint_iff, u.chartAt_eq,
209+
OpenPartialHomeomorph.subtypeRestr, mem_interior_iff_mem_nhds] using
210+
fun _ _ ↦ (chartAt H x.1).extend_preimage_mem_nhds (mem_chart_source H x.1) (u.2.mem_nhds x.2)
211+
212+
/-- For `u : Opens M`, `x : u` is a boundary point iff `x.val : M` is. -/
213+
lemma isBoundaryPoint_iff_isBoundaryPoint_val {u : Opens M} {x : u} :
214+
I.IsBoundaryPoint x ↔ I.IsBoundaryPoint x.1 := by
215+
simpa [I.isInteriorPoint_iff_not_isBoundaryPoint, not_iff_not] using
216+
I.isInteriorPoint_iff_isInteriorPoint_val
217+
218+
/-- The interior of `u : Opens M` is the preimage of the interior of `M` under the inclusion. -/
219+
lemma interior_open {u : Opens M} : I.interior u = (↑) ⁻¹' I.interior M := by
220+
ext1; exact I.isInteriorPoint_iff_isInteriorPoint_val
221+
222+
/-- The boundary of `u : Opens M` is the preimage of the boundary of `M` under the inclusion. -/
223+
lemma boundary_open {u : Opens M} : I.boundary u = (↑) ⁻¹' I.boundary M := by
224+
simp [← I.compl_interior, I.interior_open]
225+
226+
/-- Open subsets of boundaryless manifolds are boundaryless. -/
227+
instance BoundarylessManifold.open [BoundarylessManifold I M] (u : Opens M) :
228+
BoundarylessManifold I u :=
229+
fun _ ↦ I.isInteriorPoint_iff_isInteriorPoint_val.2 BoundarylessManifold.isInteriorPoint⟩
230+
231+
end opens
232+
193233
/-! Interior and boundary of the product of two manifolds. -/
194234
section prod
195235

@@ -250,11 +290,11 @@ instance BoundarylessManifold.prod [BoundarylessManifold I M] [BoundarylessManif
250290

251291
end prod
252292

293+
/-! Interior and boundary of the disjoint union of two manifolds. -/
253294
section disjointUnion
254295

255296
variable {M' : Type*} [TopologicalSpace M'] [ChartedSpace H M'] {n : WithTop ℕ∞}
256297
{E' : Type*} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type*} [TopologicalSpace H']
257-
{J : Type*} {J : ModelWithCorners 𝕜 E' H'}
258298
{N N' : Type*} [TopologicalSpace N] [TopologicalSpace N'] [ChartedSpace H' N] [ChartedSpace H' N']
259299

260300
open Topology

0 commit comments

Comments
 (0)