| cons | : | [nat × list] ⟶ list |
| map | : | [nat → nat × list] ⟶ list |
| merge | : | [list × list × list] ⟶ list |
| nil | : | list |
| X | : | list |
| Y | : | nat |
| U | : | list |
| V | : | list |
| W | : | nat |
| P | : | list |
| X1 | : | list |
| Y1 | : | list |
| G1 | : | nat → nat |
| H1 | : | nat → nat |
| W1 | : | nat |
| P1 | : | list |
| merge(nil, nil, X) | ⇒ | X |
| merge(nil, cons(Y, U), V) | ⇒ | merge(U, nil, cons(Y, V)) |
| merge(cons(W, P), X1, Y1) | ⇒ | merge(X1, P, cons(W, Y1)) |
| map(G1, nil) | ⇒ | nil |
| map(H1, cons(W1, P1)) | ⇒ | cons(H1 · W1, map(H1, P1)) |