Documentation

Mathlib.CategoryTheory.Square

The category of commutative squares #

In this file, we define a bundled version of CommSq which allows to consider commutative squares as objects in a category Square C.

The four objects in a commutative square are numbered as follows:

X₁ --> X₂
|      |
v      v
X₃ --> X₄

We define the flip functor, and two equivalences with the category Arrow (Arrow C), depending on whether we consider a commutative square as a horizontal morphism between two vertical maps (arrowArrowEquivalence) or a vertical morphism between two horizontal maps (arrowArrowEquivalence').

structure CategoryTheory.Square (C : Type u) [Category.{v, u} C] :
Type (max u v)

The category of commutative squares in a category.

structure CategoryTheory.Square.Hom {C : Type u} [Category.{v, u} C] (sq₁ sq₂ : Square C) :

A morphism between two commutative squares consists of 4 morphisms which extend these two squares into a commuting cube.

theorem CategoryTheory.Square.Hom.ext {C : Type u} {inst✝ : Category.{v, u} C} {sq₁ sq₂ : Square C} {x y : sq₁.Hom sq₂} (τ₁ : x.τ₁ = y.τ₁) (τ₂ : x.τ₂ = y.τ₂) (τ₃ : x.τ₃ = y.τ₃) (τ₄ : x.τ₄ = y.τ₄) :
x = y
theorem CategoryTheory.Square.Hom.ext_iff {C : Type u} {inst✝ : Category.{v, u} C} {sq₁ sq₂ : Square C} {x y : sq₁.Hom sq₂} :
@[simp]
theorem CategoryTheory.Square.Hom.comm₁₂_assoc {C : Type u} [Category.{v, u} C] {sq₁ sq₂ : Square C} (self : sq₁.Hom sq₂) {Z : C} (h : sq₂.X₂ Z) :
@[simp]
theorem CategoryTheory.Square.Hom.comm₂₄_assoc {C : Type u} [Category.{v, u} C] {sq₁ sq₂ : Square C} (self : sq₁.Hom sq₂) {Z : C} (h : sq₂.X₄ Z) :
@[simp]
theorem CategoryTheory.Square.Hom.comm₁₃_assoc {C : Type u} [Category.{v, u} C] {sq₁ sq₂ : Square C} (self : sq₁.Hom sq₂) {Z : C} (h : sq₂.X₃ Z) :
@[simp]
theorem CategoryTheory.Square.Hom.comm₃₄_assoc {C : Type u} [Category.{v, u} C] {sq₁ sq₂ : Square C} (self : sq₁.Hom sq₂) {Z : C} (h : sq₂.X₄ Z) :

The identity of a commutative square.

Equations
  • One or more equations did not get rendered due to their size.
def CategoryTheory.Square.Hom.comp {C : Type u} [Category.{v, u} C] {sq₁ sq₂ sq₃ : Square C} (f : sq₁.Hom sq₂) (g : sq₂.Hom sq₃) :
sq₁.Hom sq₃

The composition of morphisms of squares.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Square.Hom.comp_τ₃ {C : Type u} [Category.{v, u} C] {sq₁ sq₂ sq₃ : Square C} (f : sq₁.Hom sq₂) (g : sq₂.Hom sq₃) :
@[simp]
theorem CategoryTheory.Square.Hom.comp_τ₁ {C : Type u} [Category.{v, u} C] {sq₁ sq₂ sq₃ : Square C} (f : sq₁.Hom sq₂) (g : sq₂.Hom sq₃) :
@[simp]
theorem CategoryTheory.Square.Hom.comp_τ₄ {C : Type u} [Category.{v, u} C] {sq₁ sq₂ sq₃ : Square C} (f : sq₁.Hom sq₂) (g : sq₂.Hom sq₃) :
@[simp]
theorem CategoryTheory.Square.Hom.comp_τ₂ {C : Type u} [Category.{v, u} C] {sq₁ sq₂ sq₃ : Square C} (f : sq₁.Hom sq₂) (g : sq₂.Hom sq₃) :
Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Square.category_comp_τ₄ {C : Type u} [Category.{v, u} C] {X✝ Y✝ Z✝ : Square C} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) :
@[simp]
theorem CategoryTheory.Square.category_comp_τ₃ {C : Type u} [Category.{v, u} C] {X✝ Y✝ Z✝ : Square C} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) :
@[simp]
theorem CategoryTheory.Square.category_comp_τ₁ {C : Type u} [Category.{v, u} C] {X✝ Y✝ Z✝ : Square C} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) :
@[simp]
theorem CategoryTheory.Square.category_comp_τ₂ {C : Type u} [Category.{v, u} C] {X✝ Y✝ Z✝ : Square C} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) :
theorem CategoryTheory.Square.hom_ext {C : Type u} [Category.{v, u} C] {sq₁ sq₂ : Square C} {f g : sq₁ sq₂} (h₁ : f.τ₁ = g.τ₁) (h₂ : f.τ₂ = g.τ₂) (h₃ : f.τ₃ = g.τ₃) (h₄ : f.τ₄ = g.τ₄) :
f = g
theorem CategoryTheory.Square.hom_ext_iff {C : Type u} [Category.{v, u} C] {sq₁ sq₂ : Square C} {f g : sq₁ sq₂} :
def CategoryTheory.Square.isoMk {C : Type u} [Category.{v, u} C] {sq₁ sq₂ : Square C} (e₁ : sq₁.X₁ sq₂.X₁) (e₂ : sq₁.X₂ sq₂.X₂) (e₃ : sq₁.X₃ sq₂.X₃) (e₄ : sq₁.X₄ sq₂.X₄) (comm₁₂ : CategoryStruct.comp sq₁.f₁₂ e₂.hom = CategoryStruct.comp e₁.hom sq₂.f₁₂) (comm₁₃ : CategoryStruct.comp sq₁.f₁₃ e₃.hom = CategoryStruct.comp e₁.hom sq₂.f₁₃) (comm₂₄ : CategoryStruct.comp sq₁.f₂₄ e₄.hom = CategoryStruct.comp e₂.hom sq₂.f₂₄) (comm₃₄ : CategoryStruct.comp sq₁.f₃₄ e₄.hom = CategoryStruct.comp e₃.hom sq₂.f₃₄) :
sq₁ sq₂

Constructor for isomorphisms in Square c

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

Flipping a square by switching the top-right and the bottom-left objects.

Equations
@[simp]
@[simp]
@[simp]
@[simp]

The functor which flips commutative squares.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Square.flipFunctor_map_τ₄ {C : Type u} [Category.{v, u} C] {X✝ Y✝ : Square C} (φ : X✝ Y✝) :
@[simp]
theorem CategoryTheory.Square.flipFunctor_map_τ₂ {C : Type u} [Category.{v, u} C] {X✝ Y✝ : Square C} (φ : X✝ Y✝) :
@[simp]
theorem CategoryTheory.Square.flipFunctor_map_τ₃ {C : Type u} [Category.{v, u} C] {X✝ Y✝ : Square C} (φ : X✝ Y✝) :
@[simp]
theorem CategoryTheory.Square.flipFunctor_map_τ₁ {C : Type u} [Category.{v, u} C] {X✝ Y✝ : Square C} (φ : X✝ Y✝) :

Flipping commutative squares is an auto-equivalence.

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

The functor Square C ⥤ Arrow (Arrow C) which sends a commutative square sq to the obvious arrow from the left morphism of sq to the right morphism of sq.

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

The functor Arrow (Arrow C) ⥤ Square C which sends a morphism Arrow.mk f ⟶ Arrow.mk g to the commutative square with f on the left side and g on the right side.

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

The equivalence Square C ≌ Arrow (Arrow C) which sends a commutative square sq to the obvious arrow from the left morphism of sq to the right morphism of sq.

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

The functor Square C ⥤ Arrow (Arrow C) which sends a commutative square sq to the obvious arrow from the top morphism of sq to the bottom morphism of sq.

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

The functor Arrow (Arrow C) ⥤ Square C which sends a morphism Arrow.mk f ⟶ Arrow.mk g to the commutative square with f on the top side and g on the bottom side.

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

The equivalence Square C ≌ Arrow (Arrow C) which sends a commutative square sq to the obvious arrow from the top morphism of sq to the bottom morphism of sq.

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

The top-left evaluation Square C ⥤ C.

Equations
@[simp]
theorem CategoryTheory.Square.evaluation₁_map {C : Type u} [Category.{v, u} C] {X✝ Y✝ : Square C} (φ : X✝ Y✝) :

The top-right evaluation Square C ⥤ C.

Equations
@[simp]
theorem CategoryTheory.Square.evaluation₂_map {C : Type u} [Category.{v, u} C] {X✝ Y✝ : Square C} (φ : X✝ Y✝) :

The bottom-left evaluation Square C ⥤ C.

Equations
@[simp]
theorem CategoryTheory.Square.evaluation₃_map {C : Type u} [Category.{v, u} C] {X✝ Y✝ : Square C} (φ : X✝ Y✝) :

The bottom-right evaluation Square C ⥤ C.

Equations
@[simp]
theorem CategoryTheory.Square.evaluation₄_map {C : Type u} [Category.{v, u} C] {X✝ Y✝ : Square C} (φ : X✝ Y✝) :

The map Square C → Square Cᵒᵖ which switches X₁ and X₃, but does not move X₂ and X₃.

Equations

The map Square Cᵒᵖ → Square C which switches X₁ and X₃, but does not move X₂ and X₃.

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

The functor (Square C)ᵒᵖ ⥤ Square Cᵒᵖ.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Square.opFunctor_map_τ₂ {C : Type u} [Category.{v, u} C] {X✝ Y✝ : (Square C)ᵒᵖ} (φ : X✝ Y✝) :
@[simp]
theorem CategoryTheory.Square.opFunctor_map_τ₃ {C : Type u} [Category.{v, u} C] {X✝ Y✝ : (Square C)ᵒᵖ} (φ : X✝ Y✝) :
@[simp]
theorem CategoryTheory.Square.opFunctor_map_τ₄ {C : Type u} [Category.{v, u} C] {X✝ Y✝ : (Square C)ᵒᵖ} (φ : X✝ Y✝) :
@[simp]
theorem CategoryTheory.Square.opFunctor_map_τ₁ {C : Type u} [Category.{v, u} C] {X✝ Y✝ : (Square C)ᵒᵖ} (φ : X✝ Y✝) :

The functor (Square Cᵒᵖ)ᵒᵖ ⥤ Square Cᵒᵖ.

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

The equivalence (Square C)ᵒᵖ ≌ Square Cᵒᵖ.

Equations
  • One or more equations did not get rendered due to their size.
def CategoryTheory.Square.map {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (sq : Square C) (F : Functor C D) :

The image of a commutative square by a functor.

Equations
@[simp]
theorem CategoryTheory.Square.map_X₂ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (sq : Square C) (F : Functor C D) :
(sq.map F).X₂ = F.obj sq.X₂
@[simp]
theorem CategoryTheory.Square.map_f₂₄ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (sq : Square C) (F : Functor C D) :
(sq.map F).f₂₄ = F.map sq.f₂₄
@[simp]
theorem CategoryTheory.Square.map_f₁₂ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (sq : Square C) (F : Functor C D) :
(sq.map F).f₁₂ = F.map sq.f₁₂
@[simp]
theorem CategoryTheory.Square.map_f₃₄ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (sq : Square C) (F : Functor C D) :
(sq.map F).f₃₄ = F.map sq.f₃₄
@[simp]
theorem CategoryTheory.Square.map_f₁₃ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (sq : Square C) (F : Functor C D) :
(sq.map F).f₁₃ = F.map sq.f₁₃
@[simp]
theorem CategoryTheory.Square.map_X₃ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (sq : Square C) (F : Functor C D) :
(sq.map F).X₃ = F.obj sq.X₃
@[simp]
theorem CategoryTheory.Square.map_X₄ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (sq : Square C) (F : Functor C D) :
(sq.map F).X₄ = F.obj sq.X₄
@[simp]
theorem CategoryTheory.Square.map_X₁ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (sq : Square C) (F : Functor C D) :
(sq.map F).X₁ = F.obj sq.X₁

The functor Square C ⥤ Square D induced by a functor C ⥤ D.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Functor.mapSquare_map_τ₂ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (F : Functor C D) {X✝ Y✝ : Square C} (φ : X✝ Y✝) :
@[simp]
theorem CategoryTheory.Functor.mapSquare_map_τ₄ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (F : Functor C D) {X✝ Y✝ : Square C} (φ : X✝ Y✝) :
@[simp]
theorem CategoryTheory.Functor.mapSquare_map_τ₁ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (F : Functor C D) {X✝ Y✝ : Square C} (φ : X✝ Y✝) :
@[simp]
theorem CategoryTheory.Functor.mapSquare_obj {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (F : Functor C D) (sq : Square C) :
F.mapSquare.obj sq = sq.map F
@[simp]
theorem CategoryTheory.Functor.mapSquare_map_τ₃ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (F : Functor C D) {X✝ Y✝ : Square C} (φ : X✝ Y✝) :

The natural transformation F.mapSquare ⟶ G.mapSquare induces by a natural transformation F ⟶ G.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.NatTrans.mapSquare_app_τ₃ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] {F G : Functor C D} (τ : F G) (sq : Square C) :
((mapSquare τ).app sq).τ₃ = τ.app sq.X₃
@[simp]
theorem CategoryTheory.NatTrans.mapSquare_app_τ₂ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] {F G : Functor C D} (τ : F G) (sq : Square C) :
((mapSquare τ).app sq).τ₂ = τ.app sq.X₂
@[simp]
theorem CategoryTheory.NatTrans.mapSquare_app_τ₄ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] {F G : Functor C D} (τ : F G) (sq : Square C) :
((mapSquare τ).app sq).τ₄ = τ.app sq.X₄
@[simp]
theorem CategoryTheory.NatTrans.mapSquare_app_τ₁ {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] {F G : Functor C D} (τ : F G) (sq : Square C) :
((mapSquare τ).app sq).τ₁ = τ.app sq.X₁

The functor (C ⥤ D) ⥤ Square C ⥤ Square D.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Square.mapFunctor_map {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] {X✝ Y✝ : Functor C D} (τ : X✝ Y✝) :