The hom types of the opposite of a category (or graph).
As with the objects, we'll make this irreducible below.
Use f.op
and f.unop
to convert between morphisms of C
and morphisms of Cᵒᵖ.
Equations
- category_theory.has_hom.opposite = {hom := λ (X Y : Cᵒᵖ), opposite.unop Y ⟶ opposite.unop X}
Equations
- category_theory.category.opposite = {to_category_struct := {to_has_hom := category_theory.has_hom.opposite category_theory.category_struct.to_has_hom, id := λ (X : Cᵒᵖ), (𝟙 (opposite.unop X)).op, comp := λ (_x _x_1 _x_2 : Cᵒᵖ) (f : _x ⟶ _x_1) (g : _x_1 ⟶ _x_2), (g.unop ≫ f.unop).op}, id_comp' := _, comp_id' := _, assoc' := _}
The functor from the double-opposite of a category to the underlying category.
The functor from a category to its double-opposite.
Equations
- category_theory.unop_unop = {obj := λ (X : C), opposite.op (opposite.op X), map := λ (X Y : C) (f : X ⟶ Y), f.op.op, map_id' := _, map_comp' := _}
The double opposite category is equivalent to the original.
Equations
- category_theory.op_op_equivalence = {functor := category_theory.op_op _inst_1, inverse := category_theory.unop_unop _inst_1, unit_iso := category_theory.iso.refl (𝟭 Cᵒᵖᵒᵖ), counit_iso := category_theory.iso.refl (category_theory.unop_unop ⋙ category_theory.op_op), functor_unit_iso_comp' := _}
Equations
- category_theory.is_iso_of_op f = {inv := (category_theory.is_iso.inv f.op).unop, hom_inv_id' := _, inv_hom_id' := _}
The isomorphism between F.op.unop
and F
.
Equations
- F.op_unop_iso = category_theory.nat_iso.of_components (λ (X : C), category_theory.iso.refl (F.op.unop.obj X)) _
The isomorphism between F.unop.op
and F
.
Equations
- F.unop_op_iso = category_theory.nat_iso.of_components (λ (X : Cᵒᵖ), category_theory.iso.refl (F.unop.op.obj X)) _
Equations
- category_theory.functor.op_inv C D = {obj := λ (F : Cᵒᵖ ⥤ Dᵒᵖ), opposite.op F.unop, map := λ (F G : Cᵒᵖ ⥤ Dᵒᵖ) (α : F ⟶ G), category_theory.has_hom.hom.op {app := λ (X : C), (α.app (opposite.op X)).unop, naturality' := _}, map_id' := _, map_comp' := _}
Equations
If F is faithful then the right_op of F is also faithful.
Equations
If F is faithful then the left_op of F is also faithful.
Equations
Equations
- category_theory.nat_trans.op α = {app := λ (X : Cᵒᵖ), (α.app (opposite.unop X)).op, naturality' := _}
Equations
- category_theory.nat_trans.unop α = {app := λ (X : C), (α.app (opposite.op X)).unop, naturality' := _}
Equations
- category_theory.nat_trans.left_op α = {app := λ (X : Cᵒᵖ), (α.app (opposite.unop X)).unop, naturality' := _}
Equations
- category_theory.nat_trans.right_op α = {app := λ (X : C), (α.app (opposite.op X)).op, naturality' := _}
The natural isomorphism between opposite functors G.op ≅ F.op
induced by a natural
isomorphism between the original functors F ≅ G
.
Equations
- category_theory.nat_iso.op α = {hom := category_theory.nat_trans.op α.hom, inv := category_theory.nat_trans.op α.inv, hom_inv_id' := _, inv_hom_id' := _}
The natural isomorphism between functors G ≅ F
induced by a natural isomorphism
between the opposite functors F.op ≅ G.op
.
Equations
- category_theory.nat_iso.unop α = {hom := category_theory.nat_trans.unop α.hom, inv := category_theory.nat_trans.unop α.inv, hom_inv_id' := _, inv_hom_id' := _}
The equivalence between arrows of the form A ⟶ B
and B.unop ⟶ A.unop
. Useful for building
adjunctions.
Note that this (definitionally) gives variants
def op_equiv' (A : C) (B : Cᵒᵖ) : (opposite.op A ⟶ B) ≃ (B.unop ⟶ A) :=
op_equiv _ _
def op_equiv'' (A : Cᵒᵖ) (B : C) : (A ⟶ opposite.op B) ≃ (B ⟶ A.unop) :=
op_equiv _ _
def op_equiv''' (A B : C) : (opposite.op A ⟶ opposite.op B) ≃ (B ⟶ A) :=
op_equiv _ _
Equations
- category_theory.op_equiv A B = {to_fun := λ (f : A ⟶ B), f.unop, inv_fun := λ (g : opposite.unop B ⟶ opposite.unop A), g.op, left_inv := _, right_inv := _}