For every CW-complex X, this file constructs a relative CW-complex X.IProd
homeomorphic to I × X, where I is the unit interval.
The $(-1)$-skeleton of X.IProd is homeomorphic to {0, 1} × X.
@[reducible, inline]
The inclusion map from {0, 1} × X to I × X
Equations
Instances For
@[reducible, inline]
Equations
- CWComplex.IProd.l X n = TopCat.ofHom ((ContinuousMap.id ↑unitInterval.zeroOne).prodMap (TopCat.Hom.hom (X.skIncl n)))
Instances For
@[reducible, inline]
Equations
- CWComplex.IProd.r X n = TopCat.ofHom (unitInterval.zeroOneIncl.prodMap (ContinuousMap.id ↑(X.sk n)))
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
noncomputable abbrev
CWComplex.IProd.xskr
(X : CWComplex)
(n : ℕ)
:
(∐ fun (x : (X.attachCells n).cells) => TopCat.diskBoundary n) ⟶ ∐ fun (x : (X.attachCells n).cells) => TopCat.disk n
Equations
- CWComplex.IProd.xskr X n = CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl n
Instances For
l X n
{0, 1} × (X.sk n) ------→ {0, 1} × X
| |
r X n | pushout |
↓ ↓
I × (X.sk n) ----→ X.IProd.sk (n + 1)
X.IProd.sk 0 = {0, 1} × X ≅ X.IProd.sk 1
Equations
- CWComplex.IProd.sk X 0 = TopCat.of (↑unitInterval.zeroOne × ↑X.toTopCat)
- CWComplex.IProd.sk X n_2.succ = CategoryTheory.Limits.pushout (CWComplex.IProd.l X n_2) (CWComplex.IProd.r X n_2)
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- X.cubeIncl α = CategoryTheory.CategoryStruct.comp (X.cubeInclToSk α) (X.skIncl (n + 1))
Instances For
Equations
Instances For
noncomputable def
CWComplex.IProd.cubeAttBotOrTop
(X : CWComplex)
{n : ℕ}
(α : (X.attachCells n).cells)
(t : ↑unitInterval.zeroOne)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
CWComplex.IProd.cubeAttSides
(X : CWComplex)
{n : ℕ}
(α : (X.attachCells n).cells)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
CWComplex.IProd.cubeAtt_compatible
(X : CWComplex)
{n : ℕ}
(α : (X.attachCells n).cells)
(t : ↑unitInterval.zeroOne)
(y : ↑(TopCat.cubeBoundary n))
:
noncomputable def
CWComplex.IProd.attachMaps
(X : CWComplex)
{n : ℕ}
(α : (X.attachCells n).cells)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Note:
Each $n$-cell of X corresponds to an $(n + 1)$-cell of X.IProd.
The latter cell is attached to IProd.sk X (n + 1), which is of dimension $n$.
X.IProd has no 0-cells.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
CWComplex.IProd.inl_skInclSucc
(X : CWComplex)
{n : ℕ}
:
CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inl (l X n) (r X n)) (skInclSucc X n) = CategoryTheory.Limits.pushout.inl (l X (n + 1)) (r X (n + 1))
theorem
CWComplex.IProd.inl_skInclSucc_assoc
(X : CWComplex)
{n : ℕ}
{Z : TopCat}
(h : sk X (n + 1 + 1) ⟶ Z)
:
CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inl (l X n) (r X n))
(CategoryTheory.CategoryStruct.comp (skInclSucc X n) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inl (l X (n + 1)) (r X (n + 1))) h
theorem
CWComplex.IProd.inr_skInclSucc
(X : CWComplex)
{n : ℕ}
:
CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inr (l X n) (r X n)) (skInclSucc X n) = CategoryTheory.CategoryStruct.comp
(TopCat.ofHom ((ContinuousMap.id ↑unitInterval).prodMap (TopCat.Hom.hom (X.skInclSucc n))))
(CategoryTheory.Limits.pushout.inr (l X (n + 1)) (r X (n + 1)))
theorem
CWComplex.IProd.inr_skInclSucc_assoc
(X : CWComplex)
{n : ℕ}
{Z : TopCat}
(h : sk X (n + 1 + 1) ⟶ Z)
:
CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inr (l X n) (r X n))
(CategoryTheory.CategoryStruct.comp (skInclSucc X n) h) = CategoryTheory.CategoryStruct.comp
(CategoryTheory.CategoryStruct.comp
(TopCat.ofHom ((ContinuousMap.id ↑unitInterval).prodMap (TopCat.Hom.hom (X.skInclSucc n))))
(CategoryTheory.Limits.pushout.inr (l X (n + 1)) (r X (n + 1))))
h
theorem
CWComplex.IProd.commSqSkSk
(X : CWComplex)
(n : ℕ)
:
CategoryTheory.CommSq (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1))
(skInclSucc X n) (sigmaDisksInclToSk X n)
∐ ∂𝔻 (n + 1) -----------→ IProd.sk X (n + 1)
| |
| |
↓ ↓
∐ 𝔻 (n + 1) ------------→ IProd.sk X (n + 1 + 1)
Now verify that commSqSkSk is a pushout square.
@[reducible, inline]
noncomputable abbrev
CWComplex.IProd.pushoutSkSk.l'
(X : CWComplex)
(n : ℕ)
(Z :
CategoryTheory.Limits.PushoutCocone (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1)))
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[reducible, inline]
noncomputable abbrev
CWComplex.IProd.pushoutSkSk.r'
(X : CWComplex)
(n : ℕ)
(Z :
CategoryTheory.Limits.PushoutCocone (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1)))
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
CWComplex.IProd.pushoutSkSk.w'
(X : CWComplex)
(n : ℕ)
(Z :
CategoryTheory.Limits.PushoutCocone (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1)))
:
CategoryTheory.CategoryStruct.comp (xskl X n) (l' X n Z) = CategoryTheory.CategoryStruct.comp (xskr X n) (r' X n Z)
The following square commutes.
∐ ∂𝔻 n --------→ X.sk n
| xskl |
xskr | | l'
↓ r' ↓
∐ 𝔻 n ---------→ C(I, Z)
@[reducible, inline]
noncomputable abbrev
CWComplex.IProd.pushoutSkSk.d'
(X : CWComplex)
(n : ℕ)
(Z :
CategoryTheory.Limits.PushoutCocone (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1)))
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[reducible, inline]
noncomputable abbrev
CWComplex.IProd.pushoutSkSk.l''
(X : CWComplex)
(n : ℕ)
(Z :
CategoryTheory.Limits.PushoutCocone (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1)))
:
Equations
Instances For
@[reducible, inline]
noncomputable abbrev
CWComplex.IProd.pushoutSkSk.r''
(X : CWComplex)
(n : ℕ)
(Z :
CategoryTheory.Limits.PushoutCocone (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1)))
:
Equations
Instances For
theorem
CWComplex.IProd.pushoutSkSk.w''
(X : CWComplex)
(n : ℕ)
(Z :
CategoryTheory.Limits.PushoutCocone (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1)))
:
CategoryTheory.CategoryStruct.comp (l X (n + 1)) (l'' X n Z) = CategoryTheory.CategoryStruct.comp (r X (n + 1)) (r'' X n Z)
The following square commutes.
l X (n+1)
{0, 1} × (X.sk (n + 1)) ------→ {0, 1} × X
| |
r X (n+1) | | l''
↓ r'' ↓
I × (X.sk (n + 1)) ---------→ Z
@[reducible, inline]
noncomputable abbrev
CWComplex.IProd.pushoutSkSk.desc
(X : CWComplex)
(n : ℕ)
(Z :
CategoryTheory.Limits.PushoutCocone (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1)))
:
Given a commutative square
∐ ∂𝔻 (n + 1) ------→ IProd.sk X (n + 1)
| |
| |
↓ ↓
∐ 𝔻 (n + 1) ------------→ Z
return the descending map IProd.sk X (n + 1 + 1) ⟶ Z out of the pushout cocone.
Equations
Instances For
noncomputable def
CWComplex.IProd.pushoutSkSk.cocone
(X : CWComplex)
(n : ℕ)
:
CategoryTheory.Limits.PushoutCocone (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1))
Equations
Instances For
theorem
CWComplex.IProd.pushoutSkSk.coconeInl
(X : CWComplex)
(n : ℕ)
(Z :
CategoryTheory.Limits.PushoutCocone (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1)))
:
theorem
CWComplex.IProd.pushoutSkSk.coconeInr
(X : CWComplex)
(n : ℕ)
(Z :
CategoryTheory.Limits.PushoutCocone (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1)))
:
theorem
CWComplex.IProd.pushoutSkSk
(X : CWComplex)
(n : ℕ)
:
CategoryTheory.IsPushout (CategoryTheory.Limits.Sigma.desc (attachMaps X))
(CategoryTheory.Limits.Sigma.map fun (x : (X.attachCells n).cells) => TopCat.diskBoundaryIncl (n + 1))
(skInclSucc X n) (sigmaDisksInclToSk X n)
Equations
- One or more equations did not get rendered due to their size.