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

# 4 Numbers

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 x2+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.

• 4.1 The Natural Numbers
• 4.2 The Integer Numbers
• 4.3 The Rational Numbers
• 4.4 The Real Numbers
• 4.5 The Complex Numbers
• 4.6 Relationships between Number Domains
• 4.7 Arithmetic Notions

• Author: Wolfgang Schreiner
Last Modification: October 4, 1999