Documentation

Mathlib.AlgebraicTopology.SimplexCategory.Basic

Basic properties of the simplex category #

In Mathlib.AlgebraicTopology.SimplexCategory.Defs, we define the simplex category with objects and morphisms n ⟶ m the monotone maps from Fin (n + 1) to Fin (m + 1).

In this file, we define the generating maps for the simplex category, show that this category is equivalent to NonemptyFinLinOrd, and establish basic properties of its epimorphisms and monomorphisms.

def SimplexCategory.const (x y : SimplexCategory) (i : Fin (y.len + 1)) :
x y

The constant morphism from ⦋0⦌.

Equations
Instances For
    @[simp]
    theorem SimplexCategory.const_apply (x y : SimplexCategory) (i : Fin (y.len + 1)) (a : Fin (x.len + 1)) :
    (Hom.toOrderHom (x.const y i)) a = i
    theorem SimplexCategory.Hom.ext_zero_left {n : SimplexCategory} (f g : SimplexCategory.mk 0 n) (h0 : (toOrderHom f) 0 = (toOrderHom g) 0 := by rfl) :
    f = g
    theorem SimplexCategory.exists_eq_const_of_zero {n : SimplexCategory} (f : mk 0 n) :
    ∃ (a : Fin (n.len + 1)), f = (mk 0).const n a
    theorem SimplexCategory.Hom.ext_one_left {n : SimplexCategory} (f g : SimplexCategory.mk 1 n) (h0 : (toOrderHom f) 0 = (toOrderHom g) 0 := by rfl) (h1 : (toOrderHom f) 1 = (toOrderHom g) 1 := by rfl) :
    f = g
    theorem SimplexCategory.eq_of_one_to_one (f : mk 1 mk 1) :
    (∃ (a : Fin ((mk 1).len + 1)), f = (mk 1).const (mk 1) a) f = CategoryTheory.CategoryStruct.id (mk 1)
    def SimplexCategory.mkHom {n m : } (f : Fin (n + 1) →o Fin (m + 1)) :
    mk n mk m

    Make a morphism ⦋n⦌ ⟶ ⦋m⦌ from a monotone map between fin's. This is useful for constructing morphisms between ⦋n⦌ directly without identifying n with ⦋n⦌.len.

    Equations
    Instances For
      def SimplexCategory.mkOfLe {n : } (i j : Fin (n + 1)) (h : i j) :
      mk 1 mk n

      The morphism ⦋1⦌ ⟶ ⦋n⦌ that picks out a specified h : i ≤ j in Fin (n+1).

      Equations
      Instances For
        @[simp]
        theorem SimplexCategory.mkOfLe_refl {n : } (j : Fin (n + 1)) :
        mkOfLe j j = (mk 1).const (mk n) j

        The morphism ⦋1⦌ ⟶ ⦋n⦌ that picks out the "diagonal composite" edge

        Equations
        Instances For
          def SimplexCategory.intervalEdge {n : } (j l : ) (hjl : j + l n) :
          mk 1 mk n

          The morphism ⦋1⦌ ⟶ ⦋n⦌ that picks out the edge spanning the interval from j to j + l.

          Equations
          Instances For
            def SimplexCategory.mkOfSucc {n : } (i : Fin n) :
            mk 1 mk n

            The morphism ⦋1⦌ ⟶ ⦋n⦌ that picks out the arrow i ⟶ i+1 in Fin (n+1).

            Equations
            Instances For
              def SimplexCategory.mkOfLeComp {n : } (i j k : Fin (n + 1)) (h₁ : i j) (h₂ : j k) :
              mk 2 mk n

              The morphism ⦋2⦌ ⟶ ⦋n⦌ that picks out a specified composite of morphisms in Fin (n+1).

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def SimplexCategory.subinterval {n : } (j l : ) (hjl : j + l n) :
                mk l mk n

                The "inert" morphism associated to a subinterval j ≤ i ≤ j + l of Fin (n + 1).

                Equations
                Instances For
                  theorem SimplexCategory.const_subinterval_eq {n : } (j l : ) (hjl : j + l n) (i : Fin (l + 1)) :
                  CategoryTheory.CategoryStruct.comp ((mk 0).const (mk l) i) (subinterval j l hjl) = (mk 0).const (mk n) j + i,
                  @[simp]
                  theorem SimplexCategory.mkOfSucc_subinterval_eq {n : } (j l : ) (hjl : j + l n) (i : Fin l) :
                  @[simp]

                  Generating maps for the simplex category #

                  TODO: prove that the simplex category is equivalent to one given by the following generators and relations.

                  def SimplexCategory.δ {n : } (i : Fin (n + 2)) :
                  mk n mk (n + 1)

                  The i-th face map from ⦋n⦌ to ⦋n+1⦌

                  Equations
                  Instances For
                    def SimplexCategory.σ {n : } (i : Fin (n + 1)) :
                    mk (n + 1) mk n

                    The i-th degeneracy map from ⦋n+1⦌ to ⦋n⦌

                    Equations
                    Instances For

                      The generic case of the first simplicial identity

                      The special case of the first simplicial identity

                      The second simplicial identity

                      The first part of the third simplicial identity

                      The second part of the third simplicial identity

                      The fourth simplicial identity

                      The fifth simplicial identity

                      def SimplexCategory.factor_δ {m n : } (f : mk m mk (n + 1)) (j : Fin (n + 2)) :
                      mk m mk n

                      If f : ⦋m⦌ ⟶ ⦋n+1⦌ is a morphism and j is not in the range of f, then factor_δ f j is a morphism ⦋m⦌ ⟶ ⦋n⦌ such that factor_δ f j ≫ δ j = f (as witnessed by factor_δ_spec).

                      Equations
                      Instances For
                        theorem SimplexCategory.factor_δ_spec {m n : } (f : mk m mk (n + 1)) (j : Fin (n + 2)) (hj : ∀ (k : Fin (m + 1)), (Hom.toOrderHom f) k j) :

                        If i + 1 < j, mkOfSucc i ≫ δ j is the morphism ⦋1⦌ ⟶ ⦋n⦌ that sends 0 and 1 to i and i + 1, respectively.

                        If i + 1 > j, mkOfSucc i ≫ δ j is the morphism ⦋1⦌ ⟶ ⦋n⦌ that sends 0 and 1 to i + 1 and i + 2, respectively.

                        theorem SimplexCategory.mkOfSucc_δ_eq {n : } {i : Fin n} {j : Fin (n + 2)} (h : j = i.succ.castSucc) :

                        If i + 1 = j, mkOfSucc i ≫ δ j is the morphism ⦋1⦌ ⟶ ⦋n⦌ that sends 0 and 1 to i and i + 2, respectively.

                        theorem SimplexCategory.eq_of_one_to_two (f : mk 1 mk 2) :
                        f = δ 0 f = δ 1 f = δ 2 ∃ (a : Fin ((mk 2).len + 1)), f = (mk 1).const (mk 2) a

                        The functor that exhibits SimplexCategory as skeleton of NonemptyFinLinOrd

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          Equations
                          • One or more equations did not get rendered due to their size.

                          A morphism in SimplexCategory is a monomorphism precisely when it is an injective function

                          A morphism in SimplexCategory is an epimorphism if and only if it is a surjective function

                          A monomorphism in SimplexCategory must increase lengths

                          theorem SimplexCategory.le_of_mono {n m : } {f : mk n mk m} :

                          An epimorphism in SimplexCategory must decrease lengths

                          theorem SimplexCategory.le_of_epi {n m : } {f : mk n mk m} :
                          def SimplexCategory.orderIsoOfIso {x y : SimplexCategory} (e : x y) :
                          Fin (x.len + 1) ≃o Fin (y.len + 1)

                          An isomorphism in SimplexCategory induces an OrderIso.

                          Equations
                          Instances For
                            theorem SimplexCategory.eq_σ_comp_of_not_injective' {n : } {Δ' : SimplexCategory} (θ : mk (n + 1) Δ') (i : Fin (n + 1)) (hi : (Hom.toOrderHom θ) i.castSucc = (Hom.toOrderHom θ) i.succ) :
                            ∃ (θ' : mk n Δ'), θ = CategoryTheory.CategoryStruct.comp (σ i) θ'
                            theorem SimplexCategory.eq_σ_comp_of_not_injective {n : } {Δ' : SimplexCategory} (θ : mk (n + 1) Δ') (hθ : ¬Function.Injective (Hom.toOrderHom θ)) :
                            ∃ (i : Fin (n + 1)) (θ' : mk n Δ'), θ = CategoryTheory.CategoryStruct.comp (σ i) θ'
                            theorem SimplexCategory.eq_comp_δ_of_not_surjective' {n : } {Δ : SimplexCategory} (θ : Δ mk (n + 1)) (i : Fin (n + 2)) (hi : ∀ (x : Fin (Δ.len + 1)), (Hom.toOrderHom θ) x i) :
                            ∃ (θ' : Δ mk n), θ = CategoryTheory.CategoryStruct.comp θ' (δ i)
                            theorem SimplexCategory.eq_comp_δ_of_not_surjective {n : } {Δ : SimplexCategory} (θ : Δ mk (n + 1)) (hθ : ¬Function.Surjective (Hom.toOrderHom θ)) :
                            ∃ (i : Fin (n + 2)) (θ' : Δ mk n), θ = CategoryTheory.CategoryStruct.comp θ' (δ i)
                            theorem SimplexCategory.eq_σ_of_epi {n : } (θ : mk (n + 1) mk n) [CategoryTheory.Epi θ] :
                            ∃ (i : Fin (n + 1)), θ = σ i
                            theorem SimplexCategory.eq_δ_of_mono {n : } (θ : mk n mk (n + 1)) [CategoryTheory.Mono θ] :
                            ∃ (i : Fin (n + 2)), θ = δ i
                            theorem SimplexCategory.len_lt_of_mono {Δ' Δ : SimplexCategory} (i : Δ' Δ) [hi : CategoryTheory.Mono i] (hi' : Δ Δ') :
                            Δ'.len < Δ.len
                            theorem SimplexCategory.image_eq {Δ Δ' Δ'' : SimplexCategory} {φ : Δ Δ''} {e : Δ Δ'} [CategoryTheory.Epi e] {i : Δ' Δ''} [CategoryTheory.Mono i] (fac : CategoryTheory.CategoryStruct.comp e i = φ) :

                            This functor SimplexCategory ⥤ Cat sends ⦋n⦌ (for n : ℕ) to the category attached to the ordered set {0, 1, ..., n}

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[simp]
                              theorem SimplexCategory.toCat_map {X✝ Y✝ : SimplexCategory} (f : X✝ Y✝) :