Go backward to 3 Sets, Relations, and FunctionsGo up to TopGo forward to 5 Induction and Recursion |

Much of our knowledge about numbers consists of rules (heuristics, methods,
algorithms) that tell us how to compute the values of arithmetic expressions
("what is (27*56)/13?") or solve equations for some unknowns ("for which
`x` does `x`^{2}+`x`=15.75 hold?"). This is what we have
been trained in school and practice in daily life. However when being asked
"What exactly *is* a (natural, integer, rational, real, complex)
number?" or "*Why* is `x`+`y` = `y`+`x`?", our
school wisdom does usually not suffice to give a satisfactory answer.

The goal of this chapter is to provide some deeper *insight* into the
hierarchy of number domains, i.e., to look below the surface of arithmetic
rules and to shed some light on the internal structure of the domains. Much of
what we have been taught to believe in school can here be easily justified; it
is not necessary to learn a lot of rules by heart if one is able to derive
them on demand from a few basic principles.

We will focus in this chapter on a *constructive* approach that
explicitly defines a domain by concepts that have an algorithmic
interpretation (with set theory as the fundamental basis). The constructions
themselves are interesting from the computer science point of view, because
they illustrate how a particular hierarchy of datatypes is systematically
developed. Another approach that demonstrates some more abstract mathematical
techniques will be discussed in Chapter *Relations*.

Author: Wolfgang Schreiner

Last Modification: October 4, 1999