| cons | : | [b × c] ⟶ c |
| false | : | a |
| filter | : | [b → a × c] ⟶ c |
| filtersub | : | [a × b → a × c] ⟶ c |
| nil | : | c |
| true | : | a |
| F | : | b → a |
| Z | : | b → a |
| U | : | b |
| V | : | c |
| I | : | b → a |
| P | : | b |
| X1 | : | c |
| Z1 | : | b → a |
| U1 | : | b |
| V1 | : | c |
| filter(F, nil) | ⇒ | nil |
| filter(Z, cons(U, V)) | ⇒ | filtersub(Z · U, Z, cons(U, V)) |
| filtersub(true, I, cons(P, X1)) | ⇒ | cons(P, filter(I, X1)) |
| filtersub(false, Z1, cons(U1, V1)) | ⇒ | filter(Z1, V1) |