# Page 226

**Location:** Chapter 24, solution to Problem 7

## The issue

*Note*: the exponentiating bird is represented in the following with the symbol \(\varepsilon\).

The exponentiating bird is said to be able to evaluate
the expression \(n^m\) for *any* two natural numbers \(n\) and \(m\).

Still, what is its behaviour when \(n=m=0\)? Using the definition of \(\varepsilon\) and applying the rules, one finds that

\[ \varepsilon\,\overline{0}\,\overline{0} = \overline{1}\;, \]i.e. \(0^0=1\), against the mathematical fact that the result is undefined.

## Possible workarounds

Dealing separately with the case \(m=n=0\) in the expression simply requires
to stack another zero-tester \(Z\) in front of the given formula for \(\varepsilon\).
Still, what should the bird return in that case? An option would perhaps be that
of introducing a special *number bird* standing for "undefined", thus enlarging the set
over which the arithmetic birds operate much in the same way as `nan`

and `inf`

are treated by the arithmetic units within most CPUs.