# Large posets
```agda
module order-theory.large-posets where
```
<details><summary>Imports</summary>
```agda
open import category-theory.isomorphisms-in-large-categories
open import category-theory.isomorphisms-in-precategories
open import category-theory.large-categories
open import category-theory.large-precategories
open import category-theory.precategories
open import foundation.dependent-pair-types
open import foundation.identity-types
open import foundation.large-binary-relations
open import foundation.logical-equivalences
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
```
</details>
## Idea
A **large poset** is a [large preorder](order-theory.large-preorders.md) such
that the restriction of the ordering relation to any particular universe level
is antisymmetric.
## Definition
### Large posets
```agda
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 :
is-antisymmetric-Large-Relation
( type-Large-Preorder large-preorder-Large-Poset)
( leq-Large-Preorder large-preorder-Large-Poset)
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-prop-Large-Poset : Large-Relation-Prop β (type-Large-Poset)
leq-prop-Large-Poset = leq-prop-Large-Preorder (large-preorder-Large-Poset X)
leq-Large-Poset : Large-Relation β (type-Large-Poset)
leq-Large-Poset = leq-Large-Preorder (large-preorder-Large-Poset X)
is-prop-leq-Large-Poset :
is-prop-Large-Relation (type-Large-Poset) (leq-Large-Poset)
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 :
is-reflexive-Large-Relation type-Large-Poset leq-Large-Poset
refl-leq-Large-Poset =
refl-leq-Large-Preorder (large-preorder-Large-Poset X)
transitive-leq-Large-Poset :
is-transitive-Large-Relation type-Large-Poset leq-Large-Poset
transitive-leq-Large-Poset =
transitive-leq-Large-Preorder (large-preorder-Large-Poset X)
```
### The predicate on large categories of being a large poset
A [large category](category-theory.large-categories.md) is said to be a **large
poset** if `hom X Y` is a proposition for every two objects `X` and `Y`.
**Lemma**. _Any large category of which the hom-[sets](foundation-core.sets.md)
are [propositions](foundation-core.propositions.md) is a large poset._
**Proof:** The condition that `C` is a large poset immediately gives us a
[large precategory](category-theory.large-precategories.md). The interesting
part of the claim is therefore that this large preorder is antisymmetric.
Consider two objects `X` and `Y` in `C`, and two morphisms `f : X → Y` and
`g : Y → X`. Since there is at most one morphism between any two objects, it
follows immediately that `f ∘ g = id` and `g ∘ f = id`. Therefore we have an
isomorphism `f : X ≅ Y`. Since `C` was assumed to be a category, this implies
that `X = Y`.
```agda
module _
{α : Level → Level} {β : Level → Level → Level}
(C : Large-Category α β)
where
is-large-poset-Large-Category : UUω
is-large-poset-Large-Category =
is-large-preorder-Large-Precategory (large-precategory-Large-Category C)
is-antisymmetric-is-large-poset-Large-Category :
is-large-poset-Large-Category →
is-antisymmetric-Large-Relation
( obj-Large-Category C)
( hom-Large-Category C)
is-antisymmetric-is-large-poset-Large-Category H X Y f g =
eq-iso-Large-Category C X Y
( f , g , eq-is-prop (H Y Y) , eq-is-prop (H X X))
large-poset-Large-Category :
is-large-poset-Large-Category → Large-Poset α β
large-preorder-Large-Poset (large-poset-Large-Category H) =
large-preorder-Large-Precategory (large-precategory-Large-Category C) H
antisymmetric-leq-Large-Poset (large-poset-Large-Category H) =
is-antisymmetric-is-large-poset-Large-Category H
```
### Small posets from large posets
```agda
module _
{α : Level → Level} {β : Level → Level → Level} (X : Large-Poset α β)
where
preorder-Large-Poset : (l : Level) → Preorder (α l) (β l l)
preorder-Large-Poset = preorder-Large-Preorder (large-preorder-Large-Poset X)
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 X l)
is-set-type-Large-Poset {l} = is-set-type-Poset (poset-Large-Poset l)
```
## Properties
### Large posets are large categories
```agda
module _
{α : Level → Level} {β : Level → Level → Level} (P : Large-Poset α β)
where
large-precategory-Large-Poset : Large-Precategory α β
large-precategory-Large-Poset =
large-precategory-Large-Preorder (large-preorder-Large-Poset P)
precategory-Large-Poset : (l : Level) → Precategory (α l) (β l l)
precategory-Large-Poset =
precategory-Large-Precategory large-precategory-Large-Poset
is-large-category-Large-Poset :
is-large-category-Large-Precategory large-precategory-Large-Poset
is-large-category-Large-Poset {l} x y =
is-equiv-has-converse-is-prop
( is-set-type-Large-Poset P x y)
( is-prop-iso-is-prop-hom-Precategory
( precategory-Large-Poset l)
( is-prop-leq-Large-Poset P x y))
( λ f →
antisymmetric-leq-Large-Poset P x y
( hom-iso-Precategory (precategory-Large-Poset l) f)
( hom-inv-iso-Precategory (precategory-Large-Poset l) f))
large-category-Large-Poset : Large-Category α β
large-precategory-Large-Category large-category-Large-Poset =
large-precategory-Large-Poset
is-large-category-Large-Category large-category-Large-Poset =
is-large-category-Large-Poset
is-large-poset-large-category-Large-Poset :
is-large-poset-Large-Category large-category-Large-Poset
is-large-poset-large-category-Large-Poset =
is-prop-leq-Large-Poset P
```