Formale Methoden der Softwaretechnik Vorlesung vom 13.05.2011: Isabelle — eine Einführung
Till Mossakowski & Christoph Lüth Universität Bremen Sommersemester 2011
Rev. 1445 1 [13]
Inhalt
I Heute:Übersichtauf (über) Isabelle
I Danach:systematischeEinführung
2 [13]
Isabelle
I Weit verbreiteter Theorembeweiser
I Generisch: mehr als eine Logik
I Interaktiv:Beweis wird durch den Benutzerkonstruiertund von Isabellegeprüft
I Heimatseite:http://isabelle.in.tum.de/
3 [13]
Geschichte
I Entstanden in Cambridge, entwickelt in Cambridge und München
Larry Paulson Tobias Nipkow
I Teil derLCF-Familie
I Erste Version 1988, seit Ende der 1990er weit verbreitet
4 [13]
Architektur
I Implementiert in Standard ML (SML)
I Ca. 150 kloc Standard ML
I Ca. 200 kloc Beweisskripte
I Korrekt durchLCF-Design
5 [13]
Theorien
I Isabelle-Quellcode:Theorien I Theorien bestehen aus
IDefinitionen
IBehauptungen
IBeweisen
I Isabelle liest Theorien undprüftsie I Theorien sindhierarchischstrukturiert
6 [13]
Benutzung: ProofGeneral
7 [13]
Grundlagen von Isabelle
I Grundlage:getypterλ-Kalkül
I Unifikation und Matching
I Variablen, Formeln, Resolution
8 [13]
Formeln
I Formelnin Isabelle:
φ1, . . . , φn
ψ [[φ1, . . . , φn]] =⇒ψ
I φ1, . . . , φnFormeln,ψatomar
I Theoreme:ableitbareFormeln
I Ableitungvon Formeln:Resolution,Instantiierung,Gleichheit I Randbemerkung:
I =⇒,V
,≡formenMeta-Logik
I EinbettungandererLogiken möglich —generischerTheorembeweiser
9 [13]
Variablen
I Meta-Variablen: könnenunifiziertund beliebiginstantiiertwerden I freie Variablen(fixed):beliebigaberfest
I GebundeneVariablen: Name beliebig (α-Äquivalenz) I Meta-Quantoren: IsabellesEigenvariablen
Vx.P(x)
∀x.P(x) allI !!x. P x ==> ALL x. P x
IBeliebiginstantiierbar
IGültigkeitauf diese (Teil)-Formelbegrenzt
10 [13]
Rückwärtsbeweis
I Ausgehend vonBeweiszielψ
I Beweiszustandist[[φ1, . . . , φn]] =⇒ψ
I φ1, . . . , φn:subgoals
I Beweisverfahren:Resolution,Termersetzung,Beweissuche
I Beweisendetwennn=0
11 [13]
HOL
I HOL: getypte Logik höherer Ordnung (nach Church und Gordon)
I “ HOL = Funktionale Programmierung + Logik ” I In Isabelle:
IDatentypdefinition
IFunktionsdefinitionen
I Beispiel: einfacheListenselbstgemacht
12 [13]
Zusammenfassung
I Isabelleist ein generischer,interaktiverTheorembeweiser I HOL = FP + Logik
I Beweismethoden:
I Regelkomposition
I Induktion
I Termersetzung
I Nächste Wochen: Systematische Einführung
I Aussagenlogik Prädikatenlogik Logik höherer Stufe Isabelle/HOL
I Danach: Programmverifikation mit Isabelle
13 [13]