Documentation

TauCeti.AlgebraicTopology.Singular.MayerVietoris.Relative

Relative Mayer–Vietoris sequences #

Let U and V be open subsets of a topological space X, and let R be an object of an abelian category with coproducts. This file constructs the relative Mayer–Vietoris long exact sequence of relative singular homology with coefficients in R, ⋯ ⟶ Hₙ(X, U ∩ V) ⟶ Hₙ(X, U) ⊞ Hₙ(X, V) ⟶ Hₙ(X, U ∪ V) ⟶ Hₙ₋₁(X, U ∩ V) ⟶ ⋯, whose first map is (i_U, -i_V) and whose second map is j_U + j_V, the i and j being the maps induced by the inclusions of pairs with the identity of X. Unlike the absolute sequence, U and V need not cover X.

For the complements U = X ∖ A and V = X ∖ B of closed sets this is the sequence ⋯ ⟶ Hₙ(X, X ∖ (A ∪ B)) ⟶ Hₙ(X, X ∖ A) ⊞ Hₙ(X, X ∖ B) ⟶ Hₙ(X, X ∖ (A ∩ B)) ⟶ ⋯ through which the homology of a manifold relative to the complement of a compact set is computed by induction on the number of convex pieces in charts, which is the route to fundamental classes and to Poincaré duality.

The construction applies the relative Mayer–Vietoris sequence of a square of pairs of simplicial sets (SSetPair.shortExact_mayerVietoris) to the pairs formed by the singular simplicial set of X and the singular simplicial sets of U ∩ V, U and V, together with the subcomplex of singular simplices of X lying in U or in V. The ambient square consists of identities and the square of subobjects is the pushout square of the absolute Mayer–Vietoris sequence (TopCat.isPushout_toSSet_inter_smallSingularSubcomplex). Since U and V are open, the small-chain theorem for the cover of U ∪ V by U and V identifies the relative homology of X modulo that subcomplex with Hₙ(X, U ∪ V).

The second sequence is the Mayer–Vietoris sequence of two pairs. For subsets C ⊆ A and D ⊆ B of X, with A and B open in A ∪ B and C and D open in C ∪ D, it is ⋯ ⟶ Hₙ(A ∩ B, C ∩ D) ⟶ Hₙ(A, C) ⊞ Hₙ(B, D) ⟶ Hₙ(A ∪ B, C ∪ D) ⟶ Hₙ₋₁(A ∩ B, C ∩ D) ⟶ ⋯, again with first map (i_A, -i_B) and second map j_A + j_B, now induced by the inclusions of the subspaces. For the restrictions (E|U, E₀|U) and (E|V, E₀|V) of a pair over two open sets of a base, such as the Thom pair of a vector bundle over a union of two trivializing open sets, this is the sequence that assembles the relative homology of the pair over U ∪ V from its pieces. Here the ambient square of singular simplicial sets is the pushout square of A ∩ B, A, B and the singular simplices of X lying in A or in B, the square of subobjects is the corresponding square for C and D, and the small-chain theorem for both covers identifies the corner pair with (A ∪ B, C ∪ D).

Main definitions and results #

References #

The maps of the sequence #

The first map Hₙ(X, U ∩ V) ⟶ Hₙ(X, U) ⊞ Hₙ(X, V) of the relative Mayer–Vietoris sequence, with components i_U and -i_V induced by the identity of X.

Instances For

    The second map Hₙ(X, U) ⊞ Hₙ(X, V) ⟶ Hₙ(X, U ∪ V) of the relative Mayer–Vietoris sequence, the sum of the maps j_U and j_V induced by the identity of X.

    Instances For

      The square of singular pairs #

      Comparison with the pair (X, U ∪ V) #

      noncomputable def TopCat.smallSingularSubcomplexToUnion {X : TopCat} (U V : Set ↑X) :

      The singular simplices of X lying in U or in V are singular simplices of U ∪ V.

      Instances For

        Followed by the inclusion of U ∪ V into X, the map TopCat.smallSingularSubcomplexToUnion is the inclusion of the singular simplices of X lying in U or in V.

        Followed by the inclusion of U ∪ V into X, the map TopCat.smallSingularSubcomplexToUnion is the inclusion of the singular simplices of X lying in U or in V.

        The comparison maps TopCat.smallSingularSubcomplexToUnion are natural in maps carrying U into U' and V into V'.

        Up to an isomorphism of simplicial sets, TopCat.smallSingularSubcomplexToUnion U V is the inclusion of the singular simplices of U ∪ V lying in the trace of U or in the trace of V: the singular simplices of X lying in U or in V are exactly the images of those.

        The map of singular pairs from X relative to its singular simplices lying in U or in V to (X, U ∪ V), given by TopCat.smallSingularSubcomplexToUnion on subobjects and the identity on the singular simplicial set of X.

        Instances For

          The quotient map from the singular chains of X to its chains relative to the singular simplices lying in U or in V, followed by TopCat.smallSingularSubcomplexPairToUnion, is the quotient map to the relative chains of (X, U ∪ V).

          The singular simplices of X lying in U or in V compute the homology of U ∪ V, by the small-chain theorem for the cover of U ∪ V by U and V, which only needs to be open in U ∪ V.

          The long exact sequence #

          @[simp]

          The first two maps of the relative Mayer–Vietoris sequence compose to zero.

          noncomputable def TopCat.relativeMayerVietorisδ {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasCoproducts C] [CategoryTheory.Abelian C] (R : C) {X : TopCat} {U V : Set ↑X} (hU : IsOpen U) (hV : IsOpen V) (n m : ℕ) (h : m + 1 = n := by lia) :

          The relative Mayer–Vietoris connecting morphism Hₙ(X, U ∪ V) ⟶ Hₘ(X, U ∩ V), where m + 1 = n, for open sets U and V. It is the connecting morphism of the relative Mayer–Vietoris sequence of the singular pairs of X modulo U ∩ V, U, V and the singular simplices lying in U or in V, precomposed with the inverse of the small-chain isomorphism identifying the last of these with Hₙ(X, U ∪ V).

          Instances For
            theorem TopCat.relativeMayerVietoris_exact₁ {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasCoproducts C] [CategoryTheory.Abelian C] (R : C) {X : TopCat} {U V : Set ↑X} (hU : IsOpen U) (hV : IsOpen V) (n m : ℕ) (h : m + 1 = n := by lia) :
            { X₁ := (TopPair.ofSubset (U ∪ V)).singularHomology R n, X₂ := (TopPair.ofSubset (U ∩ V)).singularHomology R m, X₃ := (TopPair.ofSubset U).singularHomology R m ⊞ (TopPair.ofSubset V).singularHomology R m, f := relativeMayerVietorisδ R hU hV n m h, g := relativeMayerVietorisToBiprod R U V m, zero := ⋯ }.Exact

            Exactness of the relative Mayer–Vietoris sequence at Hₘ(X, U ∩ V).

            If Hₖ₊₁(X, U ∪ V) vanishes, the first map Hₖ(X, U ∩ V) ⟶ Hₖ(X, U) ⊞ Hₖ(X, V) of the relative Mayer–Vietoris sequence is a monomorphism.

            Exactness of the relative Mayer–Vietoris sequence at Hₙ(X, U) ⊞ Hₙ(X, V).

            theorem TopCat.relativeMayerVietoris_exact₃ {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasCoproducts C] [CategoryTheory.Abelian C] (R : C) {X : TopCat} {U V : Set ↑X} (hU : IsOpen U) (hV : IsOpen V) (n m : ℕ) (h : m + 1 = n := by lia) :
            { X₁ := (TopPair.ofSubset U).singularHomology R n ⊞ (TopPair.ofSubset V).singularHomology R n, X₂ := (TopPair.ofSubset (U ∪ V)).singularHomology R n, X₃ := (TopPair.ofSubset (U ∩ V)).singularHomology R m, f := relativeMayerVietorisFromBiprod R U V n, g := relativeMayerVietorisδ R hU hV n m h, zero := ⋯ }.Exact

            Exactness of the relative Mayer–Vietoris sequence at Hₙ(X, U ∪ V).

            The map H₀(X, U) ⊞ H₀(X, V) ⟶ H₀(X, U ∪ V) at the end of the relative Mayer–Vietoris sequence is an epimorphism.

            Naturality #

            noncomputable def TopCat.smallSingularSubcomplexPairMap {X : TopCat} {U V : Set ↑X} {Y : TopCat} {U' V' : Set ↑Y} (f : X ⟶ Y) (hfU : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) U U') (hfV : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) V V') :

            The map of singular pairs from X relative to its singular simplices lying in U or in V to Y relative to its singular simplices lying in U' or in V', induced by a map f carrying U into U' and V into V'.

            Instances For
              @[simp]

              Naturality of the relative Mayer–Vietoris connecting morphism. A map f : X ⟶ Y carrying U into U' and V into V' commutes with the connecting morphisms.

              Naturality of the relative Mayer–Vietoris connecting morphism. A map f : X ⟶ Y carrying U into U' and V into V' commutes with the connecting morphisms.

              The Mayer–Vietoris sequence of two pairs #

              The first map Hₙ(A ∩ B, C ∩ D) ⟶ Hₙ(A, C) ⊞ Hₙ(B, D) of the Mayer–Vietoris sequence of the pairs (A, C) and (B, D), with components i_A and -i_B induced by the inclusions.

              Instances For

                The second map Hₙ(A, C) ⊞ Hₙ(B, D) ⟶ Hₙ(A ∪ B, C ∪ D) of the Mayer–Vietoris sequence of the pairs (A, C) and (B, D), the sum of the maps j_A and j_B induced by the inclusions.

                Instances For

                  The square of singular pairs #

                  @[reducible, inline]
                  noncomputable abbrev TopCat.smallSingularPair {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) :

                  The pair formed by the singular simplices of X lying in A or in B and those lying in C or in D. For A and B open in A ∪ B and C and D open in C ∪ D, the small-chain theorem shows that its comparison map TopCat.smallSingularPairToUnion to the singular pair of (A ∪ B, C ∪ D) induces an isomorphism on relative homology.

                  Instances For
                    @[reducible, inline]
                    noncomputable abbrev TopCat.toSmallSingularPair {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) {A₁ C₁ : Set ↑X} (h₁ : C₁ ⊆ A₁) {i : Fin 2} (hA : A₁ ⊆ ![A, B] i) (hC : C₁ ⊆ ![C, D] i) :

                    The map of singular pairs (A₁, C₁) ⟶ TopCat.smallSingularPair hCA hDB for A₁ and C₁ lying in matching members of the covers ![A, B] and ![C, D].

                    Instances For

                      On subobjects, the square of singular pairs (A ∩ B, C ∩ D), (A, C), (B, D) and TopCat.smallSingularPair hCA hDB is the pushout square of the singular simplicial sets of C ∩ D, C and D and of the singular simplices lying in C or in D.

                      On ambient simplicial sets, the square of singular pairs (A ∩ B, C ∩ D), (A, C), (B, D) and TopCat.smallSingularPair hCA hDB is the pushout square of the singular simplicial sets of A ∩ B, A and B and of the singular simplices lying in A or in B.

                      Comparison with the pair (A ∪ B, C ∪ D) #

                      @[reducible, inline]
                      noncomputable abbrev TopCat.smallSingularPairToUnion {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) :

                      The map of singular pairs TopCat.smallSingularPair hCA hDB ⟶ (A ∪ B, C ∪ D), given by TopCat.smallSingularSubcomplexToUnion on both components.

                      Instances For
                        theorem TopCat.toSmallSingularPair_comp_smallSingularPairToUnion {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) {A₁ C₁ : Set ↑X} (h₁ : C₁ ⊆ A₁) {i : Fin 2} (hA : A₁ ⊆ ![A, B] i) (hC : C₁ ⊆ ![C, D] i) (hA' : A₁ ⊆ A ∪ B) (hC' : C₁ ⊆ C ∪ D) :

                        Followed by TopCat.smallSingularPairToUnion, the map TopCat.toSmallSingularPair is the map of singular pairs induced by the inclusion (A₁, C₁) ⟶ (A ∪ B, C ∪ D).

                        The relative homology of TopCat.smallSingularPair hCA hDB is identified with that of (A ∪ B, C ∪ D) by TopCat.smallSingularPairToUnion.

                        The long exact sequence #

                        @[simp]

                        The first two maps of the Mayer–Vietoris sequence of two pairs compose to zero.

                        @[simp]

                        The first two maps of the Mayer–Vietoris sequence of two pairs compose to zero.

                        noncomputable def TopCat.pairMayerVietorisδ {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasCoproducts C] [CategoryTheory.Abelian C] (R : C) {X : TopCat} {A B C✝ D : Set ↑X} (hCA : C✝ ⊆ A) (hDB : D ⊆ B) (hA : IsOpen (Subtype.val ⁻¹' A)) (hB : IsOpen (Subtype.val ⁻¹' B)) (hC : IsOpen (Subtype.val ⁻¹' C✝)) (hD : IsOpen (Subtype.val ⁻¹' D)) (n m : ℕ) (h : m + 1 = n := by lia) :

                        The connecting morphism Hₙ(A ∪ B, C ∪ D) ⟶ Hₘ(A ∩ B, C ∩ D), m + 1 = n, of the Mayer–Vietoris sequence of the pairs (A, C) and (B, D), for A and B open in A ∪ B and C and D open in C ∪ D. It is the connecting morphism of the Mayer–Vietoris sequence of the singular pairs of A ∩ B, A, B and of the singular simplices of X lying in A or in B (relative to those lying in C or in D), precomposed with the inverse of the small-chain isomorphism identifying the last of these with Hₙ(A ∪ B, C ∪ D).

                        Instances For
                          @[simp]
                          theorem TopCat.pairMayerVietorisδ_toBiprod {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasCoproducts C] [CategoryTheory.Abelian C] (R : C) {X : TopCat} {A B C✝ D : Set ↑X} (hCA : C✝ ⊆ A) (hDB : D ⊆ B) (hA : IsOpen (Subtype.val ⁻¹' A)) (hB : IsOpen (Subtype.val ⁻¹' B)) (hC : IsOpen (Subtype.val ⁻¹' C✝)) (hD : IsOpen (Subtype.val ⁻¹' D)) (n m : ℕ) (h : m + 1 = n := by lia) :
                          @[simp]
                          @[simp]
                          theorem TopCat.pairMayerVietorisFromBiprod_δ {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasCoproducts C] [CategoryTheory.Abelian C] (R : C) {X : TopCat} {A B C✝ D : Set ↑X} (hCA : C✝ ⊆ A) (hDB : D ⊆ B) (hA : IsOpen (Subtype.val ⁻¹' A)) (hB : IsOpen (Subtype.val ⁻¹' B)) (hC : IsOpen (Subtype.val ⁻¹' C✝)) (hD : IsOpen (Subtype.val ⁻¹' D)) (n m : ℕ) (h : m + 1 = n := by lia) :
                          @[simp]
                          theorem TopCat.pairMayerVietorisFromBiprod_δ_assoc {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasCoproducts C] [CategoryTheory.Abelian C] (R : C) {X : TopCat} {A B C✝ D : Set ↑X} (hCA : C✝ ⊆ A) (hDB : D ⊆ B) (hA : IsOpen (Subtype.val ⁻¹' A)) (hB : IsOpen (Subtype.val ⁻¹' B)) (hC : IsOpen (Subtype.val ⁻¹' C✝)) (hD : IsOpen (Subtype.val ⁻¹' D)) (n m : ℕ) (h : m + 1 = n := by lia) {Z : C} (h✝ : (TopPair.ofInclusion ⋯).singularHomology R m ⟶ Z) :
                          theorem TopCat.pairMayerVietoris_exact₁ {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasCoproducts C] [CategoryTheory.Abelian C] (R : C) {X : TopCat} {A B C✝ D : Set ↑X} (hCA : C✝ ⊆ A) (hDB : D ⊆ B) (hA : IsOpen (Subtype.val ⁻¹' A)) (hB : IsOpen (Subtype.val ⁻¹' B)) (hC : IsOpen (Subtype.val ⁻¹' C✝)) (hD : IsOpen (Subtype.val ⁻¹' D)) (n m : ℕ) (h : m + 1 = n := by lia) :
                          { X₁ := (TopPair.ofInclusion ⋯).singularHomology R n, X₂ := (TopPair.ofInclusion ⋯).singularHomology R m, X₃ := (TopPair.ofInclusion hCA).singularHomology R m ⊞ (TopPair.ofInclusion hDB).singularHomology R m, f := pairMayerVietorisδ R hCA hDB hA hB hC hD n m h, g := pairMayerVietorisToBiprod R hCA hDB m, zero := ⋯ }.Exact

                          Exactness of the Mayer–Vietoris sequence of two pairs at Hₘ(A ∩ B, C ∩ D).

                          theorem TopCat.pairMayerVietoris_exact₂ {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasCoproducts C] [CategoryTheory.Abelian C] (R : C) {X : TopCat} {A B C✝ D : Set ↑X} (hCA : C✝ ⊆ A) (hDB : D ⊆ B) (hA : IsOpen (Subtype.val ⁻¹' A)) (hB : IsOpen (Subtype.val ⁻¹' B)) (hC : IsOpen (Subtype.val ⁻¹' C✝)) (hD : IsOpen (Subtype.val ⁻¹' D)) (n : ℕ) :

                          Exactness of the Mayer–Vietoris sequence of two pairs at Hₙ(A, C) ⊞ Hₙ(B, D).

                          theorem TopCat.pairMayerVietoris_exact₃ {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasCoproducts C] [CategoryTheory.Abelian C] (R : C) {X : TopCat} {A B C✝ D : Set ↑X} (hCA : C✝ ⊆ A) (hDB : D ⊆ B) (hA : IsOpen (Subtype.val ⁻¹' A)) (hB : IsOpen (Subtype.val ⁻¹' B)) (hC : IsOpen (Subtype.val ⁻¹' C✝)) (hD : IsOpen (Subtype.val ⁻¹' D)) (n m : ℕ) (h : m + 1 = n := by lia) :
                          { X₁ := (TopPair.ofInclusion hCA).singularHomology R n ⊞ (TopPair.ofInclusion hDB).singularHomology R n, X₂ := (TopPair.ofInclusion ⋯).singularHomology R n, X₃ := (TopPair.ofInclusion ⋯).singularHomology R m, f := pairMayerVietorisFromBiprod R hCA hDB n, g := pairMayerVietorisδ R hCA hDB hA hB hC hD n m h, zero := ⋯ }.Exact

                          Exactness of the Mayer–Vietoris sequence of two pairs at Hₙ(A ∪ B, C ∪ D).

                          If Hₖ₊₁(A ∪ B, C ∪ D) vanishes, the first map Hₖ(A ∩ B, C ∩ D) ⟶ Hₖ(A, C) ⊞ Hₖ(B, D) of the Mayer–Vietoris sequence of two pairs is a monomorphism.

                          The map H₀(A, C) ⊞ H₀(B, D) ⟶ H₀(A ∪ B, C ∪ D) at the end of the Mayer–Vietoris sequence of two pairs is an epimorphism.

                          Vanishing propagates along the Mayer–Vietoris sequence of two pairs: if Hₙ(A, C) and Hₙ(B, D) vanish, and so does Hₙ₋₁(A ∩ B, C ∩ D) when n is positive, then Hₙ(A ∪ B, C ∪ D) vanishes.

                          Naturality of the square of singular pairs #

                          noncomputable def TopCat.smallSingularPairMap {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) {Y : TopCat} {A' B' C' D' : Set ↑Y} (hCA' : C' ⊆ A') (hDB' : D' ⊆ B') (f : X ⟶ Y) (hfA : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) A A') (hfB : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) B B') (hfC : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) C C') (hfD : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) D D') :

                          The map of pairs TopCat.smallSingularPair hCA hDB ⟶ TopCat.smallSingularPair hCA' hDB' induced by a map f carrying A, B, C and D into A', B', C' and D': the restrictions of f to the singular simplices lying in C or in D and to those lying in A or in B.

                          Instances For
                            @[simp]
                            theorem TopCat.smallSingularPairMap_left {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) {Y : TopCat} {A' B' C' D' : Set ↑Y} (hCA' : C' ⊆ A') (hDB' : D' ⊆ B') (f : X ⟶ Y) (hfA : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) A A') (hfB : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) B B') (hfC : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) C C') (hfD : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) D D') :
                            (smallSingularPairMap hCA hDB hCA' hDB' f hfA hfB hfC hfD).left = smallSingularSubcomplexMap ![C, D] ![C', D'] f id ⋯
                            @[simp]
                            theorem TopCat.smallSingularPairMap_right {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) {Y : TopCat} {A' B' C' D' : Set ↑Y} (hCA' : C' ⊆ A') (hDB' : D' ⊆ B') (f : X ⟶ Y) (hfA : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) A A') (hfB : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) B B') (hfC : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) C C') (hfD : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) D D') :
                            (smallSingularPairMap hCA hDB hCA' hDB' f hfA hfB hfC hfD).right = smallSingularSubcomplexMap ![A, B] ![A', B'] f id ⋯
                            @[simp]
                            theorem TopCat.smallSingularPairMap_id {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) :
                            theorem TopCat.smallSingularPairMap_comp {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) {Y : TopCat} {A' B' C' D' : Set ↑Y} (hCA' : C' ⊆ A') (hDB' : D' ⊆ B') (f : X ⟶ Y) (hfA : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) A A') (hfB : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) B B') (hfC : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) C C') (hfD : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) D D') {Z : TopCat} {A'' B'' C'' D'' : Set ↑Z} (hCA'' : C'' ⊆ A'') (hDB'' : D'' ⊆ B'') (g : Y ⟶ Z) (hgA : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom g)) A' A'') (hgB : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom g)) B' B'') (hgC : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom g)) C' C'') (hgD : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom g)) D' D'') :
                            smallSingularPairMap hCA hDB hCA'' hDB'' (CategoryTheory.CategoryStruct.comp f g) ⋯ ⋯ ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (smallSingularPairMap hCA hDB hCA' hDB' f hfA hfB hfC hfD) (smallSingularPairMap hCA' hDB' hCA'' hDB'' g hgA hgB hgC hgD)

                            The maps TopCat.smallSingularPairMap respect composition.

                            theorem TopCat.smallSingularPairMap_comp_assoc {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) {Y : TopCat} {A' B' C' D' : Set ↑Y} (hCA' : C' ⊆ A') (hDB' : D' ⊆ B') (f : X ⟶ Y) (hfA : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) A A') (hfB : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) B B') (hfC : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) C C') (hfD : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) D D') {Z : TopCat} {A'' B'' C'' D'' : Set ↑Z} (hCA'' : C'' ⊆ A'') (hDB'' : D'' ⊆ B'') (g : Y ⟶ Z) (hgA : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom g)) A' A'') (hgB : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom g)) B' B'') (hgC : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom g)) C' C'') (hgD : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom g)) D' D'') {Z✝ : SSetPair} (h : smallSingularPair hCA'' hDB'' ⟶ Z✝) :
                            CategoryTheory.CategoryStruct.comp (smallSingularPairMap hCA hDB hCA'' hDB'' (CategoryTheory.CategoryStruct.comp f g) ⋯ ⋯ ⋯ ⋯) h = CategoryTheory.CategoryStruct.comp (smallSingularPairMap hCA hDB hCA' hDB' f hfA hfB hfC hfD) (CategoryTheory.CategoryStruct.comp (smallSingularPairMap hCA' hDB' hCA'' hDB'' g hgA hgB hgC hgD) h)

                            The maps TopCat.smallSingularPairMap respect composition.

                            theorem TopCat.toSmallSingularPair_comp_smallSingularPairMap {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) {Y : TopCat} {A' B' C' D' : Set ↑Y} (hCA' : C' ⊆ A') (hDB' : D' ⊆ B') (f : X ⟶ Y) (hfA : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) A A') (hfB : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) B B') (hfC : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) C C') (hfD : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) D D') {A₁ C₁ : Set ↑X} (h₁ : C₁ ⊆ A₁) {A₂ C₂ : Set ↑Y} (h₂ : C₂ ⊆ A₂) {i : Fin 2} (hA₁ : A₁ ⊆ ![A, B] i) (hC₁ : C₁ ⊆ ![C, D] i) (hA₂ : A₂ ⊆ ![A', B'] i) (hC₂ : C₂ ⊆ ![C', D'] i) (hfA₁ : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) A₁ A₂) (hfC₁ : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) C₁ C₂) :
                            CategoryTheory.CategoryStruct.comp (toSmallSingularPair hCA hDB h₁ hA₁ hC₁) (smallSingularPairMap hCA hDB hCA' hDB' f hfA hfB hfC hfD) = CategoryTheory.CategoryStruct.comp (TopPair.toSSetPair.map (TopPair.ofInclusionMap h₁ h₂ { toFun := Set.MapsTo.restrict (⇑(CategoryTheory.ConcreteCategory.hom f)) A₁ A₂ hfA₁, continuous_toFun := ⋯ } ⋯)) (toSmallSingularPair hCA' hDB' h₂ hA₂ hC₂)

                            The maps TopCat.toSmallSingularPair are natural along the maps TopCat.smallSingularPairMap.

                            theorem TopCat.toSmallSingularPair_comp_smallSingularPairMap_assoc {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) {Y : TopCat} {A' B' C' D' : Set ↑Y} (hCA' : C' ⊆ A') (hDB' : D' ⊆ B') (f : X ⟶ Y) (hfA : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) A A') (hfB : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) B B') (hfC : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) C C') (hfD : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) D D') {A₁ C₁ : Set ↑X} (h₁ : C₁ ⊆ A₁) {A₂ C₂ : Set ↑Y} (h₂ : C₂ ⊆ A₂) {i : Fin 2} (hA₁ : A₁ ⊆ ![A, B] i) (hC₁ : C₁ ⊆ ![C, D] i) (hA₂ : A₂ ⊆ ![A', B'] i) (hC₂ : C₂ ⊆ ![C', D'] i) (hfA₁ : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) A₁ A₂) (hfC₁ : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) C₁ C₂) {Z : SSetPair} (h : smallSingularPair hCA' hDB' ⟶ Z) :

                            The maps TopCat.toSmallSingularPair are natural along the maps TopCat.smallSingularPairMap.

                            theorem TopCat.smallSingularPairToUnion_comp_ofInclusionMap {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) {Y : TopCat} {A' B' C' D' : Set ↑Y} (hCA' : C' ⊆ A') (hDB' : D' ⊆ B') (f : X ⟶ Y) (hfA : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) A A') (hfB : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) B B') (hfC : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) C C') (hfD : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) D D') :

                            The comparison maps TopCat.smallSingularPairToUnion are natural along the maps TopCat.smallSingularPairMap.

                            theorem TopCat.smallSingularPairToUnion_comp_ofInclusionMap_assoc {X : TopCat} {A B C D : Set ↑X} (hCA : C ⊆ A) (hDB : D ⊆ B) {Y : TopCat} {A' B' C' D' : Set ↑Y} (hCA' : C' ⊆ A') (hDB' : D' ⊆ B') (f : X ⟶ Y) (hfA : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) A A') (hfB : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) B B') (hfC : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) C C') (hfD : Set.MapsTo (⇑(CategoryTheory.ConcreteCategory.hom f)) D D') {Z : SSetPair} (h : TopPair.toSSetPair.obj (TopPair.ofInclusion ⋯) ⟶ Z) :

                            The comparison maps TopCat.smallSingularPairToUnion are natural along the maps TopCat.smallSingularPairMap.