Angewandte Softwareverifikation mit einem interaktiven Theorembeweiser

Seitennavigation: Inhalt Ort und Zeit Systemdemo Skript PVS Voraussetzungen Ziele Anwendung Aufgaben Hilfe & Kontakt Dokumentation


Inhalt

In dieser Vorlesung werden Sie lernen, mit dem interaktive Theorembeweiser PVS zu arbeiten. Nach einer kurzen Einführung werden Sie eine Verifikationsaufgabe selbstständig in PVS lösen. (Die Vorlesung gleicht also eher einem Praktikum mit Einführung.)

In der Prüfung werden PVS und Details Ihrer Aufgabe besprochen.

Anmeldung: per Email an tews@os.inf.tu-dresden.de


Ort und Zeit (SS 2012)

Umfang in SWS:
1V + 1Ü + 0P
Systemdemo in der ersten Woche
Mi 4.4.2012, 2. DS, INF E069
Einführung 2.-4. Woche
nach Vereinbarung


Systemdemo

In der ersten Einführungsveranstaltung werde ich Ihnen die wichtigsten Aspekte von PVS anhand eines kleinen Beispiels im Rechnerlabor demonstrieren. Um dabei mitarbeiten zu können, bereiten Sie sich bitte wie folgt vor:


Skript


Aktuelle Version (28.3.11 bis Folie 60): [2up .ps.gz] [2up .ps] [.ps.gz] [.ps] [.pdf]
Listenbeispiel aus dem Skript: [list_props.tar.gz]
Beispiel für choose und das Auswahlaxiom: [choose.tar.gz]


Was ist PVS?

Pvs ist ein interaktiver Theorembeweiser für Logik höherer Ordnung (HOL). Pvs ist ein hybrides System mit Emacs- und Tcl/Tk-Frontend. Es besteht aus den folgenden Komponenten: So sieht es aus: Screenshot mit Pvs

Pvs kann einen hohen Suchtfaktor entfalten! Seien Sie gewarnt! ;-)


Was Sie lernen werden

In dieser Vorlesung werden Sie lernen


Wo Sie das Gelernte verwenden können

Die Benutzung eines interaktiven Theorembeweisers (wie Pvs) ist der radikalste Ansatz zur Spezifikation und Verifikation von Hard- oder Software. Dieses Praktikum wird Ihnen von Nutzen sein, wann immer Sie sich der formalen Behandlung von Hard- oder Software nähern.

PVS spielt auch in der Vorlesung Interactive Theorem Proving von Dr. Michael Posegga eine Rolle. Beide Vorlesungen sind aber unabhängig von einander.


Welche Voraussetzungen Sie mitbringen sollten

Es gibt keine formalen Zugangsvoraussetzungen. Hilfreich sind jedoch Erfahrungen in einer streng getypten funktionalen Programmiersprache (z.B. Haskell oder Ocaml). Es ist jedoch auch auch ausreichend, parallel zur Vorlesung ein bisschen funktional zu programmieren.

Pvs läuft nur auf Linux, Solaris und dem Mac mit einem Emacs-Frontend. Emacs-Erfahrung ist deshalb auch vorteilhaft. Man kann Pvs aber auch in der vi-Emulation in Emacs betreiben, sodass wenige Emacs-Kenntnisse ausreichen.


Aufgaben

  1. Korrektheit von Quicksort [dvi.gz] [ps.gz] [dvi] [ps] [pdf]
  2. Korrektheit von Heapsort [dvi.gz] [ps.gz] [dvi] [ps] [pdf]
  3. Korrektheit von Bitonic Sort [dvi.gz] [ps.gz] [dvi] [ps] [pdf]
  4. ausbalancierte binäre Bäume [dvi.gz] [ps.gz] [dvi] [ps] [pdf]
  5. rot-schwarze Bäume (red-black trees) [dvi.gz] [ps.gz] [dvi] [ps] [pdf]
  6. das Lampen-Frosch Problem [dvi.gz] [ps.gz] [dvi] [ps] [pdf]
  7. Charakterisierung des reflexiven, symmetrischen und transitiven Abschlusses einer Relation mittels Zickzacks [dvi.gz] [ps.gz] [dvi] [ps] [pdf]
  8. Knaster-Tarski-Fixpunkttheorem [dvi.gz] [ps.gz] [dvi] [ps] [pdf]
  9. finale Sequenzen-Coalgebra [dvi.gz] [ps.gz] [dvi] [ps] [pdf]
  10. Endliche Mengen: Externe Charakterisierung [dvi.gz] [ps.gz] [dvi] [ps] [pdf]
  11. Endliche Mengen: Interne Charakterisierung [dvi.gz] [ps.gz] [dvi] [ps] [pdf]


Hilfe, Kontakt

Hilfe erhalten Sie per Email von mir (tews@os.inf.tu-dresden.de).

Sie können natürlich auch auf den Pvs Emaillisten posten.

Private oder anonyme Hinweise, Anregungen oder Vorschläge senden Sie bitte an tews@os.inf.tu-dresden.de.


Dokumentation


Seitennavigation: Inhalt Ort und Zeit Skript PVS Voraussetzungen Ziele Anwendung Aufgaben Hilfe & Kontakt Dokumentation


geändert am 10 Apr 2012 von Hendrik