| 0 | : | nat |
| s | : | [nat] ⟶ nat |
| + | : | [nat × nat] ⟶ nat |
| * | : | [nat × nat] ⟶ nat |
| rec | : | [nat × nat × nat → nat → nat] ⟶ nat |
| x | : | nat |
| y | : | nat |
| U | : | nat |
| F | : | nat → nat → nat |
| +(x, 0) | ⇒ | x |
| +(x, s(y)) | ⇒ | s(+(x, y)) |
| rec(0, U, F) | ⇒ | U |
| rec(s(x), U, F) | ⇒ | F · x · rec(x, U, F) |
| *(x, y) | ⇒ | rec(y, 0, λz1:nat.λz2:nat.+(x, z2)) |