Properties of comma categories relating to adjunctions #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file shows that for a functor G : D ⥤ C
the data of an initial object in each
structured_arrow
category on G
is equivalent to a left adjoint to G
, as well as the dual.
Specifically, adjunction_of_structured_arrow_initials
gives the left adjoint assuming the
appropriate initial objects exist, and mk_initial_of_left_adjoint
constructs the initial objects
provided a left adjoint.
The duals are also shown.
Implementation: If each structured arrow category on G
has an initial object, an equivalence
which is helpful for constructing a left adjoint to G
.
Equations
- category_theory.left_adjoint_of_structured_arrow_initials_aux G A B = {to_fun := λ (g : (⊥_ category_theory.structured_arrow A G).right ⟶ B), (⊥_ category_theory.structured_arrow A G).hom ≫ G.map g, inv_fun := λ (f : A ⟶ G.obj B), (category_theory.limits.initial.to (category_theory.structured_arrow.mk f)).right, left_inv := _, right_inv := _}
If each structured arrow category on G
has an initial object, construct a left adjoint to G
. It
is shown that it is a left adjoint in adjunction_of_structured_arrow_initials
.
If each structured arrow category on G
has an initial object, we have a constructed left adjoint
to G
.
If each structured arrow category on G
has an initial object, G
is a right adjoint.
Implementation: If each costructured arrow category on G
has a terminal object, an equivalence
which is helpful for constructing a right adjoint to G
.
Equations
- category_theory.right_adjoint_of_costructured_arrow_terminals_aux G B A = {to_fun := λ (g : G.obj B ⟶ A), (category_theory.limits.terminal.from (category_theory.costructured_arrow.mk g)).left, inv_fun := λ (g : B ⟶ (⊤_ category_theory.costructured_arrow G A).left), G.map g ≫ (⊤_ category_theory.costructured_arrow G A).hom, left_inv := _, right_inv := _}
If each costructured arrow category on G
has a terminal object, construct a right adjoint to G
.
It is shown that it is a right adjoint in adjunction_of_structured_arrow_initials
.
If each costructured arrow category on G
has a terminal object, we have a constructed right
adjoint to G
.
If each costructured arrow category on G
has an terminal object, G
is a left adjoint.
Given a left adjoint to G
, we can construct an initial object in each structured arrow
category on G
.
Equations
- category_theory.mk_initial_of_left_adjoint G h A = {desc := λ (B : category_theory.limits.cocone (category_theory.functor.empty (category_theory.structured_arrow A G))), category_theory.structured_arrow.hom_mk (⇑((h.hom_equiv ((category_theory.functor.from_punit A).obj B.X.left) B.X.right).symm) B.X.hom) _, fac' := _, uniq' := _}
Given a right adjoint to F
, we can construct a terminal object in each costructured arrow
category on F
.
Equations
- category_theory.mk_terminal_of_right_adjoint G h A = {lift := λ (B : category_theory.limits.cone (category_theory.functor.empty (category_theory.costructured_arrow F A))), category_theory.costructured_arrow.hom_mk (⇑(h.hom_equiv B.X.left ((category_theory.functor.from_punit A).obj B.X.right)) B.X.hom) _, fac' := _, uniq' := _}