This book is an introduction to the essential ideas of formal logic and to the new field of logic programming, which is beginning to have an impact on the traditional area of conventional software engineering. Logical concepts and how they may be implemented in the logic programming language Prolog are emphasized. The authors discuss parsers, pretty-printers, programming language interpreters, interactive proof-checkers, theorem-provers of various kinds, and implements versions of Prolog. The early part of the book deals with Prolog as a programming language, and how it can be used. The core of the book deals with the propositional and predicate calculi, which are treated conventionally, via natural deduction systems. The theory behind automatic theorem-proving is sketched. The last two chapters examine the logic of a specified small programming imperative language and the restricted logic of real Prolog. Philosophical questions are also considered. |