module Cubical.Categories.Displayed.Limits.ClosedV where

open import Cubical.Foundations.Prelude

open import Cubical.Categories.Category.Base
open import Cubical.Categories.Limits.Cartesian.Base
open import Cubical.Categories.Displayed.Base
open import Cubical.Categories.Displayed.Presheaf.Uncurried.Base
open import Cubical.Categories.Displayed.Presheaf.Uncurried.Constructions.UniversalQuantifier
open import Cubical.Categories.Displayed.Presheaf.Uncurried.Fibration
open import Cubical.Categories.Displayed.Presheaf.Uncurried.UniversalProperties
open import Cubical.Categories.Displayed.Presheaf.Uncurried.Constructions.Exponential

private
  variable
    ℓB ℓB' ℓBᴰ ℓBᴰ' ℓC ℓC' ℓCᴰ ℓCᴰ' ℓD ℓD' ℓDᴰ ℓDᴰ' ℓE ℓE' ℓEᴰ ℓEᴰ' : Level

ClosedCategoryⱽ : (CC : CartesianCategory ℓC ℓC') (ℓCᴰ ℓCᴰ' : Level)  Type _
ClosedCategoryⱽ CC ℓCᴰ ℓCᴰ' =
  Σ[ Cᴰ  Categoryᴰ C ℓCᴰ ℓCᴰ' ]
  Σ[ cartLifts  isFibration Cᴰ ]
  Σ[ lrⱽ  AllLRⱽ Cᴰ ]
  Σ[ expⱽ  Exponentialsⱽ Cᴰ lrⱽ ]
  UniversalQuantifiers Cᴰ bp cartLifts
  where
    open CartesianCategory CC