Yves Nievergelt

This text uses set theory as a basis for exploring fundamental approaches to boolean algebraic logic, logic and deductive reasoning through propositional and predicate calculus, number theory, coding, arithmetic, and more. The author moves efficiently, for instance, from setting up integer arithmetic from the axioms of set theory on to Gödel's Incompleteness Theorem. This type of coverage is achieved through consistently laid out sections containing a handful of theorems, nearly all of which are proved, along with a smaller number of definitions and examples. A page of exercises concludes each section. The book provides no answers to any of the exercises.

This book is subtitled "Applications to Computer Science and Cryptography". Most of the applications are only thinly glossed over. This includes bar codes, molecular topology, and circuit design. However, a few applications topics are dealt with in detail. Vintage cryptography enthusiasts will enjoy the seven-page section on the family of ENIGMA machines. This mostly covers recreating the mathematical steps taken to break the ENIGMA design starting from Polish efforts before World War II. There is also an exploration of the RSA algorithm, which includes the algorithm itself, a proof of its correctness, and an example of encrypting using RSA.

Being both concisely written and rather broad in scope, this book is an excellent resource to clear up issues on fundamentals from a variety of topics. The basic principles of group theory, probability, mathematical functions and more lie cheek by jowl in a clear and easy to follow manner. The chapter "Decidability and Completeness" is particularly worth mulling over with its comparisons of various approaches to incompleteness and a method for automated theorem proving. Further, this text includes a chapter covering the fundamentals of graph theory. This includes path-connected graphs, mathematical trees, bipartite graphs, and more.