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.
Logic is, and should be, the core subject area of modern mathemat ics. The blueprint for twentieth century mathematical thought, thanks to Hilbert and Bourbaki, is the axiomatic development of the subject. As a result, logic plays a central conceptual role. At the same time, mathematical logic has grown into one of the most recondite areas of mathematics. Most of modern logic is inaccessible to all but the special ist. Yet there is a need for many mathematical scientists-not just those engaged in mathematical research-to become conversant with the key ideas of logic. The Handbook of Mathematical Logic, edited by Jon Bar wise, is in point of fact a handbook written by logicians for other mathe maticians. It was, at the time of its writing, encyclopedic, authoritative, and up-to-the-moment. But it was, and remains, a comprehensive and authoritative book for the cognoscenti. The encyclopedic Handbook of Logic in Computer Science by Abramsky, Gabbay, and Maibaum is a wonderful resource for the professional. But it is overwhelming for the casual user. There is need for a book that introduces important logic terminology and concepts to the working mathematical scientist who has only a passing acquaintance with logic. Thus the present work has a different target audience. The intent of this handbook is to present the elements of modern logic, including many current topics, to the reader having only basic mathe matical literacy.
This is a mathematics textbook with theorems and proofs. The choice of topics has been guided by the needs of computer science students. The method of semantic tableaux provides an elegant way to teach logic that is both theoretically sound and yet sufficiently elementary for undergraduates. In order to provide a balanced treatment of logic, tableaux are related to deductive proof systems. The book presents various logical systems and contains exercises. Still further, Prolog source code is available on an accompanying Web site. The author is an Associate Professor at the Department of Science Teaching, Weizmann Institute of Science.
This Festschrift was published in honor of Egon Börger on the occasion of his 75th birthday. It acknowledges Prof. Börger's inspiration as a scientist, author, mentor, and community organizer. Dedicated to a pioneer in the fields of logic and computer science, Egon Börger's research interests are unusual in scope, from programming languages to hardware architectures, software architectures, control systems, workflow and interaction patterns, business processes, web applications, and concurrent systems. The 18 invited contributions in this volume are by leading researchers in the areas of software engineering, programming languages, business information systems, and computer science logic.
This advanced text for undergraduate and graduate students introduces mathematical logic with an emphasis on proof theory and procedures for algorithmic construction of formal proofs. The self-contained treatment is also useful for computer scientists and mathematically inclined readers interested in the formalization of proofs and basics of automatic theorem proving. Topics include propositional logic and its resolution, first-order logic, Gentzen's cut elimination theorem and applications, and Gentzen's sharpened Hauptsatz and Herbrand's theorem. Additional subjects include resolution in first-order logic; SLD-resolution, logic programming, and the foundations of PROLOG; and many-sorted first-order logic. Numerous problems appear throughout the book, and two Appendixes provide practical background information.
This book is a tribute to Professor Ewa Orłowska, a Polish logician who was celebrating the 60th year of her scientific career in 2017. It offers a collection of contributed papers by different authors and covers the most important areas of her research. Prof. Orłowska made significant contributions to many fields of logic, such as proof theory, algebraic methods in logic and knowledge representation, and her work has been published in 3 monographs and over 100 articles in internationally acclaimed journals and conference proceedings. The book also includes Prof. Orłowska’s autobiography, bibliography and a trialogue between her and the editors of the volume, as well as contributors' biographical notes, and is suitable for scholars and students of logic who are interested in understanding more about Prof. Orłowska’s work.
This book introduces the notions and methods of formal logic from a computer science standpoint, covering propositional logic, predicate logic, and foundations of logic programming. The classic text is replete with illustrative examples and exercises. It presents applications and themes of computer science research such as resolution, automated deduction, and logic programming in a rigorous but readable way. The style and scope of the work, rounded out by the inclusion of exercises, make this an excellent textbook for an advanced undergraduate course in logic for computer scientists.
Logic and its components (propositional, first-order, non-classical) play a key role in Computer Science and Artificial Intelligence. While a large amount of information exists scattered throughout various media (books, journal articles, webpages, etc.), the diffuse nature of these sources is problematic and logic as a topic benefits from a unified approach. Logic for Computer Science and Artificial Intelligence utilizes this format, surveying the tableaux, resolution, Davis and Putnam methods, logic programming, as well as for example unification and subsumption. For non-classical logics, the translation method is detailed. Logic for Computer Science and Artificial Intelligence is the classroom-tested result of several years of teaching at Grenoble INP (Ensimag). It is conceived to allow self-instruction for a beginner with basic knowledge in Mathematics and Computer Science, but is also highly suitable for use in traditional courses. The reader is guided by clearly motivated concepts, introductions, historical remarks, side notes concerning connections with other disciplines, and numerous exercises, complete with detailed solutions, The title provides the reader with the tools needed to arrive naturally at practical implementations of the concepts and techniques discussed, allowing for the design of algorithms to solve problems.
A textbook that teaches students to read and write proofs using Athena. Proof is the primary vehicle for knowledge generation in mathematics. In computer science, proof has found an additional use: verifying that a particular system (or component, or algorithm) has certain desirable properties. This book teaches students how to read and write proofs using Athena, a freely downloadable computer language. Athena proofs are machine-checkable and written in an intuitive natural-deduction style. The book contains more than 300 exercises, most with full solutions. By putting proofs into practice, it demonstrates the fundamental role of logic and proof in computer science as no other existing text does. Guided by examples and exercises, students are quickly immersed in the most useful high-level proof methods, including equational reasoning, several forms of induction, case analysis, proof by contradiction, and abstraction/specialization. The book includes auxiliary material on SAT and SMT solving, automated theorem proving, and logic programming. The book can be used by upper undergraduate or graduate computer science students with a basic level of programming and mathematical experience. Professional programmers, practitioners of formal methods, and researchers in logic-related branches of computer science will find it a valuable reference.