module Chapter10.AlgebraicOrnament.Examples.Interval where

open import Level hiding (zero ; suc)

open import Data.Unit
open import Data.Nat
open import Data.Fin hiding (lift)
open import Data.Product

open import Relation.Binary.PropositionalEquality

open import Chapter6.IDesc
open import Chapter6.IDesc.Fixpoint
open import Chapter6.IDesc.InitialAlgebra

open import Chapter6.IDesc.Examples.Nat

import  Chapter10.AlgebraicOrnament

α+m : Nat  Alg NatD  _  Nat)
α+m m {tt} (zero , lift tt) = m
α+m m {tt} (suc zero , n , lift tt) = su n
α+m m {tt} (suc (suc ()) , _)


[_∶_] : Nat  Nat  Set
[ m  n ] = μ algOrnD (tt , n)
  where open Chapter10.AlgebraicOrnament.Func NatD (α+m m)

ize : ∀{m}  [ m  m ] 
ize =  (zero , lift tt) , refl , lift tt 

isu : ∀{m n}  [ m  n ]  [ m  su n ]
isu {m}{n} ik =  (suc zero , n , lift tt) , refl , ik , lift tt