CW complexes #
This file defines (relative) CW complexes and proves basic properties about them using the classical approach of Whitehead.
A CW complex is a topological space that is made by gluing closed disks of different dimensions together.
Main definitions #
RelCWComplex C D: the class of CW structures on a subspaceCrelative to a base setDof a topological spaceX.CWComplex C: an abbreviation forRelCWComplex C ∅. The class of CW structures on a subspaceCof the topological spaceX.openCell n: indexed family of all open cells of dimensionn.closedCell n: indexed family of all closed cells of dimensionn.cellFrontier n: indexed family of the boundaries of cells of dimensionn.skeleton C n: then-skeleton of the (relative) CW complexC.
Main statements #
iUnion_openCell_eq_skeleton: the skeletons can also be seen as a union of open cells.cellFrontier_subset_finite_openCell: the edge of a cell is contained in a finite union of open cells of a lower dimension.
Implementation notes #
- We use the historical definition of CW complexes, due to Whitehead: a CW complex is a collection of cells with attaching maps - all cells are subspaces of one ambient topological space. This way, we avoid having to work with a lot of different topological spaces. On the other hand, it requires the union of all cells to be closed. If that is not the case, you need to consider that union as a subspace of itself.
- For a categorical approach that defines CW complexes via colimits and transfinite compositions,
see
Mathlib/Topology/CWComplex/Abstract/Basic.lean. The two approaches are equivalent but serve different purposes:- This approach is more convenient for concrete geometric arguments
- The categorical approach is more suitable for abstract arguments and generalizations
- The definition
RelCWComplexdoes not requireXto be a Hausdorff space. A lot of the lemmas will however require this property. - This definition is a class to ease working with different constructions and their properties. Overall this means that being a CW complex is treated more like a property than data.
- The natural number is explicit in
openCell,closedCellandcellFrontierbecausecell nandcell mmight be the same type in an explicit CW complex even whennandmare different. CWComplexis a separate class fromRelCWComplex. This not only gives absolute CW complexes a better constructor but also aids typeclass inference: a construction on relative CW complexes may yield a base that for the special case of CW complexes is provably equal to the empty set but not definitionally so. In that case we define an instance specifically for absolute CW complexes and want this to be inferred over the relative version. Since the base is anoutParamthis is especially necessary since you cannot provide typeclass inference with a specified base. But having the typeCWComplexbe separate fromRelCWComplexmakes this specification possible.- For a similar reason to the previous bullet point we make the instance
CWComplex.instRelCWComplexhave high priority. For example, when talking about the type of cellscell Cof an absolute CW complexC, this actually refers toRelCWComplex.cell Cthrough this instance. Again, we want typeclass inference to first consider absolute CW structures. - For statements, the auxiliary construction
skeletonLTis preferred overskeletonas it makes the base case of inductions easier. The statement aboutskeletonshould then be derived from the one aboutskeletonLT.
References #
- [A. Hatcher, Algebraic Topology][hatcher02]
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.
The indexing type of the cells of dimension
n.The characteristic map of the
n-cell given by the indexi. This map is a bijection when restricting toball 0 1, where we consider(Fin n → ℝ)endowed with the maximum metric.The source of every characteristic map of dimension
nis(ball 0 1 : Set (Fin n → ℝ)).The characteristic maps are continuous when restricting to
closedBall 0 1.The inverse of the restriction to
ball 0 1is continuous on the image.- pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : ℕ) × cell C n) => ↑(map ni.fst ni.snd) '' Metric.ball 0 1
The open cells are pairwise disjoint. Use
RelCWComplex.pairwiseDisjointorRelCWComplex.disjoint_openCell_of_neinstead. All open cells are disjoint with the base. Use
RelCWComplex.disjointBaseinstead.- mapsTo (n : ℕ) (i : cell C n) : ∃ (I : (m : ℕ) → Finset (cell C m)), Set.MapsTo (↑(map n i)) (Metric.sphere 0 1) (D ∪ ⋃ (m : ℕ), ⋃ (_ : m < n), ⋃ j ∈ I m, ↑(map m j) '' Metric.closedBall 0 1)
The boundary of a cell is contained in the union of the base with a finite union of closed cells of a lower dimension. Use
RelCWComplex.cellFrontier_subset_base_union_finite_closedCellinstead. - closed' (A : Set X) (hAC : A ⊆ C) : (∀ (n : ℕ) (j : cell C n), IsClosed (A ∩ ↑(map n j) '' Metric.closedBall 0 1)) ∧ IsClosed (A ∩ D) → IsClosed A
A CW complex has weak topology, i.e. a set
AinXis closed iff its intersection with every closed cell andDis closed. UseRelCWComplex.closedinstead. - isClosedBase : IsClosed D
The base
Dis closed. The union of all closed cells equals
C. UseRelCWComplex.unioninstead.
Instances
Alias of Topology.RelCWComplex.mapsTo.
The boundary of a cell is contained in the union of the base with a finite union of closed
cells of a lower dimension. Use RelCWComplex.cellFrontier_subset_base_union_finite_closedCell
instead.
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.
The indexing type of the cells of dimension
n.The characteristic map of the
n-cell given by the indexi. This map is a bijection when restricting toball 0 1, where we consider(Fin n → ℝ)endowed with the maximum metric.- source_eq (n : ℕ) (i : Topology.CWComplex.cell C n) : (Topology.CWComplex.map n i).source = Metric.ball 0 1
The source of every characteristic map of dimension
nis(ball 0 1 : Set (Fin n → ℝ)). - continuousOn (n : ℕ) (i : Topology.CWComplex.cell C n) : ContinuousOn (↑(Topology.CWComplex.map n i)) (Metric.closedBall 0 1)
The characteristic maps are continuous when restricting to
closedBall 0 1. - continuousOn_symm (n : ℕ) (i : Topology.CWComplex.cell C n) : ContinuousOn (↑(Topology.CWComplex.map n i).symm) (Topology.CWComplex.map n i).target
The inverse of the restriction to
ball 0 1is continuous on the image. - pairwiseDisjoint' : Set.univ.PairwiseDisjoint fun (ni : (n : ℕ) × Topology.CWComplex.cell C n) => ↑(Topology.CWComplex.map ni.fst ni.snd) '' Metric.ball 0 1
The open cells are pairwise disjoint. Use
CWComplex.pairwiseDisjointorCWComplex.disjoint_openCell_of_neinstead. - mapsTo' (n : ℕ) (i : Topology.CWComplex.cell C n) : ∃ (I : (m : ℕ) → Finset (Topology.CWComplex.cell C m)), Set.MapsTo (↑(Topology.CWComplex.map n i)) (Metric.sphere 0 1) (⋃ (m : ℕ), ⋃ (_ : m < n), ⋃ j ∈ I m, ↑(Topology.CWComplex.map m j) '' Metric.closedBall 0 1)
The boundary of a cell is contained in a finite union of closed cells of a lower dimension. Use
CWComplex.mapsToorCWComplex.cellFrontier_subset_finite_closedCellinstead. - closed' (A : Set X) (hAC : A ⊆ C) : (∀ (n : ℕ) (j : Topology.CWComplex.cell C n), IsClosed (A ∩ ↑(Topology.CWComplex.map n j) '' Metric.closedBall 0 1)) → IsClosed A
A CW complex has weak topology, i.e. a set
AinXis closed iff its intersection with every closed cell is closed. UseCWComplex.closedinstead. - union' : ⋃ (n : ℕ), ⋃ (j : Topology.CWComplex.cell C n), ↑(Topology.CWComplex.map n j) '' Metric.closedBall 0 1 = C
The union of all closed cells equals
C. UseCWComplex.unioninstead.
Instances
Equations
- One or more equations did not get rendered due to their size.
A relative CW complex with an empty base is an absolute CW complex.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The open n-cell given by the index i. Use this instead of map n i '' ball 0 1 whenever
possible.
Equations
- Topology.RelCWComplex.openCell n i = ↑(Topology.RelCWComplex.map n i) '' Metric.ball 0 1
Instances For
The closed n-cell given by the index i. Use this instead of map n i '' closedBall 0 1
whenever possible.
Equations
Instances For
The boundary of the n-cell given by the index i. Use this instead of map n i '' sphere 0 1
whenever possible.
Equations
- Topology.RelCWComplex.cellFrontier n i = ↑(Topology.RelCWComplex.map n i) '' Metric.sphere 0 1
Instances For
Alias of Topology.CWComplex.mapsTo.
The contrapositive of disjoint_openCell_of_ne.
If for all m ≤ n and every i : cell C m the intersection A ∩ closedCell m j is closed
and A ∩ D is closed then A ∩ cellFrontier (n + 1) j is closed for every
j : cell C (n + 1).
If for every cell either A ∩ openCell n j or A ∩ closedCell n j is closed then
A is closed.
If for every cell either A ∩ openCell n j or A ∩ closedCell n j is closed then
A is closed.
A version of cellFrontier_subset_base_union_finite_closedCell using open cells:
The boundary of a cell is contained in a finite union of open cells of a lower dimension.
A version of cellFrontier_subset_finite_closedCell using open cells: The boundary of a cell is
contained in a finite union of open cells of a lower dimension.
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
- Topology.RelCWComplex.skeletonLT C n = D ∪ ⋃ (m : ℕ), ⋃ (_ : ↑m < n), ⋃ (j : Topology.RelCWComplex.cell C m), Topology.RelCWComplex.closedCell m j
Instances For
The n-skeleton of a CW complex, for n ∈ ℕ ∪ {∞}. For statements use skeletonLT instead
and then derive the statement about skeleton.
Equations
Instances For
A version of the definition of skeletonLT with open cells.
A skeleton and an open cell of a higher dimension are disjoint.
A skeleton and an open cell of a higher dimension are disjoint.
A skeleton intersected with a closed cell of a higher dimension is the skeleton intersected with the boundary of the cell.
Version of skeletonLT_inter_closedCell_eq_skeletonLT_inter_cellFrontier using skeleton.