`f`

in Section 5.1 on page could have been defined as follows:
f:num->num; f(0) <= 0; f(n+1) <= (n+1)+f(n);We now have two rules for

`f`

. One for when `n=0`

and the other for when `n>0`

.
To evaluate `f(1)`

we use the second rule.
`f(1)`

matches the left hand side of the second rule with `n=0`

so to evaluate `f(1)`

we evaluate the right hand side of
the second rule with `n=0`

. This gives `(0+1)+f(0)`

which is 1+0 which gives 1.
Similarly,
to evaluate `f(2)`

we use the second rule.
`f(2)`

matches the left hand side of the second rule with `n=1`

so to evaluate `f(2)`

we evaluate the right hand side of
the second rule with `n=1`

. This gives `(1+1)+f(1)`

which is 2+1 which gives 3. etc.

s.danicic@gold.ac.uk

Sebastian Danicic BSc MSc PhD (Reader in Computer Science)

Dept of Computing, Goldsmiths, University of London, London SE14 6NW

Last updated 2010-12-29