Extensions and lifts in bicategories #
We introduce the concept of extensions and lifts within the bicategorical framework. These concepts are defined by commutative diagrams in the (1-)categorical context. Within the bicategorical framework, commutative diagrams are replaced by 2-morphisms. Depending on the orientation of the 2-morphisms, we define both left and right extensions (likewise for lifts). The use of left and right here is a common one in the theory of Kan extensions.
Implementation notes #
We define extensions and lifts as objects in certain comma categories (StructuredArrow
for left,
and CostructuredArrow
for right). See the file CategoryTheory.StructuredArrow
for properties
about these categories. We introduce some intuitive aliases. For example, LeftExtension.extension
is an alias for Comma.right
.
References #
- https://ncatlab.org/nlab/show/lifts+and+extensions
- https://ncatlab.org/nlab/show/Kan+extension
Triangle diagrams for (left) extensions.
b
△ \
| \ extension △
f | \ | unit
| ◿
a - - - ▷ c
g
Equations
Instances For
The extension of g
along f
.
Equations
- t.extension = t.right
Instances For
The 2-morphism filling the triangle diagram.
Equations
- t.unit = t.hom
Instances For
Construct a left extension from a 1-morphism and a 2-morphism.
Equations
Instances For
To construct a morphism between left extensions, we need a 2-morphism between the extensions, and to check that it is compatible with the units.
Equations
Instances For
The left extension along the identity.
Equations
Instances For
Equations
- CategoryTheory.Bicategory.LeftExtension.instInhabitedId = { default := CategoryTheory.Bicategory.LeftExtension.alongId g }
Construct a left extension of g : a ⟶ c
from a left extension of g ≫ 𝟙 c
.
Equations
- t.ofCompId = CategoryTheory.Bicategory.LeftExtension.mk t.extension (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.rightUnitor g).inv t.unit)
Instances For
Whisker a 1-morphism to an extension.
b
△ \
| \ extension △
f | \ | unit
| ◿
a - - - ▷ c - - - ▷ x
g h
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whiskering a 1-morphism is a functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Define a morphism between left extensions by cancelling the whiskered identities.
Equations
- s.whiskerIdCancel τ = CategoryTheory.Bicategory.LeftExtension.homMk (CategoryTheory.CategoryStruct.comp τ.right (CategoryTheory.Bicategory.rightUnitor t.extension).hom) ⋯
Instances For
Construct a morphism between whiskered extensions.
Equations
Instances For
Construct an isomorphism between whiskered extensions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The isomorphism between left extensions induced by a right unitor.
Equations
- t.whiskerOfCompIdIsoSelf = CategoryTheory.StructuredArrow.isoMk (CategoryTheory.Bicategory.rightUnitor t.extension) ⋯
Instances For
Triangle diagrams for (left) lifts.
b
◹ |
lift / | △
/ | f | unit
/ ▽
c - - - ▷ a
g
Equations
Instances For
The lift of g
along f
.
Equations
- t.lift = t.right
Instances For
The 2-morphism filling the triangle diagram.
Equations
- t.unit = t.hom
Instances For
Construct a left lift from a 1-morphism and a 2-morphism.
Equations
Instances For
To construct a morphism between left lifts, we need a 2-morphism between the lifts, and to check that it is compatible with the units.
Instances For
The left lift along the identity.
Equations
Instances For
Equations
- CategoryTheory.Bicategory.LeftLift.instInhabitedId = { default := CategoryTheory.Bicategory.LeftLift.alongId g }
Construct a left lift along g : c ⟶ a
from a left lift along 𝟙 c ≫ g
.
Equations
- t.ofIdComp = CategoryTheory.Bicategory.LeftLift.mk t.lift (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.leftUnitor g).inv t.unit)
Instances For
Whisker a 1-morphism to a lift.
b
◹ |
lift / | △
/ | f | unit
/ ▽
x - - - ▷ c - - - ▷ a
h g
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whiskering a 1-morphism is a functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Define a morphism between left lifts by cancelling the whiskered identities.
Equations
- s.whiskerIdCancel τ = CategoryTheory.Bicategory.LeftLift.homMk (CategoryTheory.CategoryStruct.comp τ.right (CategoryTheory.Bicategory.leftUnitor t.lift).hom) ⋯
Instances For
Construct a morphism between whiskered lifts.
Equations
Instances For
Construct an isomorphism between whiskered lifts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The isomorphism between left lifts induced by a left unitor.
Equations
- t.whiskerOfIdCompIsoSelf = CategoryTheory.StructuredArrow.isoMk (CategoryTheory.Bicategory.leftUnitor t.lift) ⋯
Instances For
Triangle diagrams for (right) extensions.
b
△ \
| \ extension | counit
f | \ ▽
| ◿
a - - - ▷ c
g
Equations
Instances For
The extension of g
along f
.
Equations
- t.extension = t.left
Instances For
The 2-morphism filling the triangle diagram.
Equations
- t.counit = t.hom
Instances For
Construct a right extension from a 1-morphism and a 2-morphism.
Equations
Instances For
To construct a morphism between right extensions, we need a 2-morphism between the extensions, and to check that it is compatible with the counits.
Equations
Instances For
The right extension along the identity.
Equations
Instances For
Equations
- CategoryTheory.Bicategory.RightExtension.instInhabitedId = { default := CategoryTheory.Bicategory.RightExtension.alongId g }
Triangle diagrams for (right) lifts.
b
◹ |
lift / | | counit
/ | f ▽
/ ▽
c - - - ▷ a
g
Equations
Instances For
The lift of g
along f
.
Equations
- t.lift = t.left
Instances For
The 2-morphism filling the triangle diagram.
Equations
- t.counit = t.hom
Instances For
Construct a right lift from a 1-morphism and a 2-morphism.
Equations
Instances For
To construct a morphism between right lifts, we need a 2-morphism between the lifts, and to check that it is compatible with the counits.
Instances For
The right lift along the identity.
Equations
Instances For
Equations
- CategoryTheory.Bicategory.RightLift.instInhabitedId = { default := CategoryTheory.Bicategory.RightLift.alongId g }