module Ind.
import Prelude.
-- | Defines an natural inductive type, which can be either `Zero`,
-- or it's successor `Succ`, which takes the previous and returns the
-- next natural number.
inductive data Nat where
Zero : Nat,
Succ : Nat -> Nat.
-- | Defines a simple sum aritimetic function which sums with church
-- encoding.
+ : Nnat -> Nat -> Nat := \a, b ->
elim a of
Zero => Zero,
Succ n => Succ (+ n b).
@eval + (Succ Zero) Zero.
@type Succ (Succ Zero).