# Right Kan extensions in precategories
```agda
module category-theory.right-kan-extensions-precategories where
```
<details><summary>Imports</summary>
```agda
open import category-theory.functors-precategories
open import category-theory.natural-transformations-functors-precategories
open import category-theory.precategories
open import category-theory.right-extensions-precategories
open import foundation.dependent-pair-types
open import foundation.equivalences
open import foundation.identity-types
open import foundation.universe-levels
```
</details>
## Idea
A
{{#concept "right Kan extension" Disambiguation="of a functor between precategories" Agda=is-right-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
[right extension](category-theory.right-extensions-precategories.md) of `F`
along `p`.
More concretely, we require the function `right-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 : right-extension-Precategory C C' D p F)
where
is-right-kan-extension-Precategory :
UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6)
is-right-kan-extension-Precategory =
( G : functor-Precategory C' D) →
is-equiv (right-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
right-kan-extension-Precategory : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6)
right-kan-extension-Precategory =
Σ ( right-extension-Precategory C C' D p F)
( is-right-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 : right-kan-extension-Precategory C C' D p F)
where
right-extension-right-kan-extension-Precategory :
right-extension-Precategory C C' D p F
right-extension-right-kan-extension-Precategory = pr1 R
is-right-kan-extension-right-kan-extension-Precategory :
is-right-kan-extension-Precategory C C' D p F (pr1 R)
is-right-kan-extension-right-kan-extension-Precategory = pr2 R
extension-right-kan-extension-Precategory :
functor-Precategory C' D
extension-right-kan-extension-Precategory =
extension-right-extension-Precategory C C' D p F
right-extension-right-kan-extension-Precategory
natural-transformation-right-kan-extension-Precategory :
natural-transformation-Precategory C D
( comp-functor-Precategory C C' D
( extension-right-extension-Precategory C C' D p F
right-extension-right-kan-extension-Precategory)
( p))
( F)
natural-transformation-right-kan-extension-Precategory =
natural-transformation-right-extension-Precategory C C' D p F
right-extension-right-kan-extension-Precategory
```