{-# OPTIONS --without-K --safe #-} open import Categories.Bicategory using (Bicategory) module Categories.Bicategory.Object.Product {o ā e t} (š : Bicategory o ā e t) where open import Level open Bicategory š open import Categories.Category using (_[_,_]) open import Categories.Morphism using (_ā _) open import Categories.Morphism.HeterogeneousEquality open import Categories.Morphism.Notation using (_[_ā _]) record Product (A B : Obj) : Set (o ā ā ā e ā t) where infix 10 āØ_,_ā©ā āØ_,_ā©ā field AĆB : Obj Ļa : AĆB āā A Ļb : AĆB āā B āØ_,_ā©ā : ā {Ī} ā Ī āā A ā Ī āā B ā Ī āā AĆB āØ_,_ā©ā : ā {Ī}{fa ga : Ī āā A}{fb gb : Ī āā B} ā fa āā ga ā fb āā gb ā ⨠fa , fb ā©ā āā ⨠ga , gb ā©ā βāa : ā {Ī} f g ā hom Ī A [ Ļa āā ⨠f , g ā©ā ā f ] βāb : ā {Ī} f g ā hom Ī B [ Ļb āā ⨠f , g ā©ā ā g ] βāa : ā {Ī}{fa ga fb gb}(αa : hom Ī A [ fa , ga ])(αb : hom Ī B [ fb , gb ]) ā Along βāa _ _ , βāa _ _ [ Ļa ⷠ⨠αa , αb ā©ā ā αa ] βāb : ā {Ī}{fa ga fb gb}(αa : hom Ī A [ fa , ga ])(αb : hom Ī B [ fb , gb ]) ā Along βāb _ _ , βāb _ _ [ Ļb ⷠ⨠αa , αb ā©ā ā αb ] Ī·ā : ā {Ī} p ā hom Ī AĆB [ p ā ⨠Ļa āā p , Ļb āā p ā©ā ] Ī·ā : ā {Ī}{p p'}(Ļ : hom Ī AĆB [ p , p' ]) ā Along (Ī·ā _) , (Ī·ā _) [ Ļ ā ⨠Ļa ā· Ļ , Ļb ā· Ļ ā©ā ]