Documentation

Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated

Edges and "triangles" in truncated simplicial sets #

Given a 2-truncated simplicial set X, we introduce two types:

structure SSet.Truncated.Edge {X : Truncated 2} (x₀ x₁ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := Edge._proof_1 })) :

In a 2-truncated simplicial set, an edge from a vertex x₀ to x₁ is a 1-simplex with prescribed 0-dimensional faces.

Instances For
    theorem SSet.Truncated.Edge.ext_iff {X : Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 })} {x y : Edge x₀ x₁} :
    x = y x.edge = y.edge
    theorem SSet.Truncated.Edge.ext {X : Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 })} {x y : Edge x₀ x₁} (edge : x.edge = y.edge) :
    x = y
    @[simp]
    theorem SSet.Truncated.Edge.mk'_edge {X : Truncated 2} (s : X.obj (Opposite.op { obj := SimplexCategory.mk 1, property := _proof_2 })) :
    (mk' s).edge = s
    theorem SSet.Truncated.Edge.exists_of_simplex {X : Truncated 2} (s : X.obj (Opposite.op { obj := SimplexCategory.mk 1, property := _proof_2 })) :
    ∃ (x₀ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 })) (x₁ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 })) (e : Edge x₀ x₁), e.edge = s
    def SSet.Truncated.Edge.id {X : Truncated 2} (x : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 })) :
    Edge x x

    The constant edge on a 0-simplex.

    Instances For
      def SSet.Truncated.Edge.map {X Y : Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 })} (e : Edge x₀ x₁) (f : X Y) :
      Edge (f.app (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 }) x₀) (f.app (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 }) x₁)

      The image of an edge by a morphism of truncated simplicial sets.

      Instances For
        @[simp]
        theorem SSet.Truncated.Edge.map_edge {X Y : Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 })} (e : Edge x₀ x₁) (f : X Y) :
        (e.map f).edge = f.app (Opposite.op { obj := SimplexCategory.mk 1, property := _proof_2 }) e.edge
        @[simp]
        theorem SSet.Truncated.Edge.map_id {X Y : Truncated 2} (x : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 })) (f : X Y) :
        (id x).map f = id (f.app (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 }) x)
        instance SSet.Truncated.Edge.instSubsingleton {X : Truncated 2} [Subsingleton (X.obj (Opposite.op { obj := SimplexCategory.mk 1, property := _proof_2 }))] {x y : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 })} :
        Subsingleton (Edge x y)
        structure SSet.Truncated.Edge.CompStruct {X : Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := _proof_1 })} (e₀₁ : Edge x₀ x₁) (e₁₂ : Edge x₁ x₂) (e₀₂ : Edge x₀ x₂) :

        Let x₀, x₁, x₂ be 0-simplices of a 2-truncated simplicial set X, e₀₁ an edge from x₀ to x₁, e₁₂ an edge from x₁ to x₂, e₀₂ an edge from x₀ to x₂. This is the data of a 2-simplex whose faces are respectively e₀₂, e₁₂ and e₀₁. Such structures shall provide relations in the homotopy category of arbitrary (truncated) simplicial sets (and specialized constructions for quasicategories and Kan complexes.).

        Instances For
          theorem SSet.Truncated.Edge.CompStruct.ext_iff {X : Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := Edge._proof_1 })} {e₀₁ : Edge x₀ x₁} {e₁₂ : Edge x₁ x₂} {e₀₂ : Edge x₀ x₂} {x y : e₀₁.CompStruct e₁₂ e₀₂} :
          x = y x.simplex = y.simplex
          theorem SSet.Truncated.Edge.CompStruct.ext {X : Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := Edge._proof_1 })} {e₀₁ : Edge x₀ x₁} {e₁₂ : Edge x₁ x₂} {e₀₂ : Edge x₀ x₂} {x y : e₀₁.CompStruct e₁₂ e₀₂} (simplex : x.simplex = y.simplex) :
          x = y
          theorem SSet.Truncated.Edge.CompStruct.exists_of_simplex {X : Truncated 2} (s : X.obj (Opposite.op { obj := SimplexCategory.mk 2, property := _proof_1 })) :
          ∃ (x₀ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := Edge._proof_1 })) (x₁ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := Edge._proof_1 })) (x₂ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := Edge._proof_1 })) (e₀₁ : Edge x₀ x₁) (e₁₂ : Edge x₁ x₂) (e₀₂ : Edge x₀ x₂) (h : e₀₁.CompStruct e₁₂ e₀₂), h.simplex = s
          def SSet.Truncated.Edge.CompStruct.idComp {X : Truncated 2} {x y : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := Edge._proof_1 })} (e : Edge x y) :
          (id x).CompStruct e e

          e : Edge x y is a composition of Edge.id x with e.

          Instances For
            def SSet.Truncated.Edge.CompStruct.compId {X : Truncated 2} {x y : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := Edge._proof_1 })} (e : Edge x y) :
            e.CompStruct (id y) e

            e : Edge x y is a composition of e with Edge.id y.

            Instances For

              Edge.id x is a composition of Edge.id x with Edge.id x.

              Instances For
                def SSet.Truncated.Edge.CompStruct.map {X Y : Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := Edge._proof_1 })} {e₀₁ : Edge x₀ x₁} {e₁₂ : Edge x₁ x₂} {e₀₂ : Edge x₀ x₂} (h : e₀₁.CompStruct e₁₂ e₀₂) (f : X Y) :
                (e₀₁.map f).CompStruct (e₁₂.map f) (e₀₂.map f)

                The image of a Edge.CompStruct by a morphism of 2-truncated simplicial sets.

                Instances For
                  @[simp]
                  theorem SSet.Truncated.Edge.CompStruct.map_simplex {X Y : Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := SimplexCategory.mk 0, property := Edge._proof_1 })} {e₀₁ : Edge x₀ x₁} {e₁₂ : Edge x₁ x₂} {e₀₂ : Edge x₀ x₂} (h : e₀₁.CompStruct e₁₂ e₀₂) (f : X Y) :
                  (h.map f).simplex = f.app (Opposite.op { obj := SimplexCategory.mk 2, property := _proof_1 }) h.simplex