author | haftmann |
Wed, 28 May 2008 11:05:47 +0200 | |
changeset 26999 | 284c871d3acb |
permissions | -rw-r--r-- |
haftmann@26999 | 1 |
structure Nat = |
haftmann@26999 | 2 |
struct |
haftmann@26999 | 3 |
|
haftmann@26999 | 4 |
datatype nat = Dig1 of nat | Dig0 of nat | One_nat | Zero_nat; |
haftmann@26999 | 5 |
|
haftmann@26999 | 6 |
fun plus_nat (Dig1 m) (Dig1 n) = Dig0 (plus_nat (plus_nat m n) One_nat) |
haftmann@26999 | 7 |
| plus_nat (Dig1 m) (Dig0 n) = Dig1 (plus_nat m n) |
haftmann@26999 | 8 |
| plus_nat (Dig0 m) (Dig1 n) = Dig1 (plus_nat m n) |
haftmann@26999 | 9 |
| plus_nat (Dig0 m) (Dig0 n) = Dig0 (plus_nat m n) |
haftmann@26999 | 10 |
| plus_nat (Dig1 m) One_nat = Dig0 (plus_nat m One_nat) |
haftmann@26999 | 11 |
| plus_nat One_nat (Dig1 n) = Dig0 (plus_nat n One_nat) |
haftmann@26999 | 12 |
| plus_nat (Dig0 m) One_nat = Dig1 m |
haftmann@26999 | 13 |
| plus_nat One_nat (Dig0 n) = Dig1 n |
haftmann@26999 | 14 |
| plus_nat m Zero_nat = m |
haftmann@26999 | 15 |
| plus_nat Zero_nat n = n; |
haftmann@26999 | 16 |
|
haftmann@26999 | 17 |
end; (*struct Nat*) |