- functor : C ⥤ D
- inverse : D ⥤ C
- unit_iso : 𝟭 C ≅ c.functor ⋙ c.inverse
- counit_iso : c.inverse ⋙ c.functor ≅ 𝟭 D
- functor_unit_iso_comp' : (∀ (X : C), c.functor.map (c.unit_iso.hom.app X) ≫ c.counit_iso.hom.app (c.functor.obj X) = 𝟙 (c.functor.obj X)) . "obviously"
We define an equivalence as a (half)-adjoint equivalence, a pair of functors with
a unit and counit which are natural isomorphisms and the triangle law Fη ≫ εF = 1
, or in other
words the composite F ⟶ FGF ⟶ F
is the identity.
The triangle equation is written as a family of equalities between morphisms, it is more
complicated if we write it as an equality of natural transformations, because then we would have
to insert natural transformations like F ⟶ F1
.
See https://stacks.math.columbia.edu/tag/001J
The other triangle equality. The proof follows the following proof in Globular: http://globular.science/1905.001
Equations
- category_theory.equivalence.adjointify_η η ε = (((((η ≪≫ category_theory.iso_whisker_left F G.left_unitor.symm) ≪≫ category_theory.iso_whisker_left F (category_theory.iso_whisker_right ε.symm G)) ≪≫ category_theory.iso_whisker_left F (G.associator F G)) ≪≫ (F.associator G (F ⋙ G)).symm) ≪≫ category_theory.iso_whisker_right η.symm (F ⋙ G)) ≪≫ (F ⋙ G).left_unitor
Equations
- category_theory.equivalence.mk F G η ε = {functor := F, inverse := G, unit_iso := category_theory.equivalence.adjointify_η η ε, counit_iso := ε, functor_unit_iso_comp' := _}
Equations
- category_theory.equivalence.refl = {functor := 𝟭 C _inst_1, inverse := 𝟭 C _inst_1, unit_iso := category_theory.iso.refl (𝟭 C), counit_iso := category_theory.iso.refl (𝟭 C ⋙ 𝟭 C), functor_unit_iso_comp' := _}
Equations
- e.symm = {functor := e.inverse, inverse := e.functor, unit_iso := e.counit_iso.symm, counit_iso := e.unit_iso.symm, functor_unit_iso_comp' := _}
Equations
- e.trans f = {functor := e.functor ⋙ f.functor, inverse := f.inverse ⋙ e.inverse, unit_iso := e.unit_iso ≪≫ category_theory.iso_whisker_left e.functor (category_theory.iso_whisker_right f.unit_iso e.inverse), counit_iso := category_theory.iso_whisker_left f.inverse (category_theory.iso_whisker_right e.counit_iso f.functor) ≪≫ f.counit_iso, functor_unit_iso_comp' := _}
Equations
- e.fun_inv_id_assoc F = (e.functor.associator e.inverse F).symm ≪≫ category_theory.iso_whisker_right e.unit_iso.symm F ≪≫ F.left_unitor
Equations
- e.inv_fun_id_assoc F = (e.inverse.associator e.functor F).symm ≪≫ category_theory.iso_whisker_right e.counit_iso F ≪≫ F.left_unitor
Powers of an auto-equivalence.
Equations
- inverse : D ⥤ C
- unit_iso : 𝟭 C ≅ F ⋙ category_theory.is_equivalence.inverse F
- counit_iso : category_theory.is_equivalence.inverse F ⋙ F ≅ 𝟭 D
- functor_unit_iso_comp' : (∀ (X : C), F.map (category_theory.is_equivalence.unit_iso.hom.app X) ≫ category_theory.is_equivalence.counit_iso.hom.app (F.obj X) = 𝟙 (F.obj X)) . "obviously"
A functor that is part of a (half) adjoint equivalence
Instances
- category_theory.is_equivalence.of_equivalence
- category_theory.is_equivalence.of_equivalence_inverse
- category_theory.functor.is_equivalence_refl
- category_theory.functor.is_equivalence_inv
- category_theory.functor.is_equivalence_trans
- category_theory.prod.swap_is_equivalence
- category_theory.forget₂.category_theory.is_equivalence
- category_theory.monadic_right_adjoint.eqv
- category_theory.prod.associator_is_equivalence
- category_theory.prod.inverse_associator_is_equivalence
- category_theory.thin_skeleton.from_thin_skeleton_equivalence
- category_theory.sum.swap.is_equivalence
- category_theory.sum.associator_is_equivalence
- category_theory.sum.inverse_associator_is_equivalence
Equations
- category_theory.is_equivalence.of_equivalence F = {inverse := F.inverse, unit_iso := F.unit_iso, counit_iso := F.counit_iso, functor_unit_iso_comp' := _}
Equations
- category_theory.is_equivalence.mk G η ε = {inverse := G, unit_iso := category_theory.equivalence.adjointify_η η ε, counit_iso := ε, functor_unit_iso_comp' := _}
Equations
- F.as_equivalence = {functor := F, inverse := category_theory.is_equivalence.inverse F _inst_3, unit_iso := category_theory.is_equivalence.unit_iso _inst_3, counit_iso := category_theory.is_equivalence.counit_iso _inst_3, functor_unit_iso_comp' := _}
Equations
Equations
Equations
Equations
- obj_preimage : D → C
- iso' : Π (d : D), (F.obj (category_theory.ess_surj.obj_preimage F d) ≅ d) . "obviously"
A functor F : C ⥤ D
is essentially surjective if for every d : D
, there is some c : C
so F.obj c ≅ D
.
See https://stacks.math.columbia.edu/tag/001C.
Equations
Equations
- F.fun_obj_preimage_iso d = category_theory.ess_surj.iso d
An equivalence is essentially surjective.
See https://stacks.math.columbia.edu/tag/02C3.
Equations
- category_theory.equivalence.ess_surj_of_equivalence F = {obj_preimage := λ (Y : D), F.inv.obj Y, iso' := λ (Y : D), F.inv_fun_id.app Y}
An equivalence is faithful.
See https://stacks.math.columbia.edu/tag/02C3.
An equivalence is full.
See https://stacks.math.columbia.edu/tag/02C3.
A functor which is full, faithful, and essentially surjective is an equivalence.
See https://stacks.math.columbia.edu/tag/02C3.
Equations
- category_theory.equivalence.equivalence_of_fully_faithfully_ess_surj F = category_theory.is_equivalence.mk (equivalence_inverse F) (category_theory.nat_iso.of_components (λ (X : C), (category_theory.preimage_iso (F.fun_obj_preimage_iso (F.obj X))).symm) _) (category_theory.nat_iso.of_components (λ (Y : D), F.fun_obj_preimage_iso Y) _)