# Documentation

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.
def CategoryTheory.Bicategory.leftZigzag {B : Type u} {a : B} {b : B} {f : a b} {g : b a} :

The 2-morphism defined by the following pasting diagram:

a －－－－－－ ▸ a
＼    η      ◥   ＼
f ＼   g  ／       ＼ f
◢  ／     ε      ◢
b －－－－－－ ▸ b

Instances For
def CategoryTheory.Bicategory.rightZigzag {B : Type u} {a : B} {b : B} {f : a b} {g : b a} :

The 2-morphism defined by the following pasting diagram:

        a －－－－－－ ▸ a
◥  ＼     η      ◥
g ／      ＼ f     ／ g
／    ε      ◢   ／
b －－－－－－ ▸ b

Instances For
structure CategoryTheory.Bicategory.Adjunction {B : Type u} {a : B} {b : B} (f : a b) (g : b a) :

Instances For

Instances For

Instances For
def CategoryTheory.Bicategory.leftZigzagIso {B : Type u} {a : B} {b : B} {f : a b} {g : b a} :

The isomorphism version of leftZigzag.

Instances For
def CategoryTheory.Bicategory.rightZigzagIso {B : Type u} {a : B} {b : B} {f : a b} {g : b a} :

The isomorphism version of rightZigzag.

Instances For
@[simp]
theorem CategoryTheory.Bicategory.leftZigzagIso_hom {B : Type u} {a : B} {b : B} {f : a b} {g : b a} :
@[simp]
theorem CategoryTheory.Bicategory.rightZigzagIso_hom {B : Type u} {a : B} {b : B} {f : a b} {g : b a} :
@[simp]
theorem CategoryTheory.Bicategory.leftZigzagIso_inv {B : Type u} {a : B} {b : B} {f : a b} {g : b a} :
@[simp]
theorem CategoryTheory.Bicategory.rightZigzagIso_inv {B : Type u} {a : B} {b : B} {f : a b} {g : b a} :
@[simp]
theorem CategoryTheory.Bicategory.leftZigzagIso_symm {B : Type u} {a : B} {b : B} {f : a b} {g : b a} :
@[simp]
theorem CategoryTheory.Bicategory.rightZigzagIso_symm {B : Type u} {a : B} {b : B} {f : a b} {g : b a} :
def CategoryTheory.Bicategory.adjointifyCounit {B : Type u} {a : B} {b : B} {f : a b} {g : b a} :

An auxiliary definition for mkOfAdjointifyCounit.

Instances For
theorem CategoryTheory.Bicategory.adjointifyCounit_left_triangle {B : Type u} {a : B} {b : B} {f : a b} {g : b a} :
structure CategoryTheory.Bicategory.Equivalence {B : Type u} (a : B) (b : B) :
Type (max v w)
• hom : a b

A 1-morphism in one direction.

• inv : b a

A 1-morphism in the other direction.

• unit :

The composition hom ≫ inv is isomorphic to the identity.

• counit :

The composition inv ≫ hom is isomorphic to the identity.

• left_triangle : CategoryTheory.Bicategory.leftZigzagIso s.unit s.counit = ≪≫ ().symm

The composition of the unit and the counit is equal to the identity up to unitors.

Instances For

Construct an adjoint equivalence from 2-isomorphisms by upgrading ε to a counit.