Correctness of the hardware, software and cyber-physical systems is of prime importance to prevent financial loss or loss of life. With the increase in the complexity of the systems, ensuring the correctness of the systems becomes a significant challenge and entails algorithmic methods that can automatically ensure correctness of the systems without manual intervention. This course will discuss the mechanisms for modeling a system and capturing its requirements formally, and algorithms and techniques for verifying the model with respect to its formal specification. The course will also look into various software tools that have been successful in utilizing the algorithmic techniques to solve practical verification problem.
The course does not have any formal prerequisites. The students are expected to have mathematical maturity of the level of an undergraduate degree in engineering. However, some familiarity with finite state machines and ordinary differential equations, and programming experience will be helpful.
Assignments - 40%
Mid-Semester Examination - 20%
End-Semester Examination - 30%
Class Attendance - 10%
Our department follows this anti-cheating policy strictly.
Lecture | Date | Main Topic | Sub Topic | References |
1 | July 29, 2019 | Modelling Concurrent Systems | Introduction to Systems Verification, The Model Checking Process, Transition Systems, Modeling Hardware Systems | [BK08: Ch1, Ch2] |
2 | August 1, 2019 | Modeling Data Dependent Systems, Concurrency and Interleaving, Communication with Shared Variables | [BK08: Ch2] | |
3 | August 5, 2019 | Handshaking, Synchronous Parallelism, Channel Systems | [BK08: Ch2] | |
4 | August 8, 2019 | Introduction to Promela and Spin, The State-Space Explosion Problem | [BK08: Ch2] | |
5 | August 19, 2019 | Linear Time Properties | Deadlock, Linear-Time Behavior, Safety Properties and Invariants | [BK08: Ch3] |
6 | August 22, 2019 | Liveness Properties, Fairness | [BK08: Ch3] | |
7 | August 26, 2019 | Regular Properties | Automata on Finite Words, Regular Safety Properties, Verifying Regular Safety Properties, | [BK08: Ch4] |
8 | August 29, 2019 | omega-Regular Languages and Properties, NBA, DBA | [BK08: Ch4] | |
9 | September 2, 2019 | GNBA, Model-Checking omega-Regular Properties | [BK08: Ch4] | |
10 | September 5, 2019 | Linear Temporal Logic | Syntax and Semantics, Equivalence of LTL Formulae | [BK08: Ch5] |
11 | September 9, 2019 | Fairness in LTL, Automata-Based LTL Model Checking | [BK08: Ch5] | |
12 | September 12, 2019 | Automata-Based LTL Model Checking (Contd.) | [BK08: Ch5] | |
| ||||
13 | September 23, 2019 | Computation Temporal Logic | Syntax and Semantics of CTL, Expressiveness of CTL vs. LTL | [BK08: Ch6] |
14 | September 26, 2019 | CTL Model Checking, Fairness in CTL | [BK08: Ch6] | |
15 | September 30, 2019 | Binary Decision Diagram, Symbolic CTL Model Checking | [BK08: Ch6], [Bry86] | |
16 | October 3, 2019 | SAT and SMT | SAT and SMT Solvers | [NOT06], [BSST09], [dMB08] |
| ||||
17 | October 14, 2019 | Equivalence and Abstraction | Bisimulation | [BK08: Ch7] |
18 | October 17, 2019 | Simulation Relations | [BK08: Ch7] | |
19 | October 21, 2019 | Stutter Linear-Time Relations | [BK08: Ch7] | |
22 | October 24, 2019 | Timed Automata | Syntax and Semantics Timed Automata | [BK08: Ch9] |
23 | October 25, 2019 | Timed Computation Tree Logic, TCTL Model Checking | [BK08: Ch9], [AD94] | |
20 | October 28, 2019 | Partial Order Reduction | Independence of Actions, Ample Set Constraints, Dynamic Partial Order Reduction | [BK08: Ch8] |
21 | November 1, 2019 | Computing Ample Sets, Static Partial Order Reduction | [BK08: Ch8] | |
24 | November 11, 2019 | | ||
25 | November 12, 2019 | |||
26 | November 14, 2019 | |||
|
[BK08] C. Baier and J.-P. Katoen. Principles of Model Checking. The MIT Press, 2008.
[CGP99] E. M. Clarke, Jr., O. Grumberg, and D. A. Peled. Model Checking. MIT Press, 1999.
[NOT06] R. Nieuwenhuis, A. Oliveras, C. Tinelli. Solving SAT and SAT Modulo Theories: From an abstract Davis--Putnam--Logemann--Loveland procedure to DPLL(T). J. ACM 53(6): 937-977, 2006.
[BSST09] C. Barrett, R. Sebastiani, S. A. Seshia, and C. Tinelli. Satisfiability modulo theories. In Armin Biere, Hans van Maaren, and Toby Walsh, editors, Handbook of Satisfiability, volume 4, chapter 8. IOS Press, 2009.
[dMB08] L. M. de Moura and N. Bjorner. Z3: An efficient smt solver. In TACAS, pages 337-340, 2008.
[AD94] Rajeev Alur, David L. Dill: A Theory of Timed Automata. Theor. Comput. Sci. 126(2): 183-235, 1994.
[Bry86] R. E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Trans. Computers, 35(8):677-691, 1986.
[Ras05] Jean-Francois Raskin. An Introduction to Hybrid Automata. Handbook of Networked and Embedded Control Systems, pages 491-517, 2005.
[BCC+03] Armin Biere, Alessandro Cimatti, Edmund M. Clarke, Ofer Strichman, Yunshan Zhu: Bounded model checking. Advances in Computers 58: 117-148 (2003)