- hom_equiv : Π (X : C) (Y : D), (F.obj X ⟶ Y) ≃ (X ⟶ G.obj Y)
- unit : 𝟭 C ⟶ F ⋙ G
- counit : G ⋙ F ⟶ 𝟭 D
- hom_equiv_unit' : (∀ {X : C} {Y : D} {f : F.obj X ⟶ Y}, ⇑(c.hom_equiv X Y) f = c.unit.app X ≫ G.map f) . "obviously"
- hom_equiv_counit' : (∀ {X : C} {Y : D} {g : X ⟶ G.obj Y}, ⇑((c.hom_equiv X Y).symm) g = F.map g ≫ c.counit.app Y) . "obviously"
F ⊣ G represents the data of an adjunction between two functors
F : C ⥤ D and G : D ⥤ C. F is the left adjoint and G is the right adjoint.
To construct an adjunction between two functors, it's often easier to instead use the
constructors mk_of_hom_equiv or mk_of_unit_counit. To construct a left adjoint,
there are also constructors left_adjoint_of_equiv and adjunction_of_equiv_left (as
well as their duals) which can be simpler in practice.
- right : D ⥤ C
- adj : left ⊣ category_theory.is_left_adjoint.right left
A class giving a chosen right adjoint to the functor left.
- left : C ⥤ D
- adj : category_theory.is_right_adjoint.left right ⊣ right
A class giving a chosen left adjoint to the functor right.
Extract the left adjoint from the instance giving the chosen adjoint.
Extract the right adjoint from the instance giving the chosen adjoint.
The adjunction associated to a functor known to be a left adjoint.
The adjunction associated to a functor known to be a right adjoint.
- hom_equiv : Π (X : C) (Y : D), (F.obj X ⟶ Y) ≃ (X ⟶ G.obj Y)
- hom_equiv_naturality_left_symm' : (∀ {X' X : C} {Y : D} (f : X' ⟶ X) (g : X ⟶ G.obj Y), ⇑((c.hom_equiv X' Y).symm) (f ≫ g) = F.map f ≫ ⇑((c.hom_equiv X Y).symm) g) . "obviously"
- hom_equiv_naturality_right' : (∀ {X : C} {Y Y' : D} (f : F.obj X ⟶ Y) (g : Y ⟶ Y'), ⇑(c.hom_equiv X Y') (f ≫ g) = ⇑(c.hom_equiv X Y) f ≫ G.map g) . "obviously"
- unit : 𝟭 C ⟶ F ⋙ G
- counit : G ⋙ F ⟶ 𝟭 D
- left_triangle' : category_theory.whisker_right c.unit F ≫ (F.associator G F).hom ≫ category_theory.whisker_left F c.counit = category_theory.nat_trans.id (𝟭 C ⋙ F) . "obviously"
- right_triangle' : category_theory.whisker_left G c.unit ≫ (G.associator F G).inv ≫ category_theory.whisker_right c.counit G = category_theory.nat_trans.id (G ⋙ 𝟭 C) . "obviously"
Construct an adjunction between F and G out of a natural bijection between each
F.obj X ⟶ Y and X ⟶ G.obj Y.
Equations
- category_theory.adjunction.mk_of_hom_equiv adj = {hom_equiv := adj.hom_equiv, unit := {app := λ (X : C), ⇑(adj.hom_equiv X (F.obj X)) (𝟙 (F.obj X)), naturality' := _}, counit := {app := λ (Y : D), (adj.hom_equiv (G.obj Y) ((𝟭 D).obj Y)).inv_fun (𝟙 (G.obj Y)), naturality' := _}, hom_equiv_unit' := _, hom_equiv_counit' := _}
Construct an adjunction between functors F and G given a unit and counit for the adjunction
satisfying the triangle identities.
Equations
- category_theory.adjunction.mk_of_unit_counit adj = {hom_equiv := λ (X : C) (Y : D), {to_fun := λ (f : F.obj X ⟶ Y), adj.unit.app X ≫ G.map f, inv_fun := λ (g : X ⟶ G.obj Y), F.map g ≫ adj.counit.app Y, left_inv := _, right_inv := _}, unit := adj.unit, counit := adj.counit, hom_equiv_unit' := _, hom_equiv_counit' := _}
The adjunction between the identity functor on a category and itself.
Equations
- category_theory.adjunction.id = {hom_equiv := λ (X Y : C), equiv.refl ((𝟭 C).obj X ⟶ Y), unit := 𝟙 (𝟭 C), counit := 𝟙 (𝟭 C ⋙ 𝟭 C), hom_equiv_unit' := _, hom_equiv_counit' := _}
Equations
If F and G are naturally isomorphic functors, establish an equivalence of hom-sets.
If G and H are naturally isomorphic functors, establish an equivalence of hom-sets.
Transport an adjunction along an natural isomorphism on the left.
Equations
- adj.of_nat_iso_left iso = category_theory.adjunction.mk_of_hom_equiv {hom_equiv := λ (X : C) (Y : D), (category_theory.adjunction.equiv_homset_left_of_nat_iso iso.symm).trans (adj.hom_equiv X Y), hom_equiv_naturality_left_symm' := _, hom_equiv_naturality_right' := _}
Transport an adjunction along an natural isomorphism on the right.
Equations
- adj.of_nat_iso_right iso = category_theory.adjunction.mk_of_hom_equiv {hom_equiv := λ (X : C) (Y : D), (adj.hom_equiv X Y).trans (category_theory.adjunction.equiv_homset_right_of_nat_iso iso), hom_equiv_naturality_left_symm' := _, hom_equiv_naturality_right' := _}
Transport being a right adjoint along a natural isomorphism.
Transport being a left adjoint along a natural isomorphism.
Show that adjunctions can be composed.
Equations
- category_theory.adjunction.comp H I adj₁ adj₂ = {hom_equiv := λ (X : C) (Z : E), (adj₂.hom_equiv (F.obj X) Z).trans (adj₁.hom_equiv X (I.obj Z)), unit := adj₁.unit ≫ category_theory.whisker_left F (category_theory.whisker_right adj₂.unit G) ≫ (F.associator (H ⋙ I) G).inv, counit := (I.associator G (F ⋙ H)).hom ≫ category_theory.whisker_left I (category_theory.whisker_right adj₁.counit H) ≫ adj₂.counit, hom_equiv_unit' := _, hom_equiv_counit' := _}
If F and G are left adjoints then F ⋙ G is a left adjoint too.
Equations
- category_theory.adjunction.left_adjoint_of_comp F G = {right := category_theory.is_left_adjoint.right G ⋙ category_theory.is_left_adjoint.right F, adj := category_theory.adjunction.comp G (category_theory.is_left_adjoint.right G) category_theory.is_left_adjoint.adj category_theory.is_left_adjoint.adj}
If F and G are right adjoints then F ⋙ G is a right adjoint too.
Equations
- category_theory.adjunction.right_adjoint_of_comp = {left := category_theory.is_right_adjoint.left G ⋙ category_theory.is_right_adjoint.left F, adj := category_theory.adjunction.comp (category_theory.is_right_adjoint.left F) F category_theory.is_right_adjoint.adj category_theory.is_right_adjoint.adj}
Construct a left adjoint functor to G, given the functor's value on objects F_obj and
a bijection e between F_obj X ⟶ Y and X ⟶ G.obj Y satisfying a naturality law
he : ∀ X Y Y' g h, e X Y' (h ≫ g) = e X Y h ≫ G.map g.
Dual to right_adjoint_of_equiv.
Show that the functor given by left_adjoint_of_equiv is indeed left adjoint to G. Dual
to adjunction_of_equiv_right.
Construct a right adjoint functor to F, given the functor's value on objects G_obj and
a bijection e between F.obj X ⟶ Y and X ⟶ G_obj Y satisfying a naturality law
he : ∀ X Y Y' g h, e X' Y (F.map f ≫ g) = f ≫ e X Y g.
Dual to left_adjoint_of_equiv.
Show that the functor given by right_adjoint_of_equiv is indeed right adjoint to F. Dual
to adjunction_of_equiv_left.
The adjunction given by an equivalence of categories. (To obtain the opposite adjunction,
simply use e.symm.to_adjunction.
Equations
- e.to_adjunction = category_theory.adjunction.mk_of_unit_counit {unit := e.unit, counit := e.counit, left_triangle' := _, right_triangle' := _}
An equivalence E is left adjoint to its inverse.
Equations
If F is an equivalence, it's a left adjoint.
Equations
- category_theory.functor.left_adjoint_of_equivalence = {right := F.inv _inst_3, adj := F.adjunction _inst_3}
If F is an equivalence, it's a right adjoint.
Equations
- category_theory.functor.right_adjoint_of_equivalence = {left := F.inv _inst_3, adj := F.inv.adjunction F.is_equivalence_inv}