module Chapter5.AlgebraicOrnament.Examples.Interval where

open import Data.Unit
open import Data.Nat
open import Data.Fin
open import Data.Product

open import Relation.Binary.PropositionalEquality

open import Chapter2.IDesc
open import Chapter2.IDesc.Fixpoint
open import Chapter2.IDesc.InitialAlgebra

open import Chapter2.IDesc.Examples.Nat

import  Chapter5.AlgebraicOrnament

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


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

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

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