Next: Rewrites Answer 6, Previous: Rewrites Answer 4, Up: Answers to Exercises

If ‘`x`’ is the sum ‘`a + b`’, then ``nterms(``x``)`' must
be ``nterms(``a``)`' plus ``nterms(``b``)`'. If ‘`x`’
is not a sum, then ``nterms(``x``)`' = 1.

[ nterms(a + b) := nterms(a) + nterms(b), nterms(x) := 1 ]

Here we have taken advantage of the fact that earlier rules always
match before later rules; ‘`nterms(x)`’ will only be tried if we
already know that ‘`x`’ is not a sum.