Home

Indexed product

open import category-theory.category
module category-theory.indexed-product
  {o h} (𝒞 : Category o h) where
Imports
open import foundations.universe
open import foundations.identity-type
open Category 𝒞
private variable
   : Level
  I : Type 

  Y W : Ob
  Z : I  Ob

  α : (i : I)  Hom Y (Z i)
  f : Hom Y W

record isIndexedProduct {} (I : Type ) (A : I  Ob) X (π : (i : I)  Hom X (A i)) : Type (o  h  ) where
  field
    ⟨_⟩ : ((i : I)  Hom Y (A i))  Hom Y X
    β :  (i : I)  π i   α   α i
    η :   i  π i  f)   f

record IndexedProduct {} (I : Type ) (A : I  Ob) : Type (o  h  ) where
  field
    X : Ob
    π : (i : I)  Hom X (A i)
    is-indexed-product : isIndexedProduct I A X π

  open isIndexedProduct is-indexed-product public