COS 597D: Reasoning about concurrent systems, Fall 2016

Course information

Semester:Fall 2016
Lectures: Monday and Wednesday, 3:00 - 4:20pm in Friend Center 009
Location: Friend Center 009
Instructor: Zak Kincaid, zkincaid@cs.princeton.edu
Prerequisites: COS 226. Additionally, students are expected to be comfortable with mathematical logic and programming languages. Email me if unsure whether you meet the requirements.

Description

It is notoriously difficult to build reliable concurrent software. The nondeterministic nature of concurrency makes ad-hoc reasoning highly susceptible to error. This course covers formal methods for reasoning about concurrent systems. Topics include the semantic foundations of concurrency, logics for proving properties of concurrent systems, and algorithms for reasoning their behavior. Particular emphasis is placed on automated reasoning.

Grading

Your final grade wil be based on the following:

Paper presentation

Each reading is accompanied by a student presentation. Each student is expected to present one paper, roughly 40 minutes long. At least one week prior to the seminar, you will be expected to give a practice presentation in front of me. Email me with your selection (or better yet, a ranked list of selections) as early as possible -- readings will be distributed on a first-come-first-serve basis.

The following papers have already been claimed:

Project

For the course project you can work on a problem of your choice (with a partner, if you'd like). A project may be a piece of software, a theoretical result, or a literature review. If you would like some suggestions, email me. On October 12, you should submit to me (by email) a 2-3 page proposal outlining your chosen project. Prior to submitting a proposal, you should arrange to talk to me. The proposal should include the following: On November 7th and December 1st, you will be expected to submit short progress reports (a paragraph to a page) describing your progress. The final deliverable and a paper describing what you have done will be due on January 17 (Dean's date).

Schedule

This is a tentative schedule that will be changed during the course.

Week Topic Reading
Sept 14 Introduction. Interleaving semantics.
Sept 19, 21 Linear Temporal logic, model checking.
Sept 26, 28 Model checking cont'd
No class Sept 28
Oct 3, 5 Mazurkiewicz traces and partial order reduction [Peled1993]
Oct 10, 12 Branching time and Bisimulation
Oct 17, 19 Petri nets and unfoldings [McMillan95]
Oct 24, 26 Well-stuctured transition systems, Program logics I
On Oct 26 Lauren Pick will present [OG76]
[FS99] [OG76]
No class Oct 31, Nov 2 (Fall break)
Nov 7, 9 Program logics II [XPH97], [O'Hearn04]
Nov 14, 16 Automating proof rules I [CN07], [CGP03]
Nov 21, 23 Automating proof rules II
No class Nov 23 (Thanksgiving)
[GLPR12]
Nov 28, 30 Bounded analysis [QR05], [LR08], [SW11]
Dec 5, 7 Trace-based analysis [FKP15]
Dec 12, 14 Final project presentations