[ The Types Forum (announcements only), 
     http://lists.seas.upenn.edu/mailman/listinfo/types-announce ]

For some time I've been working on a textbook giving a survey of some
of the main results in automated theorem proving together with an
introduction to basic mathematical logic. All the automated theorem
proving techniques described are accompanied by actual OCaml code that
the reader can use, modify and otherwise experiment with. I'm pleased
to announce that the book has now been published.

         Handbook of Practical Logic and Automated Reasoning

                            John Harrison

                   Cambridge University Press 2009

                         ISBN: 9780521899574

     Publisher's Web page: http://www.cambridge.org/9780521899574
     Code and resources:   http://www.cl.cam.ac.uk/~jrh13/atp/

Copies are already becoming available: you can order it directly from
the publisher or from various other sources. Currently the price and
availability looks a bit better in Europe (it was on offer for 56
pounds last week on amazon.co.uk). Here's a table of contents:

    1 Introduction
            1.1  What is logical reasoning?
            1.2  Calculemus!
            1.3  Symbolism
            1.4  Boole's algebra of logic
            1.5  Syntax and semantics
            1.6  Symbolic computation and OCaml
            1.7  Parsing
            1.8  Prettyprinting

    2 Propositional Logic
            2.1  The syntax of propositional logic
            2.2  The semantics of propositional logic
            2.3  Validity, satisfiability and tautology
            2.4  The De Morgan laws, adequacy and duality
            2.5  Simplification and negation normal form
            2.6  Disjunctive and conjunctive normal forms
            2.7  Applications of propositional logic
            2.8  Definitional CNF
            2.9  The Davis-Putnam procedure
            2.10 Staalmarck's method
            2.11 Binary Decision Diagrams
            2.12 Compactness

    3 First-order logic
            3.1  First-order logic and its implementation
            3.2  Parsing and printing
            3.3  The semantics of first-order logic
            3.4  Syntax operations
            3.5  Prenex normal form
            3.6  Skolemization
            3.7  Canonical models
            3.8  Mechanizing Herbrand's theorem
            3.9  Unification
            3.10 Tableaux
            3.11 Resolution
            3.12 Subsumption and replacement
            3.13 Refinements of resolution
            3.14 Horn clauses and Prolog
            3.15 Model elimination
            3.16 More first-order metatheorems

    4 Equality
            4.1  Equality axioms
            4.2  Categoricity and elementary equivalence
            4.3  Equational logic and completeness theorems
            4.4  Congruence closure
            4.5  Rewriting
            4.6  Termination orderings
            4.7  Knuth-Bendix completion
            4.8  Equality elimination
            4.9  Paramodulation

    5 Decidable problems
            5.1  The decision problem
            5.2  The AE fragment
            5.3  Miniscoping and the monadic fragment
            5.4  Syllogisms
            5.5  The finite model property
            5.6  Quantifier elimination
            5.7  Presburger arithmetic
            5.8  The complex numbers
            5.9  The real numbers
            5.10 Rings, ideals and word problems
            5.11 Groebner bases
            5.12 Geometric theorem proving
            5.13 Combining decision procedures

    6 Interactive theorem proving
            6.1  Human-oriented methods
            6.2  Interactive provers and proof checkers
            6.3  Proof systems for first-order logic
            6.4  LCF implementation of first-order logic
            6.5  Propositional derived rules
            6.6  Proving tautologies by inference
            6.7  First-order derived rules
            6.8  First-order proof by inference
            6.9  Interactive proof styles

    7 Limitations
            7.1  Hilbert's programme
            7.2  Tarski's theorem on the undefinability of truth
            7.3  Incompleteness of axiom systems
            7.4  Goedel's incompleteness theorem
            7.5  Definability and decidability
            7.6  Church's theorem
            7.7  Further limitative results
            7.8  Retrospective: the nature of logic

John Harrison.

Reply via email to