Practical Foundations collects the methods of construction of the objects of twentieth-century mathematics. Although it is mainly concerned with a framework essentially equivalent to intuitionistic Zermelo-Fraenkel logic, the book looks forward to more subtle bases in categorical type theory and the machine representation of mathematics. Each idea is illustrated by wide-ranging examples, and followed critically along its natural path, transcending disciplinary boundaries between universal algebra, type theory, category theory, set theory, sheaf theory, topology and programming. Students and teachers of computing, mathematics and philosophy will find this book both readable and of lasting value as a reference work.