Documentation

Mathlib.AlgebraicTopology.SimplexCategory.Basic

Basic properties of the simplex category #

In Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean, 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
@[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
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
@[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
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
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
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.
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
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
def SimplexCategory.σ {n : } (i : Fin (n + 1)) :
mk (n + 1) mk n

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

Equations

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
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) :
(∃ (i : Fin (1 + 2)), f = δ i) ∃ (a : Fin ((mk 2).len + 1)), f = (mk 1).const (mk 2) a
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.
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
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) Δ') ( : ¬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)) ( : ¬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.
@[simp]
theorem SimplexCategory.toCat_map {X✝ Y✝ : SimplexCategory} (f : X✝ Y✝) :