CS410/510 Practical Specification and Verification Winter 2016
Course Information
Key to Readings
Tools
Tool Investigation Ideas
- Alloy
- Spin (Promela)
- CMBC
- Cubicle
- Why3
- Frama-C
- SPARK Pro (consult with me if interested)
- QuickCheck
Schedule
Read the assigned materials before class on the specified date.
- Tu. Jan. 5 Introduction
- Th. Jan. 7 Propositional Logic
- Read H&R 1.1--5
- Quiz yourself using the relevant on-line tutor problems here
- Tu. Jan. 12 Predicate Logic
- Th. Jan. 14 Beginning TLA+.
- Make sure you can run the TLA Toolbox on a machine of your choice.
- Read HB 1 & 2, working through the examples using the Toolbox.
- Tu. Jan. 19 Guest lecture by Aaron Tomb, Galois, Inc. on
Applying Satisfiability to the Analysis of Cryptography.
- Slides and accompanying examples. You are encouraged to check out these materials before the lecture,
and even build Cryptol and SAW if you are interested; the repository
includes instructions for doing that.
- Th. Jan. 21 Guest lecture by John O'Leary, Intel.
- Tu. Jan. 26 TLA+ for simple machines
- Th. Jan. 28 TLA+ for planning problems
- Tu. Feb. 2 TLA+ for concurrent problems
- Th. Feb. 4 TLA+ refinement
- Fix problems in WTC example
- Tu. Feb. 9 TLA+ wrap-up
- Th. Feb. 11 Introduction to Dafny
- Tu. Feb. 16 More on Program Proof (Midterm due)
- Th. Feb. 18 Proofs of Functional Programs
- Tu. Feb. 23 Proofs of Imperative Programs
- Th. Feb. 25 Proofs of Pointer Programs
- Tu. Mar. 1 Verification Condition Generation and Triggers
- Define and verify a Dafny method to concatenate (destructively) two linked lists, represented in the
same style as in the list reversal example. In other words, your method should take two lists as inputs
and mutate the last element of the first one to point to the second one.
Hint: try a recursive solution.
- Example of using triggers with
an axiomatized theory.
- Th. Mar. 3 F*
- Tu. Mar. 8 Student Reports (Frama-C, Cryptol)
- Th. Mar. 10 Student Reports (Spin, Alloy, CBMC)