@@ -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
191198end 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. -/
194234section prod
195235
@@ -250,11 +290,11 @@ instance BoundarylessManifold.prod [BoundarylessManifold I M] [BoundarylessManif
250290
251291end prod
252292
293+ /-! Interior and boundary of the disjoint union of two manifolds. -/
253294section disjointUnion
254295
255296variable {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
260300open Topology
0 commit comments