module Signature.Fin where

open import Stdlib
open import Signature

module Model where

  data Fin :   Set where
    fz :  n  Fin (suc n)
    fs :  n  Fin n  Fin (suc n)

ΣFin : Sig 
ΣFin = OpFin   {n}  ArFin n) /  {n}{op}  TyFin n op)
  where OpFin :   Set
        OpFin 0 = 
        OpFin (suc n) =   

        ArFin : (n : )  OpFin n  Set
        ArFin 0 ()
        ArFin (suc n) (inj₁ tt) = 
        ArFin (suc n) (inj₂ tt) = 

        TyFin : (n : )(op : OpFin n)  ArFin n op  
        TyFin 0 ()
        TyFin (suc n) _ _ = n

Fin :   Set
Fin n = μ ΣFin n

fze : ∀{n}  Fin (suc n)
fze =  inj₁ tt ,  bot  ⊥-elim bot) 

fsu : ∀{n}  Fin n  Fin (suc n)
fsu k =  inj₂ tt ,  { tt  k })