Documentation

TauCeti.AlgebraicTopology.Singular.Cubical.Basic

Singular cubes, their faces and degeneracies #

A singular n-cube in a topological space X is a continuous map Iⁿ → X, where Iⁿ = Fin n → I is the standard cube. This file sets up the combinatorics of singular cubes that cubical singular homology is built on, following Massey, Singular Homology Theory, Chapter II:

Faces do not preserve degeneracy: if c does not depend on its i-th coordinate, then its two i-faces coincide (face_eq_of_isDegenerateAt), and need not be degenerate, while its faces in every other coordinate are degenerate (isDegenerate_face_of_ne). Together these two facts are exactly what makes the degenerate chains a subcomplex of the cubical chains, which is where this file is used.

The cubical identity rests on Fin.insertNth_insertNth (TauCeti.Data.Fin.Basic), the commutation of two insertions, dual to Mathlib's Fin.removeNth_removeNth_eq_swap.

Main definitions #

Main results #

References #

@[reducible, inline]
abbrev TauCeti.SingularCube (X : Type u_4) [TopologicalSpace X] (n : ℕ) :
Type u_4

A singular n-cube in X: a continuous map from the standard cube Iⁿ = Fin n → I.

Instances For
    def TauCeti.SingularCube.cast {X : Type u_1} [TopologicalSpace X] {n m : ℕ} (h : n = m) (c : SingularCube X n) :

    Reindex a singular cube along an equality of dimensions.

    Instances For
      @[simp]
      theorem TauCeti.SingularCube.cast_apply {X : Type u_1} [TopologicalSpace X] {n m : ℕ} (h : n = m) (c : SingularCube X n) (x : Fin m → ↑unitInterval) :
      (cast h c) x = c (x ∘ Fin.cast h)

      The 0-cube at a point.

      Instances For
        @[simp]
        theorem TauCeti.SingularCube.point_apply {X : Type u_1} [TopologicalSpace X] (x : X) (t : Fin 0 → ↑unitInterval) :
        (point x) t = x
        theorem TauCeti.SingularCube.eq_point {X : Type u_1} [TopologicalSpace X] (c : SingularCube X 0) :
        c = point (c fun (i : Fin 0) => i.elim0)

        Every 0-cube is the constant cube at its value.

        @[simp]
        theorem TauCeti.SingularCube.cast_rfl {X : Type u_1} [TopologicalSpace X] {n : ℕ} (c : SingularCube X n) :
        cast ⋯ c = c
        @[simp]
        theorem TauCeti.SingularCube.cast_cast {X : Type u_1} [TopologicalSpace X] {n m k : ℕ} (h : n = m) (h' : m = k) (c : SingularCube X n) :
        cast h' (cast h c) = cast ⋯ c

        Reindexing along successive dimension equalities is reindexing along their composite.

        def TauCeti.SingularCube.face {X : Type u_1} [TopologicalSpace X] {n : ℕ} (i : Fin (n + 1)) (t : ↑unitInterval) (c : SingularCube X (n + 1)) :

        The face of an (n+1)-cube in its i-th coordinate, at the parameter t: the n-cube x ↦ c (i.insertNth t x). The front and back faces are face i 0 and face i 1.

        Instances For
          @[simp]
          theorem TauCeti.SingularCube.face_apply {X : Type u_1} [TopologicalSpace X] {n : ℕ} (i : Fin (n + 1)) (t : ↑unitInterval) (c : SingularCube X (n + 1)) (x : Fin n → ↑unitInterval) :
          (face i t c) x = c (i.insertNth t x)
          theorem TauCeti.SingularCube.range_face_subset {X : Type u_1} [TopologicalSpace X] {n : ℕ} (i : Fin (n + 1)) (t : ↑unitInterval) (c : SingularCube X (n + 1)) :
          Set.range ⇑(face i t c) ⊆ Set.range ⇑c

          A face of a cube takes its values among those of the cube.

          theorem TauCeti.SingularCube.face_face {X : Type u_1} [TopologicalSpace X] {n : ℕ} (i : Fin (n + 2)) (j : Fin (n + 1)) (a b : ↑unitInterval) (c : SingularCube X (n + 2)) :
          face j b (face i a c) = face (j.predAbove i) a (face (i.succAbove j) b c)

          The cubical identity: a face of a face, in the other order.

          theorem TauCeti.SingularCube.face_comp {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {n : ℕ} (i : Fin (n + 1)) (t : ↑unitInterval) (f : C(X, Y)) (c : SingularCube X (n + 1)) :
          face i t (f.comp c) = f.comp (face i t c)

          Faces commute with composition by a continuous map.

          theorem TauCeti.SingularCube.comp_face_id {X : Type u_1} [TopologicalSpace X] {n : ℕ} (c : SingularCube X (n + 1)) (i : Fin (n + 1)) (t : ↑unitInterval) :

          A cube composed with the face inclusion face i t id of the standard cube is its face.

          theorem TauCeti.SingularCube.face_id_comp_face_id {n : ℕ} (i : Fin (n + 2)) (j : Fin (n + 1)) (a b : ↑unitInterval) :

          The cubical identity for the face inclusions of the standard cube.

          theorem TauCeti.SingularCube.face_cast {X : Type u_1} [TopologicalSpace X] {n m : ℕ} (h : n = m) (i : Fin (n + 1)) (t : ↑unitInterval) (c : SingularCube X (n + 1)) :
          face (Fin.cast ⋯ i) t (cast ⋯ c) = cast h (face i t c)

          Faces commute with reindexing.

          @[reducible, inline]
          abbrev TauCeti.SingularCube.forgetCoordinate {n : ℕ} (i : Fin (n + 1)) :
          C(Fin (n + 1) → ↑unitInterval, Fin n → ↑unitInterval)

          The projection of the cube Iⁿ⁺¹ forgetting the i-th coordinate.

          Instances For
            def TauCeti.SingularCube.degeneracy {X : Type u_1} [TopologicalSpace X] {n : ℕ} (s : SingularCube X n) (i : Fin (n + 1)) :
            SingularCube X (n + 1)

            The degeneracy along coordinate i forgets that coordinate before applying the cube.

            Instances For

              A degeneracy is the composite with the projection forgetting a coordinate.

              @[simp]
              theorem TauCeti.SingularCube.degeneracy_apply {X : Type u_1} [TopologicalSpace X] {n : ℕ} (s : SingularCube X n) (i : Fin (n + 1)) (x : Fin (n + 1) → ↑unitInterval) :
              (s.degeneracy i) x = s (i.removeNth x)

              Evaluation of a degeneracy.

              @[simp]
              theorem TauCeti.SingularCube.degeneracy_comp {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {n : ℕ} (f : C(X, Y)) (s : SingularCube X n) (i : Fin (n + 1)) :
              degeneracy (f.comp s) i = f.comp (s.degeneracy i)

              Degeneracies commute with postcomposition by a continuous map.

              @[simp]
              theorem TauCeti.SingularCube.face_degeneracy_self {X : Type u_1} [TopologicalSpace X] {n : ℕ} (s : SingularCube X n) (i : Fin (n + 1)) (t : ↑unitInterval) :
              face i t (s.degeneracy i) = s

              A degeneracy followed by the face in the forgotten coordinate is the original cube.

              @[simp]
              theorem TauCeti.SingularCube.degeneracy_cast {X : Type u_1} [TopologicalSpace X] {n m : ℕ} (h : n = m) (s : SingularCube X n) (i : Fin (n + 1)) :
              (cast h s).degeneracy (Fin.cast ⋯ i) = cast ⋯ (s.degeneracy i)

              Degeneracies commute with reindexing along an equality of dimensions.

              theorem TauCeti.SingularCube.degeneracy_degeneracy {X : Type u_1} [TopologicalSpace X] {n : ℕ} (s : SingularCube X n) (i : Fin (n + 1)) (j : Fin (n + 2)) :

              Two degeneracies commute after reindexing the forgotten coordinates.

              @[simp]
              theorem TauCeti.SingularCube.face_degeneracy_succAbove {X : Type u_1} [TopologicalSpace X] {n : ℕ} (s : SingularCube X (n + 1)) (j : Fin (n + 2)) (i : Fin (n + 1)) (t : ↑unitInterval) :
              face (j.succAbove i) t (s.degeneracy j) = (face i t s).degeneracy (i.predAbove j)

              A face in a coordinate other than the forgotten coordinate commutes with degeneracy.

              A cube is degenerate at the coordinate i when it does not depend on it.

              Instances For

                A cube is degenerate when it does not depend on at least one of its coordinates (Massey's convention).

                Instances For
                  theorem TauCeti.SingularCube.isDegenerateAt_iff {X : Type u_1} [TopologicalSpace X] {n : ℕ} {c : SingularCube X n} {i : Fin n} :
                  c.IsDegenerateAt i ↔ ∀ (x : Fin n → ↑unitInterval) (t : ↑unitInterval), c (Function.update x i t) = c x
                  @[simp]
                  theorem TauCeti.SingularCube.IsDegenerateAt.apply_update {X : Type u_1} [TopologicalSpace X] {n : ℕ} {c : SingularCube X n} {i : Fin n} (h : c.IsDegenerateAt i) (x : Fin n → ↑unitInterval) (t : ↑unitInterval) :
                  c (Function.update x i t) = c x
                  @[simp]

                  A degeneracy is independent of the coordinate it forgets.

                  @[simp]

                  Every coordinate-forgetting degeneracy is a degenerate singular cube.

                  The degenerate singular cubes are exactly the images of degeneracy operators.

                  @[simp]

                  A constant cube of positive dimension is degenerate.

                  A 0-cube, a point, is never degenerate.

                  theorem TauCeti.SingularCube.IsDegenerateAt.comp {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {n : ℕ} {c : SingularCube X n} {i : Fin n} (h : c.IsDegenerateAt i) (f : C(X, Y)) :
                  theorem TauCeti.SingularCube.IsDegenerate.comp {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {n : ℕ} {c : SingularCube X n} (h : c.IsDegenerate) (f : C(X, Y)) :

                  Composition with a continuous map preserves degeneracy.

                  An injective continuous map reflects degeneracy in each coordinate.

                  An injective continuous map preserves and reflects degeneracy.

                  theorem TauCeti.SingularCube.face_eq_of_isDegenerateAt {X : Type u_1} [TopologicalSpace X] {n : ℕ} {c : SingularCube X (n + 1)} {i : Fin (n + 1)} (h : c.IsDegenerateAt i) (t t' : ↑unitInterval) :
                  face i t c = face i t' c

                  The two faces of a cube in a coordinate it does not depend on coincide.

                  theorem TauCeti.SingularCube.IsDegenerateAt.face_succAbove {X : Type u_1} [TopologicalSpace X] {n : ℕ} {c : SingularCube X (n + 1)} {j : Fin (n + 1)} {k : Fin n} (h : c.IsDegenerateAt (j.succAbove k)) (t : ↑unitInterval) :

                  If a cube does not depend on its coordinate j.succAbove k, then its faces in the coordinate j do not depend on their coordinate k.

                  theorem TauCeti.SingularCube.isDegenerate_face_of_ne {X : Type u_1} [TopologicalSpace X] {n : ℕ} {c : SingularCube X (n + 1)} {i j : Fin (n + 1)} (h : c.IsDegenerateAt i) (hij : i ≠ j) (t : ↑unitInterval) :

                  If a cube does not depend on its i-th coordinate, then its faces in any other coordinate j ≠ i are degenerate.