Course Materials

Note: readings from Software Abstractions (2nd edition) by Daniel Jackson (MIT Press) unless otherwise noted.

Date Lecture Notes (with Source Files) Reading
1/24 What is Logic for Systems?
1/26 Properties and Oracles
1/29 Intro to Modeling in Alloy (Tic Tac Toe) Ch. 2 (pg. 5-32)
1/31 Relational Expressions (Tic Tac Toe)
2/2 Relational Expressions 2 (Live Coding, Alice)
2/5 Reachability (Live Coding)
2/7 Multiplicities and Quantifiers (Live Coding)
2/9 Modules, Numerics, and Skolemization (Live Coding) Ch. 3 (33-83)
2/12 Analysis Pitfalls (Live Coding, Skolemization)
2/14 Binary Decision Diagrams Sec. 4.1-4.2 (pg. 85-103)
2/16 Ordering (Tic Tac Toe A, Tic Tac Toe B, Tic Tac Toe C, seq Docs) Sec. 4.4-4.8 (pg. 141-169)
2/21 Modeling Data Structures (Live Coding)
2/23 Modeling Data Structures 2 (Live Coding)
2/26 Inductive Properties
2/28 Inside Alloy
3/2 SAT Solving
3/12 Motivating Model Checking
3/14 Model Checking (Live Coding)
3/16 Model Checking (Live Coding) Use of Formal Methods at Amazon Web Services
3/19 Model Checking
3/21 Model Checking
3/23 Model Checking
4/2 SMT (Live Coding)
4/4 SMT
4/6 Applying Model Checking
4/9 Propositional Resolution
4/11 Datalog
4/13 TBD
4/16 Final Project Help Lecture
4/18 Flowlog
4/20 Guest Speaker: Molham Aref
4/23 Guest Speaker: Serdar Kadıoğlu
4/25 Incompleteness and Undecideability
4/30 Guest Speaker