| 0 | : | a |
| asort | : | [b] ⟶ b |
| cons | : | [a × b] ⟶ b |
| dsort | : | [b] ⟶ b |
| insert | : | [a → a → a × a → a → a × b × a] ⟶ b |
| max | : | a → a → a |
| min | : | a → a → a |
| nil | : | b |
| s | : | [a] ⟶ a |
| sort | : | [a → a → a × a → a → a × b] ⟶ b |
| F | : | a → a → a |
| Z | : | a → a → a |
| G | : | a → a → a |
| H | : | a → a → a |
| W | : | a |
| P | : | b |
| F1 | : | a → a → a |
| Z1 | : | a → a → a |
| U1 | : | a |
| H1 | : | a → a → a |
| I1 | : | a → a → a |
| P1 | : | a |
| X2 | : | a |
| Y2 | : | b |
| U2 | : | a |
| V2 | : | a |
| W2 | : | a |
| P2 | : | a |
| X3 | : | a |
| Y3 | : | a |
| U3 | : | a |
| V3 | : | a |
| W3 | : | b |
| P3 | : | b |
| sort(F, Z, nil) | ⇒ | nil |
| sort(G, H, cons(W, P)) | ⇒ | insert(G, H, sort(G, H, P), W) |
| insert(F1, Z1, nil, U1) | ⇒ | cons(U1, nil) |
| insert(H1, I1, cons(P1, Y2), X2) | ⇒ | cons(H1 · P1 · X2, insert(H1, I1, Y2, I1 · P1 · X2)) |
| max · 0 · U2 | ⇒ | U2 |
| max · V2 · 0 | ⇒ | V2 |
| max · s(W2) · s(P2) | ⇒ | max · W2 · P2 |
| min · 0 · X3 | ⇒ | 0 |
| min · Y3 · 0 | ⇒ | 0 |
| min · s(U3) · s(V3) | ⇒ | min · U3 · V3 |
| asort(W3) | ⇒ | sort(min, max, W3) |
| dsort(P3) | ⇒ | sort(max, min, P3) |