Content
How can the correctness of security-critical software and hardware be ensured? How should an airline assign flight crew to flights to minimise costs, at the same time meeting regulations and ensuring the schedule is robust? How can a fixed number of software tests cover a maximal number of test situations? For such verification and optimization tasks SAT and SMT solvers turned out to be powerful catalyzers which render problems practically solvable that have long been considered infeasible.
The course provides an introduction into the theory and practice of SAT and SMT solving, covering the following topics:
- propositional logic (SAT) and DPLL
- maximal satisfiability (maxSAT)
- satisfiability modulo theories (SMT) and DPLL(T)
- how to solve common theories such as linear arithmetic, uninterpreted functions, and bit vectors
- Nelson-Oppen combination method
Schedule
week | date | slides | sources | exercises | solutions |
---|---|---|---|---|---|
1 | 07.10. | pdf (1x1, 4x1) | test.py | ||
2 | 21.10. | pdf (1x1, 4x1) | gardening.py | ||
3 | 28.10. | pdf (1x1, 4x1) | optimize.py | ||
4 | 04.11. | pdf (1x1, 4x1) | unsatCore.py | ||
5 | 11.11. | pdf (1x1, 4x1) | euf.py | ||
6 | 18.11. | pdf (1x1, 4x1) | |||
7 | 25.11. | pdf (1x1, 4x1) | |||
8 | 02.12. | pdf (1x1, 4x1) | |||
9 | 09.12. | pdf (1x1, 4x1) | |||
10 | 16.12. | pdf (1x1, 4x1) | bithacksmin.py | ||
11 | 13.01. | pdf (1x1, 4x1) | sax_collision.py | ||
12 | 20.01. | pdf (1x1, 4x1) | verification.py, prog.smt2 | ||
13 | 27.01. | pdf (1x1, 4x1) | |||
14 | 03.02. |