diff --git a/src/category-theory.lagda.md b/src/category-theory.lagda.md
index ad5056634c..666657e071 100644
--- a/src/category-theory.lagda.md
+++ b/src/category-theory.lagda.md
@@ -25,22 +25,28 @@ open import category-theory.category-of-functors public
open import category-theory.category-of-functors-from-small-to-large-categories public
open import category-theory.category-of-maps-categories public
open import category-theory.category-of-maps-from-small-to-large-categories public
+open import category-theory.coalgebras-comonads-on-precategories public
+open import category-theory.cocones-precategories public
open import category-theory.codensity-monads-on-precategories public
+open import category-theory.colimits-precategories public
open import category-theory.commuting-squares-of-morphisms-in-large-precategories public
open import category-theory.commuting-squares-of-morphisms-in-precategories public
open import category-theory.commuting-squares-of-morphisms-in-set-magmoids public
open import category-theory.commuting-triangles-of-morphisms-in-precategories public
open import category-theory.commuting-triangles-of-morphisms-in-set-magmoids public
+open import category-theory.comonads-on-precategories public
open import category-theory.complete-precategories public
open import category-theory.composition-operations-on-binary-families-of-sets public
open import category-theory.cones-precategories public
open import category-theory.conservative-functors-precategories public
open import category-theory.constant-functors public
+open import category-theory.copointed-endofunctors-precategories public
open import category-theory.copresheaf-categories public
open import category-theory.coproducts-in-precategories public
open import category-theory.cores-categories public
open import category-theory.cores-precategories public
open import category-theory.coslice-precategories public
+open import category-theory.density-comonads-on-precategories public
open import category-theory.dependent-composition-operations-over-precategories public
open import category-theory.dependent-products-of-categories public
open import category-theory.dependent-products-of-large-categories public
@@ -102,6 +108,8 @@ open import category-theory.large-function-precategories public
open import category-theory.large-precategories public
open import category-theory.large-subcategories public
open import category-theory.large-subprecategories public
+open import category-theory.left-extensions-precategories public
+open import category-theory.left-kan-extensions-precategories public
open import category-theory.limits-precategories public
open import category-theory.maps-categories public
open import category-theory.maps-from-small-to-large-categories public
@@ -112,6 +120,7 @@ open import category-theory.monads-on-categories public
open import category-theory.monads-on-precategories public
open import category-theory.monomorphisms-in-large-precategories public
open import category-theory.morphisms-algebras-monads-on-precategories public
+open import category-theory.morphisms-coalgebras-comonads-on-precategories public
open import category-theory.natural-isomorphisms-functors-categories public
open import category-theory.natural-isomorphisms-functors-large-precategories public
open import category-theory.natural-isomorphisms-functors-precategories public
@@ -138,6 +147,7 @@ open import category-theory.pointed-endofunctors-categories public
open import category-theory.pointed-endofunctors-precategories public
open import category-theory.precategories public
open import category-theory.precategory-of-algebras-monads-on-precategories public
+open import category-theory.precategory-of-coalgebras-comonads-on-precategories public
open import category-theory.precategory-of-elements-of-a-presheaf public
open import category-theory.precategory-of-free-algebras-monads-on-precategories public
open import category-theory.precategory-of-functors public
diff --git a/src/category-theory/algebras-monads-on-precategories.lagda.md b/src/category-theory/algebras-monads-on-precategories.lagda.md
index d7e375681b..576bc1e908 100644
--- a/src/category-theory/algebras-monads-on-precategories.lagda.md
+++ b/src/category-theory/algebras-monads-on-precategories.lagda.md
@@ -41,34 +41,36 @@ object `A` and morphism `a : TA → A` satisfying two compatibility laws:
module _
{l1 l2 : Level} (C : Precategory l1 l2)
(T : monad-Precategory C)
+ {A : obj-Precategory C}
+ (a : hom-Precategory C (obj-endofunctor-monad-Precategory C T A) A)
where
- module _
- {A : obj-Precategory C}
- (a : hom-Precategory C (obj-endofunctor-monad-Precategory C T A) A)
- where
+ has-unit-law-algebra-monad-Precategory : UU l2
+ has-unit-law-algebra-monad-Precategory =
+ comp-hom-Precategory C a (hom-unit-monad-Precategory C T A) =
+ id-hom-Precategory C
- has-unit-law-algebra-monad-Precategory : UU l2
- has-unit-law-algebra-monad-Precategory =
- comp-hom-Precategory C a (hom-unit-monad-Precategory C T A) =
- id-hom-Precategory C
+ has-mul-law-algebra-monad-Precategory : UU l2
+ has-mul-law-algebra-monad-Precategory =
+ comp-hom-Precategory C a (hom-endofunctor-monad-Precategory C T a) =
+ comp-hom-Precategory C a (hom-mul-monad-Precategory C T A)
- has-mul-law-algebra-monad-Precategory : UU l2
- has-mul-law-algebra-monad-Precategory =
- comp-hom-Precategory C a (hom-endofunctor-monad-Precategory C T a) =
- comp-hom-Precategory C a (hom-mul-monad-Precategory C T A)
+ is-algebra-monad-Precategory : UU l2
+ is-algebra-monad-Precategory =
+ has-unit-law-algebra-monad-Precategory ×
+ has-mul-law-algebra-monad-Precategory
- is-algebra-monad-Precategory : UU l2
- is-algebra-monad-Precategory =
- has-unit-law-algebra-monad-Precategory ×
- has-mul-law-algebra-monad-Precategory
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : monad-Precategory C)
+ where
algebra-monad-Precategory : UU (l1 ⊔ l2)
algebra-monad-Precategory =
Σ ( obj-Precategory C)
( λ A →
Σ ( hom-Precategory C (obj-endofunctor-monad-Precategory C T A) A)
- ( λ a → is-algebra-monad-Precategory a))
+ ( λ a → is-algebra-monad-Precategory C T a))
obj-algebra-monad-Precategory : algebra-monad-Precategory → obj-Precategory C
obj-algebra-monad-Precategory = pr1
@@ -82,16 +84,16 @@ module _
comm-algebra-monad-Precategory :
(f : algebra-monad-Precategory) →
- is-algebra-monad-Precategory (hom-algebra-monad-Precategory f)
+ is-algebra-monad-Precategory C T (hom-algebra-monad-Precategory f)
comm-algebra-monad-Precategory f = pr2 (pr2 f)
unit-law-algebra-monad-Precategory :
(f : algebra-monad-Precategory) →
- has-unit-law-algebra-monad-Precategory (hom-algebra-monad-Precategory f)
+ has-unit-law-algebra-monad-Precategory C T (hom-algebra-monad-Precategory f)
unit-law-algebra-monad-Precategory f = pr1 (pr2 (pr2 f))
mul-law-algebra-monad-Precategory :
(f : algebra-monad-Precategory) →
- has-mul-law-algebra-monad-Precategory (hom-algebra-monad-Precategory f)
+ has-mul-law-algebra-monad-Precategory C T (hom-algebra-monad-Precategory f)
mul-law-algebra-monad-Precategory f = pr2 (pr2 (pr2 f))
```
diff --git a/src/category-theory/coalgebras-comonads-on-precategories.lagda.md b/src/category-theory/coalgebras-comonads-on-precategories.lagda.md
new file mode 100644
index 0000000000..a17d025399
--- /dev/null
+++ b/src/category-theory/coalgebras-comonads-on-precategories.lagda.md
@@ -0,0 +1,103 @@
+# Coalgebras over comonads on precategories
+
+```agda
+module category-theory.coalgebras-comonads-on-precategories where
+```
+
+Imports
+
+```agda
+open import category-theory.commuting-squares-of-morphisms-in-precategories
+open import category-theory.comonads-on-precategories
+open import category-theory.functors-precategories
+open import category-theory.natural-transformations-functors-precategories
+open import category-theory.natural-transformations-maps-precategories
+open import category-theory.precategories
+
+open import foundation.action-on-identifications-functions
+open import foundation.dependent-pair-types
+open import foundation.identity-types
+open import foundation.sets
+open import foundation.universe-levels
+
+open import foundation-core.cartesian-product-types
+```
+
+
+
+## Idea
+
+A
+{{#concept "coalgebra" Disambiguation="over a comonad on a precategory" Agda=coalgebra-comonad-Precategory}}
+over a [comonad](category-theory.comonads-on-precategories.md) `T` consists of
+an object `A` and morphism `a : A → TA` satisfying two compatibility laws:
+
+- **Counit law**: `ε_A ∘ a = id_A`
+- **Comultiplication law**: `Ta ∘ a = δ ∘ a`
+
+## Definitions
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : comonad-Precategory C)
+ {A : obj-Precategory C}
+ (a : hom-Precategory C A (obj-endofunctor-comonad-Precategory C T A))
+ where
+
+ has-counit-law-coalgebra-comonad-Precategory : UU l2
+ has-counit-law-coalgebra-comonad-Precategory =
+ comp-hom-Precategory C (hom-counit-comonad-Precategory C T A) a =
+ id-hom-Precategory C
+
+ has-comul-law-coalgebra-comonad-Precategory : UU l2
+ has-comul-law-coalgebra-comonad-Precategory =
+ comp-hom-Precategory C (hom-endofunctor-comonad-Precategory C T a) a =
+ comp-hom-Precategory C (hom-comul-comonad-Precategory C T A) a
+
+ is-coalgebra-comonad-Precategory : UU l2
+ is-coalgebra-comonad-Precategory =
+ has-counit-law-coalgebra-comonad-Precategory ×
+ has-comul-law-coalgebra-comonad-Precategory
+
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : comonad-Precategory C)
+ where
+
+ coalgebra-comonad-Precategory : UU (l1 ⊔ l2)
+ coalgebra-comonad-Precategory =
+ Σ ( obj-Precategory C)
+ ( λ A →
+ Σ ( hom-Precategory C A (obj-endofunctor-comonad-Precategory C T A))
+ ( λ a → is-coalgebra-comonad-Precategory C T a))
+
+ obj-coalgebra-comonad-Precategory :
+ coalgebra-comonad-Precategory → obj-Precategory C
+ obj-coalgebra-comonad-Precategory = pr1
+
+ hom-coalgebra-comonad-Precategory :
+ (f : coalgebra-comonad-Precategory) →
+ hom-Precategory C
+ ( obj-coalgebra-comonad-Precategory f)
+ ( obj-endofunctor-comonad-Precategory C T
+ ( obj-coalgebra-comonad-Precategory f))
+ hom-coalgebra-comonad-Precategory f = pr1 (pr2 f)
+
+ comm-coalgebra-comonad-Precategory :
+ (f : coalgebra-comonad-Precategory) →
+ is-coalgebra-comonad-Precategory C T (hom-coalgebra-comonad-Precategory f)
+ comm-coalgebra-comonad-Precategory f = pr2 (pr2 f)
+
+ counit-law-coalgebra-comonad-Precategory :
+ (f : coalgebra-comonad-Precategory) →
+ has-counit-law-coalgebra-comonad-Precategory C T
+ ( hom-coalgebra-comonad-Precategory f)
+ counit-law-coalgebra-comonad-Precategory f = pr1 (pr2 (pr2 f))
+
+ comul-law-coalgebra-comonad-Precategory :
+ (f : coalgebra-comonad-Precategory) →
+ has-comul-law-coalgebra-comonad-Precategory C T
+ ( hom-coalgebra-comonad-Precategory f)
+ comul-law-coalgebra-comonad-Precategory f = pr2 (pr2 (pr2 f))
+```
diff --git a/src/category-theory/cocones-precategories.lagda.md b/src/category-theory/cocones-precategories.lagda.md
new file mode 100644
index 0000000000..34ecdae25f
--- /dev/null
+++ b/src/category-theory/cocones-precategories.lagda.md
@@ -0,0 +1,313 @@
+# Cocones in precategories
+
+```agda
+module category-theory.cocones-precategories where
+```
+
+Imports
+
+```agda
+open import category-theory.commuting-squares-of-morphisms-in-precategories
+open import category-theory.commuting-triangles-of-morphisms-in-precategories
+open import category-theory.constant-functors
+open import category-theory.functors-precategories
+open import category-theory.left-extensions-precategories
+open import category-theory.maps-precategories
+open import category-theory.natural-transformations-functors-precategories
+open import category-theory.precategories
+open import category-theory.precategory-of-functors
+open import category-theory.terminal-category
+
+open import foundation.action-on-identifications-functions
+open import foundation.contractible-types
+open import foundation.dependent-identifications
+open import foundation.dependent-pair-types
+open import foundation.equality-dependent-function-types
+open import foundation.equality-dependent-pair-types
+open import foundation.equivalences
+open import foundation.function-extensionality
+open import foundation.function-types
+open import foundation.functoriality-dependent-function-types
+open import foundation.functoriality-dependent-pair-types
+open import foundation.fundamental-theorem-of-identity-types
+open import foundation.homotopies
+open import foundation.homotopy-induction
+open import foundation.identity-types
+open import foundation.multivariable-homotopies
+open import foundation.propositions
+open import foundation.retractions
+open import foundation.sections
+open import foundation.sets
+open import foundation.structure-identity-principle
+open import foundation.torsorial-type-families
+open import foundation.unit-type
+open import foundation.universe-levels
+```
+
+
+
+## Idea
+
+A
+{{#concept "cocone" Disambiguation="under a functor between precategories" Agda=cocone-Precategory}}
+under a [functor](category-theory.functors-precategories.md) `F` between
+[precategories](category-theory.precategories.md) is an object `d` of the
+codomain together with a
+[natural transformation](category-theory.natural-transformations-functors-precategories.md)
+from `F` to the [constant functor](category-theory.constant-functors.md) at `d`.
+
+In this context, we usually think of (and refer to) the functor `F` as a
+**diagram** in its codomain, A cocone under such diagram then corresponds to an
+element `d`, called the **vertex** of the cocone, equipped with components
+`F x → d` satisfying the naturality condition.
+
+For example, if `F` corresponds to the diagram `F x → F y`, then a cocone under
+`F` corresponds to a commuting triangle as below.
+
+```text
+ Fx ----> Fy
+ \ /
+ \ /
+ ∨ ∨
+ d
+```
+
+Equivalently, we can see a cocone under `F` as a
+[left extension](category-theory.left-extensions-precategories.md) of `F` along
+the terminal functor into the
+[terminal precategory](category-theory.terminal-category.md).
+
+## Definitions
+
+### The type of cocones under a functor
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level} (C : Precategory l1 l2) (D : Precategory l3 l4)
+ (F : functor-Precategory C D)
+ where
+
+ cocone-Precategory : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4)
+ cocone-Precategory =
+ Σ ( obj-Precategory D)
+ ( λ d →
+ natural-transformation-Precategory C D
+ ( F)
+ ( constant-functor-Precategory C D d))
+
+ make-cocone-Precategory :
+ ( d : obj-Precategory D)
+ ( α :
+ ( x : obj-Precategory C) →
+ ( hom-Precategory D (obj-functor-Precategory C D F x) d)) →
+ ( {x y : obj-Precategory C} (f : hom-Precategory C x y) →
+ coherence-triangle-hom-Precategory D
+ ( hom-functor-Precategory C D F f)
+ ( α x)
+ ( α y)) →
+ cocone-Precategory
+ pr1 (make-cocone-Precategory d α p) = d
+ pr1 (pr2 (make-cocone-Precategory d α p)) = α
+ pr2 (pr2 (make-cocone-Precategory d α p)) f =
+ left-unit-law-comp-hom-Precategory D _ ∙ p f
+
+ vertex-cocone-Precategory : cocone-Precategory → obj-Precategory D
+ vertex-cocone-Precategory = pr1
+
+ vertex-functor-cocone-Precategory :
+ cocone-Precategory → functor-Precategory C D
+ vertex-functor-cocone-Precategory α =
+ constant-functor-Precategory C D (vertex-cocone-Precategory α)
+
+ natural-transformation-cocone-Precategory :
+ (α : cocone-Precategory) →
+ natural-transformation-Precategory C D
+ ( F)
+ ( vertex-functor-cocone-Precategory α)
+ natural-transformation-cocone-Precategory = pr2
+
+ component-cocone-Precategory :
+ (α : cocone-Precategory) (x : obj-Precategory C) →
+ hom-Precategory D
+ ( obj-functor-Precategory C D F x)
+ ( vertex-cocone-Precategory α)
+ component-cocone-Precategory α =
+ hom-family-natural-transformation-Precategory C D
+ ( F)
+ ( vertex-functor-cocone-Precategory α)
+ ( natural-transformation-cocone-Precategory α)
+
+ naturality-cocone-Precategory :
+ (α : cocone-Precategory) {x y : obj-Precategory C}
+ (f : hom-Precategory C x y) →
+ coherence-triangle-hom-Precategory D
+ ( hom-functor-Precategory C D F f)
+ ( component-cocone-Precategory α x)
+ ( component-cocone-Precategory α y)
+ naturality-cocone-Precategory α {x} {y} f =
+ inv (left-unit-law-comp-hom-Precategory D _) ∙
+ naturality-natural-transformation-Precategory C D
+ ( F)
+ ( vertex-functor-cocone-Precategory α)
+ ( natural-transformation-cocone-Precategory α)
+ ( f)
+```
+
+### Postcomposing cocones
+
+```agda
+ cocone-map-Precategory :
+ (τ : cocone-Precategory)
+ (d : obj-Precategory D) →
+ (hom-Precategory D (vertex-cocone-Precategory τ) d) →
+ natural-transformation-Precategory C D
+ ( F)
+ ( constant-functor-Precategory C D d)
+ pr1 (cocone-map-Precategory τ d f) x =
+ comp-hom-Precategory D f (component-cocone-Precategory τ x)
+ pr2 (cocone-map-Precategory τ d f) h =
+ ( left-unit-law-comp-hom-Precategory D _) ∙
+ ( ap
+ ( λ g → comp-hom-Precategory D f g)
+ ( naturality-cocone-Precategory τ h)) ∙
+ ( inv (associative-comp-hom-Precategory D _ _ _))
+```
+
+## Properties
+
+### Characterization of equality of cocones
+
+```agda
+ coherence-htpy-cocone-Precategory :
+ (α β : cocone-Precategory) →
+ (p : vertex-cocone-Precategory α = vertex-cocone-Precategory β) →
+ UU (l1 ⊔ l4)
+ coherence-htpy-cocone-Precategory α β p =
+ (x : obj-Precategory C) →
+ coherence-triangle-hom-Precategory D
+ ( component-cocone-Precategory α x)
+ ( component-cocone-Precategory β x)
+ ( hom-eq-Precategory D
+ ( vertex-cocone-Precategory α)
+ ( vertex-cocone-Precategory β)
+ ( p))
+
+ htpy-cocone-Precategory :
+ (α β : cocone-Precategory) →
+ UU (l1 ⊔ l3 ⊔ l4)
+ htpy-cocone-Precategory α β =
+ Σ ( vertex-cocone-Precategory α = vertex-cocone-Precategory β)
+ ( coherence-htpy-cocone-Precategory α β)
+
+ refl-htpy-cocone-Precategory :
+ (α : cocone-Precategory) →
+ htpy-cocone-Precategory α α
+ pr1 (refl-htpy-cocone-Precategory α) = refl
+ pr2 (refl-htpy-cocone-Precategory α) x =
+ inv (left-unit-law-comp-hom-Precategory D _)
+
+ htpy-eq-cocone-Precategory :
+ (α β : cocone-Precategory) →
+ α = β →
+ htpy-cocone-Precategory α β
+ htpy-eq-cocone-Precategory α .α refl = refl-htpy-cocone-Precategory α
+
+ is-torsorial-htpy-cocone-Precategory :
+ (α : cocone-Precategory) →
+ is-torsorial (htpy-cocone-Precategory α)
+ is-torsorial-htpy-cocone-Precategory α =
+ is-torsorial-Eq-structure
+ ( is-torsorial-Id (vertex-cocone-Precategory α))
+ ( pair (vertex-cocone-Precategory α) refl)
+ ( is-contr-equiv
+ ( Σ
+ ( natural-transformation-Precategory C D
+ F (constant-functor-Precategory C D (vertex-cocone-Precategory α)))
+ (λ τ → τ = (natural-transformation-cocone-Precategory α)))
+ ( equiv-tot
+ ( λ τ →
+ inv-equiv
+ ( extensionality-natural-transformation-Precategory C D
+ ( F)
+ ( constant-functor-Precategory C D
+ ( vertex-cocone-Precategory α))
+ ( _)
+ ( _)) ∘e
+ equiv-Π-equiv-family
+ ( λ x →
+ equiv-concat'
+ ( pr1 τ x)
+ ( left-unit-law-comp-hom-Precategory D _))))
+ ( is-torsorial-Id' (natural-transformation-cocone-Precategory α)))
+
+ is-equiv-htpy-eq-cocone-Precategory :
+ (α β : cocone-Precategory) →
+ is-equiv (htpy-eq-cocone-Precategory α β)
+ is-equiv-htpy-eq-cocone-Precategory α =
+ fundamental-theorem-id
+ ( is-torsorial-htpy-cocone-Precategory α)
+ ( htpy-eq-cocone-Precategory α)
+
+ equiv-htpy-eq-cocone-Precategory :
+ (α β : cocone-Precategory) →
+ (α = β) ≃ htpy-cocone-Precategory α β
+ pr1 (equiv-htpy-eq-cocone-Precategory α β) = htpy-eq-cocone-Precategory α β
+ pr2 (equiv-htpy-eq-cocone-Precategory α β) =
+ is-equiv-htpy-eq-cocone-Precategory α β
+
+ eq-htpy-cocone-Precategory :
+ (α β : cocone-Precategory) →
+ htpy-cocone-Precategory α β →
+ α = β
+ eq-htpy-cocone-Precategory α β =
+ map-inv-equiv (equiv-htpy-eq-cocone-Precategory α β)
+```
+
+### A cocone is a left extension along the terminal map
+
+```agda
+ equiv-left-extension-cocone-Precategory :
+ cocone-Precategory ≃
+ left-extension-Precategory C terminal-Precategory D
+ ( terminal-functor-Precategory C)
+ ( F)
+ equiv-left-extension-cocone-Precategory =
+ equiv-Σ-equiv-base
+ ( λ K →
+ natural-transformation-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C terminal-Precategory D
+ ( K)
+ ( terminal-functor-Precategory C)))
+ ( equiv-point-Precategory D)
+
+ left-extension-cocone-Precategory :
+ cocone-Precategory →
+ left-extension-Precategory C terminal-Precategory D
+ ( terminal-functor-Precategory C)
+ ( F)
+ left-extension-cocone-Precategory =
+ map-equiv equiv-left-extension-cocone-Precategory
+
+ cocone-left-extension-Precategory :
+ left-extension-Precategory C terminal-Precategory D
+ ( terminal-functor-Precategory C)
+ ( F) →
+ cocone-Precategory
+ cocone-left-extension-Precategory =
+ map-inv-equiv equiv-left-extension-cocone-Precategory
+
+ vertex-left-extension-Precategory :
+ left-extension-Precategory C terminal-Precategory D
+ ( terminal-functor-Precategory C)
+ ( F) →
+ obj-Precategory D
+ vertex-left-extension-Precategory R =
+ vertex-cocone-Precategory
+ ( cocone-left-extension-Precategory R)
+```
+
+## See also
+
+- [Colimits](category-theory.colimits-precategories.md) for universal cocones.
+- [Cones](category-theory.cones-precategories.md) for the dual concept.
diff --git a/src/category-theory/codensity-monads-on-precategories.lagda.md b/src/category-theory/codensity-monads-on-precategories.lagda.md
index f02e0863b5..83a93d2b72 100644
--- a/src/category-theory/codensity-monads-on-precategories.lagda.md
+++ b/src/category-theory/codensity-monads-on-precategories.lagda.md
@@ -27,10 +27,10 @@ open import foundation.universe-levels
## Idea
Given an arbitrary [functor](category-theory.functors-precategories.md)
-`F : C → D`, any [right Kan
-extension](category-theory.right-kan-extensions-precategories.md] `R` of `F`
-along itself `F` has a canonical
-[monad](category-theory.monads-on-precategories.md] structure, called the
+`F : C → D`, any
+[right Kan extension](category-theory.right-kan-extensions-precategories.md) `R`
+of `F` along itself has a canonical
+[monad](category-theory.monads-on-precategories.md) structure, called the
{{#concept "codensity monad" Agda=codensity-monad-Precategory WD="codensity monad" WDID=Q97359844}}
of `R`.
@@ -46,7 +46,7 @@ definition via the universal property, we have two computation rules for these
natural transformations (where ∙ is whiskering):
1. `α ∘ (η ∙ F) = id_F`; and
-2. `α ∘ (μ ∙ F) = α ∘ (R ∙ α)`.
+2. `α ∘ (μ ∙ F) = α ∘ (R ∙ α)`.
```agda
module _
@@ -123,8 +123,8 @@ For the left unit law, if `α : R∘F ⇒ F` is the right Kan extension natural
transformation, we show that the composite
```text
- (Rμ)F μF α
- R∘F ⇒ R²∘F ⇒ R∘F ⇒ R
+ (Rη)F μF α
+ R∘F ═════> R²∘F ══> R∘F ═> R
```
is equal to `α`; by uniqueness, `μF ∘ RμF = id`.
@@ -177,10 +177,7 @@ module _
( _)
( _)) ∙
( ap
- ( λ x →
- ( comp-natural-transformation-Precategory C D RF RF F
- ( α)
- ( x)))
+ ( comp-natural-transformation-Precategory C D RF RF F α)
( inv
( preserves-comp-left-whisker-natural-transformation-Precategory
( C)
@@ -205,10 +202,7 @@ module _
( x))))
( compute-unit-codensity-monad-Precategory C D F Rk)) ∙
( ap
- ( λ x →
- ( comp-natural-transformation-Precategory C D RF RF F
- ( α)
- ( x)))
+ ( comp-natural-transformation-Precategory C D RF RF F α)
( preserves-id-left-whisker-natural-transformation-Precategory C D D
( F)
( R))) ∙
@@ -243,10 +237,12 @@ module _
The right unit law is similar; we show that the composite is `α` via:
```text
- ηRF μF α
- RF ⇒ R²F ⇒ RF ⇒ F
- α ⇓ Rα ⇓ ∥
- F ⇒ RF ⇒ F
+ ηRF μF α
+ RF ═══> R²F ══> RF ══> F
+ ║ ║ ║
+ α ║ Rα ║ ║
+ ∨ ∨ ║
+ F ════> RF ══════════> F
ηF α
```
@@ -303,7 +299,7 @@ module _
( _)
( _)) ∙
( ap
- ( λ x → comp-natural-transformation-Precategory C D RF RF F α x)
+ ( comp-natural-transformation-Precategory C D RF RF F α)
( eq-htpy-hom-family-natural-transformation-Precategory C D RF RF _ _
( λ x →
( naturality-natural-transformation-Precategory D D
@@ -393,7 +389,7 @@ module _
( α))))
left-precomp-associative-mul-codensity-monad-Precategory =
( ap
- ( λ x → comp-natural-transformation-Precategory C D RRRF RF F α x)
+ ( comp-natural-transformation-Precategory C D RRRF RF F α)
( preserves-comp-right-whisker-natural-transformation-Precategory D D C
( RRR)
( RR)
@@ -429,7 +425,7 @@ module _
( _)
( _)) ∙
( ap
- ( λ x → comp-natural-transformation-Precategory C D RRRF RF F α x)
+ ( comp-natural-transformation-Precategory C D RRRF RF F α)
( inv
( preserves-comp-left-whisker-natural-transformation-Precategory C D D
( RRF)
@@ -479,7 +475,7 @@ module _
( α))))
right-precomp-associative-mul-codensity-monad-Precategory =
( ap
- ( λ x → comp-natural-transformation-Precategory C D RRRF RF F α x)
+ ( comp-natural-transformation-Precategory C D RRRF RF F α)
( preserves-comp-right-whisker-natural-transformation-Precategory D D C
( RRR)
( RR)
@@ -547,7 +543,7 @@ module _
( _)
( _)) ∙
( ap
- ( λ x → comp-natural-transformation-Precategory C D RRRF RF F α x)
+ ( comp-natural-transformation-Precategory C D RRRF RF F α)
( inv
( preserves-comp-left-whisker-natural-transformation-Precategory C D D
( RRF)
@@ -602,6 +598,11 @@ module _
( right-unit-law-mul-codensity-monad-Precategory C D F Rk)))
```
+## See also
+
+- [Density comonads](category-theory.density-comonads-on-precategories.md) for
+ the dual concept
+
## External links
- [Codensity monad](https://ncatlab.org/nlab/show/codensity+monad) at $n$Lab
diff --git a/src/category-theory/colimits-precategories.lagda.md b/src/category-theory/colimits-precategories.lagda.md
new file mode 100644
index 0000000000..84be550836
--- /dev/null
+++ b/src/category-theory/colimits-precategories.lagda.md
@@ -0,0 +1,279 @@
+# Colimits in precategories
+
+```agda
+module category-theory.colimits-precategories where
+```
+
+Imports
+
+```agda
+open import category-theory.cocones-precategories
+open import category-theory.constant-functors
+open import category-theory.functors-precategories
+open import category-theory.left-extensions-precategories
+open import category-theory.left-kan-extensions-precategories
+open import category-theory.natural-transformations-functors-precategories
+open import category-theory.precategories
+open import category-theory.terminal-category
+
+open import foundation.dependent-pair-types
+open import foundation.equivalences
+open import foundation.function-extensionality
+open import foundation.function-types
+open import foundation.functoriality-dependent-function-types
+open import foundation.functoriality-dependent-pair-types
+open import foundation.identity-types
+open import foundation.logical-equivalences
+open import foundation.propositions
+open import foundation.transport-along-identifications
+open import foundation.unit-type
+open import foundation.universe-levels
+
+open import foundation-core.homotopies
+```
+
+
+
+## Idea
+
+A
+{{#concept "colimit" Disambiguation="of a functor of precategories" Agda=colimit-Precategory}}
+of a [functor](category-theory.functors-precategories.md) `F` between
+[precategories](category-theory.precategories.md) is a colimiting
+[cocone](category-theory.cocones-precategories.md) under `F`. That is, a cocone
+`τ` such that `cocone-map-Precategory C D F τ d` is an
+[equivalence](foundation-core.equivalences.md) for all `d : obj-Precategory D`.
+
+Equivalently, the colimit of `F` is a
+[left kan extension](category-theory.left-kan-extensions-precategories.md) of
+`F` along the terminal functor into the
+[terminal precategory](category-theory.terminal-category.md).
+
+We show that both definitions coincide, and we will use the definition using
+colimiting cocones as our official one.
+
+If a colimit exists, we call the vertex of the colimiting cocone the **vertex**
+of the colimit.
+
+## Definitions
+
+### Colimiting cocones
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level} (C : Precategory l1 l2) (D : Precategory l3 l4)
+ (F : functor-Precategory C D)
+ where
+
+ is-colimit-cocone-Precategory :
+ cocone-Precategory C D F → UU (l1 ⊔ l2 ⊔ l3 ⊔ l4)
+ is-colimit-cocone-Precategory τ =
+ (d : obj-Precategory D) →
+ is-equiv (cocone-map-Precategory C D F τ d)
+
+ colimit-Precategory : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4)
+ colimit-Precategory =
+ Σ ( cocone-Precategory C D F)
+ ( is-colimit-cocone-Precategory)
+
+ cocone-colimit-Precategory :
+ colimit-Precategory →
+ cocone-Precategory C D F
+ cocone-colimit-Precategory = pr1
+
+ vertex-colimit-Precategory :
+ colimit-Precategory →
+ obj-Precategory D
+ vertex-colimit-Precategory τ =
+ vertex-cocone-Precategory C D F (cocone-colimit-Precategory τ)
+
+ is-colimit-colimit-Precategory :
+ (τ : colimit-Precategory) →
+ is-colimit-cocone-Precategory (cocone-colimit-Precategory τ)
+ is-colimit-colimit-Precategory = pr2
+
+ hom-cocone-colimit-Precategory :
+ (τ : colimit-Precategory) →
+ (φ : cocone-Precategory C D F) →
+ hom-Precategory D
+ ( vertex-colimit-Precategory τ)
+ ( vertex-cocone-Precategory C D F φ)
+ hom-cocone-colimit-Precategory τ φ =
+ map-inv-is-equiv
+ ( is-colimit-colimit-Precategory τ
+ ( vertex-cocone-Precategory C D F φ))
+ ( natural-transformation-cocone-Precategory C D F φ)
+```
+
+### Colimits through left kan extensions
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level} (C : Precategory l1 l2) (D : Precategory l3 l4)
+ (F : functor-Precategory C D)
+ where
+
+ is-colimit-left-extension-Precategory :
+ left-extension-Precategory C terminal-Precategory D
+ (terminal-functor-Precategory C) F →
+ UU (l1 ⊔ l2 ⊔ l3 ⊔ l4)
+ is-colimit-left-extension-Precategory =
+ is-left-kan-extension-Precategory C terminal-Precategory D
+ (terminal-functor-Precategory C) F
+
+ colimit-Precategory' : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4)
+ colimit-Precategory' =
+ left-kan-extension-Precategory C terminal-Precategory D
+ (terminal-functor-Precategory C) F
+
+module _
+ {l1 l2 l3 l4 : Level} (C : Precategory l1 l2) (D : Precategory l3 l4)
+ (F : functor-Precategory C D) (L : colimit-Precategory' C D F)
+ where
+
+ left-extension-colimit-Precategory' :
+ left-extension-Precategory C terminal-Precategory D
+ (terminal-functor-Precategory C) F
+ left-extension-colimit-Precategory' =
+ left-extension-left-kan-extension-Precategory
+ C terminal-Precategory D (terminal-functor-Precategory C) F L
+
+ extension-colimit-Precategory' :
+ functor-Precategory terminal-Precategory D
+ extension-colimit-Precategory' =
+ extension-left-kan-extension-Precategory
+ C terminal-Precategory D (terminal-functor-Precategory C) F L
+```
+
+## Properties
+
+### Being a colimit is a property
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level} (C : Precategory l1 l2) (D : Precategory l3 l4)
+ (F : functor-Precategory C D)
+ where
+
+ is-prop-is-colimit-cocone-Precategory :
+ (τ : cocone-Precategory C D F) →
+ is-prop (is-colimit-cocone-Precategory C D F τ)
+ is-prop-is-colimit-cocone-Precategory τ =
+ is-prop-Π (λ φ → is-property-is-equiv _)
+
+ is-prop-is-colimit-Precategory' :
+ ( R : left-extension-Precategory C terminal-Precategory D
+ (terminal-functor-Precategory C) F) →
+ is-prop (is-colimit-left-extension-Precategory C D F R)
+ is-prop-is-colimit-Precategory' R =
+ is-prop-Π (λ K → is-property-is-equiv _)
+```
+
+### Colimiting cocones are equivalent to colimits
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level} (C : Precategory l1 l2) (D : Precategory l3 l4)
+ (F : functor-Precategory C D)
+ where
+
+ equiv-is-left-kan-extension-is-colimit-Precategory :
+ (τ : cocone-Precategory C D F) →
+ is-colimit-cocone-Precategory C D F τ ≃
+ is-left-kan-extension-Precategory C terminal-Precategory D
+ ( terminal-functor-Precategory C)
+ ( F)
+ ( map-equiv (equiv-left-extension-cocone-Precategory C D F) τ)
+ equiv-is-left-kan-extension-is-colimit-Precategory τ =
+ equiv-Π _
+ ( equiv-point-Precategory D)
+ ( λ x →
+ equiv-iff-is-prop
+ ( is-property-is-equiv _)
+ ( is-property-is-equiv _)
+ ( λ e →
+ is-equiv-left-factor
+ ( induced-left-extension-map x)
+ ( natural-transformation-constant-functor-Precategory
+ ( terminal-Precategory)
+ ( D))
+ ( tr is-equiv (inv (lemma τ x)) e)
+ ( is-equiv-natural-transformation-constant-functor-Precategory
+ ( D)
+ ( _)
+ ( _)))
+ ( λ e →
+ tr is-equiv (lemma τ x)
+ ( is-equiv-comp
+ ( induced-left-extension-map x)
+ ( natural-transformation-constant-functor-Precategory
+ ( terminal-Precategory)
+ ( D))
+ ( is-equiv-natural-transformation-constant-functor-Precategory
+ ( D)
+ ( _)
+ ( _))
+ ( e))))
+ where
+ induced-left-extension-map :
+ ( x : obj-Precategory D) →
+ natural-transformation-Precategory terminal-Precategory D
+ ( extension-left-extension-Precategory C terminal-Precategory D
+ ( terminal-functor-Precategory C)
+ ( F)
+ ( map-equiv (equiv-left-extension-cocone-Precategory C D F) τ))
+ ( constant-functor-Precategory terminal-Precategory D x) →
+ natural-transformation-Precategory C D F
+ ( comp-functor-Precategory C terminal-Precategory D
+ ( constant-functor-Precategory terminal-Precategory D x)
+ ( terminal-functor-Precategory C))
+ induced-left-extension-map x =
+ left-extension-map-Precategory C terminal-Precategory D
+ ( terminal-functor-Precategory C) ( F)
+ ( map-equiv (equiv-left-extension-cocone-Precategory C D F) τ)
+ ( constant-functor-Precategory terminal-Precategory D x)
+ lemma :
+ ( τ : cocone-Precategory C D F)
+ ( x : obj-Precategory D) →
+ ( left-extension-map-Precategory C terminal-Precategory D
+ ( terminal-functor-Precategory C) F
+ ( map-equiv (equiv-left-extension-cocone-Precategory C D F) τ)
+ ( constant-functor-Precategory terminal-Precategory D x)) ∘
+ ( natural-transformation-constant-functor-Precategory
+ terminal-Precategory D) =
+ ( cocone-map-Precategory C D F τ x)
+ lemma τ x =
+ eq-htpy
+ ( λ f →
+ eq-htpy-hom-family-natural-transformation-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C terminal-Precategory D
+ ( point-Precategory D x)
+ ( terminal-functor-Precategory C))
+ ( _)
+ ( _)
+ ( refl-htpy))
+
+ equiv-colimit-colimit'-Precategory :
+ colimit-Precategory C D F ≃ colimit-Precategory' C D F
+ equiv-colimit-colimit'-Precategory =
+ equiv-Σ
+ ( is-left-kan-extension-Precategory C terminal-Precategory D
+ ( terminal-functor-Precategory C) F)
+ ( equiv-left-extension-cocone-Precategory C D F)
+ ( λ τ → equiv-is-left-kan-extension-is-colimit-Precategory τ)
+
+ colimit-colimit'-Precategory :
+ colimit-Precategory C D F → colimit-Precategory' C D F
+ colimit-colimit'-Precategory =
+ map-equiv equiv-colimit-colimit'-Precategory
+
+ colimit'-colimit-Precategory :
+ colimit-Precategory' C D F → colimit-Precategory C D F
+ colimit'-colimit-Precategory =
+ map-inv-equiv equiv-colimit-colimit'-Precategory
+```
+
+## See also
+
+- [Limits](category-theory.limits-precategories.md) for the dual concept.
diff --git a/src/category-theory/comonads-on-precategories.lagda.md b/src/category-theory/comonads-on-precategories.lagda.md
new file mode 100644
index 0000000000..372923f5fa
--- /dev/null
+++ b/src/category-theory/comonads-on-precategories.lagda.md
@@ -0,0 +1,452 @@
+# Comonads on precategories
+
+```agda
+module category-theory.comonads-on-precategories where
+```
+
+Imports
+
+```agda
+open import category-theory.adjunctions-precategories
+open import category-theory.commuting-squares-of-morphisms-in-precategories
+open import category-theory.copointed-endofunctors-precategories
+open import category-theory.functors-precategories
+open import category-theory.natural-transformations-functors-precategories
+open import category-theory.natural-transformations-maps-precategories
+open import category-theory.precategories
+
+open import foundation.action-on-identifications-functions
+open import foundation.dependent-pair-types
+open import foundation.equality-cartesian-product-types
+open import foundation.identity-types
+open import foundation.sets
+open import foundation.universe-levels
+
+open import foundation-core.cartesian-product-types
+open import foundation-core.commuting-squares-of-maps
+open import foundation-core.equality-dependent-pair-types
+open import foundation-core.equivalences
+open import foundation-core.function-types
+open import foundation-core.homotopies
+open import foundation-core.propositions
+open import foundation-core.transport-along-identifications
+```
+
+
+
+## Idea
+
+A
+{{#concept "comonad" Disambiguation="on a precategory" Agda=comonad-Precategory}}
+on a [precategory](category-theory.precategories.md) `C` consists of an
+[endofunctor](category-theory.functors-precategories.md) `T : C → C` together
+with two
+[natural transformations](category-theory.natural-transformations-functors-precategories.md):
+`ε : T ⇒ 1_C` and `δ : T ⇒ T²`, where `1_C : C → C` is the identity functor for
+`C`, and `T²` is the functor `T ∘ T : C → C`. These must satisfy the following
+{{#concept "comonad laws" Disambiguation="comonad on a precategory"}}:
+
+- **Associativity:** `(T • δ) ∘ δ = (δ • T) ∘ δ`
+- The **left counit law:** `(T • ε) ∘ δ = 1_T`
+- The **right counit law:** `(ε • T) ∘ δ = 1_T`.
+
+Here, `•` denotes
+[whiskering](category-theory.natural-transformations-functors-precategories.md#whiskering),
+and `1_T : T ⇒ T` denotes the identity natural transformation for `T`.
+
+See also the dual notion of a
+[monad on a precategory](category-theory.monads-on-precategories.md).
+
+## Definitions
+
+### Comultiplication structure on a copointed endofunctor on a precategory
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : copointed-endofunctor-Precategory C)
+ where
+
+ structure-comultiplication-copointed-endofunctor-Precategory : UU (l1 ⊔ l2)
+ structure-comultiplication-copointed-endofunctor-Precategory =
+ natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+```
+
+### Associativity of comultiplication on a copointed endofunctor on a precategory
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : copointed-endofunctor-Precategory C)
+ (μ : structure-comultiplication-copointed-endofunctor-Precategory C T)
+ where
+
+ associative-comul-copointed-endofunctor-Precategory : UU (l1 ⊔ l2)
+ associative-comul-copointed-endofunctor-Precategory =
+ comp-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T)))
+ ( left-whisker-natural-transformation-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( μ))
+ ( μ) =
+ comp-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T)))
+ ( right-whisker-natural-transformation-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( μ)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( μ)
+
+ associative-comul-hom-family-copointed-endofunctor-Precategory : UU (l1 ⊔ l2)
+ associative-comul-hom-family-copointed-endofunctor-Precategory =
+ ( λ x →
+ ( comp-hom-Precategory C
+ ( hom-functor-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( hom-family-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( μ)
+ ( x)))
+ ( hom-family-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( μ)
+ ( x)))) ~
+ ( λ x →
+ ( comp-hom-Precategory C
+ ( hom-family-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( μ)
+ ( obj-functor-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( x)))
+ ( hom-family-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( μ)
+ ( x))))
+```
+
+### The left counit law on a comultiplication on a copointed endofunctor
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : copointed-endofunctor-Precategory C)
+ (μ : structure-comultiplication-copointed-endofunctor-Precategory C T)
+ where
+
+ left-counit-law-comul-copointed-endofunctor-Precategory : UU (l1 ⊔ l2)
+ left-counit-law-comul-copointed-endofunctor-Precategory =
+ comp-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( left-whisker-natural-transformation-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( id-functor-Precategory C)
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( copointing-copointed-endofunctor-Precategory C T))
+ ( μ) =
+ id-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+
+ left-counit-law-comul-hom-family-copointed-endofunctor-Precategory :
+ UU (l1 ⊔ l2)
+ left-counit-law-comul-hom-family-copointed-endofunctor-Precategory =
+ ( λ x →
+ comp-hom-Precategory C
+ ( hom-functor-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( hom-family-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( id-functor-Precategory C)
+ ( copointing-copointed-endofunctor-Precategory C T)
+ ( x)))
+ ( hom-family-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( μ)
+ ( x))) ~
+ ( λ x → id-hom-Precategory C)
+```
+
+### The right counit law on a comultiplication on a copointed endofunctor
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : copointed-endofunctor-Precategory C)
+ (μ : structure-comultiplication-copointed-endofunctor-Precategory C T)
+ where
+
+ right-counit-law-comul-copointed-endofunctor-Precategory : UU (l1 ⊔ l2)
+ right-counit-law-comul-copointed-endofunctor-Precategory =
+ comp-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( right-whisker-natural-transformation-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( id-functor-Precategory C)
+ ( copointing-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( μ) =
+ id-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+
+ right-counit-law-comul-hom-family-copointed-endofunctor-Precategory :
+ UU (l1 ⊔ l2)
+ right-counit-law-comul-hom-family-copointed-endofunctor-Precategory =
+ ( λ x →
+ comp-hom-Precategory C
+ ( hom-family-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( id-functor-Precategory C)
+ ( copointing-copointed-endofunctor-Precategory C T)
+ ( obj-functor-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T) x))
+ ( hom-family-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( comp-functor-Precategory C C C
+ ( functor-copointed-endofunctor-Precategory C T)
+ ( functor-copointed-endofunctor-Precategory C T))
+ ( μ)
+ ( x))) ~
+ ( λ x → id-hom-Precategory C)
+```
+
+### The structure of a comonad on a copointed endofunctor on a precategory
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : copointed-endofunctor-Precategory C)
+ where
+
+ structure-comonad-copointed-endofunctor-Precategory : UU (l1 ⊔ l2)
+ structure-comonad-copointed-endofunctor-Precategory =
+ Σ ( structure-comultiplication-copointed-endofunctor-Precategory C T)
+ ( λ μ →
+ associative-comul-copointed-endofunctor-Precategory C T μ ×
+ left-counit-law-comul-copointed-endofunctor-Precategory C T μ ×
+ right-counit-law-comul-copointed-endofunctor-Precategory C T μ)
+```
+
+### The type of comonads on precategories
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ where
+
+ comonad-Precategory : UU (l1 ⊔ l2)
+ comonad-Precategory =
+ Σ ( copointed-endofunctor-Precategory C)
+ ( structure-comonad-copointed-endofunctor-Precategory C)
+
+ module _
+ (T : comonad-Precategory)
+ where
+
+ copointed-endofunctor-comonad-Precategory :
+ copointed-endofunctor-Precategory C
+ copointed-endofunctor-comonad-Precategory = pr1 T
+
+ endofunctor-comonad-Precategory :
+ functor-Precategory C C
+ endofunctor-comonad-Precategory =
+ functor-copointed-endofunctor-Precategory C
+ ( copointed-endofunctor-comonad-Precategory)
+
+ obj-endofunctor-comonad-Precategory :
+ obj-Precategory C → obj-Precategory C
+ obj-endofunctor-comonad-Precategory =
+ obj-functor-Precategory C C endofunctor-comonad-Precategory
+
+ hom-endofunctor-comonad-Precategory :
+ {X Y : obj-Precategory C} →
+ hom-Precategory C X Y →
+ hom-Precategory C
+ ( obj-endofunctor-comonad-Precategory X)
+ ( obj-endofunctor-comonad-Precategory Y)
+ hom-endofunctor-comonad-Precategory =
+ hom-functor-Precategory C C endofunctor-comonad-Precategory
+
+ preserves-id-endofunctor-comonad-Precategory :
+ (X : obj-Precategory C) →
+ hom-endofunctor-comonad-Precategory (id-hom-Precategory C {X}) =
+ id-hom-Precategory C
+ preserves-id-endofunctor-comonad-Precategory =
+ preserves-id-functor-Precategory C C endofunctor-comonad-Precategory
+
+ preserves-comp-endofunctor-comonad-Precategory :
+ {X Y Z : obj-Precategory C} →
+ (g : hom-Precategory C Y Z) (f : hom-Precategory C X Y) →
+ hom-endofunctor-comonad-Precategory (comp-hom-Precategory C g f) =
+ comp-hom-Precategory C
+ ( hom-endofunctor-comonad-Precategory g)
+ ( hom-endofunctor-comonad-Precategory f)
+ preserves-comp-endofunctor-comonad-Precategory =
+ preserves-comp-functor-Precategory C C
+ ( endofunctor-comonad-Precategory)
+
+ counit-comonad-Precategory :
+ copointing-endofunctor-Precategory C endofunctor-comonad-Precategory
+ counit-comonad-Precategory =
+ copointing-copointed-endofunctor-Precategory C
+ ( copointed-endofunctor-comonad-Precategory)
+
+ hom-counit-comonad-Precategory :
+ hom-family-functor-Precategory C C
+ ( endofunctor-comonad-Precategory)
+ ( id-functor-Precategory C)
+ hom-counit-comonad-Precategory =
+ hom-family-copointing-copointed-endofunctor-Precategory C
+ ( copointed-endofunctor-comonad-Precategory)
+
+ naturality-counit-comonad-Precategory :
+ is-natural-transformation-Precategory C C
+ ( endofunctor-comonad-Precategory)
+ ( id-functor-Precategory C)
+ ( hom-counit-comonad-Precategory)
+ naturality-counit-comonad-Precategory =
+ naturality-copointing-copointed-endofunctor-Precategory C
+ ( copointed-endofunctor-comonad-Precategory)
+
+ comul-comonad-Precategory :
+ structure-comultiplication-copointed-endofunctor-Precategory C
+ ( copointed-endofunctor-comonad-Precategory)
+ comul-comonad-Precategory = pr1 (pr2 T)
+
+ hom-comul-comonad-Precategory :
+ hom-family-functor-Precategory C C
+ ( endofunctor-comonad-Precategory)
+ ( comp-functor-Precategory C C C
+ ( endofunctor-comonad-Precategory)
+ ( endofunctor-comonad-Precategory))
+ hom-comul-comonad-Precategory =
+ hom-family-natural-transformation-Precategory C C
+ ( endofunctor-comonad-Precategory)
+ ( comp-functor-Precategory C C C
+ ( endofunctor-comonad-Precategory)
+ ( endofunctor-comonad-Precategory))
+ ( comul-comonad-Precategory)
+
+ naturality-comul-comonad-Precategory :
+ is-natural-transformation-Precategory C C
+ ( endofunctor-comonad-Precategory)
+ ( comp-functor-Precategory C C C
+ ( endofunctor-comonad-Precategory)
+ ( endofunctor-comonad-Precategory))
+ ( hom-comul-comonad-Precategory)
+ naturality-comul-comonad-Precategory =
+ naturality-natural-transformation-Precategory C C
+ ( endofunctor-comonad-Precategory)
+ ( comp-functor-Precategory C C C
+ ( endofunctor-comonad-Precategory)
+ ( endofunctor-comonad-Precategory))
+ ( comul-comonad-Precategory)
+
+ associative-comul-comonad-Precategory :
+ associative-comul-copointed-endofunctor-Precategory C
+ ( copointed-endofunctor-comonad-Precategory)
+ ( comul-comonad-Precategory)
+ associative-comul-comonad-Precategory =
+ pr1 (pr2 (pr2 T))
+
+ associative-comul-hom-family-comonad-Precategory :
+ associative-comul-hom-family-copointed-endofunctor-Precategory C
+ ( copointed-endofunctor-comonad-Precategory)
+ ( comul-comonad-Precategory)
+ associative-comul-hom-family-comonad-Precategory =
+ htpy-eq-hom-family-natural-transformation-Precategory C C
+ ( endofunctor-comonad-Precategory)
+ ( comp-functor-Precategory C C C
+ ( endofunctor-comonad-Precategory)
+ ( comp-functor-Precategory C C C
+ ( endofunctor-comonad-Precategory)
+ ( endofunctor-comonad-Precategory)))
+ ( associative-comul-comonad-Precategory)
+
+ left-counit-law-comul-comonad-Precategory :
+ left-counit-law-comul-copointed-endofunctor-Precategory C
+ ( copointed-endofunctor-comonad-Precategory)
+ ( comul-comonad-Precategory)
+ left-counit-law-comul-comonad-Precategory =
+ pr1 (pr2 (pr2 (pr2 T)))
+
+ left-counit-law-comul-hom-family-comonad-Precategory :
+ left-counit-law-comul-hom-family-copointed-endofunctor-Precategory C
+ ( copointed-endofunctor-comonad-Precategory)
+ ( comul-comonad-Precategory)
+ left-counit-law-comul-hom-family-comonad-Precategory =
+ htpy-eq-hom-family-natural-transformation-Precategory C C
+ ( endofunctor-comonad-Precategory)
+ ( endofunctor-comonad-Precategory)
+ ( left-counit-law-comul-comonad-Precategory)
+
+ right-counit-law-comul-comonad-Precategory :
+ right-counit-law-comul-copointed-endofunctor-Precategory C
+ ( copointed-endofunctor-comonad-Precategory)
+ ( comul-comonad-Precategory)
+ right-counit-law-comul-comonad-Precategory =
+ pr2 (pr2 (pr2 (pr2 T)))
+
+ right-counit-law-comul-hom-family-comonad-Precategory :
+ right-counit-law-comul-hom-family-copointed-endofunctor-Precategory C
+ ( copointed-endofunctor-comonad-Precategory)
+ ( comul-comonad-Precategory)
+ right-counit-law-comul-hom-family-comonad-Precategory =
+ htpy-eq-hom-family-natural-transformation-Precategory C C
+ ( endofunctor-comonad-Precategory)
+ ( endofunctor-comonad-Precategory)
+ ( right-counit-law-comul-comonad-Precategory)
+```
+
+## See also
+
+- [Monads](category-theory.monads-on-precategories.md) for the dual concept.
diff --git a/src/category-theory/cones-precategories.lagda.md b/src/category-theory/cones-precategories.lagda.md
index 12df81dc10..17de287f12 100644
--- a/src/category-theory/cones-precategories.lagda.md
+++ b/src/category-theory/cones-precategories.lagda.md
@@ -51,9 +51,10 @@ open import foundation.universe-levels
A
{{#concept "cone" Disambiguation="over a functor between precategories" Agda=cone-Precategory}}
over a [functor](category-theory.functors-precategories.md) `F` between
-[precategories](category-theory.precategories.md) is a
+[precategories](category-theory.precategories.md) is an object `d` of the
+codomain together with a
[natural transformation](category-theory.natural-transformations-functors-precategories.md)
-from a [constant functor](category-theory.constant-functors.md) to `F`.
+from the [constant functor](category-theory.constant-functors.md) at `d` to `F`.
In this context, we usually think of (and refer to) the functor `F` as a
**diagram** in its codomain, A cone over such diagram then corresponds to an
@@ -166,16 +167,16 @@ module _
pr1 (cone-map-Precategory τ d f) x =
comp-hom-Precategory D (component-cone-Precategory τ x) f
pr2 (cone-map-Precategory τ d f) h =
- inv (associative-comp-hom-Precategory D _ _ _) ∙
- ap
+ ( inv (associative-comp-hom-Precategory D _ _ _)) ∙
+ ( ap
( λ g → comp-hom-Precategory D g f)
- ( inv (naturality-cone-Precategory τ h)) ∙
- inv (right-unit-law-comp-hom-Precategory D _)
+ ( inv (naturality-cone-Precategory τ h))) ∙
+ ( inv (right-unit-law-comp-hom-Precategory D _))
```
## Properties
-### Characterization of equality of cones over functors between precategories
+### Characterization of equality of cones
```agda
coherence-htpy-cone-Precategory :
@@ -267,15 +268,17 @@ module _
equiv-right-extension-cone-Precategory :
cone-Precategory ≃
right-extension-Precategory C terminal-Precategory D
- (terminal-functor-Precategory C) F
+ ( terminal-functor-Precategory C)
+ ( F)
equiv-right-extension-cone-Precategory =
equiv-Σ-equiv-base
- ( λ K → natural-transformation-Precategory C D
- ( comp-functor-Precategory C terminal-Precategory D
- ( K)
- ( terminal-functor-Precategory C))
- ( F))
- ( equiv-point-Precategory D)
+ ( λ K →
+ natural-transformation-Precategory C D
+ ( comp-functor-Precategory C terminal-Precategory D
+ ( K)
+ ( terminal-functor-Precategory C))
+ ( F))
+ ( equiv-point-Precategory D)
right-extension-cone-Precategory :
cone-Precategory →
@@ -293,9 +296,15 @@ module _
vertex-right-extension-Precategory :
right-extension-Precategory C terminal-Precategory D
- (terminal-functor-Precategory C) F →
+ ( terminal-functor-Precategory C)
+ ( F) →
obj-Precategory D
vertex-right-extension-Precategory R =
vertex-cone-Precategory
( cone-right-extension-Precategory R)
```
+
+## See also
+
+- [Limits](category-theory.limits-precategories.md) for universal cones.
+- [Cocones](category-theory.cocones-precategories.md) for the dual concept.
diff --git a/src/category-theory/copointed-endofunctors-precategories.lagda.md b/src/category-theory/copointed-endofunctors-precategories.lagda.md
new file mode 100644
index 0000000000..d4845e11f0
--- /dev/null
+++ b/src/category-theory/copointed-endofunctors-precategories.lagda.md
@@ -0,0 +1,147 @@
+# Copointed endofunctors on precategories
+
+```agda
+module category-theory.copointed-endofunctors-precategories where
+```
+
+Imports
+
+```agda
+open import category-theory.functors-precategories
+open import category-theory.natural-transformations-functors-precategories
+open import category-theory.precategories
+
+open import foundation.dependent-pair-types
+open import foundation.identity-types
+open import foundation.universe-levels
+```
+
+
+
+## Idea
+
+An [endofunctor](category-theory.functors-precategories.md) `F : C → C` on a
+[precategory](category-theory.precategories.md) `C` is said to be
+{{#concept "copointed" Disambiguation="endofunctor on a category" Agda=copointed-endofunctor-Precategory}}
+if it comes equipped with a
+[natural transformation](category-theory.natural-transformations-functors-precategories.md)
+`F ⇒ id` from `F` to the identity
+[functor](category-theory.functors-precategories.md).
+
+More explicitly, a
+{{#concept "copointing" Disambiguation="endofunctor on a precategory" Agda=copointing-endofunctor-Precategory}}
+of an endofunctor `F : C → C` consists of a family of morphisms `ε X : F X → X`
+such that for each morphism `f : X → Y` in `C` the diagram
+
+```text
+ ε X
+ F X -----> X
+ | |
+ F f | | f
+ ∨ ∨
+ F Y -----> Y
+ ε Y
+```
+
+[commutes](category-theory.commuting-squares-of-morphisms-in-precategories.md).
+
+## Definitions
+
+### The structure of a copointing on an endofunctor on a precategory
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2) (T : functor-Precategory C C)
+ where
+
+ copointing-endofunctor-Precategory : UU (l1 ⊔ l2)
+ copointing-endofunctor-Precategory =
+ natural-transformation-Precategory C C T (id-functor-Precategory C)
+```
+
+### Copointed endofunctors on a precategory
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ where
+
+ copointed-endofunctor-Precategory : UU (l1 ⊔ l2)
+ copointed-endofunctor-Precategory =
+ Σ (functor-Precategory C C) (copointing-endofunctor-Precategory C)
+
+ module _
+ (F : copointed-endofunctor-Precategory)
+ where
+
+ functor-copointed-endofunctor-Precategory :
+ functor-Precategory C C
+ functor-copointed-endofunctor-Precategory =
+ pr1 F
+
+ obj-copointed-endofunctor-Precategory :
+ obj-Precategory C → obj-Precategory C
+ obj-copointed-endofunctor-Precategory =
+ obj-functor-Precategory C C functor-copointed-endofunctor-Precategory
+
+ hom-copointed-endofunctor-Precategory :
+ {X Y : obj-Precategory C} →
+ hom-Precategory C X Y →
+ hom-Precategory C
+ ( obj-copointed-endofunctor-Precategory X)
+ ( obj-copointed-endofunctor-Precategory Y)
+ hom-copointed-endofunctor-Precategory =
+ hom-functor-Precategory C C functor-copointed-endofunctor-Precategory
+
+ preserves-id-copointed-endofunctor-Precategory :
+ (X : obj-Precategory C) →
+ hom-copointed-endofunctor-Precategory (id-hom-Precategory C {X}) =
+ id-hom-Precategory C
+ preserves-id-copointed-endofunctor-Precategory =
+ preserves-id-functor-Precategory C C
+ ( functor-copointed-endofunctor-Precategory)
+
+ preserves-comp-copointed-endofunctor-Precategory :
+ {X Y Z : obj-Precategory C}
+ (g : hom-Precategory C Y Z) (f : hom-Precategory C X Y) →
+ hom-copointed-endofunctor-Precategory
+ ( comp-hom-Precategory C g f) =
+ comp-hom-Precategory C
+ ( hom-copointed-endofunctor-Precategory g)
+ ( hom-copointed-endofunctor-Precategory f)
+ preserves-comp-copointed-endofunctor-Precategory =
+ preserves-comp-functor-Precategory C C
+ ( functor-copointed-endofunctor-Precategory)
+
+ copointing-copointed-endofunctor-Precategory :
+ natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory)
+ ( id-functor-Precategory C)
+ copointing-copointed-endofunctor-Precategory = pr2 F
+
+ hom-family-copointing-copointed-endofunctor-Precategory :
+ hom-family-functor-Precategory C C
+ ( functor-copointed-endofunctor-Precategory)
+ ( id-functor-Precategory C)
+ hom-family-copointing-copointed-endofunctor-Precategory =
+ hom-family-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory)
+ ( id-functor-Precategory C)
+ ( copointing-copointed-endofunctor-Precategory)
+
+ naturality-copointing-copointed-endofunctor-Precategory :
+ is-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory)
+ ( id-functor-Precategory C)
+ ( hom-family-copointing-copointed-endofunctor-Precategory)
+ naturality-copointing-copointed-endofunctor-Precategory =
+ naturality-natural-transformation-Precategory C C
+ ( functor-copointed-endofunctor-Precategory)
+ ( id-functor-Precategory C)
+ ( copointing-copointed-endofunctor-Precategory)
+```
+
+## See also
+
+- [Pointed endofunctors](category-theory.pointed-endofunctors-precategories.md)
+ for the dual concept.
diff --git a/src/category-theory/density-comonads-on-precategories.lagda.md b/src/category-theory/density-comonads-on-precategories.lagda.md
new file mode 100644
index 0000000000..711e496315
--- /dev/null
+++ b/src/category-theory/density-comonads-on-precategories.lagda.md
@@ -0,0 +1,569 @@
+# Density comonads on precategories
+
+```agda
+module category-theory.density-comonads-on-precategories where
+```
+
+Imports
+
+```agda
+open import category-theory.coalgebras-comonads-on-precategories
+open import category-theory.comonads-on-precategories
+open import category-theory.functors-precategories
+open import category-theory.left-extensions-precategories
+open import category-theory.left-kan-extensions-precategories
+open import category-theory.natural-transformations-functors-precategories
+open import category-theory.precategories
+
+open import foundation.action-on-identifications-functions
+open import foundation.dependent-pair-types
+open import foundation.equivalences
+open import foundation.identity-types
+open import foundation.universe-levels
+```
+
+
+
+## Idea
+
+Given an arbitrary [functor](category-theory.functors-precategories.md)
+`F : C → D`, any [left Kan
+extension](category-theory.left-kan-extensions-precategories.md] `L` of `F`
+along itself has a canonical
+[comonad](category-theory.comonads-on-precategories.md) structure, called the
+{{#concept "density comonad" Agda=density-comonad-Precategory}} of `L`.
+
+## Comonad structure
+
+The counit and comultiplication of the density comonads follow from the
+"existence" part of the universal property of the right Kan extension. We use
+two right extensions: the identity map on `D` trivially gives a right extension
+of `D` along itself, and `L²` gives an extension by whiskering and composing the
+natural transformation. By the universal property of `L`, these give natural
+transformations `η : id ⇒ L` and `μ : L² ⇒ L`, respectively. From their
+definition via the universal property, we have two computation rules for these
+natural transformations (where ∙ is whiskering):
+
+1. `α ∘ (η ∙ F) = id_F`; and
+2. `α ∘ (μ ∙ F) = α ∘ (L ∙ α)`.
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (C : Precategory l1 l2) (D : Precategory l3 l4)
+ (F : functor-Precategory C D)
+ (Lk : left-kan-extension-Precategory C D D F F)
+ (let L = extension-left-kan-extension-Precategory C D D F F Lk)
+ (let KL = is-left-kan-extension-left-kan-extension-Precategory C D D F F Lk)
+ (let α = natural-transformation-left-kan-extension-Precategory C D D F F Lk)
+ (let LL = comp-functor-Precategory D D D L L)
+ (let LF = comp-functor-Precategory C D D L F)
+ (let LLF = comp-functor-Precategory C D D LL F)
+ where
+
+ counit-density-comonad-Precategory :
+ natural-transformation-Precategory D D L (id-functor-Precategory D)
+ counit-density-comonad-Precategory =
+ map-inv-is-equiv
+ ( KL (id-functor-Precategory D))
+ ( pr2 (id-left-extension-Precategory C D F))
+
+ abstract
+ compute-counit-density-comonad-Precategory :
+ comp-natural-transformation-Precategory C D F LF F
+ ( right-whisker-natural-transformation-Precategory D D C
+ ( L)
+ ( id-functor-Precategory D)
+ ( counit-density-comonad-Precategory)
+ ( F))
+ ( α) =
+ id-natural-transformation-Precategory C D F
+ compute-counit-density-comonad-Precategory =
+ is-section-map-inv-is-equiv (KL _) _
+
+ comul-density-comonad-Precategory :
+ natural-transformation-Precategory D D
+ ( L)
+ ( comp-functor-Precategory D D D L L)
+ comul-density-comonad-Precategory =
+ map-inv-is-equiv
+ ( KL (comp-functor-Precategory D D D L L))
+ ( pr2
+ ( square-left-extension-Precategory C D F
+ ( left-extension-left-kan-extension-Precategory C D D F F Lk)))
+
+ abstract
+ compute-comul-density-comonad-Precategory :
+ comp-natural-transformation-Precategory C D F LF LLF
+ ( right-whisker-natural-transformation-Precategory D D C
+ ( L)
+ ( LL)
+ ( comul-density-comonad-Precategory)
+ ( F))
+ ( α) =
+ comp-natural-transformation-Precategory C D F LF LLF
+ ( left-whisker-natural-transformation-Precategory C D D
+ ( F)
+ ( LF)
+ ( L)
+ ( α))
+ ( α)
+ compute-comul-density-comonad-Precategory =
+ is-section-map-inv-is-equiv (KL _) _
+```
+
+## Comonad laws
+
+Comonad laws follow from the "uniqueness" part of the right Kan extension. See
+[codensity monads](category-theory.codensity-monads-on-precategories.md) for an
+explanation of the (dual) proofs.
+
+### Left counit law
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (C : Precategory l1 l2) (D : Precategory l3 l4)
+ (F : functor-Precategory C D)
+ (Lk : left-kan-extension-Precategory C D D F F)
+ (let L = extension-left-kan-extension-Precategory C D D F F Lk)
+ (let KL = is-left-kan-extension-left-kan-extension-Precategory C D D F F Lk)
+ (let α = natural-transformation-left-kan-extension-Precategory C D D F F Lk)
+ (let LL = comp-functor-Precategory D D D L L)
+ (let LF = comp-functor-Precategory C D D L F)
+ (let LLF = comp-functor-Precategory C D D LL F)
+ where
+
+ precomp-left-counit-law-comul-density-comonad-Precategory :
+ left-extension-map-Precategory C D D F F (L , α) L
+ ( comp-natural-transformation-Precategory
+ D D L LL L
+ ( left-whisker-natural-transformation-Precategory D D D
+ ( L)
+ ( id-functor-Precategory D)
+ ( L)
+ ( counit-density-comonad-Precategory C D F Lk))
+ ( comul-density-comonad-Precategory C D F Lk)) =
+ α
+ precomp-left-counit-law-comul-density-comonad-Precategory =
+ ( associative-comp-natural-transformation-Precategory C D F LF LLF LF
+ ( _)
+ ( _)
+ ( _)) ∙
+ ( ap
+ ( λ x →
+ comp-natural-transformation-Precategory C D F LLF LF
+ ( right-whisker-natural-transformation-Precategory D D C LL L
+ ( left-whisker-natural-transformation-Precategory D D D
+ ( L)
+ ( id-functor-Precategory D)
+ ( L)
+ ( counit-density-comonad-Precategory C D F Lk))
+ ( F))
+ ( x))
+ ( compute-comul-density-comonad-Precategory C D F Lk)) ∙
+ ( inv
+ ( associative-comp-natural-transformation-Precategory C D F LF LLF LF
+ ( _)
+ ( _)
+ ( _))) ∙
+ ( ap
+ ( λ x →
+ ( comp-natural-transformation-Precategory C D F LF LF
+ ( x)
+ ( α)))
+ ( inv
+ ( preserves-comp-left-whisker-natural-transformation-Precategory
+ ( C)
+ ( D)
+ ( D)
+ ( F)
+ ( LF)
+ ( F)
+ ( L)
+ ( right-whisker-natural-transformation-Precategory D D C
+ ( L)
+ ( id-functor-Precategory D)
+ ( counit-density-comonad-Precategory C D F Lk)
+ ( F))
+ ( α)))) ∙
+ ( ap
+ ( λ x →
+ ( comp-natural-transformation-Precategory C D F LF LF
+ ( left-whisker-natural-transformation-Precategory C D D F F
+ ( L)
+ ( x))
+ ( α)))
+ ( compute-counit-density-comonad-Precategory C D F Lk)) ∙
+ ( ap
+ ( λ x →
+ ( comp-natural-transformation-Precategory C D F LF LF
+ ( x)
+ ( α)))
+ ( preserves-id-left-whisker-natural-transformation-Precategory C D D
+ ( F)
+ ( L))) ∙
+ ( left-unit-law-comp-natural-transformation-Precategory C D F LF α)
+
+ abstract
+ left-counit-law-comul-density-comonad-Precategory :
+ comp-natural-transformation-Precategory
+ D D L (comp-functor-Precategory D D D L L) L
+ ( left-whisker-natural-transformation-Precategory D D D
+ ( L)
+ ( id-functor-Precategory D)
+ ( L)
+ ( counit-density-comonad-Precategory C D F Lk))
+ ( comul-density-comonad-Precategory C D F Lk) =
+ id-natural-transformation-Precategory D D L
+ left-counit-law-comul-density-comonad-Precategory =
+ ( inv (is-retraction-map-inv-is-equiv (KL L) _)) ∙
+ ( ap
+ ( map-inv-is-equiv (KL L))
+ ( ( precomp-left-counit-law-comul-density-comonad-Precategory) ∙
+ ( inv
+ ( left-unit-law-comp-natural-transformation-Precategory C D
+ ( F)
+ ( LF)
+ ( α))))) ∙
+ ( is-retraction-map-inv-is-equiv (KL L) _)
+```
+
+### Right counit law
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (C : Precategory l1 l2) (D : Precategory l3 l4)
+ (F : functor-Precategory C D)
+ (Lk : left-kan-extension-Precategory C D D F F)
+ (let L = extension-left-kan-extension-Precategory C D D F F Lk)
+ (let KL = is-left-kan-extension-left-kan-extension-Precategory C D D F F Lk)
+ (let α = natural-transformation-left-kan-extension-Precategory C D D F F Lk)
+ (let LL = comp-functor-Precategory D D D L L)
+ (let LF = comp-functor-Precategory C D D L F)
+ (let LLF = comp-functor-Precategory C D D LL F)
+ where
+
+ precomp-right-counit-law-comul-density-comonad-Precategory :
+ left-extension-map-Precategory C D D F F (L , α) L
+ ( comp-natural-transformation-Precategory
+ D D L LL L
+ ( right-whisker-natural-transformation-Precategory D D D
+ ( L)
+ ( id-functor-Precategory D)
+ ( counit-density-comonad-Precategory C D F Lk)
+ ( L))
+ ( comul-density-comonad-Precategory C D F Lk)) =
+ α
+ precomp-right-counit-law-comul-density-comonad-Precategory =
+ ( associative-comp-natural-transformation-Precategory C D F LF LLF LF
+ ( _)
+ ( _)
+ ( _)) ∙
+ ( ap
+ ( comp-natural-transformation-Precategory C D F LLF LF
+ ( right-whisker-natural-transformation-Precategory D D C LL L
+ ( right-whisker-natural-transformation-Precategory D D D
+ ( L)
+ ( id-functor-Precategory D)
+ ( counit-density-comonad-Precategory C D F Lk)
+ ( L))
+ ( F)))
+ ( is-section-map-inv-is-equiv
+ ( KL (comp-functor-Precategory D D D L L)) _)) ∙
+ ( inv
+ ( associative-comp-natural-transformation-Precategory C D F LF LLF LF
+ ( _)
+ ( _)
+ ( _))) ∙
+ ( ap
+ ( λ x → comp-natural-transformation-Precategory C D F LF LF x α)
+ ( eq-htpy-hom-family-natural-transformation-Precategory C D LF LF _ _
+ (λ x →
+ inv
+ ( naturality-natural-transformation-Precategory D D
+ ( L)
+ ( id-functor-Precategory D)
+ ( counit-density-comonad-Precategory C D F Lk)
+ ( _))))) ∙
+ ( associative-comp-natural-transformation-Precategory C D F LF F LF
+ ( _)
+ ( _)
+ ( _)) ∙
+ ( ap
+ ( comp-natural-transformation-Precategory C D F F LF α)
+ ( compute-counit-density-comonad-Precategory C D F Lk)) ∙
+ right-unit-law-comp-natural-transformation-Precategory C D F LF α
+
+ abstract
+ right-counit-law-comul-density-comonad-Precategory :
+ comp-natural-transformation-Precategory
+ D D L (comp-functor-Precategory D D D L L) L
+ ( right-whisker-natural-transformation-Precategory D D D
+ ( L)
+ ( id-functor-Precategory D)
+ ( counit-density-comonad-Precategory C D F Lk)
+ ( L))
+ ( comul-density-comonad-Precategory C D F Lk) =
+ id-natural-transformation-Precategory D D L
+ right-counit-law-comul-density-comonad-Precategory =
+ ( inv (is-retraction-map-inv-is-equiv (KL L) _)) ∙
+ ( ap
+ ( map-inv-is-equiv (KL L))
+ ( ( precomp-right-counit-law-comul-density-comonad-Precategory) ∙
+ ( inv
+ ( left-unit-law-comp-natural-transformation-Precategory C D
+ ( F)
+ ( LF)
+ ( α))))) ∙
+ ( is-retraction-map-inv-is-equiv (KL L) _)
+```
+
+### Comultiplication is associative
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (C : Precategory l1 l2) (D : Precategory l3 l4)
+ (F : functor-Precategory C D)
+ (Lk : left-kan-extension-Precategory C D D F F)
+ (let L = extension-left-kan-extension-Precategory C D D F F Lk)
+ (let KL = is-left-kan-extension-left-kan-extension-Precategory C D D F F Lk)
+ (let α = natural-transformation-left-kan-extension-Precategory C D D F F Lk)
+ (let LL = comp-functor-Precategory D D D L L)
+ (let LF = comp-functor-Precategory C D D L F)
+ (let LLF = comp-functor-Precategory C D D LL F)
+ (let LLL = comp-functor-Precategory D D D L LL)
+ (let LLLF = comp-functor-Precategory C D D LLL F)
+ where
+
+ left-precomp-associative-comul-density-comonad-Precategory :
+ comp-natural-transformation-Precategory C D F LF LLLF
+ ( right-whisker-natural-transformation-Precategory D D C
+ ( L)
+ ( LLL)
+ ( comp-natural-transformation-Precategory D D L LL LLL
+ ( left-whisker-natural-transformation-Precategory D D D L LL
+ ( L)
+ ( comul-density-comonad-Precategory C D F Lk))
+ ( comul-density-comonad-Precategory C D F Lk))
+ ( F))
+ ( α) =
+ comp-natural-transformation-Precategory C D F LF LLLF
+ ( left-whisker-natural-transformation-Precategory C D D
+ ( F)
+ ( LLF)
+ ( L)
+ ( comp-natural-transformation-Precategory C D F LF LLF
+ ( left-whisker-natural-transformation-Precategory C D D
+ ( F)
+ ( LF)
+ ( L)
+ ( α))
+ ( α)))
+ ( α)
+ left-precomp-associative-comul-density-comonad-Precategory =
+ ( ap
+ ( λ x → comp-natural-transformation-Precategory C D F LF LLLF x α)
+ ( preserves-comp-right-whisker-natural-transformation-Precategory D D C
+ ( L)
+ ( LL)
+ ( LLL)
+ ( left-whisker-natural-transformation-Precategory D D D L LL
+ ( L)
+ ( comul-density-comonad-Precategory C D F Lk))
+ ( comul-density-comonad-Precategory C D F Lk)
+ ( F))) ∙
+ ( associative-comp-natural-transformation-Precategory C D F LF LLF LLLF
+ ( _)
+ ( _)
+ ( _)) ∙
+ ( ap
+ ( comp-natural-transformation-Precategory C D F LLF LLLF
+ ( right-whisker-natural-transformation-Precategory D D C
+ ( LL)
+ ( LLL)
+ ( left-whisker-natural-transformation-Precategory D D D L LL
+ ( L)
+ ( comul-density-comonad-Precategory C D F Lk))
+ ( F)))
+ ( compute-comul-density-comonad-Precategory C D F Lk)) ∙
+ ( inv
+ ( associative-comp-natural-transformation-Precategory C D F LF LLF LLLF
+ ( _)
+ ( _)
+ ( _))) ∙
+ ( ap
+ ( λ x → comp-natural-transformation-Precategory C D F LF LLLF x α)
+ ( inv
+ ( preserves-comp-left-whisker-natural-transformation-Precategory C D D
+ ( F)
+ ( LF)
+ ( LLF)
+ ( L)
+ ( right-whisker-natural-transformation-Precategory D D C
+ ( L)
+ ( LL)
+ ( comul-density-comonad-Precategory C D F Lk)
+ ( F))
+ ( α)))) ∙
+ ( ap
+ ( λ x → comp-natural-transformation-Precategory C D F LF LLLF
+ ( left-whisker-natural-transformation-Precategory C D D
+ ( F)
+ ( LLF)
+ ( L)
+ ( x))
+ ( α))
+ ( compute-comul-density-comonad-Precategory C D F Lk))
+
+ right-precomp-associative-comul-density-comonad-Precategory :
+ comp-natural-transformation-Precategory C D F LF LLLF
+ ( right-whisker-natural-transformation-Precategory D D C
+ ( L)
+ ( LLL)
+ ( comp-natural-transformation-Precategory D D L LL LLL
+ ( right-whisker-natural-transformation-Precategory D D D L LL
+ ( comul-density-comonad-Precategory C D F Lk)
+ ( L))
+ ( comul-density-comonad-Precategory C D F Lk))
+ ( F))
+ ( α) =
+ comp-natural-transformation-Precategory C D F LF LLLF
+ ( left-whisker-natural-transformation-Precategory C D D
+ ( F)
+ ( LLF)
+ ( L)
+ ( comp-natural-transformation-Precategory C D F LF LLF
+ ( left-whisker-natural-transformation-Precategory C D D
+ ( F)
+ ( LF)
+ ( L)
+ ( α))
+ ( α)))
+ ( α)
+ right-precomp-associative-comul-density-comonad-Precategory =
+ ( ap
+ ( λ x → comp-natural-transformation-Precategory C D F LF LLLF x α)
+ ( preserves-comp-right-whisker-natural-transformation-Precategory D D C
+ ( L)
+ ( LL)
+ ( LLL)
+ ( right-whisker-natural-transformation-Precategory D D D L LL
+ ( comul-density-comonad-Precategory C D F Lk)
+ ( L))
+ ( comul-density-comonad-Precategory C D F Lk)
+ ( F))) ∙
+ ( associative-comp-natural-transformation-Precategory C D F LF LLF LLLF
+ ( _)
+ ( _)
+ ( _)) ∙
+ ( ap
+ ( comp-natural-transformation-Precategory C D F LLF LLLF
+ ( right-whisker-natural-transformation-Precategory D D C
+ ( LL)
+ ( LLL)
+ ( right-whisker-natural-transformation-Precategory D D D L LL
+ ( comul-density-comonad-Precategory C D F Lk)
+ ( L))
+ ( F)))
+ ( compute-comul-density-comonad-Precategory C D F Lk)) ∙
+ ( inv
+ ( associative-comp-natural-transformation-Precategory C D F LF LLF LLLF
+ ( _)
+ ( _)
+ ( _))) ∙
+ ( ap
+ ( λ x → comp-natural-transformation-Precategory C D F LF LLLF x α)
+ ( eq-htpy-hom-family-natural-transformation-Precategory C D LF LLLF
+ ( _)
+ ( _)
+ ( λ x →
+ inv
+ ( naturality-natural-transformation-Precategory D D L LL
+ ( comul-density-comonad-Precategory C D F Lk)
+ ( _))))) ∙
+ ( associative-comp-natural-transformation-Precategory C D F LF LLF LLLF
+ ( _)
+ ( _)
+ ( _)) ∙
+ ( ap
+ ( λ x →
+ ( comp-natural-transformation-Precategory C D F LLF LLLF
+ ( left-whisker-natural-transformation-Precategory C D D
+ ( LF)
+ ( LLF)
+ ( L)
+ ( left-whisker-natural-transformation-Precategory C D D
+ ( F)
+ ( LF)
+ ( L)
+ ( α)))
+ ( x)))
+ ( compute-comul-density-comonad-Precategory C D F Lk)) ∙
+ ( inv
+ ( associative-comp-natural-transformation-Precategory C D F LF LLF LLLF
+ ( _)
+ ( _)
+ ( _))) ∙
+ ( ap
+ ( λ x → comp-natural-transformation-Precategory C D F LF LLLF x α)
+ ( inv
+ ( preserves-comp-left-whisker-natural-transformation-Precategory C D D
+ ( F)
+ ( LF)
+ ( LLF)
+ ( L)
+ ( left-whisker-natural-transformation-Precategory C D D
+ ( F)
+ ( LF)
+ ( L)
+ ( α))
+ ( α))))
+
+ abstract
+ associative-comul-density-comonad-Precategory :
+ comp-natural-transformation-Precategory D D L LL LLL
+ ( left-whisker-natural-transformation-Precategory D D D L LL
+ ( L)
+ ( comul-density-comonad-Precategory C D F Lk))
+ ( comul-density-comonad-Precategory C D F Lk) =
+ comp-natural-transformation-Precategory D D L LL LLL
+ ( right-whisker-natural-transformation-Precategory D D D L LL
+ ( comul-density-comonad-Precategory C D F Lk)
+ ( L))
+ ( comul-density-comonad-Precategory C D F Lk)
+ associative-comul-density-comonad-Precategory =
+ ( inv (is-retraction-map-inv-is-equiv (KL LLL) _)) ∙
+ ( ap
+ ( map-inv-is-equiv (KL LLL))
+ ( ( left-precomp-associative-comul-density-comonad-Precategory) ∙
+ ( inv right-precomp-associative-comul-density-comonad-Precategory))) ∙
+ ( is-retraction-map-inv-is-equiv (KL LLL) _)
+```
+
+## Definition
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (C : Precategory l1 l2) (D : Precategory l3 l4)
+ (F : functor-Precategory C D)
+ (Lk : left-kan-extension-Precategory C D D F F)
+ where
+
+ density-comonad-Precategory : comonad-Precategory D
+ density-comonad-Precategory =
+ ( extension-left-kan-extension-Precategory C D D F F Lk ,
+ counit-density-comonad-Precategory C D F Lk) ,
+ ( comul-density-comonad-Precategory C D F Lk) ,
+ ( ( associative-comul-density-comonad-Precategory C D F Lk) ,
+ ( ( left-counit-law-comul-density-comonad-Precategory C D F Lk) ,
+ ( right-counit-law-comul-density-comonad-Precategory C D F Lk)))
+```
+
+## See also
+
+- [Codensity monads](category-theory.codensity-monads-on-precategories.md) for
+ the dual concept
diff --git a/src/category-theory/left-extensions-precategories.lagda.md b/src/category-theory/left-extensions-precategories.lagda.md
new file mode 100644
index 0000000000..b12723075d
--- /dev/null
+++ b/src/category-theory/left-extensions-precategories.lagda.md
@@ -0,0 +1,303 @@
+# Left extensions in precategories
+
+```agda
+module category-theory.left-extensions-precategories where
+```
+
+Imports
+
+```agda
+open import category-theory.functors-precategories
+open import category-theory.natural-transformations-functors-precategories
+open import category-theory.precategories
+
+open import foundation.action-on-equivalences-functions
+open import foundation.action-on-identifications-functions
+open import foundation.contractible-types
+open import foundation.dependent-identifications
+open import foundation.dependent-pair-types
+open import foundation.equality-dependent-function-types
+open import foundation.equality-dependent-pair-types
+open import foundation.equivalences
+open import foundation.function-extensionality
+open import foundation.function-types
+open import foundation.functoriality-dependent-pair-types
+open import foundation.fundamental-theorem-of-identity-types
+open import foundation.homotopies
+open import foundation.homotopy-induction
+open import foundation.identity-types
+open import foundation.multivariable-homotopies
+open import foundation.propositions
+open import foundation.retractions
+open import foundation.sections
+open import foundation.sets
+open import foundation.structure-identity-principle
+open import foundation.torsorial-type-families
+open import foundation.unit-type
+open import foundation.universe-levels
+
+open import foundation-core.functoriality-dependent-function-types
+```
+
+
+
+## Idea
+
+A
+{{#concept "left extension" Disambiguation="of a functor between precategories" Agda=left-extension-Precategory}}
+of a [functor](category-theory.functors-precategories.md) `F : C → D` between
+[precategories](category-theory.precategories.md) along another functor
+`p : C → C'` is a functor `G : C' → D` together with a
+[natural transformation](category-theory.natural-transformations-functors-precategories.md)
+`φ : F → G ∘ p`.
+
+```text
+ C
+ | \
+ p | \ F
+ | \
+ ∨ ∨
+ C' -----> D
+ G
+```
+
+We note that this is not a standard definition, but is inspired by the notion of
+a [left Kan extension](category-theory.left-kan-extensions-precategories.md).
+
+## Definition
+
+### Left extensions
+
+```agda
+module _
+ {l1 l2 l3 l4 l5 l6 : Level}
+ (C : Precategory l1 l2) (C' : Precategory l3 l4) (D : Precategory l5 l6)
+ (p : functor-Precategory C C') (F : functor-Precategory C D)
+ where
+
+ left-extension-Precategory :
+ UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6)
+ left-extension-Precategory =
+ Σ ( functor-Precategory C' D)
+ ( λ G →
+ natural-transformation-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C C' D G p))
+
+ module _
+ (L : left-extension-Precategory)
+ where
+
+ extension-left-extension-Precategory : functor-Precategory C' D
+ extension-left-extension-Precategory = pr1 L
+
+ natural-transformation-left-extension-Precategory :
+ natural-transformation-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C C' D
+ ( extension-left-extension-Precategory)
+ ( p))
+ natural-transformation-left-extension-Precategory = pr2 L
+
+ hom-family-left-extension-Precategory :
+ hom-family-functor-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C C' D
+ ( extension-left-extension-Precategory)
+ ( p))
+ hom-family-left-extension-Precategory =
+ hom-family-natural-transformation-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C C' D
+ ( extension-left-extension-Precategory)
+ ( p))
+ ( natural-transformation-left-extension-Precategory)
+
+ naturality-left-extension-Precategory :
+ is-natural-transformation-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C C' D
+ ( extension-left-extension-Precategory)
+ ( p))
+ ( hom-family-left-extension-Precategory)
+ naturality-left-extension-Precategory =
+ naturality-natural-transformation-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C C' D
+ ( extension-left-extension-Precategory)
+ ( p))
+ ( natural-transformation-left-extension-Precategory)
+```
+
+### Postcomposing left extensions
+
+```agda
+ left-extension-map-Precategory :
+ ( G : functor-Precategory C' D) →
+ ( natural-transformation-Precategory C' D
+ extension-left-extension-Precategory G) →
+ ( natural-transformation-Precategory C D
+ F ( comp-functor-Precategory C C' D G p))
+ left-extension-map-Precategory G φ =
+ comp-natural-transformation-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C C' D
+ extension-left-extension-Precategory p)
+ ( comp-functor-Precategory C C' D G p)
+ ( right-whisker-natural-transformation-Precategory C' D C
+ ( extension-left-extension-Precategory)
+ ( G)
+ ( φ)
+ ( p))
+ ( natural-transformation-left-extension-Precategory)
+```
+
+## Properties
+
+### Characterization of equality between left extensions of functors between precategories
+
+```agda
+ coherence-htpy-left-extension-Precategory :
+ (R S : left-extension-Precategory)
+ (e :
+ (extension-left-extension-Precategory R) =
+ (extension-left-extension-Precategory S)) →
+ UU (l1 ⊔ l6)
+ coherence-htpy-left-extension-Precategory R S e =
+ (x : obj-Precategory C) →
+ comp-hom-Precategory D
+ ( hom-family-natural-transformation-Precategory C' D (pr1 R) (pr1 S)
+ ( natural-transformation-eq-Precategory C' D
+ ( extension-left-extension-Precategory R)
+ ( extension-left-extension-Precategory S)
+ ( e))
+ ( obj-functor-Precategory C C' p x))
+ ( hom-family-left-extension-Precategory R x) =
+ hom-family-left-extension-Precategory S x
+
+ htpy-left-extension-Precategory :
+ (R S : left-extension-Precategory) →
+ UU (l1 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6)
+ htpy-left-extension-Precategory R S =
+ Σ ( extension-left-extension-Precategory R =
+ extension-left-extension-Precategory S)
+ ( coherence-htpy-left-extension-Precategory R S)
+
+ is-torsorial-htpy-left-extension-Precategory :
+ (R : left-extension-Precategory) →
+ is-torsorial (htpy-left-extension-Precategory R)
+ is-torsorial-htpy-left-extension-Precategory R =
+ is-torsorial-Eq-structure
+ ( is-torsorial-Id (extension-left-extension-Precategory R))
+ ( pair (extension-left-extension-Precategory R) refl)
+ ( is-contr-equiv
+ ( Σ
+ ( natural-transformation-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C C' D
+ ( extension-left-extension-Precategory R) p))
+ ( λ τ → τ = natural-transformation-left-extension-Precategory R))
+ ( equiv-tot
+ ( λ τ →
+ inv-equiv
+ ( extensionality-natural-transformation-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C C' D
+ ( extension-left-extension-Precategory R) p)
+ _ _) ∘e
+ equiv-Π-equiv-family
+ ( λ x →
+ equiv-inv _ _ ∘e
+ equiv-inv-concat (left-unit-law-comp-hom-Precategory D _) _)))
+ ( is-torsorial-Id'
+ ( natural-transformation-left-extension-Precategory R)))
+
+ refl-htpy-left-extension-Precategory :
+ (R : left-extension-Precategory) →
+ htpy-left-extension-Precategory R R
+ pr1 (refl-htpy-left-extension-Precategory R) = refl
+ pr2 (refl-htpy-left-extension-Precategory R) x =
+ left-unit-law-comp-hom-Precategory D _
+
+ htpy-eq-left-extension-Precategory :
+ (R S : left-extension-Precategory) →
+ R = S →
+ htpy-left-extension-Precategory R S
+ htpy-eq-left-extension-Precategory R .R refl =
+ refl-htpy-left-extension-Precategory R
+
+ is-equiv-htpy-eq-left-extension-Precategory :
+ (R S : left-extension-Precategory) →
+ is-equiv (htpy-eq-left-extension-Precategory R S)
+ is-equiv-htpy-eq-left-extension-Precategory R =
+ fundamental-theorem-id
+ ( is-torsorial-htpy-left-extension-Precategory R)
+ ( htpy-eq-left-extension-Precategory R)
+
+ equiv-htpy-eq-left-extension-Precategory :
+ (R S : left-extension-Precategory) →
+ (R = S) ≃ htpy-left-extension-Precategory R S
+ pr1 (equiv-htpy-eq-left-extension-Precategory R S) =
+ htpy-eq-left-extension-Precategory R S
+ pr2 (equiv-htpy-eq-left-extension-Precategory R S) =
+ is-equiv-htpy-eq-left-extension-Precategory R S
+
+ eq-htpy-left-extension-Precategory :
+ (R S : left-extension-Precategory) →
+ htpy-left-extension-Precategory R S →
+ R = S
+ eq-htpy-left-extension-Precategory R S =
+ map-inv-equiv (equiv-htpy-eq-left-extension-Precategory R S)
+```
+
+### Self-extensions
+
+In the case of extending a functor along itself, we have distinguished left
+extensions: the identity map gives a left extension (with the identity natural
+transformation) and we can iterate any left extension `L` to get a left
+extension `L²`.
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (C : Precategory l1 l2) (D : Precategory l3 l4)
+ (F : functor-Precategory C D)
+ where
+
+ id-left-extension-Precategory : left-extension-Precategory C D D F F
+ pr1 id-left-extension-Precategory = id-functor-Precategory D
+ pr2 id-left-extension-Precategory =
+ id-natural-transformation-Precategory C D F
+
+ square-left-extension-Precategory :
+ (L : left-extension-Precategory C D D F F) →
+ left-extension-Precategory C D D F F
+ pr1 (square-left-extension-Precategory L) =
+ comp-functor-Precategory D D D
+ ( extension-left-extension-Precategory C D D F F L)
+ ( extension-left-extension-Precategory C D D F F L)
+ pr2 (square-left-extension-Precategory L) =
+ comp-natural-transformation-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C D D
+ ( extension-left-extension-Precategory C D D F F L)
+ ( F))
+ ( comp-functor-Precategory C D D
+ ( comp-functor-Precategory D D D
+ ( extension-left-extension-Precategory C D D F F L)
+ ( extension-left-extension-Precategory C D D F F L))
+ ( F))
+ ( left-whisker-natural-transformation-Precategory C D D
+ ( F)
+ ( comp-functor-Precategory C D D
+ ( extension-left-extension-Precategory C D D F F L)
+ ( F))
+ ( extension-left-extension-Precategory C D D F F L)
+ ( natural-transformation-left-extension-Precategory C D D F F L))
+ ( natural-transformation-left-extension-Precategory C D D F F L)
+```
+
+## See also
+
+- [Right extensions](category-theory.right-extensions-precategories.md) for the
+ dual concept.
diff --git a/src/category-theory/left-kan-extensions-precategories.lagda.md b/src/category-theory/left-kan-extensions-precategories.lagda.md
new file mode 100644
index 0000000000..70404cd987
--- /dev/null
+++ b/src/category-theory/left-kan-extensions-precategories.lagda.md
@@ -0,0 +1,102 @@
+# Left Kan extensions in precategories
+
+```agda
+module category-theory.left-kan-extensions-precategories where
+```
+
+Imports
+
+```agda
+open import category-theory.functors-precategories
+open import category-theory.left-extensions-precategories
+open import category-theory.natural-transformations-functors-precategories
+open import category-theory.precategories
+
+open import foundation.dependent-pair-types
+open import foundation.equivalences
+open import foundation.identity-types
+open import foundation.universe-levels
+```
+
+
+
+## Idea
+
+A
+{{#concept "left Kan extension" Disambiguation="of a functor between precategories" Agda=is-left-kan-extension-Precategory}}
+of [functor](category-theory.functors-precategories.md) `F : C → D` between
+[precategories](category-theory.precategories.md) along another functor
+`p : C → C'` is the universal
+[left extension](category-theory.left-extensions-precategories.md) of `F` along
+`p`. That is, `(L, α)` is a left Kan extension if for every other left extension
+`(G, β)` there is a unique natural transformation `γ : L ⇒ G` such that
+`γ ∘ α = β`. In particular, `(L, α)` is initial in the category of left
+extensions of `F` along `p`.
+
+More concretely, we require the function `left-extension-map-Precategory` to be
+an equivalence.
+
+## Definition
+
+```agda
+module _
+ {l1 l2 l3 l4 l5 l6 : Level}
+ (C : Precategory l1 l2) (C' : Precategory l3 l4) (D : Precategory l5 l6)
+ (p : functor-Precategory C C') (F : functor-Precategory C D)
+ (R : left-extension-Precategory C C' D p F)
+ where
+
+ is-left-kan-extension-Precategory :
+ UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6)
+ is-left-kan-extension-Precategory =
+ ( G : functor-Precategory C' D) →
+ is-equiv (left-extension-map-Precategory C C' D p F R G)
+
+module _
+ {l1 l2 l3 l4 l5 l6 : Level}
+ (C : Precategory l1 l2) (C' : Precategory l3 l4) (D : Precategory l5 l6)
+ (p : functor-Precategory C C') (F : functor-Precategory C D)
+ where
+
+ left-kan-extension-Precategory : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6)
+ left-kan-extension-Precategory =
+ Σ ( left-extension-Precategory C C' D p F)
+ ( is-left-kan-extension-Precategory C C' D p F)
+
+module _
+ {l1 l2 l3 l4 l5 l6 : Level}
+ (C : Precategory l1 l2) (C' : Precategory l3 l4) (D : Precategory l5 l6)
+ (p : functor-Precategory C C') (F : functor-Precategory C D)
+ (R : left-kan-extension-Precategory C C' D p F)
+ where
+
+ left-extension-left-kan-extension-Precategory :
+ left-extension-Precategory C C' D p F
+ left-extension-left-kan-extension-Precategory = pr1 R
+
+ is-left-kan-extension-left-kan-extension-Precategory :
+ is-left-kan-extension-Precategory C C' D p F (pr1 R)
+ is-left-kan-extension-left-kan-extension-Precategory = pr2 R
+
+ extension-left-kan-extension-Precategory :
+ functor-Precategory C' D
+ extension-left-kan-extension-Precategory =
+ extension-left-extension-Precategory C C' D p F
+ left-extension-left-kan-extension-Precategory
+
+ natural-transformation-left-kan-extension-Precategory :
+ natural-transformation-Precategory C D
+ ( F)
+ ( comp-functor-Precategory C C' D
+ ( extension-left-extension-Precategory C C' D p F
+ left-extension-left-kan-extension-Precategory)
+ ( p))
+ natural-transformation-left-kan-extension-Precategory =
+ natural-transformation-left-extension-Precategory C C' D p F
+ left-extension-left-kan-extension-Precategory
+```
+
+## See also
+
+- [Right Kan extensions](category-theory.right-kan-extensions-precategories.md)
+ for the dual concept.
diff --git a/src/category-theory/limits-precategories.lagda.md b/src/category-theory/limits-precategories.lagda.md
index 60015d9a58..b648d6ce71 100644
--- a/src/category-theory/limits-precategories.lagda.md
+++ b/src/category-theory/limits-precategories.lagda.md
@@ -28,6 +28,8 @@ open import foundation.propositions
open import foundation.transport-along-identifications
open import foundation.unit-type
open import foundation.universe-levels
+
+open import foundation-core.homotopies
```
@@ -39,8 +41,8 @@ A
of a [functor](category-theory.functors-precategories.md) `F` between
[precategories](category-theory.precategories.md) is a limiting
[cone](category-theory.cones-precategories.md) over `F`. That is, a cone `τ`
-such that `cone-map-Precategory C D F τ d` is an equivalence for all
-`d : obj-Precategory D`.
+such that `cone-map-Precategory C D F τ d` is an
+[equivalence](foundation-core.equivalences.md) for all `d : obj-Precategory D`.
Equivalently, the limit of `F` is a
[right kan extension](category-theory.right-kan-extensions-precategories.md) of
@@ -53,7 +55,7 @@ limiting cones as our official one.
If a limit exists, we call the vertex of the limiting cone the **vertex** of the
limit.
-## Definition
+## Definitions
### Limiting cones
@@ -63,16 +65,16 @@ module _
(F : functor-Precategory C D)
where
- is-limiting-cone-Precategory :
+ is-limit-cone-Precategory :
cone-Precategory C D F → UU (l1 ⊔ l2 ⊔ l3 ⊔ l4)
- is-limiting-cone-Precategory τ =
+ is-limit-cone-Precategory τ =
(d : obj-Precategory D) →
is-equiv (cone-map-Precategory C D F τ d)
limit-Precategory : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4)
limit-Precategory =
Σ ( cone-Precategory C D F)
- ( is-limiting-cone-Precategory)
+ ( is-limit-cone-Precategory)
cone-limit-Precategory :
limit-Precategory →
@@ -85,10 +87,10 @@ module _
vertex-limit-Precategory τ =
vertex-cone-Precategory C D F (cone-limit-Precategory τ)
- is-limiting-limit-Precategory :
+ is-limit-limit-Precategory :
(τ : limit-Precategory) →
- is-limiting-cone-Precategory (cone-limit-Precategory τ)
- is-limiting-limit-Precategory = pr2
+ is-limit-cone-Precategory (cone-limit-Precategory τ)
+ is-limit-limit-Precategory = pr2
hom-cone-limit-Precategory :
(τ : limit-Precategory) →
@@ -98,7 +100,7 @@ module _
( vertex-limit-Precategory τ)
hom-cone-limit-Precategory τ φ =
map-inv-is-equiv
- ( is-limiting-limit-Precategory τ
+ ( is-limit-limit-Precategory τ
( vertex-cone-Precategory C D F φ))
( natural-transformation-cone-Precategory C D F φ)
```
@@ -153,18 +155,18 @@ module _
(F : functor-Precategory C D)
where
- is-prop-is-limiting-cone-Precategory :
+ is-prop-is-limit-cone-Precategory :
(τ : cone-Precategory C D F) →
- is-prop (is-limiting-cone-Precategory C D F τ)
- is-prop-is-limiting-cone-Precategory τ =
- is-prop-Π λ φ → is-property-is-equiv _
+ is-prop (is-limit-cone-Precategory C D F τ)
+ is-prop-is-limit-cone-Precategory τ =
+ is-prop-Π (λ φ → is-property-is-equiv _)
is-prop-is-limit-Precategory' :
( R : right-extension-Precategory C terminal-Precategory D
(terminal-functor-Precategory C) F) →
is-prop (is-limit-right-extension-Precategory C D F R)
is-prop-is-limit-Precategory' R =
- is-prop-Π λ K → is-property-is-equiv _
+ is-prop-Π (λ K → is-property-is-equiv _)
```
### Limiting cones are equivalent to limits
@@ -175,13 +177,14 @@ module _
(F : functor-Precategory C D)
where
- equiv-is-right-kan-extension-is-limiting-Precategory :
+ equiv-is-right-kan-extension-is-limit-Precategory :
(τ : cone-Precategory C D F) →
- is-limiting-cone-Precategory C D F τ ≃
- is-right-kan-extension-Precategory C terminal-Precategory D
- (terminal-functor-Precategory C) F
- (map-equiv (equiv-right-extension-cone-Precategory C D F) τ)
- equiv-is-right-kan-extension-is-limiting-Precategory τ =
+ is-limit-cone-Precategory C D F τ ≃
+ is-right-kan-extension-Precategory C terminal-Precategory D
+ ( terminal-functor-Precategory C)
+ ( F)
+ ( map-equiv (equiv-right-extension-cone-Precategory C D F) τ)
+ equiv-is-right-kan-extension-is-limit-Precategory τ =
equiv-Π _
( equiv-point-Precategory D)
( λ x →
@@ -192,45 +195,67 @@ module _
is-equiv-left-factor
( induced-right-extension-map x)
( natural-transformation-constant-functor-Precategory
- terminal-Precategory D)
+ ( terminal-Precategory)
+ ( D))
( tr is-equiv (inv (lemma τ x)) e)
( is-equiv-natural-transformation-constant-functor-Precategory
- D _ _))
+ ( D)
+ ( _)
+ ( _)))
( λ e →
tr is-equiv (lemma τ x)
( is-equiv-comp
( induced-right-extension-map x)
( natural-transformation-constant-functor-Precategory
- terminal-Precategory D)
+ ( terminal-Precategory)
+ ( D))
( is-equiv-natural-transformation-constant-functor-Precategory
- D _ _)
+ ( D)
+ ( _)
+ ( _))
( e))))
where
- induced-right-extension-map = λ x →
+ induced-right-extension-map :
+ ( x : obj-Precategory D) →
+ natural-transformation-Precategory terminal-Precategory D
+ ( constant-functor-Precategory terminal-Precategory D x)
+ ( extension-right-extension-Precategory C terminal-Precategory D
+ ( terminal-functor-Precategory C)
+ ( F)
+ ( map-equiv (equiv-right-extension-cone-Precategory C D F) τ)) →
+ natural-transformation-Precategory C D
+ ( comp-functor-Precategory C terminal-Precategory D
+ ( constant-functor-Precategory terminal-Precategory D x)
+ ( terminal-functor-Precategory C))
+ ( F)
+ induced-right-extension-map x =
right-extension-map-Precategory C terminal-Precategory D
- ( terminal-functor-Precategory C) ( F)
+ ( terminal-functor-Precategory C)
+ ( F)
( map-equiv (equiv-right-extension-cone-Precategory C D F) τ)
( constant-functor-Precategory terminal-Precategory D x)
lemma :
( τ : cone-Precategory C D F)
( x : obj-Precategory D) →
- ( right-extension-map-Precategory C terminal-Precategory D
- ( terminal-functor-Precategory C) F
- ( map-equiv (equiv-right-extension-cone-Precategory C D F) τ)
- ( constant-functor-Precategory terminal-Precategory D x)) ∘
- ( natural-transformation-constant-functor-Precategory
- terminal-Precategory D) =
+ ( right-extension-map-Precategory C terminal-Precategory D
+ ( terminal-functor-Precategory C) F
+ ( map-equiv (equiv-right-extension-cone-Precategory C D F) τ)
+ ( constant-functor-Precategory terminal-Precategory D x)) ∘
+ ( natural-transformation-constant-functor-Precategory
+ ( terminal-Precategory)
+ ( D)) =
( cone-map-Precategory C D F τ x)
lemma τ x =
- eq-htpy λ f →
- eq-htpy-hom-family-natural-transformation-Precategory C D
- ( comp-functor-Precategory C terminal-Precategory D
- ( point-Precategory D x)
- ( terminal-functor-Precategory C))
- ( F)
- ( _)
- ( _)
- ( λ g → refl)
+ eq-htpy
+ ( λ f →
+ eq-htpy-hom-family-natural-transformation-Precategory C D
+ ( comp-functor-Precategory C terminal-Precategory D
+ ( point-Precategory D x)
+ ( terminal-functor-Precategory C))
+ ( F)
+ ( _)
+ ( _)
+ ( refl-htpy))
equiv-limit-limit'-Precategory :
limit-Precategory C D F ≃ limit-Precategory' C D F
@@ -239,7 +264,7 @@ module _
( is-right-kan-extension-Precategory C terminal-Precategory D
( terminal-functor-Precategory C) F)
( equiv-right-extension-cone-Precategory C D F)
- ( λ τ → equiv-is-right-kan-extension-is-limiting-Precategory τ)
+ ( λ τ → equiv-is-right-kan-extension-is-limit-Precategory τ)
limit-limit'-Precategory :
limit-Precategory C D F → limit-Precategory' C D F
@@ -251,3 +276,7 @@ module _
limit'-limit-Precategory =
map-inv-equiv equiv-limit-limit'-Precategory
```
+
+## See also
+
+- [Colimits](category-theory.colimits-precategories.md) for the dual concept.
diff --git a/src/category-theory/monads-on-precategories.lagda.md b/src/category-theory/monads-on-precategories.lagda.md
index 2cdc8894f6..f0326b232d 100644
--- a/src/category-theory/monads-on-precategories.lagda.md
+++ b/src/category-theory/monads-on-precategories.lagda.md
@@ -116,9 +116,9 @@ module _
( comp-functor-Precategory C C C
( functor-pointed-endofunctor-Precategory C T)
( functor-pointed-endofunctor-Precategory C T))
- ( functor-pointed-endofunctor-Precategory C T)
- ( μ)
- ( functor-pointed-endofunctor-Precategory C T))
+ ( functor-pointed-endofunctor-Precategory C T)
+ ( μ)
+ ( functor-pointed-endofunctor-Precategory C T))
associative-mul-hom-family-pointed-endofunctor-Precategory : UU (l1 ⊔ l2)
associative-mul-hom-family-pointed-endofunctor-Precategory =
@@ -440,3 +440,7 @@ module _
( endofunctor-monad-Precategory)
( right-unit-law-mul-monad-Precategory)
```
+
+## See also
+
+- [Comonads](category-theory.comonads-on-precategories.md) for the dual concept.
diff --git a/src/category-theory/morphisms-algebras-monads-on-precategories.lagda.md b/src/category-theory/morphisms-algebras-monads-on-precategories.lagda.md
index 670e99fddf..6007b07449 100644
--- a/src/category-theory/morphisms-algebras-monads-on-precategories.lagda.md
+++ b/src/category-theory/morphisms-algebras-monads-on-precategories.lagda.md
@@ -77,7 +77,7 @@ module _
hom-endofunctor-monad-Precategory C T
( hom-morphism-algebra-monad-Precategory f g h)
- comm-hom-morphism-algebra-monad-Precategory :
+ coh-hom-morphism-algebra-monad-Precategory :
(f g : algebra-monad-Precategory C T)
(h : morphism-algebra-monad-Precategory f g) →
coherence-square-hom-Precategory C
@@ -85,7 +85,7 @@ module _
( hom-algebra-monad-Precategory C T f)
( hom-algebra-monad-Precategory C T g)
( hom-morphism-algebra-monad-Precategory f g h)
- comm-hom-morphism-algebra-monad-Precategory f g h = pr2 h
+ coh-hom-morphism-algebra-monad-Precategory f g h = pr2 h
comp-morphism-algebra-monad-Precategory :
(a b c : algebra-monad-Precategory C T)
@@ -104,8 +104,8 @@ module _
( hom-algebra-monad-Precategory C T c)
( hom-morphism-algebra-monad-Precategory a b f)
( hom-morphism-algebra-monad-Precategory b c g)
- ( comm-hom-morphism-algebra-monad-Precategory a b f)
- ( comm-hom-morphism-algebra-monad-Precategory b c g)) ∙
+ ( coh-hom-morphism-algebra-monad-Precategory a b f)
+ ( coh-hom-morphism-algebra-monad-Precategory b c g)) ∙
( ap
( postcomp-hom-Precategory C (hom-algebra-monad-Precategory C T c) _)
( inv (preserves-comp-endofunctor-monad-Precategory C T _ _)))
diff --git a/src/category-theory/morphisms-coalgebras-comonads-on-precategories.lagda.md b/src/category-theory/morphisms-coalgebras-comonads-on-precategories.lagda.md
new file mode 100644
index 0000000000..9ec4962488
--- /dev/null
+++ b/src/category-theory/morphisms-coalgebras-comonads-on-precategories.lagda.md
@@ -0,0 +1,121 @@
+# Morphisms of coalgebras over comonads on precategories
+
+```agda
+module category-theory.morphisms-coalgebras-comonads-on-precategories where
+```
+
+Imports
+
+```agda
+open import category-theory.coalgebras-comonads-on-precategories
+open import category-theory.commuting-squares-of-morphisms-in-precategories
+open import category-theory.comonads-on-precategories
+open import category-theory.precategories
+
+open import foundation.action-on-identifications-functions
+open import foundation.dependent-pair-types
+open import foundation.identity-types
+open import foundation.sets
+open import foundation.universe-levels
+```
+
+
+
+## Idea
+
+A
+{{#concept "morphism" Disambiguation="of comonad coalgebras on a precategory" Agda=coalgebra-comonad-Precategory}}
+between
+[comonad coalgebras](category-theory.coalgebras-comonads-on-precategories.md)
+`a : A → TA` and `b : B → TB` is a map `f : A → B` such that `Tf ∘ b = a ∘ f`.
+
+## Definitions
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : comonad-Precategory C)
+ where
+
+ coherence-morphism-coalgebra-comonad-Precategory :
+ (f g : coalgebra-comonad-Precategory C T) →
+ hom-Precategory C
+ ( obj-coalgebra-comonad-Precategory C T f)
+ ( obj-coalgebra-comonad-Precategory C T g) →
+ UU l2
+ coherence-morphism-coalgebra-comonad-Precategory f g h =
+ coherence-square-hom-Precategory C
+ ( h)
+ ( hom-coalgebra-comonad-Precategory C T f)
+ ( hom-coalgebra-comonad-Precategory C T g)
+ ( hom-endofunctor-comonad-Precategory C T h)
+
+ morphism-coalgebra-comonad-Precategory :
+ (f g : coalgebra-comonad-Precategory C T) → UU l2
+ morphism-coalgebra-comonad-Precategory f g =
+ Σ ( hom-Precategory C
+ ( obj-coalgebra-comonad-Precategory C T f)
+ ( obj-coalgebra-comonad-Precategory C T g))
+ ( coherence-morphism-coalgebra-comonad-Precategory f g)
+
+ hom-morphism-coalgebra-comonad-Precategory :
+ (f g : coalgebra-comonad-Precategory C T)
+ (h : morphism-coalgebra-comonad-Precategory f g) →
+ hom-Precategory C
+ ( obj-coalgebra-comonad-Precategory C T f)
+ ( obj-coalgebra-comonad-Precategory C T g)
+ hom-morphism-coalgebra-comonad-Precategory f g h = pr1 h
+
+ bottom-hom-morphism-coalgebra-comonad-Precategory :
+ (f g : coalgebra-comonad-Precategory C T)
+ (h : morphism-coalgebra-comonad-Precategory f g) →
+ hom-Precategory C
+ ( obj-endofunctor-comonad-Precategory C T
+ ( obj-coalgebra-comonad-Precategory C T f))
+ ( obj-endofunctor-comonad-Precategory C T
+ ( obj-coalgebra-comonad-Precategory C T g))
+ bottom-hom-morphism-coalgebra-comonad-Precategory f g h =
+ hom-endofunctor-comonad-Precategory C T
+ ( hom-morphism-coalgebra-comonad-Precategory f g h)
+
+ coh-hom-morphism-coalgebra-comonad-Precategory :
+ (f g : coalgebra-comonad-Precategory C T)
+ (h : morphism-coalgebra-comonad-Precategory f g) →
+ coherence-square-hom-Precategory C
+ ( hom-morphism-coalgebra-comonad-Precategory f g h)
+ ( hom-coalgebra-comonad-Precategory C T f)
+ ( hom-coalgebra-comonad-Precategory C T g)
+ ( bottom-hom-morphism-coalgebra-comonad-Precategory f g h)
+ coh-hom-morphism-coalgebra-comonad-Precategory f g h = pr2 h
+
+ comp-morphism-coalgebra-comonad-Precategory :
+ (a b c : coalgebra-comonad-Precategory C T)
+ (g : morphism-coalgebra-comonad-Precategory b c) →
+ (f : morphism-coalgebra-comonad-Precategory a b) →
+ morphism-coalgebra-comonad-Precategory a c
+ comp-morphism-coalgebra-comonad-Precategory a b c g f =
+ ( comp-hom-Precategory C
+ ( hom-morphism-coalgebra-comonad-Precategory b c g)
+ ( hom-morphism-coalgebra-comonad-Precategory a b f)) ,
+ ( ap
+ ( precomp-hom-Precategory C (hom-coalgebra-comonad-Precategory C T a) _)
+ ( preserves-comp-endofunctor-comonad-Precategory C T _ _)) ∙
+ ( pasting-horizontal-coherence-square-hom-Precategory C
+ ( hom-morphism-coalgebra-comonad-Precategory a b f)
+ ( hom-morphism-coalgebra-comonad-Precategory b c g)
+ ( hom-coalgebra-comonad-Precategory C T a)
+ ( hom-coalgebra-comonad-Precategory C T b)
+ ( hom-coalgebra-comonad-Precategory C T c)
+ ( bottom-hom-morphism-coalgebra-comonad-Precategory a b f)
+ ( bottom-hom-morphism-coalgebra-comonad-Precategory b c g)
+ ( coh-hom-morphism-coalgebra-comonad-Precategory a b f)
+ ( coh-hom-morphism-coalgebra-comonad-Precategory b c g))
+
+ is-set-morphism-coalgebra-comonad-Precategory :
+ (f g : coalgebra-comonad-Precategory C T) →
+ is-set (morphism-coalgebra-comonad-Precategory f g)
+ is-set-morphism-coalgebra-comonad-Precategory f g =
+ is-set-Σ
+ ( is-set-hom-Precategory C _ _)
+ ( λ hk → is-set-is-prop (is-set-hom-Precategory C _ _ _ _))
+```
diff --git a/src/category-theory/pointed-endofunctors-precategories.lagda.md b/src/category-theory/pointed-endofunctors-precategories.lagda.md
index 2472a4dab6..eb7d385f9e 100644
--- a/src/category-theory/pointed-endofunctors-precategories.lagda.md
+++ b/src/category-theory/pointed-endofunctors-precategories.lagda.md
@@ -1,4 +1,4 @@
-# Pointed endofunctors
+# Pointed endofunctors on precategories
```agda
module category-theory.pointed-endofunctors-precategories where
@@ -139,3 +139,8 @@ module _
( functor-pointed-endofunctor-Precategory)
( pointing-pointed-endofunctor-Precategory)
```
+
+## See also
+
+- [Copointed endofunctors](category-theory.copointed-endofunctors-precategories.md)
+ for the dual concept.
diff --git a/src/category-theory/precategory-of-algebras-monads-on-precategories.lagda.md b/src/category-theory/precategory-of-algebras-monads-on-precategories.lagda.md
index 1c991d8657..58de97bfc9 100644
--- a/src/category-theory/precategory-of-algebras-monads-on-precategories.lagda.md
+++ b/src/category-theory/precategory-of-algebras-monads-on-precategories.lagda.md
@@ -1,4 +1,4 @@
-# The precategory of algebras of a monad
+# The precategory of algebras over a monad
```agda
module category-theory.precategory-of-algebras-monads-on-precategories where
@@ -35,8 +35,8 @@ open import foundation-core.transport-along-identifications
## Idea
The
-{{#concept "precategory of algebras" Disambiguation="of a monad on a precategory" Agda=algebras-monad-Precategory}}
-of a [monad on a precategory](category-theory.monads-on-precategories.md) `T`,
+{{#concept "precategory of algebras" Disambiguation="over a monad on a precategory" Agda=algebras-monad-Precategory}}
+over a [monad on a precategory](category-theory.monads-on-precategories.md) `T`,
denoted `EM(T)`, also called the **Eilenberg–Moore precategory**, consists of
all `T`-algebras and `T`-algebra morphisms. It comes with an adjunction
`C ⇄ EM(T)`.
@@ -311,7 +311,7 @@ The counit is the vertical map given by the structure map of the algebra
( inv (mul-law-algebra-monad-Precategory C T x))) ,
( λ {x} {y} f →
eq-pair-Σ
- ( comm-hom-morphism-algebra-monad-Precategory C T x y f)
+ ( coh-hom-morphism-algebra-monad-Precategory C T x y f)
( eq-is-prop (is-set-hom-Precategory C _ _ _ _)))
left-triangle-algebras-monad-Precategory :
diff --git a/src/category-theory/precategory-of-coalgebras-comonads-on-precategories.lagda.md b/src/category-theory/precategory-of-coalgebras-comonads-on-precategories.lagda.md
new file mode 100644
index 0000000000..254ce3116b
--- /dev/null
+++ b/src/category-theory/precategory-of-coalgebras-comonads-on-precategories.lagda.md
@@ -0,0 +1,357 @@
+# The precategory of coalgebras over a comonad
+
+```agda
+module category-theory.precategory-of-coalgebras-comonads-on-precategories where
+```
+
+Imports
+
+```agda
+open import category-theory.adjunctions-precategories
+open import category-theory.coalgebras-comonads-on-precategories
+open import category-theory.comonads-on-precategories
+open import category-theory.functors-precategories
+open import category-theory.morphisms-coalgebras-comonads-on-precategories
+open import category-theory.natural-transformations-functors-precategories
+open import category-theory.precategories
+
+open import foundation.action-on-identifications-functions
+open import foundation.dependent-pair-types
+open import foundation.identity-types
+open import foundation.sets
+open import foundation.universe-levels
+
+open import foundation-core.cartesian-product-types
+open import foundation-core.equality-dependent-pair-types
+open import foundation-core.equivalences
+open import foundation-core.function-types
+open import foundation-core.homotopies
+open import foundation-core.propositions
+open import foundation-core.transport-along-identifications
+```
+
+
+
+## Idea
+
+The
+{{#concept "precategory of coalgebras" Disambiguation="over a comonad on a precategory" Agda=coalgebras-comonad-Precategory}}
+over a [comonad on a precategory](category-theory.comonads-on-precategories.md)
+`T`, denoted `EM(T)`, also called the **Eilenberg–Moore precategory**, consists
+of all `T`-coalgebras and `T`-coalgebra morphisms. It comes with an adjunction
+`EM(T) ⇄ C`.
+
+## Definitions
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : comonad-Precategory C)
+ where
+
+ obj-coalgebras-comonad-Precategory :
+ UU (l1 ⊔ l2)
+ obj-coalgebras-comonad-Precategory = coalgebra-comonad-Precategory C T
+
+ hom-set-coalgebras-comonad-Precategory :
+ (a b : obj-coalgebras-comonad-Precategory) →
+ Set l2
+ hom-set-coalgebras-comonad-Precategory a b =
+ ( morphism-coalgebra-comonad-Precategory C T a b) ,
+ ( is-set-morphism-coalgebra-comonad-Precategory C T a b)
+
+ hom-coalgebras-comonad-Precategory :
+ (a b : obj-coalgebras-comonad-Precategory) →
+ UU l2
+ hom-coalgebras-comonad-Precategory a b =
+ type-Set (hom-set-coalgebras-comonad-Precategory a b)
+
+ comp-hom-coalgebras-comonad-Precategory :
+ (a b c : obj-coalgebras-comonad-Precategory)
+ (g : hom-coalgebras-comonad-Precategory b c)
+ (f : hom-coalgebras-comonad-Precategory a b) →
+ hom-coalgebras-comonad-Precategory a c
+ comp-hom-coalgebras-comonad-Precategory a b c g f =
+ comp-morphism-coalgebra-comonad-Precategory C T a b c g f
+
+ coh-id-hom-coalgebras-comonad-Precategory :
+ (x : obj-coalgebras-comonad-Precategory) →
+ coherence-morphism-coalgebra-comonad-Precategory C T x x
+ ( id-hom-Precategory C)
+ coh-id-hom-coalgebras-comonad-Precategory x =
+ ( ap
+ ( precomp-hom-Precategory C _ _)
+ ( preserves-id-endofunctor-comonad-Precategory C T _)) ∙
+ ( left-unit-law-comp-hom-Precategory C _) ∙
+ ( inv
+ ( right-unit-law-comp-hom-Precategory C _))
+
+ id-hom-coalgebras-comonad-Precategory :
+ (x : obj-coalgebras-comonad-Precategory) →
+ hom-coalgebras-comonad-Precategory x x
+ id-hom-coalgebras-comonad-Precategory x =
+ ( id-hom-Precategory C , coh-id-hom-coalgebras-comonad-Precategory x)
+
+ associative-comp-hom-coalgebras-comonad-Precategory :
+ (x y z w : obj-coalgebras-comonad-Precategory)
+ (h : hom-coalgebras-comonad-Precategory z w)
+ (g : hom-coalgebras-comonad-Precategory y z)
+ (f : hom-coalgebras-comonad-Precategory x y) →
+ ( comp-hom-coalgebras-comonad-Precategory x y w
+ ( comp-hom-coalgebras-comonad-Precategory y z w h g)
+ ( f)) =
+ ( comp-hom-coalgebras-comonad-Precategory x z w
+ ( h)
+ ( comp-hom-coalgebras-comonad-Precategory x y z g f))
+ associative-comp-hom-coalgebras-comonad-Precategory x y z w h g f =
+ eq-pair-Σ
+ ( associative-comp-hom-Precategory C _ _ _)
+ ( eq-is-prop (is-set-hom-Precategory C _ _ _ _))
+
+ left-counit-law-comp-hom-coalgebras-comonad-Precategory :
+ (a b : obj-coalgebras-comonad-Precategory)
+ (f : hom-coalgebras-comonad-Precategory a b) →
+ ( comp-hom-coalgebras-comonad-Precategory a b b
+ ( id-hom-coalgebras-comonad-Precategory b)
+ ( f)) =
+ ( f)
+ left-counit-law-comp-hom-coalgebras-comonad-Precategory a b f =
+ eq-pair-Σ
+ ( left-unit-law-comp-hom-Precategory C
+ ( hom-morphism-coalgebra-comonad-Precategory C T a b f))
+ ( eq-is-prop (is-set-hom-Precategory C _ _ _ _))
+
+ right-counit-law-comp-hom-coalgebras-comonad-Precategory :
+ (a b : obj-coalgebras-comonad-Precategory)
+ (f : hom-coalgebras-comonad-Precategory a b) →
+ ( comp-hom-coalgebras-comonad-Precategory a a b
+ ( f)
+ ( id-hom-coalgebras-comonad-Precategory a)) =
+ ( f)
+ right-counit-law-comp-hom-coalgebras-comonad-Precategory a b f =
+ eq-pair-Σ
+ ( right-unit-law-comp-hom-Precategory C
+ ( hom-morphism-coalgebra-comonad-Precategory C T a b f))
+ ( eq-is-prop (is-set-hom-Precategory C _ _ _ _))
+
+ coalgebras-comonad-Precategory : Precategory (l1 ⊔ l2) l2
+ coalgebras-comonad-Precategory =
+ make-Precategory
+ ( obj-coalgebras-comonad-Precategory)
+ ( hom-set-coalgebras-comonad-Precategory)
+ ( λ {a} {b} {c} g f → comp-hom-coalgebras-comonad-Precategory a b c g f)
+ ( id-hom-coalgebras-comonad-Precategory)
+ ( λ {a} {b} {c} {d} h g f →
+ ( associative-comp-hom-coalgebras-comonad-Precategory a b c d h g f))
+ ( λ {a} {b} f →
+ left-counit-law-comp-hom-coalgebras-comonad-Precategory a b f)
+ ( λ {a} {b} f →
+ right-counit-law-comp-hom-coalgebras-comonad-Precategory a b f)
+```
+
+## Properties
+
+### Free functor from the underlying category
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : comonad-Precategory C)
+ (let T₁ = hom-endofunctor-comonad-Precategory C T)
+ where
+
+ obj-functor-to-coalgebras-comonad-Precategory :
+ obj-Precategory C → obj-Precategory (coalgebras-comonad-Precategory C T)
+ obj-functor-to-coalgebras-comonad-Precategory x =
+ ( obj-endofunctor-comonad-Precategory C T x) ,
+ ( ( hom-comul-comonad-Precategory C T x) ,
+ ( right-counit-law-comul-hom-family-comonad-Precategory C T x) ,
+ ( associative-comul-hom-family-comonad-Precategory C T x))
+
+ hom-functor-to-coalgebras-comonad-Precategory :
+ {x y : obj-Precategory C}
+ (f : hom-Precategory C x y) →
+ hom-Precategory (coalgebras-comonad-Precategory C T)
+ ( obj-functor-to-coalgebras-comonad-Precategory x)
+ ( obj-functor-to-coalgebras-comonad-Precategory y)
+ hom-functor-to-coalgebras-comonad-Precategory f =
+ ( T₁ f) ,
+ ( naturality-comul-comonad-Precategory C T f)
+
+ preserves-id-functor-to-coalgebras-comonad-Precategory :
+ (x : obj-Precategory C) →
+ hom-functor-to-coalgebras-comonad-Precategory (id-hom-Precategory C {x}) =
+ id-hom-coalgebras-comonad-Precategory C T
+ ( obj-functor-to-coalgebras-comonad-Precategory x)
+ preserves-id-functor-to-coalgebras-comonad-Precategory x =
+ eq-pair-Σ
+ ( preserves-id-endofunctor-comonad-Precategory C T x)
+ ( eq-is-prop (is-set-hom-Precategory C _ _ _ _))
+
+ preserves-comp-functor-to-coalgebras-comonad-Precategory :
+ {x y z : obj-Precategory C} →
+ (g : hom-Precategory C y z) (f : hom-Precategory C x y) →
+ hom-functor-to-coalgebras-comonad-Precategory (comp-hom-Precategory C g f) =
+ comp-hom-coalgebras-comonad-Precategory C T
+ ( obj-functor-to-coalgebras-comonad-Precategory x)
+ ( obj-functor-to-coalgebras-comonad-Precategory y)
+ ( obj-functor-to-coalgebras-comonad-Precategory z)
+ ( hom-functor-to-coalgebras-comonad-Precategory g)
+ ( hom-functor-to-coalgebras-comonad-Precategory f)
+ preserves-comp-functor-to-coalgebras-comonad-Precategory g f =
+ eq-pair-Σ
+ ( preserves-comp-endofunctor-comonad-Precategory C T g f)
+ ( eq-is-prop (is-set-hom-Precategory C _ _ _ _))
+
+ functor-to-coalgebras-comonad-Precategory :
+ functor-Precategory C (coalgebras-comonad-Precategory C T)
+ functor-to-coalgebras-comonad-Precategory =
+ ( obj-functor-to-coalgebras-comonad-Precategory) ,
+ ( hom-functor-to-coalgebras-comonad-Precategory) ,
+ ( preserves-comp-functor-to-coalgebras-comonad-Precategory) ,
+ ( preserves-id-functor-to-coalgebras-comonad-Precategory)
+```
+
+### Forgetful functor from the underlying precategory
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : comonad-Precategory C)
+ where
+
+ obj-functor-from-coalgebras-comonad-Precategory :
+ obj-coalgebras-comonad-Precategory C T → obj-Precategory C
+ obj-functor-from-coalgebras-comonad-Precategory =
+ obj-coalgebra-comonad-Precategory C T
+
+ hom-functor-from-coalgebras-comonad-Precategory :
+ (x y : obj-coalgebras-comonad-Precategory C T)
+ (f : hom-coalgebras-comonad-Precategory C T x y) →
+ hom-Precategory C
+ ( obj-functor-from-coalgebras-comonad-Precategory x)
+ ( obj-functor-from-coalgebras-comonad-Precategory y)
+ hom-functor-from-coalgebras-comonad-Precategory =
+ hom-morphism-coalgebra-comonad-Precategory C T
+
+ preserves-id-functor-from-coalgebras-comonad-Precategory :
+ (x : obj-coalgebras-comonad-Precategory C T) →
+ hom-functor-from-coalgebras-comonad-Precategory x x
+ ( id-hom-coalgebras-comonad-Precategory C T x) =
+ id-hom-Precategory C
+ preserves-id-functor-from-coalgebras-comonad-Precategory x = refl
+
+ preserves-comp-functor-from-coalgebras-comonad-Precategory :
+ (x y z : obj-coalgebras-comonad-Precategory C T)
+ (g : hom-coalgebras-comonad-Precategory C T y z)
+ (f : hom-coalgebras-comonad-Precategory C T x y) →
+ hom-functor-from-coalgebras-comonad-Precategory x z
+ ( comp-hom-coalgebras-comonad-Precategory C T x y z g f) =
+ comp-hom-Precategory C
+ ( hom-functor-from-coalgebras-comonad-Precategory y z g)
+ ( hom-functor-from-coalgebras-comonad-Precategory x y f)
+ preserves-comp-functor-from-coalgebras-comonad-Precategory x y z g f = refl
+
+ functor-from-coalgebras-comonad-Precategory :
+ functor-Precategory (coalgebras-comonad-Precategory C T) C
+ functor-from-coalgebras-comonad-Precategory =
+ ( obj-functor-from-coalgebras-comonad-Precategory) ,
+ ( λ {x} {y} f → hom-functor-from-coalgebras-comonad-Precategory x y f) ,
+ ( λ {x} {y} {z} g f →
+ preserves-comp-functor-from-coalgebras-comonad-Precategory x y z g f) ,
+ ( preserves-id-functor-from-coalgebras-comonad-Precategory)
+```
+
+### Adjunction with the underlying category
+
+The counit of the adjunction between these two functors is exactly the counit of
+the comonad.
+
+```agda
+module _
+ {l1 l2 : Level} (C : Precategory l1 l2)
+ (T : comonad-Precategory C)
+ where
+
+ counit-coalgebras-comonad-Precategory :
+ natural-transformation-Precategory C C
+ ( comp-functor-Precategory C (coalgebras-comonad-Precategory C T) C
+ ( functor-from-coalgebras-comonad-Precategory C T)
+ ( functor-to-coalgebras-comonad-Precategory C T))
+ ( id-functor-Precategory C)
+ counit-coalgebras-comonad-Precategory = counit-comonad-Precategory C T
+```
+
+The unit is the horizontal map given by the structure map of the coalgebra
+
+```text
+ a
+ x -----> Tx
+ | |
+ a | | δ
+ ∨ ∨
+ Tx -----> T²x.
+ Ta
+```
+
+```agda
+ unit-coalgebras-comonad-Precategory :
+ natural-transformation-Precategory
+ ( coalgebras-comonad-Precategory C T)
+ ( coalgebras-comonad-Precategory C T)
+ ( id-functor-Precategory (coalgebras-comonad-Precategory C T))
+ ( comp-functor-Precategory
+ ( coalgebras-comonad-Precategory C T)
+ ( C)
+ ( coalgebras-comonad-Precategory C T)
+ ( functor-to-coalgebras-comonad-Precategory C T)
+ ( functor-from-coalgebras-comonad-Precategory C T))
+ unit-coalgebras-comonad-Precategory =
+ ( λ x →
+ ( hom-coalgebra-comonad-Precategory C T x) ,
+ ( comul-law-coalgebra-comonad-Precategory C T x)) ,
+ ( λ {x} {y} f →
+ eq-pair-Σ
+ ( coh-hom-morphism-coalgebra-comonad-Precategory C T x y f)
+ ( eq-is-prop (is-set-hom-Precategory C _ _ _ _)))
+
+ right-triangle-coalgebras-comonad-Precategory :
+ has-right-triangle-identity-Precategory
+ ( coalgebras-comonad-Precategory C T)
+ ( C)
+ ( functor-from-coalgebras-comonad-Precategory C T)
+ ( functor-to-coalgebras-comonad-Precategory C T)
+ ( unit-coalgebras-comonad-Precategory)
+ ( counit-coalgebras-comonad-Precategory)
+ right-triangle-coalgebras-comonad-Precategory x =
+ eq-pair-Σ
+ ( left-counit-law-comul-hom-family-comonad-Precategory C T x)
+ ( eq-is-prop (is-set-hom-Precategory C _ _ _ _))
+
+ left-triangle-coalgebras-comonad-Precategory :
+ has-left-triangle-identity-Precategory
+ ( coalgebras-comonad-Precategory C T)
+ ( C)
+ ( functor-from-coalgebras-comonad-Precategory C T)
+ ( functor-to-coalgebras-comonad-Precategory C T)
+ ( unit-coalgebras-comonad-Precategory)
+ ( counit-coalgebras-comonad-Precategory)
+ left-triangle-coalgebras-comonad-Precategory x =
+ counit-law-coalgebra-comonad-Precategory C T x
+
+ adjunction-coalgebras-comonad-Precategory :
+ Adjunction-Precategory (coalgebras-comonad-Precategory C T) C
+ adjunction-coalgebras-comonad-Precategory =
+ make-Adjunction-Precategory (coalgebras-comonad-Precategory C T) C
+ ( functor-from-coalgebras-comonad-Precategory C T)
+ ( functor-to-coalgebras-comonad-Precategory C T)
+ ( is-adjoint-pair-unit-counit-Precategory
+ ( coalgebras-comonad-Precategory C T)
+ ( C)
+ ( functor-from-coalgebras-comonad-Precategory C T)
+ ( functor-to-coalgebras-comonad-Precategory C T)
+ ( unit-coalgebras-comonad-Precategory)
+ ( counit-coalgebras-comonad-Precategory)
+ ( left-triangle-coalgebras-comonad-Precategory)
+ ( right-triangle-coalgebras-comonad-Precategory))
+```
diff --git a/src/category-theory/right-extensions-precategories.lagda.md b/src/category-theory/right-extensions-precategories.lagda.md
index c36328ce66..3a50299151 100644
--- a/src/category-theory/right-extensions-precategories.lagda.md
+++ b/src/category-theory/right-extensions-precategories.lagda.md
@@ -52,16 +52,17 @@ of a [functor](category-theory.functors-precategories.md) `F : C → D` between
`φ : G ∘ p → F`.
```text
- C
- | \
- p F
- | \
- ∨ ∨
- C' - G -> D
+ C
+ | \
+ p | \ F
+ | \
+ ∨ ∨
+ C' -----> D
+ G
```
-We note that this is not a standard definition, but it inspired by the notion of
-a [right kan extension](category-theory.right-kan-extensions-precategories.md).
+We note that this is not a standard definition, but is inspired by the notion of
+a [right Kan extension](category-theory.right-kan-extensions-precategories.md).
## Definition
@@ -153,7 +154,7 @@ module _
## Properties
-### Characterization of equality right extensions of functors between precategories
+### Characterization of equality between right extensions of functors between precategories
```agda
coherence-htpy-right-extension-Precategory :
@@ -295,3 +296,8 @@ module _
( extension-right-extension-Precategory C D D F F R)
( natural-transformation-right-extension-Precategory C D D F F R))
```
+
+## See also
+
+- [Left extensions](category-theory.left-extensions-precategories.md) for the
+ dual concept.
diff --git a/src/category-theory/right-kan-extensions-precategories.lagda.md b/src/category-theory/right-kan-extensions-precategories.lagda.md
index 1af7fd92a1..3d9e407cd3 100644
--- a/src/category-theory/right-kan-extensions-precategories.lagda.md
+++ b/src/category-theory/right-kan-extensions-precategories.lagda.md
@@ -28,7 +28,10 @@ of [functor](category-theory.functors-precategories.md) `F : C → D` between
[precategories](category-theory.precategories.md) along another functor
`p : C → C'` is the universal
[right extension](category-theory.right-extensions-precategories.md) of `F`
-along `p`.
+along `p`. That is, `(R, α)` is a right Kan extension if for every other right
+extension `(G, β)` there is a unique natural transformation `γ : G ⇒ R` such
+that `α ∘ γ = β`. In particular, `(R, α)` is terminal in the category of right
+extensions of `F` along `p`.
More concretely, we require the function `right-extension-map-Precategory` to be
an equivalence.
@@ -92,3 +95,8 @@ module _
natural-transformation-right-extension-Precategory C C' D p F
right-extension-right-kan-extension-Precategory
```
+
+## See also
+
+- [Left Kan extensions](category-theory.left-kan-extensions-precategories.md)
+ for the dual concept.
diff --git a/src/foundation/category-of-sets.lagda.md b/src/foundation/category-of-sets.lagda.md
index 7089fccb08..85c55098b9 100644
--- a/src/foundation/category-of-sets.lagda.md
+++ b/src/foundation/category-of-sets.lagda.md
@@ -239,10 +239,10 @@ module _
( _)
( λ f → eq-htpy λ {(map-raise star) → refl})
- is-limiting-cone-Set-Precategory :
- is-limiting-cone-Precategory C (Set-Precategory (l1 ⊔ l2)) F
+ is-limit-cone-Set-Precategory :
+ is-limit-cone-Precategory C (Set-Precategory (l1 ⊔ l2)) F
cone-limit-Set-Precategory
- is-limiting-cone-Set-Precategory φ =
+ is-limit-cone-Set-Precategory φ =
is-equiv-is-invertible
( map-inv-cone-map-limit-Set-Precategory φ)
( is-section-cone-map-limit-Set-Precategory φ)
@@ -251,7 +251,7 @@ module _
limit-Set-Precategory :
limit-Precategory C (Set-Precategory (l1 ⊔ l2)) F
pr1 limit-Set-Precategory = cone-limit-Set-Precategory
- pr2 limit-Set-Precategory = is-limiting-cone-Set-Precategory
+ pr2 limit-Set-Precategory = is-limit-cone-Set-Precategory
is-complete-Set-Precategory :
(l1 l2 : Level) →