{-# 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 ā· Ļ ā©ā ]