Resources

Recommended Reading | Links | Google Group


Here is a collection of materials which we find particularly instructive and useful. Some materials are available online for free, while others have to be purchased.

This list is not arranged in any particular order.

Title Description
EWD1300
(download)
This EWD is titled 'The notational conventions I adopted and why', and it is essential to understanding the modern notational conventions of the calculational style.
Calculational Mathematics (download)
This document is a collection of select EWDs, WFs, and AvGs which provide expositions of predicate calculus, relational calculus, lattice theory, and so forth. The document also contains several expositions on calculational proof design. We recommend this document to newcomers who wish to learn about the calculational style.
Programming: The Derivation of Algorithms
(buy)
For those who wish to learn how to apply calculational techniques to the design of algorithms, we recommend this text from Anne Kaldewaij. Beginning with a brief introduction to the predicate calculus, it provides a coherent and graded exposition of the calculational techinques for program derivation. To gain a facility with these techniques, the reader must put them to use, and this text provides a great variety of examples for this purpose.
On the Shape of Mathematical Arguments
(download)
This seminal work from Netty van Gasteren is perhaps one of the best expositions of the central ideas of the calculational style. The essays comprising the last four chapters of this book are classics, and are mandatory reading for anybody interested in a calculational approach to mathematics.
On a Method of Multi-Programmming
(buy)
This book from Wim Feijen and Netty van Gasteren presents a calculational method of designing parallel algorithms. It is a paragon of clarity of thought, writing, organization, and mathematical exposition, and it is worth reading in that capacity alone. Additionally, developing skill with the method of multi-programming presented in this work enables one to be more methodical and precise about the design of parallel programs, which results in more efficient and robust designs.