mathlib documentation

category_theory.adjunction.opposites

Opposite adjunctions #

This file contains constructions to relate adjunctions of functors to adjunctions of their opposites. These constructions are used to show uniqueness of adjoints (up to natural isomorphism).

Tags #

adjunction, opposite, uniqueness

@[simp]
theorem adjunction.adjoint_of_op_adjoint_op_hom_equiv_apply {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) (G : D C) (h : G.op F.op) (X : C) (Y : D) (ᾰ : opposite.unop (F.op.obj (opposite.op X)) opposite.unop (opposite.op Y)) :
@[simp]
theorem adjunction.adjoint_of_op_adjoint_op_hom_equiv_symm_apply {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) (G : D C) (h : G.op F.op) (X : C) (Y : D) (ᾰ : X G.obj Y) :
@[simp]
theorem adjunction.adjoint_of_op_adjoint_op_counit_app {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) (G : D C) (h : G.op F.op) (Y : D) :
@[simp]
theorem adjunction.adjoint_of_op_adjoint_op_unit_app {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) (G : D C) (h : G.op F.op) (X : C) :
def adjunction.adjoint_unop_of_adjoint_op {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) (G : Dᵒᵖ Cᵒᵖ) (h : G F.op) :
F G.unop

If G is adjoint to F.op then F is adjoint to G.unop.

Equations
def adjunction.unop_adjoint_of_op_adjoint {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : Cᵒᵖ Dᵒᵖ) (G : D C) (h : G.op F) :
F.unop G

If G.op is adjoint to F then F.unop is adjoint to G.

Equations
def adjunction.unop_adjoint_unop_of_adjoint {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : Cᵒᵖ Dᵒᵖ) (G : Dᵒᵖ Cᵒᵖ) (h : G F) :

If G is adjoint to F then F.unop is adjoint to G.unop.

Equations
@[simp]
theorem adjunction.op_adjoint_op_of_adjoint_counit_app {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) (G : D C) (h : G F) (Y : Dᵒᵖ) :
@[simp]
theorem adjunction.op_adjoint_op_of_adjoint_unit_app {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) (G : D C) (h : G F) (X : Cᵒᵖ) :
@[simp]
theorem adjunction.op_adjoint_op_of_adjoint_hom_equiv_apply {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) (G : D C) (h : G F) (X : Cᵒᵖ) (Y : Dᵒᵖ) (ᾰ : F.op.obj X Y) :
@[simp]
theorem adjunction.op_adjoint_op_of_adjoint_hom_equiv_symm_apply {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) (G : D C) (h : G F) (X : Cᵒᵖ) (Y : Dᵒᵖ) (ᾰ : X G.op.obj Y) :
def adjunction.adjoint_op_of_adjoint_unop {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : Cᵒᵖ Dᵒᵖ) (G : D C) (h : G F.unop) :
F G.op

If G is adjoint to F.unop then F is adjoint to G.op.

Equations
def adjunction.op_adjoint_of_unop_adjoint {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) (G : Dᵒᵖ Cᵒᵖ) (h : G.unop F) :
F.op G

If G.unop is adjoint to F then F.op is adjoint to G.

Equations
def adjunction.adjoint_of_unop_adjoint_unop {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : Cᵒᵖ Dᵒᵖ) (G : Dᵒᵖ Cᵒᵖ) (h : G.unop F.unop) :
F G

If G.unop is adjoint to F.unop then F is adjoint to G.

Equations
def adjunction.left_adjoints_coyoneda_equiv {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) :

If F and F' are both adjoint to G, there is a natural isomorphism F.op ⋙ coyoneda ≅ F'.op ⋙ coyoneda. We use this in combination with fully_faithful_cancel_right to show left adjoints are unique.

Equations
def adjunction.left_adjoint_uniq {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) :
F F'

If F and F' are both left adjoint to G, then they are naturally isomorphic.

Equations
@[simp]
theorem adjunction.hom_equiv_left_adjoint_uniq_hom_app {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) (x : C) :
(adj1.hom_equiv x (F'.obj x)) ((adjunction.left_adjoint_uniq adj1 adj2).hom.app x) = adj2.unit.app x
@[simp]
theorem adjunction.unit_left_adjoint_uniq_hom_assoc {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) {X' : C C} (f' : F' G X') :
@[simp]
theorem adjunction.unit_left_adjoint_uniq_hom {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) :
@[simp]
theorem adjunction.unit_left_adjoint_uniq_hom_app {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) (x : C) :
adj1.unit.app x G.map ((adjunction.left_adjoint_uniq adj1 adj2).hom.app x) = adj2.unit.app x
@[simp]
theorem adjunction.unit_left_adjoint_uniq_hom_app_assoc {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) (x : C) {X' : C} (f' : G.obj (F'.obj x) X') :
adj1.unit.app x G.map ((adjunction.left_adjoint_uniq adj1 adj2).hom.app x) f' = adj2.unit.app x f'
@[simp]
theorem adjunction.left_adjoint_uniq_hom_counit_assoc {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) {X' : D D} (f' : 𝟭 D X') :
@[simp]
theorem adjunction.left_adjoint_uniq_hom_counit {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) :
@[simp]
theorem adjunction.left_adjoint_uniq_hom_app_counit_assoc {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) (x : D) {X' : D} (f' : (𝟭 D).obj x X') :
(adjunction.left_adjoint_uniq adj1 adj2).hom.app (G.obj x) adj2.counit.app x f' = adj1.counit.app x f'
@[simp]
theorem adjunction.left_adjoint_uniq_hom_app_counit {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) (x : D) :
(adjunction.left_adjoint_uniq adj1 adj2).hom.app (G.obj x) adj2.counit.app x = adj1.counit.app x
@[simp]
theorem adjunction.left_adjoint_uniq_inv_app {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) (x : C) :
@[simp]
theorem adjunction.left_adjoint_uniq_trans {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' F'' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) (adj3 : F'' G) :
@[simp]
theorem adjunction.left_adjoint_uniq_trans_assoc {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' F'' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) (adj3 : F'' G) {X' : C D} (f' : F'' X') :
@[simp]
theorem adjunction.left_adjoint_uniq_trans_app_assoc {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' F'' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) (adj3 : F'' G) (x : C) {X' : D} (f' : F''.obj x X') :
@[simp]
theorem adjunction.left_adjoint_uniq_trans_app {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' F'' : C D} {G : D C} (adj1 : F G) (adj2 : F' G) (adj3 : F'' G) (x : C) :
@[simp]
theorem adjunction.left_adjoint_uniq_refl {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G : D C} (adj1 : F G) :
def adjunction.right_adjoint_uniq {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' : D C} (adj1 : F G) (adj2 : F G') :
G G'

If G and G' are both right adjoint to F, then they are naturally isomorphic.

Equations
@[simp]
theorem adjunction.hom_equiv_symm_right_adjoint_uniq_hom_app {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' : D C} (adj1 : F G) (adj2 : F G') (x : D) :
((adj2.hom_equiv (G.obj x) x).symm) ((adjunction.right_adjoint_uniq adj1 adj2).hom.app x) = adj1.counit.app x
@[simp]
theorem adjunction.unit_right_adjoint_uniq_hom_app_assoc {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' : D C} (adj1 : F G) (adj2 : F G') (x : C) {X' : C} (f' : G'.obj (F.obj x) X') :
adj1.unit.app x (adjunction.right_adjoint_uniq adj1 adj2).hom.app (F.obj x) f' = adj2.unit.app x f'
@[simp]
theorem adjunction.unit_right_adjoint_uniq_hom_app {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' : D C} (adj1 : F G) (adj2 : F G') (x : C) :
adj1.unit.app x (adjunction.right_adjoint_uniq adj1 adj2).hom.app (F.obj x) = adj2.unit.app x
@[simp]
theorem adjunction.unit_right_adjoint_uniq_hom {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' : D C} (adj1 : F G) (adj2 : F G') :
@[simp]
theorem adjunction.unit_right_adjoint_uniq_hom_assoc {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' : D C} (adj1 : F G) (adj2 : F G') {X' : C C} (f' : F G' X') :
@[simp]
theorem adjunction.right_adjoint_uniq_hom_app_counit {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' : D C} (adj1 : F G) (adj2 : F G') (x : D) :
F.map ((adjunction.right_adjoint_uniq adj1 adj2).hom.app x) adj2.counit.app x = adj1.counit.app x
@[simp]
theorem adjunction.right_adjoint_uniq_hom_app_counit_assoc {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' : D C} (adj1 : F G) (adj2 : F G') (x : D) {X' : D} (f' : (𝟭 D).obj x X') :
F.map ((adjunction.right_adjoint_uniq adj1 adj2).hom.app x) adj2.counit.app x f' = adj1.counit.app x f'
@[simp]
theorem adjunction.right_adjoint_uniq_hom_counit_assoc {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' : D C} (adj1 : F G) (adj2 : F G') {X' : D D} (f' : 𝟭 D X') :
@[simp]
theorem adjunction.right_adjoint_uniq_hom_counit {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' : D C} (adj1 : F G) (adj2 : F G') :
@[simp]
theorem adjunction.right_adjoint_uniq_inv_app {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' : D C} (adj1 : F G) (adj2 : F G') (x : D) :
@[simp]
theorem adjunction.right_adjoint_uniq_trans_app {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' G'' : D C} (adj1 : F G) (adj2 : F G') (adj3 : F G'') (x : D) :
@[simp]
theorem adjunction.right_adjoint_uniq_trans_app_assoc {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' G'' : D C} (adj1 : F G) (adj2 : F G') (adj3 : F G'') (x : D) {X' : C} (f' : G''.obj x X') :
@[simp]
theorem adjunction.right_adjoint_uniq_trans {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' G'' : D C} (adj1 : F G) (adj2 : F G') (adj3 : F G'') :
@[simp]
theorem adjunction.right_adjoint_uniq_trans_assoc {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G G' G'' : D C} (adj1 : F G) (adj2 : F G') (adj3 : F G'') {X' : D C} (f' : G'' X') :
@[simp]
theorem adjunction.right_adjoint_uniq_refl {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} {G : D C} (adj1 : F G) :
def adjunction.nat_iso_of_left_adjoint_nat_iso {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G G' : D C} (adj1 : F G) (adj2 : F' G') (l : F F') :
G G'

Given two adjunctions, if the left adjoints are naturally isomorphic, then so are the right adjoints.

Equations
def adjunction.nat_iso_of_right_adjoint_nat_iso {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F F' : C D} {G G' : D C} (adj1 : F G) (adj2 : F' G') (r : G G') :
F F'

Given two adjunctions, if the right adjoints are naturally isomorphic, then so are the left adjoints.

Equations