Adjunctions in bicategories #
For 1-morphisms f : a ⟶ b
and g : b ⟶ a
in a bicategory, an adjunction between f
and g
consists of a pair of 2-morphism η : 𝟙 a ⟶ f ≫ g
and ε : g ≫ f ⟶ 𝟙 b
satisfying the triangle
identities. The 2-morphism η
is called the unit and ε
is called the counit.
Main definitions #
Bicategory.Adjunction
: adjunctions between two 1-morphisms.Bicategory.Equivalence
: adjoint equivalences between two objects.Bicategory.mkOfAdjointifyCounit
: construct an adjoint equivalence from 2-isomorphismsη : 𝟙 a ≅ f ≫ g
andε : g ≫ f ≅ 𝟙 b
, by upgradingε
to a counit.
Implementation notes #
The computation of 2-morphisms in the proof is done using calc
blocks. Typically,
the LHS and the RHS in each step of calc
are related by simple rewriting up to associators
and unitors. So the proof for each step should be of the form rw [...]; coherence
. In practice,
our proofs look like rw [...]; simp [bicategoricalComp]; coherence
. The simp
is not strictly
necessary, but it speeds up the proof and allow us to avoid increasing the maxHeartbeats
.
The speedup is probably due to reducing the length of the expression e.g. by absorbing
identity maps or applying the pentagon relation. Such a hack may not be necessary if the
coherence tactic is improved. One possible way would be to perform such a simplification in the
preprocessing of the coherence tactic.
Todo #
Bicategory.mkOfAdjointifyUnit
: construct an adjoint equivalence from 2-isomorphismsη : 𝟙 a ≅ f ≫ g
andε : g ≫ f ≅ 𝟙 b
, by upgradingη
to a unit.
The 2-morphism defined by the following pasting diagram:
a ------ ▸ a
\ η ◥ \
f \ g / \ f
◢ / ε ◢
b ------ ▸ b
Instances For
The 2-morphism defined by the following pasting diagram:
a ------ ▸ a
◥ \ η ◥
g / \ f / g
/ ε ◢ /
b ------ ▸ b
Instances For
The unit of an adjunction.
- counit : CategoryTheory.CategoryStruct.comp g f ⟶ CategoryTheory.CategoryStruct.id b
The counit of an adjunction.
- left_triangle : CategoryTheory.Bicategory.leftZigzag s.unit s.counit = CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.leftUnitor f).hom (CategoryTheory.Bicategory.rightUnitor f).inv
The composition of the unit and the counit is equal to the identity up to unitors.
- right_triangle : CategoryTheory.Bicategory.rightZigzag s.unit s.counit = CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.rightUnitor g).hom (CategoryTheory.Bicategory.leftUnitor g).inv
The composition of the unit and the counit is equal to the identity up to unitors.
Adjunction between two 1-morphisms.
Instances For
Adjunction between two 1-morphisms.
Instances For
Adjunction between identities.
Instances For
The isomorphism version of leftZigzag
.
Instances For
The isomorphism version of rightZigzag
.
Instances For
An auxiliary definition for mkOfAdjointifyCounit
.
Instances For
- hom : a ⟶ b
A 1-morphism in one direction.
- inv : b ⟶ a
A 1-morphism in the other direction.
- unit : CategoryTheory.CategoryStruct.id a ≅ CategoryTheory.CategoryStruct.comp s.hom s.inv
- counit : CategoryTheory.CategoryStruct.comp s.inv s.hom ≅ CategoryTheory.CategoryStruct.id b
- left_triangle : CategoryTheory.Bicategory.leftZigzagIso s.unit s.counit = CategoryTheory.Bicategory.leftUnitor s.hom ≪≫ (CategoryTheory.Bicategory.rightUnitor s.hom).symm
The composition of the unit and the counit is equal to the identity up to unitors.
Adjoint equivalences between two objects.
Instances For
Adjoint equivalences between two objects.
Instances For
The identity 1-morphism is an equivalence.
Instances For
Construct an adjoint equivalence from 2-isomorphisms by upgrading ε
to a counit.