As a first-year undergraduate, I took a course that was based upon material similar to that which is covered in the early chapters of this book. It consisted of an introduction to symbolic logic, followed by basic set theory up to the Schröder-Bernstein theorem, and it went on to deal with relations, functions, binary operations etc. The aim of that course was identical to the stated purpose of this book: that is, to develop the necessary language, methodology and conceptual framework for subsequent courses in real analysis, topology and algebra.

However, this 3^{rd }edition of Steven Krantz’s book goes some way beyond the very specific purpose of laying foundations that are common to many later courses. For example, chapter 7 (More on the Real Number System) can be seen as an excursion into real analysis, concluding with discussion of the continuity of the Cantor-Lebesgue function. The next chapter, which is new to this edition, introduces topology up to the separation axioms and compactness, but stops short of visual topology.

Altogether, this edition has four new chapters, which make the book about 120 pages longer than the previous edition. The new material includes the aforementioned introduction to topology and a chapter on the mathematics of computer science (recursive functions, Turing machines, Boolean algebra etc). There is another new chapter called ‘The P/NP Problem’ that discusses problem complexity, polynomial and exponential complexity and non-deterministic Turing machines etc. The book now concludes with an introduction to ‘Zero Knowledge Proofs’ in the context of RSA encryption. These additions are compatible with the book’s broadened aim of showing how mathematics relates to the ‘cutting edge of modern cryptography and security analysis’.

Of course, one of the difficulties that students have with university mathematics is being able to relate it to what they’ve done at school. In this respect, the work on logic, sets, proof, relations and functions plays an essential bridging role. But another problem to be addressed is to re-present mathematics as a way of knowing — rather than a static body of formalised knowledge. In this book, Steven Krantz tackles this anomaly by including many open-ended problems in the rich collections of exercises. He sets the scene for this conceptual re-orientation in Chapter 2 by exploring the nature and methods of proof.

In a book that is meant to form a bridging course, Steven Krantz’s coverage of the real number system is, in part, too formal, and it sometimes introduces ideas with little motivation. For example, in the section that explains the construction of the integers as equivalence classes of ordered pairs of natural numbers, the definition of multiplication appears ‘out of the blue’. Specifically, the product of integers [(a,b)] and [(c,d)] is simply stated to be [(ad + bc, ac + bd)], which, of course, is correct. But this can be naturally motivated by considering simple equivalent equations of the form x + a = b and x + c = d, and developing the argument in accordance with students’ ability to manipulate equations.

Krantz has chosen to define the real number system in terms of Dedekind cuts, which seems such an alien idea with respect to students’ prior knowledge. On the other hand, the construction of **R** via equivalence classes of Cauchy sequences can be made intuitively acceptable by means of work on sequences of numerical approximations to the solution of simple equations (e.g. find the cube root of 9 by a process of repeated estimations).

The new chapters on theoretical computer science are concisely lucid, and I learned much by reading them. But, in keeping with the original aim of this book, priority could have been given to a chapter that develops student understanding of binary operations in readiness for subsequent courses on algebra. Another candidate for inclusion is the range of results that pertain to image and inverse image sets of functions. These include results such as

f(A ∩ B) ⊂ f(A) ∩ f(B)

and very many others.

Nonetheless, this book engages the reader in really meaningful aspects of mathematics: it is well organized and is written with accuracy. Consequently, despite the reservations outlined above, it is recommended as a possible course text for those who are planning to teach a foundation course.

Peter Ruane spent his working years mainly on the training of teachers at the primary and secondary school levels.