module Order.Instances.Product where
Products of posetsπ
Specialising the construction of pointwise orderings, we can show that the product of two partial orders is given by equipping the product of their underlying sets with an ordering given on components:
_Γα΅_ : β {o o' β β'} β Poset o β β Poset o' β' β Poset (o β o') (β β β') P Γα΅ Q = po module Γα΅ where module P = Pr P module Q = Pr Q po : Poset _ _ po .Poset.Ob = P.Ob Γ Q.Ob po .Poset._β€_ (x , x') (y , y') = x P.β€ y Γ x' Q.β€ y' po .Poset.β€-thin = hlevel 1 po .Poset.β€-refl = P.β€-refl , Q.β€-refl po .Poset.β€-trans (fβ€g , fβ€g') (gβ€h , gβ€h') = P.β€-trans fβ€g gβ€h , Q.β€-trans fβ€g' gβ€h' po .Poset.β€-antisym (fβ€g , fβ€g') (gβ€f , gβ€f') = ext $ P.β€-antisym fβ€g gβ€f , Q.β€-antisym fβ€g' gβ€f' {-# DISPLAY Γα΅.po a b = a Γα΅ b #-} infixr 20 _Γα΅_
fstα΅ : Monotone (P Γα΅ Q) P fstα΅ .hom = fst fstα΅ .pres-β€ = fst sndα΅ : Monotone (P Γα΅ Q) Q sndα΅ .hom = snd sndα΅ .pres-β€ = snd pairα΅ : β {o β} {R : Poset o β} β Monotone R P β Monotone R Q β Monotone R (P Γα΅ Q) pairα΅ f g .hom x = f # x , g # x pairα΅ f g .pres-β€ xβ€y = f .pres-β€ xβ€y , g .pres-β€ xβ€y
Itβs straightforward to show this really is the product in
Posets-has-products : β {o β} β has-products (Posets o β) Posets-has-products P Q .apex = P Γα΅ Q Posets-has-products P Q .Οβ = fstα΅ Posets-has-products P Q .Οβ = sndα΅ Posets-has-products P Q .has-is-product .β¨_,_β© = pairα΅ Posets-has-products P Q .has-is-product .Οβββ¨β© = trivial! Posets-has-products P Q .has-is-product .Οβββ¨β© = trivial! Posets-has-products P Q .has-is-product .unique Ξ± Ξ² = ext Ξ» x β Ξ± #β x , Ξ² #β x
As a related observation, we can show that the unique partial order on the set with one element is the terminal object in
Posets-terminal : β {o β} β Terminal (Posets o β) Posets-terminal .top = πα΅ Posets-terminal .hasβ€ P .centre .hom _ = lift tt Posets-terminal .hasβ€ P .centre .pres-β€ _ = lift tt Posets-terminal .hasβ€ P .paths f = trivial!