Logic and Formal Verification

This is home page was used to support the second week of the Carnegie Mellon Summer School in Logic and Formal Epistemology in the summer of 2007. Due to copyright restrictions, some of the materials are in a password protected directory.

Background on logic and axiomatic reasoning

For the session on formal verification, you may wish to review the basics of symbolic logic. Here are some good references:

The following is a good introduction to axiomatic reasoning in mathematics:

Background on the Isabelle proof assistant

We will experiment with an interactive proof system called Isabelle.

The Linux installation of Isabelle is quick and easy. Those of you who use Windows can try a live CD version: html.

We will use "Isabelle/HOL," an instantiation of higher-order logic. You can browse the library of theorems and definitions here:

I will do a good deal of "borrowing" from the course material page: html. See especially:

Lecture notes

There are sketchy lecture notes for the first three topics: pdf.

Propositional logic

First-order logic with equality

Induction and recursion on the natural numbers

Interlude: formal verification and understanding

For a short, sweeping overview of the philosophy of mathematics, see

For a look a discussion of some new philosophical issues related to the use of computers in mathematics, see:

The last of these adopts a Wittgensteinian perspective on the nature of mathematical understanding. See the following excerpt from the Philosophical Investigations:

Types and sets

Inductively defined datatypes

Decision procedures

Other information

Fun

Here are some fun logic puzzles: