Essential Logic for Computer Science
304 pp., 7 x 9 in, 81 b&w illus.
- Published: January 8, 2019
- Published: December 14, 2018
An introduction to applying predicate logic to testing and verification of software and digital circuits that focuses on applications rather than theory.
Computer scientists use logic for testing and verification of software and digital circuits, but many computer science students study logic only in the context of traditional mathematics, encountering the subject in a few lectures and a handful of problem sets in a discrete math course. This book offers a more substantive and rigorous approach to logic that focuses on applications in computer science. Topics covered include predicate logic, equation-based software, automated testing and theorem proving, and large-scale computation.
Formalism is emphasized, and the book employs three formal notations: traditional algebraic formulas of propositional and predicate logic; digital circuit diagrams; and the widely used partially automated theorem prover, ACL2, which provides an accessible introduction to mechanized formalism. For readers who want to see formalization in action, the text presents examples using Proof Pad, a lightweight ACL2 environment. Readers will not become ALC2 experts, but will learn how mechanized logic can benefit software and hardware engineers. In addition, 180 exercises, some of them extremely challenging, offer opportunities for problem solving. There are no prerequisites beyond high school algebra. Programming experience is not required to understand the book's equation-based approach. The book can be used in undergraduate courses in logic for computer science and introduction to computer science and in math courses for computer science students.
“Mathematical logic is to computer science what calculus is to physics. If you really want to understand computer science, let this book be your guide.”
J Strother Moore, Inman Chair Professor Emeritus, University of Texas at Austin
“Many other books present logic as an object of study. This book conveys instead, in an engaging tone, how logic gets put to work in computer science, covering usages of logic that range from the foundations for the infrastructure of computing to the design, testing and veriﬁcation of programs. As a bonus, the book uses a system of mechanized logic that allows readers to experiment with formal methods.”
Veronica Gaspes, Associate Professor, Halmstad University/CERES
“Have you ever wondered why logic and mathematics are important? Page and Gamboa take you on a wondrous journey through how Computer Science works based on logic. Discover how and why data structures, digital circuits, sorting, sharding, and MapReduce work and discover how mechanized logic is used to prove that they correctly work. This is essential knowledge for all citizens of the Information Age.”
Marco T. Morazán, Professor, Seton Hall University
“Page and Gamboa deliver a beautifully clear and elegant text that introduces aspiring software developers to the fundamental mathematics behind software. This book is the whole package: the content is well motivated, backed by software to help students work the multitude of exercises, and covers a wide range of topics. Offering a course on this text is a fantastic service to your students.”
Robby Findler, Professor, Northwestern University