Large posets
module order-theory.large-posets where
Imports
open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.propositions open import foundation.sets open import foundation.universe-levels open import order-theory.large-preorders open import order-theory.posets open import order-theory.preorders
Idea
A large poset is a large preorder such that the restriction of the ordering relation to any particular universe level is antisymmetric
Definition
record Large-Poset (α : Level → Level) (β : Level → Level → Level) : UUω where constructor make-Large-Poset field large-preorder-Large-Poset : Large-Preorder α β antisymmetric-leq-Large-Poset : {l : Level} (x y : type-Large-Preorder large-preorder-Large-Poset l) → leq-Large-Preorder large-preorder-Large-Poset x y → leq-Large-Preorder large-preorder-Large-Poset y x → Id x y open Large-Poset public module _ {α : Level → Level} {β : Level → Level → Level} (X : Large-Poset α β) where type-Large-Poset : (l : Level) → UU (α l) type-Large-Poset = type-Large-Preorder (large-preorder-Large-Poset X) leq-Large-Poset-Prop : {l1 l2 : Level} → type-Large-Poset l1 → type-Large-Poset l2 → Prop (β l1 l2) leq-Large-Poset-Prop = leq-Large-Preorder-Prop (large-preorder-Large-Poset X) leq-Large-Poset : {l1 l2 : Level} → type-Large-Poset l1 → type-Large-Poset l2 → UU (β l1 l2) leq-Large-Poset = leq-Large-Preorder (large-preorder-Large-Poset X) is-prop-leq-Large-Poset : {l1 l2 : Level} (x : type-Large-Poset l1) (y : type-Large-Poset l2) → is-prop (leq-Large-Poset x y) is-prop-leq-Large-Poset = is-prop-leq-Large-Preorder (large-preorder-Large-Poset X) leq-eq-Large-Poset : {l1 : Level} {x y : type-Large-Poset l1} → (x = y) → leq-Large-Poset x y leq-eq-Large-Poset = leq-eq-Large-Preorder (large-preorder-Large-Poset X) refl-leq-Large-Poset : {l1 : Level} (x : type-Large-Poset l1) → leq-Large-Poset x x refl-leq-Large-Poset = refl-leq-Large-Preorder (large-preorder-Large-Poset X) transitive-leq-Large-Poset : {l1 l2 l3 : Level} (x : type-Large-Poset l1) (y : type-Large-Poset l2) (z : type-Large-Poset l3) → leq-Large-Poset y z → leq-Large-Poset x y → leq-Large-Poset x z transitive-leq-Large-Poset = transitive-leq-Large-Preorder (large-preorder-Large-Poset X) preorder-Large-Poset : (l : Level) → Preorder (α l) (β l l) pr1 (preorder-Large-Poset l) = type-Large-Poset l pr1 (pr2 (preorder-Large-Poset l)) = leq-Large-Poset-Prop pr1 (pr2 (pr2 (preorder-Large-Poset l))) = refl-leq-Large-Poset pr2 (pr2 (pr2 (preorder-Large-Poset l))) = transitive-leq-Large-Poset poset-Large-Poset : (l : Level) → Poset (α l) (β l l) pr1 (poset-Large-Poset l) = preorder-Large-Poset l pr2 (poset-Large-Poset l) = antisymmetric-leq-Large-Poset X set-Large-Poset : (l : Level) → Set (α l) set-Large-Poset l = set-Poset (poset-Large-Poset l) is-set-type-Large-Poset : {l : Level} → is-set (type-Large-Poset l) is-set-type-Large-Poset {l} = is-set-type-Poset (poset-Large-Poset l)