Comp. Sci. 691M: Logic and Formal Methods, Fall, 1996
Meeting Times: MW 9:05-10:20, LGRC: A339
Instructor: Neil Immerman
Aim of the Course: We will provide introductions to propositional,
predicate, and modal logics. These will be studied and used throughout the
course as tools for the specification and verification of properties of
programs and protocols.
Topics:
- First-Order Logic: propositional logic, predicate logic,
completeness and compactness theorems, semantics via quantifier games,
Gödel's incompleteness theorem.
- Modal logic: temporal logic and logics of knowledge, axiomitization,
semantics via Kripke structures.
- Applications: (These may change slightly according to the background and
interests of the students.)
- Evolving Algebras: due to Gurevich et. al., this offers an operatonal
semantics for programming languages and protocols via finite logical
structures.
- Temporal Logic of Actions: Lamport's system of specification and
verification via temporal logic
- Distributed Protocols: we will use logics of knowledge to express
correctness and security of distributed protocols.
- Model Checking: using temporal logic to verify properties of systems
- Symbolic Model Checking: using ordered binary decision diagrams (OBDDs)
to symbolically represent and model-check huge Kripke structures.
Requirements: Students will be expected to participate in class.
There will be three problem sets concerning the introductory material on
first-order and modal logic. Each student will choose a more advanced
topic to study in detail. He or she will write a short paper and give a
lecture on this topic.
Texts: For first-order logic, we will follow Logic and
Structure, Third Edition, by Dirk van Dalen, Springer-Verlag. This is
available at the Jeffery Amherst College Store in downtown Amherst.
For the rest of the course, we will follow selected research papers.
Prerequisites: Sufficient mathematical sophistication. If you are
unsure whether you have it, try looking at van Dalen and/or come
talk with me.
Notes and Handouts:
- Notes:
Sept. 4, 1996
- Notes:
Sept. 9, 1996
- Notes:
Sept. 11, 1996, plus first problem set, Due: 9/25/96
- We have finished Propositional Logic and begun Predicate Logic. See:
Notes:
Sept. 16, 1996
- On Wednesday, Oct. 2, I proved the Completeness Theorem and the
Compactness Theorem for predicate logic. You should have read van Dalen
through page 118. Note that in this course we are only interested in the
countable case, so you do not need to worry about larger cardinalities nor
do you have to remember Zorn's lemma.
- On Monday, Oct. 7, I introduced Ehrenfeucht-Fraisse games. These are
the best and most pleasant way to figure out what can and cannot be
expressed in first-order logics. By then you should have read the handout
pebble games
from my forthcoming book, Descriptive Complexity.
- On Wednesday, Oct. 9, I finished the introduction to Predicate Logic. By now,
please skim the rest of Chapter 3 of van Dalen. Topics that you should pay
particular attention to are: substructures, isomorphism, elementary
equivalence, and skolemization.
- Second
Problem Set, Due: Oct. 16, 1996
- On Oct. 16 I introduced Evolving
Algebra. Please read the
Evolving
Algebra Tutorial, and the paper guide.ps. These are available as
postscript files from anonymous FTP site, ftp.eecs.umich.edu, directory
/groups/Ealgebras, files tutorial.ps and guide.ps.
- On Oct. 21, I concluded my presentation of Evolving Algebras, using
the paper, "Why Use Evolving Algebras for Hardware and Software
Engineering," by Egon Börger, Proc. SOFSEM'95, Springer LNCS. Also
available on the Evolving
Algebra Homepage. I also talked briefly about Denotational Semantics,
using Denotational Semantics by Joseph Stoy, 1977, M.I.T. Press,
Chapter 9, by way of comparison.
- On Oct. 23, 28, and 30, I gave a three-lecture introduction to modal logics,
emphasizing temporal logic and logics of knowledge. Please read the article by
Vardi, ``Why is Modal Logic So Robustly Decidable?'' which I handed out. I
also used some material from the book by Fagin, Halpern, Moses, and Vardi,
Reasoning about Knowledge, 1995, M.I.T. press.
- On Monday, Nov. 4, I talked about about an interesting paper that uses
logic of knowledge to discuss security in distributed systems:
A
Logic of Authentication by Burrows, Abadi, and Needham.
- On Wednesday, Nov. 6 through Monday, Nov. 18, I talked
about Lamport's
Temporal Logic of Actions.
- You might want to look at the following webpage which has many
pointers to work going on in formal methods: Formal Methods Pointers
- On Wednesday, Nov. 20, I started talking about Computation Tree Logic
and Model Checking, using the survey paper, "Verification Tools for
Finite-State Concurrent Systems," by E. Clarke, O. Grumberg and D. Long,
in: A Decade of Concurrency - Reflections and Perspectives, Springer LNCS,
803, 1994.
- On Monday, Nov. 25, I continued Model Checking, talking about symbolic
model checking and ordered binary decision diagrams, using the paper,
"Symbolic Model Checking: 10^20 States and Beyond," by J. R. Burch,
E. M. Clarke, K. L. McMillan, D. L. Dill, LICS (1990).
For other references on model checking, take a look at the following homepage:
Model
Checking at CMU.
- On Wednesday, November 27, I will finish talking about Model Checking,
including a nontrivial application, "Verification of the Futurebus+ Cache
Coherence Protocol," by E. M. Clarke, O. Grumberg, H. Hiraishi, S. Jha,
D. E. Long, K. L. McMillan, and L. A. Ness, in L. Claesen, editor,
Proceedings of the Eleventh International Symposium on Computer Hardware
Description Languages and their Applications. North-Holland, April 1993.
I will also offer some general conclusions concerning model checking and
formal methods in general.
- The student lectures are as follows:
- Dec. 2: Karsten Jung will talk on the paper, ``Knowledge and Common Knowledge in a
Distributed Environment,'' by J. Halpern and Y. Moses, JACM, 37(3) (1990), 549-587.
- Dec. 4: Jens Gramm will talk on the paper, ``Conjoining
Specifications,'' by M. Abadi and L. Lamport, ACM Transactions on
Programming Languages and Systems 17(3) (1995), 507-534.
- Monday, Dec. 9: no class
- Dec. 11: Brian Hanechak will talk about the computational complexity
of Evolving Algebra.
- Dec. 16: Laura Firoiu will talk about HOL, the higher order logic
proof system from Edinburgh.