Lectures


Dates Topics and Readings Exercises
01/22/08
01/29/08

Course introduction and administration. Introduction to formal methods.

Lecture Material: Recommended Readings:
  • [Clar96] A survey of the state of the art in formal methods in 1996. Although the survey proper is now dated, the paper still provides a good overview of the field.
  • [vLam00] An introduction to formal specifications, and a survey of formal specification approaches.
 
01/22/08
01/29/08

Introduction to Lustre. Simulating Lustre programs with Luke. A working example: traffic light.

Lecture Material: Recommended Readings:
  Exercise 1
01/31/08

Specifying simple reactive systems. Implementing them in Lustre and debugging them with Luke.
A working example: the traffic light.

Lecture Material: Recommended Readings:
  Exercise 2
02/05/08

Checking properties with synchronous observers. Useful temporal operators.
A few examples.

Lecture Material: Recommended Readings:
  • [Halb99] Explains the use of synchronous observers in Lustre.
  Exercise 3
02/07/08
02/12/08

Verifying safety properties of Lustre programs by temporal induction. Simple induction. Basic k-induction. Enhancements.

Lecture Material:
  Exercise 4
02/14/08
02/19/08

Exercises on specifying systems and properties. The elevator case study.

Lecture Material:
  • See the elevator problem in Exercise 3.
 
02/19/08
02/21/08

Overview of the KeY system and its software development methodology.

Lecture Material: Recommended Readings:
  • [Haeh07] Chapter 1 of [Beck07], the KeY book.
 
02/21/08
02/26/08

Introduction to UML. Syntax and semantics of Class, Object, Use Case and Sequence diagrams.

Lecture Material: Related Readings:
  • [Brau01], [Mill03] A couple of UML tutorials.
  • [OMG07] Infrastructure specification document for UML, Version 2.1.2.
 
02/28/08
03/04/08

Introduction to OCL.

Lecture Material: Related Readings:
  • [OMG03] Object Constraint Language Specification document, Version 1.5.
  • [Roth07] Chapter 5 of [Beck07], the KeY book. Sections 5.1 and 5.2 are the relevant ones.
  Exercise 5
03/06/08

More on OCL. Exercises on formulating OCL constraints for class diagrams. The university example.

  Exercise 6
03/11/08
03/13/08

From OCL to first order logic. Review of propositional logic. Checking validity of formulas by means of logical calculi. A propositional sequent calculus.
Discussion of Mini-project grading and solutions.

Lecture Material:
 
03/18/08
03/20/08

No lectures. Spring break.

 
03/25/08

Introduction to typed first-order logic. A OO type system. Signatures, terms and formulas. Semantics: first-order models.

Lecture Material:
 
03/27/08

Midterm.

 
04/01/08

More on the semantics of typed first-order logic. Evaluating terms and formula in a model. Validity relation. Examples of models and evaluations.

Lecture Material: Related Readings:
  • [Gies07] Chapter 2 of [Beck07], the KeY book.
  Exercise 5
04/03/08

Translating OCL constraints to formulas in typed first-order logic. Motivation and main ideas of the translation.
Discussion on the midterm and illustration of some sample solutions.

Lecture Material: Related Readings:
  • [Roth07] Chapter 5 of [Beck07], the KeY book. Sections 5.2.3 is the relevant one.
 
04/08/08

More on the translation from OCL to typed first-order logic. Demo on using KeY to prove simple propositional and first-order formulas.

Lecture Material:
 
04/10/08

Exercise on using Together to write UML diagrams and OCL constraints.

Lecture Material:
  • Together project built in class (zip file).
  Exercise 6
04/15/08

Introduction to Dynamic Logic. Syntax and semantics.

Lecture Material:
 
04/17/08

No class.

 
04/22/08

More on the semantics of Dynamic Logic. Overview of the Dynamic Logic calculus.

Lecture Material:
 
04/24/08

More on Dynamic Logic calculus. The induction rule.
Updates and their use to provide a better semantics for assignments. Examples of proof in the DL calculus in Key.
Discussion of Midterm Problem 3 and its solution.

Lecture Material:
 
04/29/08

A few notes on OCL modeling in Together.
More on Midterm Problem 3 and its solution.
More examples of verifying simple programs in Key.

Lecture Material:
 
05/01/08

Automatic test case generation. The black box approach. Generating test cases from formal specifications.

Lecture Material:
 
05/06/08

Automatic test case generation. The white box approach. Generating test cases from symbolic execution.
Discussion of Project 2 solutions.

Lecture Material:
 




Course Info

  Announcements

  Syllabus

  Lectures

Course Work

  Exercises

  Mini Projects

  Exams

  Readings

  Tools

Misc

  Resources

  Credits