{-# OPTIONS --rewriting #-}
open import Agda.Primitive using (Level;lsuc;_⊔_;lzero)
open import Lib
open import Interval
open import Proposition
open import Cofibs
open import Kan
module Nat where
data Nat {l : Level} : Set l where
Z : Nat
S : Nat{l} → Nat
tpred : ∀ {l : Level} → Nat{l} → Nat{l}
tpred Z = Z
tpred (S x) = x
decNat : {l : Level} (x y : Nat{l}) → (x == y) ∨ ((x == y) → ⊥{l})
decNat Z Z = inl id
decNat Z (S y) = inr (\ ())
decNat (S x) Z = inr (\ ())
decNat (S x) (S y) = case (\ p → inl (ap S p)) (λ q → inr (\ p → q (ap tpred p))) (\ _ _ → trunc) (decNat x y)