Documentation

Mathlib.Topology.CWComplex.Classical.Basic

CW complexes #

This file defines (relative) CW complexes and proves basic properties about them.

A CW complex is a topological space that is made by gluing closed disks of different dimensions together.

Main definitions #

Main statements #

Implementation notes #

References #

class Topology.RelCWComplex {X : Type u} [TopologicalSpace X] (C : Set X) (D : outParam (Set X)) :
Type (u + 1)

A CW complex of a topological space X relative to another subspace D is the data of its n-cells cell n i for each n : ℕ along with attaching maps that satisfy a number of properties with the most important being closure-finiteness (mapsTo) and weak topology (closed'). Note that this definition requires C and D to be closed subspaces. If C is not closed choose X to be C.

Instances
    @[deprecated Topology.RelCWComplex.mapsTo (since := "2025-02-20")]
    theorem Topology.RelCWComplex.mapsto {X : Type u} {inst✝ : TopologicalSpace X} {C : Set X} {D : outParam (Set X)} [self : RelCWComplex C D] (n : ) (i : cell C n) :
    ∃ (I : (m : ) → Finset (cell C m)), Set.MapsTo (↑(map n i)) (Metric.sphere 0 1) (D ⋃ (m : ), ⋃ (_ : m < n), jI m, (map m j) '' Metric.closedBall 0 1)

    Alias of Topology.RelCWComplex.mapsTo.


    The boundary of a cell is contained in a finite union of closed cells of a lower dimension. Use RelCWComplex.cellFrontier_subset_finite_closedCell instead.

    @[reducible, inline]
    abbrev Topology.CWComplex {X : Type u_1} [TopologicalSpace X] (C : Set X) :
    Type (u_1 + 1)

    Characterizing when a subspace C of a topological space X is a CW complex. Note that this requires C to be closed. If C is not closed choose X to be C.

    Equations
    Instances For
      def Topology.CWComplex.mk {X : Type u} [TopologicalSpace X] (C : Set X) (cell : Type u) (map : (n : ) → cell nPartialEquiv (Fin n) X) (source_eq : ∀ (n : ) (i : cell n), (map n i).source = Metric.ball 0 1) (continuousOn : ∀ (n : ) (i : cell n), ContinuousOn (↑(map n i)) (Metric.closedBall 0 1)) (continuousOn_symm : ∀ (n : ) (i : cell n), ContinuousOn (↑(map n i).symm) (map n i).target) (pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : ) × cell n) => (map ni.fst ni.snd) '' Metric.ball 0 1) (mapsTo : ∀ (n : ) (i : cell n), ∃ (I : (m : ) → Finset (cell m)), Set.MapsTo (↑(map n i)) (Metric.sphere 0 1) (⋃ (m : ), ⋃ (_ : m < n), jI m, (map m j) '' Metric.closedBall 0 1)) (closed' : AC, (∀ (n : ) (j : cell n), IsClosed (A (map n j) '' Metric.closedBall 0 1))IsClosed A) (union' : ⋃ (n : ), ⋃ (j : cell n), (map n j) '' Metric.closedBall 0 1 = C) :

      A constructor for CWComplex.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def Topology.RelCWComplex.openCell {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (i : cell C n) :
        Set X

        The open n-cell given by the index i. Use this instead of map n i '' ball 0 1 whenever possible.

        Equations
        Instances For
          def Topology.RelCWComplex.closedCell {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (i : cell C n) :
          Set X

          The closed n-cell given by the index i. Use this instead of map n i '' closedBall 0 1 whenever possible.

          Equations
          Instances For
            def Topology.RelCWComplex.cellFrontier {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (i : cell C n) :
            Set X

            The boundary of the n-cell given by the index i. Use this instead of map n i '' sphere 0 1 whenever possible.

            Equations
            Instances For
              theorem Topology.CWComplex.mapsTo {X : Type u_1} [t : TopologicalSpace X] {C : Set X} [CWComplex C] (n : ) (i : cell C n) :
              ∃ (I : (m : ) → Finset (cell C m)), Set.MapsTo (↑(map n i)) (Metric.sphere 0 1) (⋃ (m : ), ⋃ (_ : m < n), jI m, (map m j) '' Metric.closedBall 0 1)
              @[deprecated Topology.CWComplex.mapsTo (since := "2025-02-20")]
              theorem Topology.CWComplex.mapsto {X : Type u_1} [t : TopologicalSpace X] {C : Set X} [CWComplex C] (n : ) (i : cell C n) :
              ∃ (I : (m : ) → Finset (cell C m)), Set.MapsTo (↑(map n i)) (Metric.sphere 0 1) (⋃ (m : ), ⋃ (_ : m < n), jI m, (map m j) '' Metric.closedBall 0 1)

              Alias of Topology.CWComplex.mapsTo.

              theorem Topology.RelCWComplex.pairwiseDisjoint {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] :
              Set.univ.PairwiseDisjoint fun (ni : (n : ) × cell C n) => openCell ni.fst ni.snd
              theorem Topology.RelCWComplex.disjointBase {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (i : cell C n) :
              theorem Topology.RelCWComplex.disjoint_openCell_of_ne {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] {n m : } {i : cell C n} {j : cell C m} (ne : n, i m, j) :
              theorem Topology.RelCWComplex.cellFrontier_subset_base_union_finite_closedCell {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (i : cell C n) :
              ∃ (I : (m : ) → Finset (cell C m)), cellFrontier n i D ⋃ (m : ), ⋃ (_ : m < n), jI m, closedCell m j
              theorem Topology.CWComplex.cellFrontier_subset_finite_closedCell {X : Type u_1} [t : TopologicalSpace X] {C : Set X} [CWComplex C] (n : ) (i : cell C n) :
              ∃ (I : (m : ) → Finset (cell C m)), cellFrontier n i ⋃ (m : ), ⋃ (_ : m < n), jI m, closedCell m j
              theorem Topology.RelCWComplex.union {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] :
              D ⋃ (n : ), ⋃ (j : cell C n), closedCell n j = C
              theorem Topology.CWComplex.union {X : Type u_1} [t : TopologicalSpace X] {C : Set X} [CWComplex C] :
              ⋃ (n : ), ⋃ (j : cell C n), closedCell n j = C
              theorem Topology.RelCWComplex.map_zero_mem_openCell {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (i : cell C n) :
              (map n i) 0 openCell n i
              theorem Topology.RelCWComplex.map_zero_mem_closedCell {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (i : cell C n) :
              (map n i) 0 closedCell n i
              def Topology.RelCWComplex.skeletonLT {X : Type u_1} [t : TopologicalSpace X] (C : Set X) {D : Set X} [RelCWComplex C D] (n : ℕ∞) :
              Set X

              A non-standard definition of the n-skeleton of a CW complex for n ∈ ℕ ∪ {∞}. This allows the base case of induction to be about the base instead of being about the union of the base and some points. The standard skeleton is defined in terms of skeletonLT. skeletonLT is preferred in statements. You should then derive the statement about skeleton.

              Equations
              Instances For
                def Topology.RelCWComplex.skeleton {X : Type u_1} [t : TopologicalSpace X] (C : Set X) {D : Set X} [RelCWComplex C D] (n : ℕ∞) :
                Set X

                The n-skeleton of a CW complex, for n ∈ ℕ ∪ {∞}. For statements use skeletonLT instead and then derive the statement about skeleton.

                Equations
                Instances For
                  theorem Topology.RelCWComplex.isCompact_closedCell {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] {n : } {i : cell C n} :
                  theorem Topology.RelCWComplex.isClosed_closedCell {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] [T2Space X] {n : } {i : cell C n} :
                  theorem Topology.RelCWComplex.closed {X : Type u_1} [t : TopologicalSpace X] (C : Set X) {D : Set X} [RelCWComplex C D] [T2Space X] (A : Set X) (asubc : A C) :
                  IsClosed A (∀ (n : ) (j : cell C n), IsClosed (A closedCell n j)) IsClosed (A D)
                  theorem Topology.CWComplex.closed {X : Type u_1} [t : TopologicalSpace X] (C : Set X) [CWComplex C] [T2Space X] (A : Set X) (asubc : A C) :
                  IsClosed A ∀ (n : ) (j : cell C n), IsClosed (A closedCell n j)
                  @[simp]
                  @[simp]
                  theorem Topology.RelCWComplex.skeleton_top {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] :
                  theorem Topology.RelCWComplex.skeletonLT_mono {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] {n m : ℕ∞} (h : m n) :
                  theorem Topology.RelCWComplex.skeleton_mono {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] {n m : ℕ∞} (h : m n) :
                  theorem Topology.RelCWComplex.closedCell_subset_skeletonLT {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (j : cell C n) :
                  closedCell n j skeletonLT C (n + 1)
                  theorem Topology.RelCWComplex.closedCell_subset_skeleton {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (j : cell C n) :
                  theorem Topology.RelCWComplex.closedCell_subset_complex {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (j : cell C n) :
                  theorem Topology.RelCWComplex.openCell_subset_skeletonLT {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (j : cell C n) :
                  openCell n j skeletonLT C (n + 1)
                  theorem Topology.RelCWComplex.openCell_subset_skeleton {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (j : cell C n) :
                  openCell n j skeleton C n
                  theorem Topology.RelCWComplex.openCell_subset_complex {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (j : cell C n) :
                  theorem Topology.RelCWComplex.cellFrontier_subset_skeleton {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] (n : ) (j : cell C (n + 1)) :
                  cellFrontier (n + 1) j skeleton C n
                  theorem Topology.RelCWComplex.openCell_zero_eq_singleton {X : Type u_1} [t : TopologicalSpace X] {C D : Set X} [RelCWComplex C D] {j : cell C 0} :
                  openCell 0 j = {(map 0 j) ![]}