CS 643 Formal Verification of Software
Daniel Jackson
Software Abstractions: Logic, Language, and Analysis
2012
Michael Huth and Mark Ryan
Logic in Computer Science: Modelling and Reasoning about Systems
2004
Course overview; review of sets, relations, functions.
ch 1
Introduction to Alloy specifications.
ch 2
small exercises (appendix of textbook)
Modeling and analysis using Alloy.
ch 2 and 3
small exercises
More modeling and analysis using Alloy.
ch 3
small exercises
Dynamic models.
ch 4
airport or other project
More on dynamic models in Alloy.
ch 5
Alloy case study.
ch 6
model project
Design by contract. Basics of specification, verification, and weakest preconditions
lect notes
More verification and weakest preconditions
lect notes
Verification using Alloy vs verification by proof. Abstraction and predicate abtraction
final project
Overview of UML/OCL and connections with Alloy. Introduction to JML and ESC/Java.
ESC/Java tutorial
Subclassing and behavioral subtyping; modifies, and invariants in JML
lect notes
Final project presentations and discussion
Final project presentations and discussion