Library HoTT.Categories.KanExtensions.Functors
Require Import Category.Core Functor.Core.
Require Import KanExtensions.Core.
Require Import Adjoint.UniversalMorphisms.Core.
Require Import FunctorCategory.Core.
Require Import Adjoint.Core.
Set Implicit Arguments.
Generalizable All Variables.
Section kan_extension_functors.
Context `{Funext}.
Variables C C' D : PreCategory.
Variable p : object (C → C').
Require Import KanExtensions.Core.
Require Import Adjoint.UniversalMorphisms.Core.
Require Import FunctorCategory.Core.
Require Import Adjoint.Core.
Set Implicit Arguments.
Generalizable All Variables.
Section kan_extension_functors.
Context `{Funext}.
Variables C C' D : PreCategory.
Variable p : object (C → C').
Section lan.
Context `(has_left_kan_extensions
: ∀ h : object (C → D),
@IsLeftKanExtensionAlong _ _ _ _ p h (left_kan_extensions h)).
Definition left_kan_extension_functor
: Functor (C → D) (C' → D)
:= functor__of__initial_morphism has_left_kan_extensions.
Definition left_kan_extension_adjunction
: left_kan_extension_functor -| pullback_along D p
:= adjunction__of__initial_morphism has_left_kan_extensions.
End lan.
Context `(has_left_kan_extensions
: ∀ h : object (C → D),
@IsLeftKanExtensionAlong _ _ _ _ p h (left_kan_extensions h)).
Definition left_kan_extension_functor
: Functor (C → D) (C' → D)
:= functor__of__initial_morphism has_left_kan_extensions.
Definition left_kan_extension_adjunction
: left_kan_extension_functor -| pullback_along D p
:= adjunction__of__initial_morphism has_left_kan_extensions.
End lan.
Section ran.
Context `(has_right_kan_extensions
: ∀ h : object (C → D),
@IsRightKanExtensionAlong _ _ _ _ p h (right_kan_extensions h)).
Definition right_kan_extension_functor
: Functor (C → D) (C' → D)
:= functor__of__terminal_morphism has_right_kan_extensions.
Definition right_kan_extension_adjunction
: pullback_along D p -| right_kan_extension_functor
:= adjunction__of__terminal_morphism has_right_kan_extensions.
End ran.
End kan_extension_functors.
Context `(has_right_kan_extensions
: ∀ h : object (C → D),
@IsRightKanExtensionAlong _ _ _ _ p h (right_kan_extensions h)).
Definition right_kan_extension_functor
: Functor (C → D) (C' → D)
:= functor__of__terminal_morphism has_right_kan_extensions.
Definition right_kan_extension_adjunction
: pullback_along D p -| right_kan_extension_functor
:= adjunction__of__terminal_morphism has_right_kan_extensions.
End ran.
End kan_extension_functors.