en | de

# SAT/SMT Solving

## bachelor program

PS2  SS 2019  703048

### 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
• 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
The course will consist of both lecture parts and practical parts. While the former provide theoretical input, the latter give opportunity to gain hands-on experience with problem solving using SAT and SMT encodings. Finally, we will also implement our own solvers.

### Schedule

week date slides sources exercises solutions
1 08.03 pdf (1x1, 4x1) pdf pdf
2 15.03 pdf (1x1, 4x1) pdf pdf
3 22.03 pdf (1x1, 4x1) pdf pdf
4 29.03 pdf (1x1, 4x1) pdf pdf
5 05.04 pdf (1x1, 4x1) pdf
6 12.04 pdf (1x1, 4x1) pdf pdf
7 03.05 pdf (1x1, 4x1) pdf pdf
8 10.05 pdf (1x1, 4x1) pdf pdf
9 17.05 pdf (1x1, 4x1) pdf pdf
10 24.05 pdf (1x1, 4x1) pdf pdf
11 07.06 pdf (1x1, 4x1) pdf
12 14.06 pdf (1x1, 4x1) pdf pdf
13 21.06 pdf (1x1, 4x1)
14 01.07

### Test

A test took place on July 1, 14:00 (solutions).