The category of arrows #
The category of arrows, with morphisms commutative squares.
We set this up as a specialization of the comma category Comma L R
,
where L
and R
are both the identity functor.
Tags #
comma, arrow
The arrow category of T
has as objects all morphisms in T
and as morphisms commutative
squares in T
.
Equations
Instances For
Equations
- CategoryTheory.instCategoryArrow T = CategoryTheory.commaCategory
Equations
- CategoryTheory.Arrow.inhabited T = { default := let_fun this := default; this }
An object in the arrow category is simply a morphism in T
.
Equations
- CategoryTheory.Arrow.mk f = { left := X, right := Y, hom := f }
Instances For
Equations
- CategoryTheory.Arrow.instCoeOutHom = { coe := CategoryTheory.Arrow.mk }
A morphism in the arrow category is a commutative square connecting two objects of the arrow category.
Equations
- CategoryTheory.Arrow.homMk w = { left := u, right := v, w := w }
Instances For
We can also build a morphism in the arrow category out of any commutative square in T
.
Equations
- CategoryTheory.Arrow.homMk' w = { left := u, right := v, w := w }
Instances For
Create an isomorphism between arrows, by providing isomorphisms between the domains and codomains, and a proof that the square commutes.
Equations
- CategoryTheory.Arrow.isoMk l r h = CategoryTheory.Comma.isoMk l r h
Instances For
A variant of Arrow.isoMk
that creates an iso between two Arrow.mk
s with a better type
signature.
Equations
- CategoryTheory.Arrow.isoMk' f g e₁ e₂ h = CategoryTheory.Arrow.isoMk e₁ e₂ h
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Given a square from an arrow i
to an isomorphism p
, express the source part of sq
in terms of the inverse of p
.
Given a square from an isomorphism i
to an arrow p
, express the target part of sq
in terms of the inverse of i
.
A helper construction: given a square between i
and f ≫ g
, produce a square between
i
and g
, whose top leg uses f
:
A → X
↓f
↓i Y --> A → Y
↓g ↓i ↓g
B → Z B → Z
Equations
- CategoryTheory.Arrow.squareToSnd sq = { left := CategoryTheory.CategoryStruct.comp sq.left f, right := sq.right, w := ⋯ }
Instances For
The functor sending an arrow to its source.
Equations
- CategoryTheory.Arrow.leftFunc = CategoryTheory.Comma.fst (CategoryTheory.Functor.id C) (CategoryTheory.Functor.id C)
Instances For
The functor sending an arrow to its target.
Equations
- CategoryTheory.Arrow.rightFunc = CategoryTheory.Comma.snd (CategoryTheory.Functor.id C) (CategoryTheory.Functor.id C)
Instances For
The natural transformation from leftFunc
to rightFunc
, given by the arrow itself.
Equations
- CategoryTheory.Arrow.leftToRight = { app := fun (f : CategoryTheory.Arrow C) => f.hom, naturality := ⋯ }
Instances For
A functor C ⥤ D
induces a functor between the corresponding arrow categories.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functor (C ⥤ D) ⥤ (Arrow C ⥤ Arrow D)
which sends
a functor F : C ⥤ D
to F.mapArrow
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence of categories Arrow C ≌ Arrow D
induced by an equivalence C ≌ D
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ⋯ = ⋯
The images of f : Arrow C
by two isomorphic functors F : C ⥤ D
are
isomorphic arrows in D
.
Equations
- CategoryTheory.Arrow.isoOfNatIso e f = CategoryTheory.Arrow.isoMk (e.app f.left) (e.app f.right) ⋯