The category of arrows #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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.
We also define the typeclass has_lift
, representing a choice of a lift
of a commutative square (that is, a diagonal morphism making the two triangles commute).
Tags #
comma, arrow
The arrow category of T
has as objects all morphisms in T
and as morphisms commutative
squares in T
.
Equations
- category_theory.arrow T = category_theory.comma (𝟭 T) (𝟭 T)
Instances for category_theory.arrow
Equations
- category_theory.arrow.inhabited T = {default := (λ (this : category_theory.comma (𝟭 T) (𝟭 T)), this) inhabited.default}
An object in the arrow category is simply a morphism in T
.
Equations
We can also build a morphism in the arrow category out of any commutative square in T
.
Create an isomorphism between arrows, by providing isomorphisms between the domains and codomains, and a proof that the square commutes.
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
The functor sending an arrow to its source.
Equations
The functor sending an arrow to its target.
Equations
The natural transformation from left_func
to right_func
, given by the arrow itself.
Equations
- category_theory.arrow.left_to_right = {app := λ (f : category_theory.arrow C), f.hom, naturality' := _}
A functor C ⥤ D
induces a functor between the corresponding arrow categories.
The images of f : arrow C
by two isomorphic functors F : C ⥤ D
are
isomorphic arrows in D
.
Equations
- category_theory.arrow.iso_of_nat_iso e f = category_theory.arrow.iso_mk (e.app f.left) (e.app f.right) _