open import NeilPrelude1
module Ord1 where
infix 3 _≤_ _≥_
infix 8 _<=_ _<_ _>=_ _>_
data OrdU : Set where
bool : OrdU
nat : OrdU
ordSet : OrdU → Set
ordSet bool = Bool
ordSet nat = ℕ
_<=_ : {t : OrdU} → ordSet t → ordSet t → Bool
_<=_ {bool} false _ = true
_<=_ {bool} true b = b
_<=_ {nat} O _ = true
_<=_ {nat} (S _) O = false
_<=_ {nat} (S m) (S n) = m <= n
_>=_ : {t : OrdU} → ordSet t → ordSet t → Bool
x >= y = y <= x
_>_ : {t : OrdU} → ordSet t → ordSet t → Bool
x > y = not (x <= y)
_<_ : {t : OrdU} → ordSet t → ordSet t → Bool
x < y = not (x >= y)
data _≤_ : {u : OrdU} → ordSet u → ordSet u → Set where
refl : {b : Bool} -> b ≤ b
f≤t : false ≤ true
≤O : {n : ℕ} -> O ≤ n
≤S : {m n : ℕ} -> m ≤ n -> S m ≤ S n
_≥_ : {u : OrdU} → ordSet u → ordSet u → Set
a ≥ b = b ≤ a