packages feed

MiniAgda-0.2014.1.9: test/succeed/LargeElim.ma

-- 2010-10-16

data Nat : Set
{ zero : Nat
; succ : Nat -> Nat
}

fun add : Nat -> Nat -> Nat
{ add  zero    n = n
; add (succ m) n = succ (add m n)
}

fun Sum : Nat -> Set
{ Sum zero     = Nat
; Sum (succ n) = Nat -> Sum n
}

fun sum : (n : Nat) -> Nat -> Sum n 
{ sum zero     x = x
; sum (succ n) x = \ y -> sum n (add x y)
}

let one   : Nat = succ zero
let two   : Nat = succ one
let three : Nat = succ two
let four  : Nat = succ three

eval let six : Nat = sum four three two one zero zero