This page in English  Lehr- und Forschungsgebiet Informatik II  Fachgruppe Informatik RWTH

Automatisierte Programmverifikation

(V4 + Ü2, SS 2003)

LuFG Informatik II
Art Termine/OrtBeginnVeranstalter
V4Di 10:00 - 11:30 AH III29. 04. 2003 Prof. Dr. Jürgen Giesl
 Fr 10:00 - 11:30 AH II02. 05. 2003 
Ü2Mi 11:45 - 13:15 AH II07. 05. 2003 Prof. Dr. Jürgen Giesl, Darius Dlugosz



Ankündigung (30. 9. 2003)

Das Skript zur Vorlesung ist mittlerweile fertig überarbeitet und kann im Sekretariat des Lehr- und Forschungsgebiets Informatik II zum Kopieren ausgeliehen werden.


Inhalt

Um die Zuverlässigkeit und Korrektheit von Programmen zu garantieren, reicht es nicht aus, sie nur zu testen, sondern es wird eine formale Verifikation benötigt. Solche Verifikationsbeweise sind jedoch im allgemeinen sehr aufwendig - insbesondere bei umfangreichen Programmen, wie sie in der Praxis eingesetzt werden.

Aus diesem Grund wird versucht, die Aufgabe der Verifikation weitgehend automatisch durchzuführen. Hierzu müssen automatische Beweissysteme verwendet werden, die in der Lage sind, Korrektheitsaussagen über Programme nachzuweisen.

Das Ziel der Vorlesung ist daher die Vermittlung von Techniken zur Automatisierung der Programmverifikation. Von zentraler Bedeutung ist hierbei das Beweisprinzip der Induktion, das benötigt wird, um Eigenschaften von Programmen mit Schleifen oder Rekursion zu verifizieren. Es wird gezeigt, wie solche Induktionsbeweise zur Verifikation von Programmen in einer einfachen funktionalen Programmiersprache automatisch durchgeführt werden können und es wird darauf eingegangen, wie auch die Terminierung von Programmen automatisch gezeigt werden kann.


Contents

In order to guarantee the reliability and correctness of programs, testing is not sufficient. Instead, a formal verification of programs is required. However, in general such verification proofs can be very costly and time-consuming. In particular, this holds for large programs used in practice.

Therefore, the goal is to mechanize program verification as much as possible. For that purpose one has to use proof tools which can verify correctness statements about programs automatically.

Thus, the course focuses on techniques to automate the task of program verification. The essential proof technique required to handle programs with loops or recursion is induction. Hence, we will introduce techniques to mechanize induction proofs for the verification of programs in a simple functional language. Moreover, we will also present methods to prove the termination of programs automatically.


Sprache

deutsch


Literatur


Zuordnung

Theoretische Informatik, Informatik Vertiefung


Scheinbedingungen

Um einen Übungsschein zu erhalten, müssen Sie 50% der Punkte in den Übungen erreichen und eine kleine mündliche Prüfung bei D. Dlugosz am Ende des Semesters bestehen. Den Erwerb eines Übungsscheins empfehlen wir sehr, da dies eine gute Vorbereitung für die Diplomprüfung darstellt.


Übungen

Die Übungensblätter werden in der Regel dienstags in der Vorlesung ausgegeben und können bis zum Mittwoch der darauf folgenden Woche (8 Tage später) abgegeben werden. Darüber hinaus sind die Übungsblätter auch auf dieser Webseite erhältlich. Die Bearbeitung der Aufgaben sowie die Abgabe sollte möglichst in Zweiergruppen erfolgen.


Folien

Hier sind die in der Vorlesung verwendeten Folien.


Last modified: Tue Sep 30 17:49:22 CEST 2003 Lehr- und Forschungsgebiet Informatik II
RWTH Aachen