File: Mathlib/Geometry/Manifold/InteriorBoundary.lean

full_name: ModelWithCorners.IsInteriorPoint
code: /-- `p ∈ M` is an interior point of a manifold `M` iff its image in the extended chart
lies in the interior of the model space. -/
def IsInteriorPoint (x : M) 
goal: Prop

full_name: ModelWithCorners.IsBoundaryPoint
code: /-- `p ∈ M` is a boundary point of a manifold `M` iff its image in the extended chart
lies on the boundary of the model space. -/
def IsBoundaryPoint (x : M) 
goal: Prop

full_name: ModelWithCorners.interior
code: /-- The **interior** of a manifold `M` is the set of its interior points. -/
protected def interior : Set M 
goal: Set M

full_name: ModelWithCorners.isInteriorPoint_iff
code: lemma isInteriorPoint_iff {x : M} :
    I.IsInteriorPoint x ↔ extChartAt I x x ∈ interior (extChartAt I x).target 
goal: I.IsInteriorPoint x ↔ ↑(extChartAt I x) x ∈ interior (extChartAt I x).target

full_name: ModelWithCorners.boundary
code: /-- The **boundary** of a manifold `M` is the set of its boundary points. -/
protected def boundary : Set M 
goal: Set M

full_name: ModelWithCorners.isBoundaryPoint_iff
code: lemma isBoundaryPoint_iff {x : M} : I.IsBoundaryPoint x ↔ extChartAt I x x ∈ frontier (range I) 
goal: I.IsBoundaryPoint x ↔ ↑(extChartAt I x) x ∈ frontier (Set.range ↑I)

full_name: ModelWithCorners.isInteriorPoint_or_isBoundaryPoint
code: /-- Every point is either an interior or a boundary point. -/
lemma isInteriorPoint_or_isBoundaryPoint (x : M) : I.IsInteriorPoint x ∨ I.IsBoundaryPoint x 
goal: I.IsInteriorPoint x ∨ I.IsBoundaryPoint x

full_name: ModelWithCorners.interior_union_boundary_eq_univ
code: /-- A manifold decomposes into interior and boundary. -/
lemma interior_union_boundary_eq_univ : (I.interior M) ∪ (I.boundary M) = (univ : Set M) 
goal: I.interior M ∪ I.boundary M = Set.univ

full_name: ModelWithCorners.disjoint_interior_boundary
code: /-- The interior and boundary of a manifold `M` are disjoint. -/
lemma disjoint_interior_boundary : Disjoint (I.interior M) (I.boundary M) 
goal: Disjoint (I.interior M) (I.boundary M)

full_name: ModelWithCorners.boundary_eq_complement_interior
code: /-- The boundary is the complement of the interior. -/
lemma boundary_eq_complement_interior : I.boundary M = (I.interior M)ᶜ 
goal: I.boundary M = (I.interior M)ᶜ

full_name: range_mem_nhds_isInteriorPoint
code: lemma _root_.range_mem_nhds_isInteriorPoint {x : M} (h : I.IsInteriorPoint x) :
    range I ∈ 𝓝 (extChartAt I x x) 
goal: Set.range ↑I ∈ 𝓝 (↑(extChartAt I x) x)

full_name: BoundarylessManifold.isInteriorPoint'
code: /-- Type class for manifold without boundary. This differs from `ModelWithCorners.Boundaryless`,
  which states that the `ModelWithCorners` maps to the whole model vector space. -/
class _root_.BoundarylessManifold {𝕜 : Type*} [NontriviallyNormedField 𝕜]
    {E : Type*} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
    {H : Type*} [TopologicalSpace H] (I : ModelWithCorners 𝕜 E H)
    (M : Type*) [TopologicalSpace M] [ChartedSpace H M] : Prop where
  isInteriorPoint' : ∀ x : M, IsInteriorPoint I x
goal: I.IsInteriorPoint x

full_name: BoundarylessManifold
code: /-- Type class for manifold without boundary. This differs from `ModelWithCorners.Boundaryless`,
  which states that the `ModelWithCorners` maps to the whole model vector space. -/
class _root_.BoundarylessManifold {𝕜 : Type*} [NontriviallyNormedField 𝕜]
    {E : Type*} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
    {H : Type*} [TopologicalSpace H] (I : ModelWithCorners 𝕜 E H)
    (M : Type*) [TopologicalSpace M] [ChartedSpace H M] : Prop where
  isInteriorPoint' : ∀ x : M, IsInteriorPoint I x
goal: Prop

full_name: ModelWithCorners.instBoundarylessManifold
code: /-- Boundaryless `ModelWithCorners` implies boundaryless manifold. -/
instance : BoundarylessManifold I M 
goal: BoundarylessManifold I M

full_name: ModelWithCorners.BoundarylessManifold.of_empty
code: /-- The empty manifold is boundaryless. -/
instance BoundarylessManifold.of_empty [IsEmpty M] : BoundarylessManifold I M 
goal: BoundarylessManifold I M

full_name: BoundarylessManifold.isInteriorPoint
code: lemma _root_.BoundarylessManifold.isInteriorPoint {x : M} :
    IsInteriorPoint I x 
goal: I.IsInteriorPoint x

full_name: ModelWithCorners.interior_eq_univ
code: /-- If `I` is boundaryless, `M` has full interior. -/
lemma interior_eq_univ : I.interior M = univ 
goal: I.interior M = Set.univ

full_name: ModelWithCorners.Boundaryless.boundary_eq_empty
code: /-- Boundaryless manifolds have empty boundary. -/
lemma Boundaryless.boundary_eq_empty : I.boundary M = ∅ 
goal: I.boundary M = ∅

full_name: ModelWithCorners.instIsEmptyElemBoundaryOfBoundarylessManifold
code: instance [BoundarylessManifold I M] : IsEmpty (I.boundary M) 
goal: IsEmpty ↑(I.boundary M)

full_name: ModelWithCorners.interior_prod
code: /-- The interior of `M × N` is the product of the interiors of `M` and `N`. -/
lemma ModelWithCorners.interior_prod :
    (I.prod J).interior (M × N) = (I.interior M) ×ˢ (J.interior N) 
goal: (I.prod J).interior (M × N) = I.interior M ×ˢ J.interior N

full_name: ModelWithCorners.boundary_prod
code: /-- The boundary of `M × N` is `∂M × N ∪ (M × ∂N)`. -/
lemma ModelWithCorners.boundary_prod :
    (I.prod J).boundary (M × N) = Set.prod univ (J.boundary N) ∪ Set.prod (I.boundary M) univ 
goal: (I.prod J).boundary (M × N) = Set.univ.prod (J.boundary N) ∪ (I.boundary M).prod Set.univ

full_name: boundary_of_boundaryless_left
code: /-- If `M` is boundaryless, `∂(M×N) = M × ∂N`. -/
lemma boundary_of_boundaryless_left [I.Boundaryless] :
    (I.prod J).boundary (M × N) = Set.prod (univ : Set M) (J.boundary N) 
goal: (I.prod J).boundary (M × N) = Set.univ.prod (J.boundary N)

full_name: boundary_of_boundaryless_right
code: /-- If `N` is boundaryless, `∂(M×N) = ∂M × N`. -/
lemma boundary_of_boundaryless_right [J.Boundaryless] :
    (I.prod J).boundary (M × N) = Set.prod (I.boundary M) (univ : Set N) 
goal: (I.prod J).boundary (M × N) = (I.boundary M).prod Set.univ