module Order.Instances.Nat where
The usual ordering on natural numbers🔗
private module P = Poset
open is-meet
open is-join
open Bottom
open Meet
open Join
This module deals with noting down facts about the usual ordering on
the set of natural numbers; most of the proofs are in the modules Data.Nat.Properties
and
Data.Nat.Order
.
We have already shown that the usual ordering (or “numeric”) ordering on the natural numbers is a poset:
: Poset lzero lzero
Nat-poset .P.Ob = Nat
Nat-poset .P._≤_ = _≤_
Nat-poset .P.≤-thin = ≤-is-prop
Nat-poset .P.≤-refl = ≤-refl
Nat-poset .P.≤-trans = ≤-trans
Nat-poset .P.≤-antisym = ≤-antisym Nat-poset
We’ve also defined procedures for computing the meets and joins of pairs of natural numbers:
: ∀ x y → Meet Nat-poset x y
Nat-meets .glb = min x y
Nat-meets x y .has-meet .meet≤l = min-≤l x y
Nat-meets x y .has-meet .meet≤r = min-≤r x y
Nat-meets x y .has-meet .greatest = min-univ x y
Nat-meets x y
: ∀ x y → Join Nat-poset x y
Nat-joins .lub = max x y
Nat-joins x y .has-join .l≤join = max-≤l x y
Nat-joins x y .has-join .r≤join = max-≤r x y
Nat-joins x y .has-join .least = max-univ x y Nat-joins x y
It’s straightforward to show that this order is bounded below, since we have for any
: Bottom Nat-poset
Nat-bottom .bot = 0
Nat-bottom .has-bottom x = 0≤x Nat-bottom
However, it’s not bounded above:
: ¬ Top Nat-poset
Nat-no-top record { top = greatest ; has-top = is-greatest } =
Nat-no-top let
: suc greatest ≤ greatest
rem₁ = is-greatest (suc greatest)
rem₁ in ¬sucx≤x _ rem₁
This is also a decidable total order; we show totality by proving weak totality, since we already know that the ordering is decidable.
: is-decidable-total-order Nat-poset
Nat-is-dec-total = from-weakly-total (≤-is-weakly-total _ _) Nat-is-dec-total