Section nat_hsOrd.
#[local]
Instance nat_isProset : isProset nat :=
{ leProp := Nat.le
; Proset_isSetoid := mkSetoid_from_eq
; leProp_PreOrder := Nat.le_preorder
; leProp_PartialOrder := Nat.le_partialorder
}.
Fixpoint nat_compare (x : nat) (y : nat) {struct x} : comparison :=
match x, y with
| O, O => Eq
| O, S y' => Lt
| S x', O => Gt
| S x', S y' => nat_compare x' y'
end.

Lemma nat_compare_lt (x : nat) (y : nat)
(hyp_lt : nat_compare x y = Lt)
: x <= y /\ x <> y.