0 | : | d |
cons | : | [d × c] ⟶ c |
false | : | a |
height | : | d → d |
if | : | [a × d] ⟶ d |
le | : | [d × d] ⟶ a |
map | : | [d → d × c] ⟶ c |
maxlist | : | [d × c] ⟶ d |
nil | : | c |
node | : | [b × c] ⟶ d |
s | : | [d] ⟶ d |
true | : | a |
F | : | d → d |
Z | : | d → d |
U | : | d |
V | : | c |
W | : | d |
P | : | d |
X1 | : | d |
Y1 | : | d |
U1 | : | d |
V1 | : | d |
W1 | : | c |
P1 | : | d |
X2 | : | b |
Y2 | : | c |
map(F, nil) | ⇒ | nil |
map(Z, cons(U, V)) | ⇒ | cons(Z · U, map(Z, V)) |
le(0, W) | ⇒ | true |
le(s(P), 0) | ⇒ | false |
le(s(X1), s(Y1)) | ⇒ | le(X1, Y1) |
maxlist(U1, cons(V1, W1)) | ⇒ | if(le(U1, V1), maxlist(V1, W1)) |
maxlist(P1, nil) | ⇒ | P1 |
height · node(X2, Y2) | ⇒ | s(maxlist(0, map(height, Y2))) |