module Cat.Displayed.Diagram.Total.Product where
open Total-hom
Total Productsπ
module _
{ob βb oe βe} {B : Precategory ob βb}
(E : Displayed B oe βe)
where
open Cat.Reasoning B
open Displayed E
private variable
: Ob
a x y p : Ob[ a ]
a' x' y' p' : Hom a x
f g other : Hom[ f ] a' x' f' g'
Let be a displayed category, and be a product diagram in A diagram of the shape
is a total product diagram if it satisfies a displayed version of the universal property of the product.
record is-total-product
{Οβ : Hom p x} {Οβ : Hom p y}
(prod : is-product B Οβ Οβ)
(Οβ' : Hom[ Οβ ] p' x') (Οβ' : Hom[ Οβ ] p' y')
: Type (ob β βb β oe β βe)
where
no-eta-equality
open is-product prod
More explicitly, suppose that we had a triple displayed over as in the following diagram.
is a product, so there exists a unique that commutes with and
This leaves a conspicuous gap in the upstairs portion of the diagram between and is a total product precisely when we have a unique lift of that commutes with and
field
_,_β©'
β¨: (f' : Hom[ f ] a' x') (g' : Hom[ g ] a' y')
β Hom[ β¨ f , g β© ] a' p'
Οβββ¨β©': Οβ' β' β¨ f' , g' β©' β‘[ Οβββ¨β© ] f'
Οβββ¨β©': Οβ' β' β¨ f' , g' β©' β‘[ Οβββ¨β© ] g'
unique': {p1 : Οβ β other β‘ f} {p2 : Οβ β other β‘ g}
β {other' : Hom[ other ] a' p'}
β (p1' : (Οβ' β' other') β‘[ p1 ] f')
β (p2' : (Οβ' β' other') β‘[ p2 ] g')
β other' β‘[ unique p1 p2 ] β¨ f' , g' β©'
A total product of and in consists of a choice of a total product diagram.
record Total-product
{x y}
(prod : Product B x y)
(x' : Ob[ x ]) (y' : Ob[ y ])
: Type (ob β βb β oe β βe) where
no-eta-equality
open Product prod
field
: Ob[ apex ]
apex' : Hom[ Οβ ] apex' x'
Οβ' : Hom[ Οβ ] apex' y'
Οβ' : is-total-product has-is-product Οβ' Οβ'
has-is-total-product
open is-total-product has-is-total-product
Total products and total categoriesπ
module _
{ob βb oe βe} {B : Precategory ob βb}
{E : Displayed B oe βe}
where
open Cat.Reasoning B
open Displayed E
private module β«E = Cat.Reasoning (β« E)
As the name suggests, a total product diagram in induces to a product diagram in the total category of
is-total-productβtotal-is-product: β {x y p} {x' : Ob[ x ]} {y' : Ob[ y ]} {p' : Ob[ p ]}
β {Οβ : β«E.Hom (p , p') (x , x')} {Οβ : β«E.Hom (p , p') (y , y')}
β {prod : is-product B (Οβ .hom) (Οβ .hom)}
β is-total-product E prod (Οβ .preserves) (Οβ .preserves)
β is-product (β« E) Οβ Οβ
The proof is largely shuffling data about, so we elide the details.
{Οβ = Οβ} {Οβ = Οβ} {prod = prod} total-prod = β«prod where
is-total-productβtotal-is-product open is-product prod
open is-total-product total-prod
: is-product (β« E) Οβ Οβ
β«prod .is-product.β¨_,_β© f g =
β«prod .hom , g .hom β© β¨ f .preserves , g .preserves β©'
total-hom β¨ f .is-product.Οβββ¨β© =
β«prod
total-hom-path E Οβββ¨β© Οβββ¨β©'.is-product.Οβββ¨β© =
β«prod
total-hom-path E Οβββ¨β© Οβββ¨β©'.is-product.unique p1 p2 =
β«prod
total-hom-path E(unique (ap hom p1) (ap hom p2))
(unique' (ap preserves p1) (ap preserves p2))
Note that a product diagram in a total category does not necessarily yield a product diagram in the base category. For a counterexample, consider the following displayed category:
The total category is equivalent to the terminal category, and thus has products. However, the base category does not have products, as the uniqueness condition fails!