open import Cubical.Foundations.Prelude
open import Cubical.Categories.Category
open import Cubical.Categories.Displayed.Base
open import Cubical.Foundations.Equiv
open import Cubical.Foundations.HLevels
open import Cubical.Data.Sigma
open import Cubical.HITs.PropositionalTruncation
open import Categories.CartesianMorphism
module Categories.GenericObject where
module _
{ℓB ℓ'B ℓE ℓ'E}
{B : Category ℓB ℓ'B}
(E : Categoryᴰ B ℓE ℓ'E) where
open Category B
open Categoryᴰ E
open Contravariant E
record GenericObject : Type (ℓ-max (ℓ-max ℓB ℓ'B) (ℓ-max ℓE ℓ'E)) where
constructor makeGenericObject
field
base : ob
displayed : ob[ base ]
isGeneric :
∀ {t : ob} (tᴰ : ob[ t ])
→ Σ[ f ∈ Hom[ t , base ] ] Σ[ fᴰ ∈ Hom[ f ][ tᴰ , displayed ] ] isCartesian f fᴰ