Analysis of Reactive Systems
Monday, 5:00-6:50 PM
Room 102, WWH
Prerequisites: Some background in
algorithm design, familiarity with the language of first-order logic,
and parallel programs.
- phone: (212) 998-3225
- office: WWH, Room 505
- office hours: Monday 2:00-4:00 PM, or by appointment
Assignments and a term project.
Recommended: "Temporal Verification of Reactive Systems: Safety"
by Zohar Manna and Amir Pnueli, Springer-Verlag.
"Model Checking", by E.C. Clarke and O. Grumberg and
D. Peled, MIT Press, 2000.
Reactive systems are systems whose role is to maintain an ongoing
interaction with their environment rather than produce some final
value upon termination. Typical examples of reactive systems are Air
traffic control system, Programs controlling mechanical devices such
as a train, a plane, or ongoing processes such as a nuclear reactor.
The Formal Methods approach to software construction is based on
viewing a program and its execution as mathematical objects and
applying mathematical and logical techniques to specify and analyze
the properties and behavior of these objects. The main advantages of
the formal approach to software construction is that, whenever
applicable, it can lead to an increase of the reliability and
correctness of the resulting programs by several orders of
Several approaches to the verification of reactive systems are
available, the most prominent of which are Algorithmic (model
checking) and Deductive verification. In this semester we will
consider both of these approaches. Under algorithmic verification we
will show how to verify properties of finite-state systems. Under
deductive verification, we use theorem-proving techniques to establish
the correctness of infinite-state reactive programs relative to their
temporal specifications. We will be using computer-aided theorem
provers such as PVS and STeP for verifying the properties of programs.
- The computational model of Fair Discrete Systems (FDS).
- A simple programming language (SPL) and its translation into FDS.
- The specification language of linear temporal logic (LTL).
- Branching-time temporal logic CTL*.
- Finite-State Systems and their Verification (Model Checking).
- A programmable model checker TLV.
- Model checking CTL* formulas.
- The PVS Theorem prover. Encoding FDS's and LTL within PVS.
- Verifying invariance properties.
- Algorithmic construction of auxiliary invariants.
- Verifying progress properties.
- The CHAIN and WELL rules.
- Verification Diagrams.
- Verifying progress under compassion.
- Verifying general LTL properties.
Lecture 1 -- January 23, 2006:
Lecture 2 -- January 30, 2006:
Lecture 3 -- February 6, 2006:
Lecture 4 -- February 13, 2006:
Lecture 5 -- February 27, 2006:
Lecture 6 -- March 6, 2006:
Lecture 7 -- March 20, 2006:
Lecture 8 -- March 30, 2006:
Lecture 9 -- April 6, 2006:
Lecture 10 -- April 10, 2006:
Lecture 11 -- May 1, 2006: