Entscheidungsverfahren mit Anwendungen in der Softwareverifikation
- Typ: Vorlesung (V)
- Semester: SS 2013
- Ort:
-
Zeit:
Mo 14:00-15:30
- Beginn: 15.04.2013
-
Dozent:
Dr. Carsten Sinz
Dr. Stephan Falke - SWS: 2
- ECTS: 3
- LVNr.: 2400034
Vorlesungsinhalte
Entscheidungsverfahren sind Algorithmen, die für ein gegebenes Problem immer eine korrekte Ja/Nein-Antwort liefern.Sie spielen in der Softwareverifikation eine entscheidende Rolle, da sich mit ihrer Hilfe eine Vielzahl von Korrektheitseigenschaften (z.B. in Bezug auf Speicherzugriffsfehler, Überläufe oder funktionale Eigenschaften) überprüfen und vollautomatisch beweisen lassen.
Die Vorlesung stellt eine Reihe von logischen Entscheidungsverfahren und ihre Anwendung in der automatische Programmverifikation vor.
Themen sind unter anderem:
- SAT-Solving, DPLL
- SMT, DPLL(T)
- Gleichheit mit uninterpretierten Funktionen, Kongruenzabschluss
- Lineare Arithmetik ganzer Zahlen
- Bitvektoren
- Arrays
- Kombination von Entscheidungsverfahren
- Software Bounded Model Checking
- Symbolic Execution
- Predicate Abstraction
Darüber hinaus werden wir Werkzeuge der Programmverifikation (wie LLBMC, KLEE, SatAbs) vorstellen und kleine Verifikationsprobleme mit diesen lösen.
Folien
- 15.04.2013: Einführung
- 22.04.2013: SAT: DPLL und Datenstrukturen
- 29.04.2013: SAT: Klausel-Lernen, SAT-Codierung
- 06.05.2013: SMT und DPLL(T)
- 13.05.2013: Theorie der uninterpretierten Funktionen
- 27.05.2013: Theorie der linearen, ganzzahligen Arithmetik
- 03.06.2013: Bitvektoren
- 10.06.2013: Logik der Arrays
- 17.06.2013: Kombination von Entscheidungsverfahren
- 17.06.2013: LLVM
- 24.06.2013: LLBMC (Bounded Model Checking) und KLEE (Symbolic Execution)
- 01.07.2013: SATABS (Predicate Abstraction)
- Am 08.07.2013 muss die Vorlesung leider ausfallen. Als Vorbereitung für die Praxis-Sitzung am 15.07. installieren Sie bitte LLBMC, KLEE und SATABS auf Ihren Rechnern und machen sich mit der Bedienung vertraut.