module Cat.Displayed.Diagram.Total.Exponential
  {o β„“ o' β„“'} {B : Precategory o β„“} (E : Displayed B o' β„“')
  {bcart : Cartesian-category B} (ecart : Cartesian-over E bcart)
  where

Total exponential objectsπŸ”—

Let be a displayed category with total products over a Cartesian category and be the evaluation map for an exponential object in

A map is the evaluation map for a total exponential object in if we have an operation assigning to each a universal morphism with uniqueness and commutativity lying over those for

This definition follows the logic of β€œtotal universal constructions”, where we can display universal constructions in over the corresponding constructions in and this is equivalent to the total category having, and the projection functor preserving, those same constructions.

  record is-exponential-over (ev' : Hom[ ev ] (B^A' βŠ—β‚€' A') B')
    : Type (o βŠ” β„“ βŠ” o' βŠ” β„“') where
    open is-exponential exp

    field
      Ζ›'
        : βˆ€ {Ξ“ Ξ“'} {m : Hom (Ξ“ βŠ—β‚€ A) B} (m' : Hom[ m ] (Ξ“' βŠ—β‚€' A') B')
        β†’ Hom[ Ζ› m ] Ξ“' B^A'

      commutes'
        : βˆ€ {Ξ“ Ξ“'} {m : Hom (Ξ“ βŠ—β‚€ A) B} (m' : Hom[ m ] (Ξ“' βŠ—β‚€' A') B')
        β†’ ev' ∘' ⟨ Ζ›' m' ∘' π₁' , id' ∘' Ο€β‚‚' ⟩' ≑[ commutes m ] m'

      unique'
        : βˆ€ {Ξ“ Ξ“'} {m : Hom (Ξ“ βŠ—β‚€ _) _} {n}
        β†’ {p : ev ∘ (n βŠ—β‚ id) ≑ m}
        β†’ {m' : Hom[ m ] (Ξ“' βŠ—β‚€' _) _} (n' : Hom[ n ] Ξ“' _)
        β†’ ev' ∘' ⟨ n' ∘' π₁' , id' ∘' Ο€β‚‚' ⟩' ≑[ p ] m'
        β†’ n' ≑[ unique n p ] Ζ›' m'