| min | : | [nat × nat] ⟶ nat |
| 0 | : | nat |
| s | : | [nat] ⟶ nat |
| nul | : | [nat → nat × nat] ⟶ nat |
| if | : | [nat × nat × nat] ⟶ nat |
| find0 | : | [nat → nat × nat × nat] ⟶ nat |
| X | : | nat |
| Y | : | nat |
| Z | : | nat |
| F | : | nat → nat |
| min(s(X), s(Y)) | ⇒ | min(X, Y) |
| min(X, 0) | ⇒ | 0 |
| min(0, X) | ⇒ | 0 |
| min(nul(F, Y), Z) | ⇒ | nul(F, min(Y, Z)) |
| nul(F, X) | ⇒ | find0(F, 0, X) |
| find0(F, X, 0) | ⇒ | X |
| find0(F, X, s(Y)) | ⇒ | if(F · X, find0(F, s(X), Y), X) |
| if(s(Z), X, Y) | ⇒ | X |
| if(0, X, Y) | ⇒ | Y |