Intelligente Wiederverwendung von Beweisen

Werbung
Intelligente Wiederverwendung von Beweisen
(Bachelorarbeit, Praxismodul, Projektmodul, studentische Hilfskraft)
Beweise für Eigenschaften von Software gehen oft schief. Sei es, dass die Software selbst noch einen
Bug hat, die angenommene Eigenschaft des Programms nicht ganz stimmt, oder z.B. die Invariante einer
Schleife falsch definiert war. Deshalb müssen nach Korrekturen oder auch, wenn die Software Software
an neue Anforderungen angepasst wurde, Beweis(versuch)e erneut gemacht werden.
Die Grundidee dabei ist, die alten Beweisversuche als Vorlage für den neuen zu
verwenden (da die Beweisidee immer noch ungefähr dieselbe ist), und die Beweisschritte nachzuspielen“. Je erfolgreicher dies ist, und je mehr Abweichungen
”
dabei toleriert werden, desto mehr Zeit kann beim Beweisen eingespart werden.
Das KIV-System ist ein interaktiver Beweiser, der in Scala programmiert ist. Scala
ist eine sehr moderne, auf der JVM basierenden Programmiersprache, die objektorientierten Konzepte von Java um viele neue Konzepte erweitert (u.a. Funktionen
als Parameter, interfaces die Code enhalten usw.)
In KIV sind Beweisbäume des Sequenzenkalküls (oder auch des Hoare-Kalküls)
eine explizite Datenstruktur (die, wie rechts zu sehen, graphisch angezeigt werden können). Eine einfache Strategie zum Nachspielen von Beweisen ist in KIV
programmiert. Die Aufgabenstellung für die Arbeit ist es, diese Strategie so zu erweitern, dass sie mehr Abweichungen zwischen der korrigierten neuen Aussage
und der alten Aussage, für die ein Teilbeweis vorliegt, tolerieren kann. Eine erste
Erweiterung betrifft Änderungen an den verwendeten Variablen. Für einen Praxismodul wäre die Realisierung einer guten Lösung dieses Problems ausreichend,
für eine Bachelorarbeit würde man weitere Änderungsmuster ansehen, z.B. die
Anpassung an geänderte Programme, und zum Schluss den Fortschritt des Ergebnisses evaluieren.
Aufgabenstellung:
• Einarbeitung in Scala und die relevante Datenstruktur Beweisbaum in KIV.
• Erweiterung der Strategie zum einen Mechanismus, der geänderte Variablen erkennt und entsprechend den neuen Beweis anpasst.
• für Bachelorarbeit: Erkennen anderer typischer Änderungsmuster (z.Bsp. Behauptung verstärkt,
Programm geändert) und entsprechende Anpassung der Wiederverwendungsstrategie. Systematische Evaluation an Beispielen.
Hinweise:
• Programmierkenntnisse in Java (Eclipse)
• Interesse für Logik
• Grundverständnis für Prädikatenlogik und Hoare-Kalkül für Programme (z.B. Bachelor-Vorlesung)
Beginn:
Ansprechpartner:
Raum:
Email:
ab sofort möglich
Dr. Gerhard Schellhorn, Jörg Pfähler
3016, 3014
[email protected]
[email protected]
Herunterladen