module Order.Displayed where
Displayed posetsπ
As a special case of displayed categories, we can construct displayed posets: a poset displayed over written is a type-theoretic repackaging β so that fibrewise information is easier to recover β of the data of a poset and a monotone map
record Displayed {ββ βα΅£} β β' (P : Poset ββ βα΅£) : Type (lsuc (β β β') β ββ β βα΅£) where no-eta-equality private module P = Pr P field Ob[_] : P.Ob β Type β Rel[_] : β {x y} β x P.β€ y β Ob[ x ] β Ob[ y ] β Type β' β€-refl' : β {x} {x' : Ob[ x ]} β Rel[ P.β€-refl ] x' x' β€-thin' : β {x y} (f : x P.β€ y) {x' y'} β is-prop (Rel[ f ] x' y') β€-trans' : β {x y z} {x' : Ob[ x ]} {y' : Ob[ y ]} {z' : Ob[ z ]} β {f : x P.β€ y} {g : y P.β€ z} β Rel[ f ] x' y' β Rel[ g ] y' z' β Rel[ P.β€-trans f g ] x' z' β€-antisym' : β {x} {x' y' : Ob[ x ]} β Rel[ P.β€-refl ] x' y' β Rel[ P.β€-refl ] y' x' β x' β‘ y'
β€-antisym-over : β {x y} {f : x P.β€ y} {g : y P.β€ x} {x' y'} β Rel[ f ] x' y' β Rel[ g ] y' x' β PathP (Ξ» i β Ob[ P.β€-antisym f g i ]) x' y' β€-antisym-over {x = x} {f = f} {g} {x'} = transport (Ξ» i β {f : x P.β€ p i} {g : p i P.β€ x} {y' : Ob[ p i ]} β Rel[ f ] x' y' β Rel[ g ] y' x' β PathP (Ξ» j β Ob[ P.β€-antisym f g j ]) x' y') Ξ» r s β transport (Ξ» i β {f g : x P.β€ x} {y' : Ob[ x ]} β Rel[ P.β€-thin P.β€-refl f i ] x' y' β Rel[ P.β€-thin P.β€-refl g i ] y' x' β PathP (Ξ» j β Ob[ P.Ob-is-set _ _ refl (P.β€-antisym f g) i j ]) x' y') β€-antisym' r s where p = P.β€-antisym f g
module _ {β β' ββ βα΅£} {P : Poset ββ βα΅£} (D : Displayed β β' P) where private module D = Displayed D module P = Pr P
Analogously to a displayed category, where we can take pairs of an object and an object over to make a new category (the total space we can take total spaces of displayed posets to make a new poset.
β« : Poset _ _ β« .Poset.Ob = Ξ£ β P β D.Ob[_] β« .Poset._β€_ (x , x') (y , y') = Ξ£ (x P.β€ y) Ξ» f β D.Rel[ f ] x' y' β« .Poset.β€-thin = Ξ£-is-hlevel 1 P.β€-thin Ξ» f β D.β€-thin' f β« .Poset.β€-refl = P.β€-refl , D.β€-refl' β« .Poset.β€-trans (p , p') (q , q') = P.β€-trans p q , D.β€-trans' p' q' β« .Poset.β€-antisym (p , p') (q , q') = Ξ£-pathp (P.β€-antisym p q) (D.β€-antisym-over p' q')
Similarly, we can define fibre posets as a special case of fibre categories. Because posets are thin categories, we do not worry about most coherence conditions.
Fibre : β P β β Poset _ _ Fibre x .Poset.Ob = D.Ob[ x ] Fibre x .Poset._β€_ = D.Rel[ P.β€-refl ] Fibre x .Poset.β€-thin = D.β€-thin' P.β€-refl Fibre x .Poset.β€-refl = D.β€-refl' Fibre x .Poset.β€-trans p' q' = subst (Ξ» p β D.Rel[ p ] _ _) (P.β€-thin _ _) $ D.β€-trans' p' q' Fibre x .Poset.β€-antisym = D.β€-antisym'
There is an injection from any fibre poset to the total space that is an order embedding.
fibre-injα΅ : (x : β P β) β Monotone (Fibre x) β« fibre-injα΅ x .hom x' = x , x' fibre-injα΅ x .pres-β€ x'β€y' = P.β€-refl , x'β€y' fibre-injα΅-is-order-embedding : (x : β P β) β is-order-embedding (Fibre x) β« (apply (fibre-injα΅ x)) fibre-injα΅-is-order-embedding x = prop-ext (D.β€-thin' P.β€-refl) (β« .Poset.β€-thin) (fibre-injα΅ x .pres-β€) (Ξ» (p , p') β subst (Ξ» p β D.Rel[ p ] _ _) (P.β€-thin p _) p')