module DepthComonads.Nat.Properties where

open import DepthComonads.Prelude
open import DepthComonads.Nat
open import DepthComonads.Algebra
open import DepthComonads.Bool

private variable n m : 

+-assoc : Associative _+_
+-assoc zero    y z = refl
+-assoc (suc x) y z = cong suc (+-assoc x y z)

+0 :  x  x + 0  x
+0 zero = refl
+0 (suc x) = cong suc (+0 x)

pred :   
pred zero = zero
pred (suc n) = n

suc-inj : suc n  suc m  n  m
suc-inj = cong pred

is-zero :   Bool
is-zero zero    = true
is-zero (suc n) = false

zero≢suc : zero  suc n
zero≢suc = true≢false  cong is-zero