Angewandte Softwareverifikation mit einem interaktiven Theorembeweiser
Seitennavigation:
Inhalt
Ort und Zeit
Systemdemo
Skript
PVS
Voraussetzungen
Ziele
Anwendung
Aufgaben
Hilfe & Kontakt
Dokumentation
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
- 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
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:
- Stellen Sie sicher, dass Sie sich im Rechnerlabor der
Fakultät unter Linux anmelden und PVS starten können (entweder
auf den Fakultätsrechnern oder auf Ihrem eigenen Rechner).
Hinweise dazu gibt es in der PVS Überlebenshilfe.
- Erstellen Sie ein neues Verzeichnis und kopieren Sie die
Beispieldatei
sum.pvs dort hinein.
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]
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:
- Die Pvs-Spezifikationssprache kann man sich
in erster Näherung vorstellen als funktionale Programmiersprache
ohne Seiteneffekte (so wie Haskell), erweitert um Existenz- und Allquantoren sowie die
Möglichkeit, Axiome und Theoreme zu formulieren.
- Der Beweiser implementiert einen
Beweiskalkül für die Pvs-Spezifikationssprache. Damit lassen sich
die in den Quelldateien formulierten Theoreme beweisen. Der
Beweiser ist interaktiv, das heißt, der Nutzer steuert die Aktionen
des Beweisers durch seine Kommandos.
So sieht es aus:
Pvs kann einen hohen Suchtfaktor entfalten! Seien Sie gewarnt! ;-)
In dieser Vorlesung werden Sie lernen
- mit Pvs umzugehen
- Spezifikationen in Logik höherer Ordnung zu erstellen
- Beweise mit Hilfe von Pvs durchzuführen
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.
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.
- Korrektheit von Quicksort
[dvi.gz]
[ps.gz]
[dvi]
[ps]
[pdf]
- Korrektheit von Heapsort
[dvi.gz]
[ps.gz]
[dvi]
[ps]
[pdf]
- Korrektheit von Bitonic Sort
[dvi.gz]
[ps.gz]
[dvi]
[ps]
[pdf]
- ausbalancierte binäre Bäume
[dvi.gz]
[ps.gz]
[dvi]
[ps]
[pdf]
- rot-schwarze Bäume (red-black trees)
[dvi.gz]
[ps.gz]
[dvi]
[ps]
[pdf]
- das Lampen-Frosch Problem
[dvi.gz]
[ps.gz]
[dvi]
[ps]
[pdf]
- Charakterisierung des reflexiven, symmetrischen und
transitiven Abschlusses einer Relation mittels Zickzacks
[dvi.gz]
[ps.gz]
[dvi]
[ps]
[pdf]
- Knaster-Tarski-Fixpunkttheorem
[dvi.gz]
[ps.gz]
[dvi]
[ps]
[pdf]
- finale Sequenzen-Coalgebra
[dvi.gz]
[ps.gz]
[dvi]
[ps]
[pdf]
- Endliche Mengen: Externe Charakterisierung
[dvi.gz]
[ps.gz]
[dvi]
[ps]
[pdf]
- Endliche Mengen: Interne Charakterisierung
[dvi.gz]
[ps.gz]
[dvi]
[ps]
[pdf]
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.
Seitennavigation:
Inhalt
Ort und Zeit
Skript
PVS
Voraussetzungen
Ziele
Anwendung
Aufgaben
Hilfe & Kontakt
Dokumentation
geändert am
10 Apr 2012
von Hendrik