quox/examples/nat.quox

35 lines
759 B
Text
Raw Normal View History

2023-04-01 13:16:30 -04:00
defω dup- : 1. → [ω.] =
λ n ⇒
case1 n return [ω.] of {
zero ⇒ [zero];
succ _, 1.d ⇒
case1 d return [ω.] of { [d] ⇒ [succ d] }
};
defω plus : 1. → 1. =
λ m n ⇒
case1 m return of {
zero ⇒ n;
succ _, 1.p ⇒ succ p
};
defω times-ω : 1. → ω. =
λ m n ⇒
case1 m return of {
zero ⇒ zero;
succ _, 1.t ⇒ plus n t
};
defω times : 1. → 1. =
λ m n ⇒
case1 dup- n return of {
[n] ⇒ times-ω m n
};
defω pred : 1. =
λ n ⇒
case1 n return of { zero ⇒ zero; succ n ⇒ n };
def0 pred-succ : ω.(n : ) → pred (succ n) ≡ n : =
λ n ⇒ δ i ⇒ n;