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
Equations
Instances For
The 2-morphism defined by the following pasting diagram:
a ------ ▸ a
◥ \ η ◥
g / \ f / g
/ ε ◢ /
b ------ ▸ b
Equations
Instances For
Adjunction between two 1-morphisms.
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 self.unit self.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 self.unit self.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.
Instances For
Adjunction between two 1-morphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjunction between identities.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.Bicategory.Adjunction.instInhabitedAdjunctionIdToCategoryStruct = { default := CategoryTheory.Bicategory.Adjunction.id a }
Auxiliary definition for adjunction.comp
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Auxiliary definition for adjunction.comp
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Composition of adjunctions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The isomorphism version of leftZigzag
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The isomorphism version of rightZigzag
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (_ : CategoryTheory.IsIso (CategoryTheory.Bicategory.leftZigzag η.hom ε.hom)) = (_ : CategoryTheory.IsIso (CategoryTheory.Bicategory.leftZigzagIso η ε).hom)
Equations
- (_ : CategoryTheory.IsIso (CategoryTheory.Bicategory.rightZigzag η.hom ε.hom)) = (_ : CategoryTheory.IsIso (CategoryTheory.Bicategory.rightZigzagIso η ε).hom)
An auxiliary definition for mkOfAdjointifyCounit
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoint equivalences between two objects.
- 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 self.hom self.inv
- counit : CategoryTheory.CategoryStruct.comp self.inv self.hom ≅ CategoryTheory.CategoryStruct.id b
- left_triangle : CategoryTheory.Bicategory.leftZigzagIso self.unit self.counit = CategoryTheory.Bicategory.leftUnitor self.hom ≪≫ (CategoryTheory.Bicategory.rightUnitor self.hom).symm
The composition of the unit and the counit is equal to the identity up to unitors.
Instances For
Adjoint equivalences between two objects.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The identity 1-morphism is an equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.Bicategory.Equivalence.instInhabitedEquivalence = { default := CategoryTheory.Bicategory.Equivalence.id a }
Construct an adjoint equivalence from 2-isomorphisms by upgrading ε
to a counit.