||Practical Foundations of Mathematics explains the basis of mathematical reasoning both in pure mathematics itself (algebra and topology in particular) and in computer science. In addition to the formal logic, this volume examines the relationship between computer languages and "plain English" mathematical proofs. The book introduces the reader to discrete mathematics, reasoning, and categorical logic. It offers a new approach to term algebras, induction and recursion and proves in detail the equivalence of types and categories. Each idea is illustrated by wide-ranging examples, and followed critically along its natural path, transcending disciplinary boundaries across 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.