| 0 | : | a |
| cons | : | [b × c] ⟶ c |
| d | : | [a × a] ⟶ c |
| false | : | c |
| filter | : | [b → c × c] ⟶ c |
| gtr | : | [a × a] ⟶ c |
| if | : | [c × c × c] ⟶ c |
| len | : | [c] ⟶ a |
| nil | : | c |
| s | : | [a] ⟶ a |
| sub | : | [a × a] ⟶ a |
| true | : | c |
| X | : | c |
| Y | : | c |
| U | : | c |
| V | : | c |
| W | : | a |
| P | : | a |
| X1 | : | a |
| Y1 | : | a |
| U1 | : | a |
| V1 | : | a |
| W1 | : | a |
| P1 | : | a |
| X2 | : | a |
| Y2 | : | a |
| U2 | : | b |
| V2 | : | c |
| I2 | : | b → c |
| J2 | : | b → c |
| X3 | : | b |
| Y3 | : | c |
| if(true, X, Y) | ⇒ | X |
| if(false, U, V) | ⇒ | V |
| sub(W, 0) | ⇒ | W |
| sub(s(P), s(X1)) | ⇒ | sub(P, X1) |
| gtr(0, Y1) | ⇒ | false |
| gtr(s(U1), 0) | ⇒ | true |
| gtr(s(V1), s(W1)) | ⇒ | gtr(V1, W1) |
| d(P1, 0) | ⇒ | true |
| d(s(X2), s(Y2)) | ⇒ | if(gtr(X2, Y2), false, d(s(X2), sub(Y2, X2))) |
| len(nil) | ⇒ | 0 |
| len(cons(U2, V2)) | ⇒ | s(len(V2)) |
| filter(I2, nil) | ⇒ | nil |
| filter(J2, cons(X3, Y3)) | ⇒ | if(J2 · X3, cons(X3, filter(J2, Y3)), filter(J2, Y3)) |