en | de

# SAT/SMT Solving

## bachelor program

PS2  SS 2018  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
2 15.03 pdf (1x1, 4x1) hash_stub, hash pdf
3 22.03 pdf (1x1, 4x1) binSearch, rabbit pdf
4 12.04 pdf (1x1, 4x1) pdf
5 19.04 pdf (1x1, 4x1) fumalik pdf
6 26.04 pdf (1x1, 4x1) distances, tsp pdf
7 03.05 pdf (1x1, 4x1) simplex_benjamin, simplex_sarah, sudoku pdf
8 17.05 pdf (1x1, 4x1) pdf
9 24.05 pdf (1x1, 4x1) hash_collision_bv pdf
10 07.06 pdf (1x1, 4x1) pdf
11 14.06 pdf (1x1, 4x1) verification, questions
12 21.06 pdf (1x1, 4x1) pdf
13 28.06

### Test

A test took place on June 21 (solutions).