Monday, 5:00-6:50 PM

Room 513, WWH

- e-mail amir@cs.nyu.edu
- phone: (212) 998-3225
- office: WWH, Room 505
- office hours: Monday, Wednesday 3:30-5:00 PM, or by appointment

**Course requirements:**
Assignments and a
term project.

** Textbooks:**

Recommended: Temporal Verification of Reactive Systems: Safety
by Zohar Manna and Amir Pnueli, Springer-Verlag

The Formal Methods approach to software analysis and 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 magnitude.

Several level of abstraction can be used in the study of reactive and embedded systems. At the highest level of abstraction, we only care about the temporal precedence of events and actions, and can guarantee that a system satisfies a requirement such as "every request is eventually followed by a response". However, at this level of modeling we cannot bound the response time by actual numbers. In the course, we consider two successive refinements of our modeling and specification abilities. The first refinement considers the model of real-time systems. In this model, we represent, specify, and analyze the temporal distance between events, thus being able to require and verify a property such as "every request is eventually followed by a response, which must occur within the time interval [3,5] from the request".

The next level of refinement considers the model of hybrid systems. In this model, we consider a system consisting of a combination of components some of which are discrete, such as programs, while the other are continuous, such as a motor driving a railroad gate barrier. This model employs discrete as well as continuous analysis tools in order to analyze and verify the correctness of hybrid systems, typically corresponding to a digital program controlling a continuous environment.

- The computational model of Real-Time Systems (RTS).
- A simple programming language (SPL),extended by timing information and its translation into RTS.
- The specification language of Timed Temporal Logic (TTL).
- Discrete and dense-time Timed Automata.
- Model checking timed properties of timed automata.
- Deductive verification of timed properties.
- The computational model of Hybrid Systems.
- Hybrid automata.
- Model checking properties of hybrid automata.
- Verification Diagrams.
- Deductive verification of Hybrid Systems.

- Lecture 1 -- January 22, 2007: lecture1.ps, lecture1.pdf, lecture1_h4.ps , lecture1_h4.pdf
- Lecture 2 -- January 29, 2007: lecture2.ps, lecture2.pdf, lecture2_h4.ps , lecture2_h4.pdf
- Lectures 3,4 -- February 5, 2007: lecture3.ps, lecture3.pdf, lecture3_h4.ps , lecture3_h4.pdf
- Lectures 5 -- February 12, 2007: lecture5.ps, lecture5.pdf, lecture5_h4.ps , lecture5_h4.pdf
- Lectures 6 -- February 26, 2007: lecture6.ps, lecture6.pdf, lecture6_h4.ps , lecture6_h4.pdf
- Lectures 7 -- March 5, 2007: lecture7.ps, lecture7.pdf, lecture7_h4.ps , lecture7_h4.pdf
- Lectures 8 -- March 26, 2007: lecture8.ps, lecture8.pdf, lecture8_h4.ps , lecture8_h4.pdf
- Lectures 9 -- April 2, 2007: lecture9.ps, lecture9.pdf, lecture9_h4.ps , lecture9_h4.pdf
- Lectures 10 -- April 10, 2007: lecture10.ps, lecture10.pdf, lecture10_h4.ps , lecture10_h4.pdf
- Lectures 11 -- April 16, 2007: lecture11.ps, lecture11.pdf, lecture11_h4.ps , lecture11_h4.pdf
- Lectures 12 -- April 23, 2007: lecture12.ps, lecture12.pdf, lecture12_h4.ps , lecture12_h4.pdf