Software Specification and Verification, Fall 2011
This is an introductory course on formal software specification and verification, covering various formalisms, methods, and tools for specifying the properties of a software program and for verifying that the program meets its specification. Its goal is to acquaint the students with fundamentals of formal software verification and to prepare them for conducting research in the area. We will focus on deductive (theorem proving) methods. A separate, complementary course entitled “Automatic Verification” covers algorithmic (model checking) methods.
Announcements
Dec. 26: slides for Why and for Temporal Verification available.
-
Dec. 21: slides for Owicki-Gries and for UNITY available.
Dec. 15: slides for Z and B available.
Nov. 17: slides for Hoare Logic (II): Procedures available.
Nov. 03: slides for Predicate Transformers available.
Nov. 03:
HW#3 due on Nov. 17.
Oct. 27: slides for Soundness and Completeness of Hoare Logic available.
Oct. 20:
HW#2 due on Oct. 27.
Oct. 20: slides for Hoare Logic (I) and two notes available.
Oct. 06: slides for Logical Proofs in Coq available.
Sep. 28: slides for First-Order Logic available.
Sep. 22:
HW#1 due on Sep. 29.
Sep. 15:
HW#0 due on Sep. 22.
Sep. 15: slides for Course Introduction and Propositional Logic and a note on Natural Deduction available.
Sep. 12: this website is the sole source of all up to date course information and syllabus; there will be no separate PDF version.
Instructor
Yih-Kuen Tsay (蔡益坤), Room 1108, Management II, 3366-1189, Xtsay@im.ntu.edu.twX (between the enclosing pair of X's)
Lectures
Thursday 2:20-5:20PM, Room 303, College of Management, Building II
Note: when the class is small enough, we will meet in the seminar room on the 11th floor of that building.
Office Hours
Wednesday 1:30-2:30PM (Room 1108, Management II) or by appointment
TA
Ming-Hsien Tsai (蔡明憲), 3366-1205, Xmhtsai208@gmail.comX
(between the enclosing pair of X's).
Prerequisites
Computer Programming and Discrete Mathematics
Textbook
Class Notes and Selected Readings
Syllabus/Schedule (with links to slides/notes)
We shall seek to strike a balance between depth and breadth, covering both the foundations and some of the more successful formalisms, techniques, and tools. Below is a tentative list of topics and their schedule:
Grading
Homework Assignments 15%, Final 35%, Term Paper/Report 40%, Participation 10%.
References
-
Proof Theory and Automated Deduction, J. Goubault-Larrecq and I. Mackie, Kluwer Academic Publishers, 1997.
Logic in Computer Science: Modelling and Reasoning about Systems, M. Huth and M. Ryan, Cambridge University Press, 2004.
Foundations for Programming Languages, J.C. Mitchell, The MIT Press, 1996.
Formal Syntax and Semantics of Programming Languages, K. Slonneger and B.L. Kurtz, Addison-Wesley, 1995.
Verification of Sequential and Concurrent Programs, 2nd Edition, K.R. Apt and E.-R. Olderog, Springer-Verlag, 1997.
The Science of Programming, D. Gries, Springer-Verlag, 1981.
Predicate Calculus and Program Semantics, E.W. Dijkstra and C.S. Scholten, Springer-Verlag, 1990.
Programming from Specifications, 2nd Edition, C. Morgan, 1994.
Software Foundations, B.C. Pierce, C. Casinghino, M. Greenberg, V. Sjöberg, and B. Yorgey. (Note: click on the link to authors' free download site.)
-
-
Software Engineering with B, J.B. Wordsworth, Addison-Wesley, 1996.
Modeling in Event-B: System and Software Engineering, J.-R. Abrial, Cambridge University Press, 2010.
The Temporal Logic of Reactive and Concurrent Systems: Specification, Z. Manna and A. Pnueli, Springer-Verlag, 1992.
Temporal Verification of Reactive Systems: Safety, Z. Manna and A. Pnueli, Springer, 1995.
-
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers, L. Lamport, Addison-Wesley, 2003.
Parallel Program Design: A Foundation, K.M. Chandy and J. Misra, Addison-Wesley, 1988.
A Discipline of Multiprogramming: Programming Theory for Distributed Applications, J. Misra, Springer, 2001
Beauty Is Our Business: A Birthday Salute to Edsger W. Dijkstra, Edited by W.H.J. Feijen, A.J.M. van Gasteren, D. Gries, and J. Misra, Springer-Verlag, 1990
-