# Principal upper sets of large posets
```agda
module order-theory.principal-upper-sets-large-posets where
```
<details><summary>Imports</summary>
```agda
open import foundation.dependent-pair-types
open import foundation.identity-types
open import foundation.logical-equivalences
open import foundation.universe-levels
open import order-theory.large-posets
open import order-theory.large-subposets
open import order-theory.large-subpreorders
open import order-theory.similarity-of-elements-large-posets
```
</details>
## Idea
The **principal upper set** `↑{x}` of an element `x` of a
[large poset](order-theory.large-posets.md) `P` is the
[large subposet](order-theory.large-subposets.md) consisting of all elements
`x ≤ y` in `P`.
Two elements `x` and `y` in a large poset `P` are
[similar](order-theory.similarity-of-elements-large-posets.md) if and only if
they have the same principal upper sets, and if `x` and `y` are of the same
[universe level](foundation.universe-levels.md), then `x` and `y` are equal if
and only if they have the same principal upper sets. To see this, note that if
`↑{x} = ↑{y}`, then we have the implications `(x ≤ x) → (x ≤ y)` and
`(y ≤ y) → (y ≤ x)`.
## Definitions
### The predicate of being a principal upper set of an element
```agda
module _
{α : Level → Level} {β : Level → Level → Level} (P : Large-Poset α β)
{l1 : Level} (x : type-Large-Poset P l1)
{γ : Level → Level} (S : Large-Subposet γ P)
where
is-principal-upper-set-Large-Subposet : UUω
is-principal-upper-set-Large-Subposet =
{l : Level} (y : type-Large-Poset P l) →
leq-Large-Poset P y x ↔ is-in-Large-Subposet P S y
```
### The principal upper set of an element
```agda
module _
{α : Level → Level} {β : Level → Level → Level} (P : Large-Poset α β)
{l1 : Level} (x : type-Large-Poset P l1)
where
large-subpreorder-principal-upper-set-element-Large-Poset :
Large-Subpreorder (λ l → β l1 l) (large-preorder-Large-Poset P)
large-subpreorder-principal-upper-set-element-Large-Poset y =
leq-prop-Large-Poset P x y
is-closed-under-sim-principal-upper-set-element-Large-Poset :
is-closed-under-sim-Large-Subpreorder P
( large-subpreorder-principal-upper-set-element-Large-Poset)
is-closed-under-sim-principal-upper-set-element-Large-Poset y z p q l =
transitive-leq-Large-Poset P x y z p l
principal-upper-set-element-Large-Poset : Large-Subposet (λ l → β l1 l) P
large-subpreorder-Large-Subposet principal-upper-set-element-Large-Poset =
large-subpreorder-principal-upper-set-element-Large-Poset
is-closed-under-sim-Large-Subposet principal-upper-set-element-Large-Poset =
is-closed-under-sim-principal-upper-set-element-Large-Poset
```
## Properties
### The principal upper sets `↑{x}` and `↑{y}` have the same elements if and only if `x` and `y` are similar
```agda
module _
{α : Level → Level} {β : Level → Level → Level} (P : Large-Poset α β)
{l1 l2 : Level} {x : type-Large-Poset P l1} {y : type-Large-Poset P l2}
where
sim-has-same-elements-principal-upper-set-element-Large-Poset :
has-same-elements-Large-Subposet P
( principal-upper-set-element-Large-Poset P x)
( principal-upper-set-element-Large-Poset P y) →
sim-Large-Poset P x y
pr1 (sim-has-same-elements-principal-upper-set-element-Large-Poset H) =
backward-implication (H y) (refl-leq-Large-Poset P y)
pr2 (sim-has-same-elements-principal-upper-set-element-Large-Poset H) =
forward-implication (H x) (refl-leq-Large-Poset P x)
has-same-elements-principal-upper-set-element-sim-Large-Poset :
sim-Large-Poset P x y →
has-same-elements-Large-Subposet P
( principal-upper-set-element-Large-Poset P x)
( principal-upper-set-element-Large-Poset P y)
pr1
( has-same-elements-principal-upper-set-element-sim-Large-Poset (H , K) z)
( p) =
transitive-leq-Large-Poset P y x z p K
pr2
( has-same-elements-principal-upper-set-element-sim-Large-Poset (H , K) z)
( q) =
transitive-leq-Large-Poset P x y z q H
```
### For two elements `x` and `y` of a large poset of the same universe level, if the principal upper sets `↑{x}` and `↑{y}` have the same elements, then `x` and `y` are equal
```agda
module _
{α : Level → Level} {β : Level → Level → Level} (P : Large-Poset α β)
{l1 : Level} (x y : type-Large-Poset P l1)
where
eq-has-same-elements-principal-upper-set-element-Large-Poset :
has-same-elements-Large-Subposet P
( principal-upper-set-element-Large-Poset P x)
( principal-upper-set-element-Large-Poset P y) →
x = y
eq-has-same-elements-principal-upper-set-element-Large-Poset H =
antisymmetric-leq-Large-Poset P x y
( pr1 (sim-has-same-elements-principal-upper-set-element-Large-Poset P H))
( pr2 (sim-has-same-elements-principal-upper-set-element-Large-Poset P H))
```