- français
- English
Fiches de cours
Formal verification
CS-550
Enseignant(s) :
Kuncak ViktorLangue:
English
Summary
We introduce formal verification as an approach for developing highly reliable systems. Formal verification finds proofs that computer systems work under all relevant scenarios. We will learn how to use formal verification tools and explain the theory and the practice behind them.Content
Topics may include among the others some of the following:
- Importance of Reliable Systems. Methodology of Formal Verification. Soundness and Completeness in Modeling and Tools. Successful Tools and Flagship Case Studies
- Review of Sets, Relations, Computability, Propositional and First-Order Logic Syntax, Semantics, Sequent Calculus.
- Completeness and Semi-Decidability for First-Order Logic. Inductive Definitions and Proof Trees. Higher-Order Logic and LCF Approach.
- State Machines. Transition Formulas. Traces. Strongest Postconditions and Weakest Preconditions.
- Hoare Logic. Inductive Invariants. Well-Founded Relations and Termination Measures
- Modeling Hardware: Verilog to Sequential Circuits
- Linear Temporal Logic. System Verilog Assertions. Monitors
- SAT Solvers and Bounded Model Checking
- Model Checking using Binary Decision Diagrams
- Loop Invariants. Hoare Logic. Statically Checked Function Contracts. Relational Semantics and Fixed-Point Semantics
- Symbolic Execution. Satisfiability Modulo Theories
- Abstract Interpretation and Predicate Abstraction
- Information Flow and Taint Analysis
- Verification of Security Protocols
- Dependent and Refinement Types
Learning Prerequisites
Recommended courses
Computer Language Processing / Compilers
Important concepts to start the course
Discrete Mathematics
Learning Outcomes
By the end of the course, the student must be able to:- Formalize specifications
- Synthesize loop invariants
- Specify software functionality
- Generalize inductive hypothesis
- Critique current software development practices
Teaching methods
Instructors will present lectures and exercises and supervise labs on student laptops.
Expected student activities
Follow the course material and complete and explain projects during the semester.
Assessment methods
The grade is based on the code, documentation, and explanation of projects during the semester.
There are no written exams.
Supervision
Office hours | Yes |
Assistants | Yes |
Forum | Yes |
Resources
Bibliography
- Michael Huth and Mark Rayan: Logic in Computer Science - Modelling and Reasoning about Systems. Cambridge University Press 2004.
- Handbook of Model Checking, https://www.springer.com/de/book/9783319105741 Springer 2018. Including Chapter Model Checking Security Protocols by David Basin.
- Tobias Nipkow, Gerwin Klein: Concrete Semantics with Isabelle/HOL. http://concrete-semantics.org/concrete-semantics.pdf
- Aaron Bradley and Zohar Manna: The Calculus of Computation - Decision Procedures with Applications to Verification, Springer 2007.
- Nielson, Flemming, Nielson, Hanne R., Hankin, Chris: Principles of Program Analysis. ISBN 978-3-662-03811-6. Springer 1999.
- Peter B. Andrews: An Introduction to Mathematical Logic and Type Theory (To Truth Through Proof), Springer 2002.
- http://logitext.mit.edu/tutorial
Ressources en bibliothèque
- Handbook of model checking
- Introduction to mathematical logic and type theory
- Handbook of Model Checking
- Tobias Nipkow, Gerwin Klein: Concrete Semantics with Isabelle/HOL
- Michael Huth and Mark Rayan: Logic in Computer Science - Modelling and Reasoning about Systems
- Peter B. Andrews: An Introduction to Mathematical Logic and Type Theory
- Nielson, Flemming, Nielson, Hanne R., Hankin, Chris: Principles of Program Analysis
- Aaron Bradley and Zohar Manna: The Calculus of Computation - Decision Procedures with Applications to Verification
Websites
Moodle Link
Videos
Dans les plans d'études
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
6 - Matière examinée
Formal verification - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - TP
2 Heure(s) hebdo x 14 semaines
- Semestre
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
6 - Matière examinée
Formal verification - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - TP
2 Heure(s) hebdo x 14 semaines
- Semestre
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
6 - Matière examinée
Formal verification - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - TP
2 Heure(s) hebdo x 14 semaines
- Semestre
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
6 - Matière examinée
Formal verification - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - TP
2 Heure(s) hebdo x 14 semaines
- Semestre
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
6 - Matière examinée
Formal verification - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - TP
2 Heure(s) hebdo x 14 semaines
- Semestre
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
6 - Matière examinée
Formal verification - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - TP
2 Heure(s) hebdo x 14 semaines
- Semestre
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
6 - Matière examinée
Formal verification - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - TP
2 Heure(s) hebdo x 14 semaines
- Semestre
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
6 - Matière examinée
Formal verification - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - TP
2 Heure(s) hebdo x 14 semaines
- Semestre
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
6 - Matière examinée
Formal verification - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - TP
2 Heure(s) hebdo x 14 semaines
- Semestre
Semaine de référence
Lu | Ma | Me | Je | Ve | |
---|---|---|---|---|---|
8-9 | |||||
9-10 | |||||
10-11 | |||||
11-12 | |||||
12-13 | |||||
13-14 | |||||
14-15 | |||||
15-16 | |||||
16-17 | |||||
17-18 | |||||
18-19 | |||||
19-20 | |||||
20-21 | |||||
21-22 |
En construction
Cours
Exercice, TP
Projet, autre
légende
- Semestre d'automne
- Session d'hiver
- Semestre de printemps
- Session d'été
- Cours en français
- Cours en anglais
- Cours en allemand