# Documentation

Mathlib.CategoryTheory.NatTrans

# Natural transformations #

Defines natural transformations between functors.

A natural transformation α : NatTrans F G consists of morphisms α.app X : F.obj X ⟶ G.obj X⟶ G.obj X, and the naturality squares α.naturality f : F.map f ≫ α.app Y = α.app X ≫ G.map f≫ α.app Y = α.app X ≫ G.map f≫ G.map f, where f : X ⟶ Y⟶ Y.

Note that we make NatTrans.naturality a simp lemma, with the preferred simp normal form pushing components of natural transformations to the left.

See also CategoryTheory.FunctorCat, where we provide the category structure on functors and natural transformations.

Introduces notations

• τ.app X for the components of natural transformations,
• F ⟶ G⟶ G for the type of natural transformations between functors F and G (this and the next require CategoryTheory.FunctorCat),
• σ ≫ τ≫ τ for vertical compositions, and
• σ ◫ τ◫ τ for horizontal compositions.
theorem CategoryTheory.NatTrans.ext {C : Type u₁} :
∀ {inst : } {D : Type u₂} {inst_1 : } {F G : C D} (x y : ), x.app = y.appx = y
theorem CategoryTheory.NatTrans.ext_iff {C : Type u₁} :
∀ {inst : } {D : Type u₂} {inst_1 : } {F G : C D} (x y : ), x = y x.app = y.app
structure CategoryTheory.NatTrans {C : Type u₁} [inst : ] {D : Type u₂} [inst : ] (F : C D) (G : C D) :
Type (maxu₁v₂)
• The component of a natural transformation.

app : (X : C) → F.obj X G.obj X
• The naturality square for a given morphism.

naturality : autoParam (∀ ⦃X Y : C⦄ (f : X Y), F.map f app Y = app X G.map f) _auto✝

NatTrans F G represents a natural transformation between functors F and G.

The field app provides the components of the natural transformation.

Naturality is expressed by α.naturality.

Instances For

This unexpander will pretty print η.app X properly. Without this, we would have NatTrans.app η X.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.NatTrans.naturality_assoc {C : Type u₁} [inst : ] {D : Type u₂} [inst : ] {F : C D} {G : C D} (self : ) ⦃X : C ⦃Y : C (f : X Y) {Z : D} (h : G.obj Y Z) :
F.map f self.app Y h = self.app X G.map f h
theorem CategoryTheory.congr_app {C : Type u₁} [inst : ] {D : Type u₂} [inst : ] {F : C D} {G : C D} {α : } {β : } (h : α = β) (X : C) :
α.app X = β.app X
def CategoryTheory.NatTrans.id {C : Type u₁} [inst : ] {D : Type u₂} [inst : ] (F : C D) :

NatTrans.id F is the identity natural transformation on a functor F.

Equations
@[simp]
theorem CategoryTheory.NatTrans.id_app' {C : Type u₁} [inst : ] {D : Type u₂} [inst : ] (F : C D) (X : C) :
().app X = 𝟙 (F.obj X)
instance CategoryTheory.NatTrans.instInhabitedNatTrans {C : Type u₁} [inst : ] {D : Type u₂} [inst : ] (F : C D) :
Equations
• = { default := }
def CategoryTheory.NatTrans.vcomp {C : Type u₁} [inst : ] {D : Type u₂} [inst : ] {F : C D} {G : C D} {H : C D} (α : ) (β : ) :

vcomp α β is the vertical compositions of natural transformations.

Equations
theorem CategoryTheory.NatTrans.vcomp_app {C : Type u₁} [inst : ] {D : Type u₂} [inst : ] {F : C D} {G : C D} {H : C D} (α : ) (β : ) (X : C) :
().app X = α.app X β.app X