• Keine Ergebnisse gefunden

Rechner¨ubung zu Theorembeweiser und ihre Anwendungen

N/A
N/A
Protected

Academic year: 2022

Aktie "Rechner¨ubung zu Theorembeweiser und ihre Anwendungen"

Copied!
12
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Rechner¨ ubung zu Theorembeweiser und ihre Anwendungen

Prof. Dr.-Ing. Gregor Snelting Dipl.-Inf. Univ. Daniel Wasserrab

Lehrstuhl Programmierparadigmen IPD Snelting

Universit¨at Karlsruhe (TH)

(2)

Teil I

Einf¨ uhrung in Isabelle

(3)

Installation

Wurde f¨ur uns schon gemacht :), aber falls es jemand zu Hause installieren m¨ochte:

Auf Seite http://isabelle.in.tum.de/download.htmlgehen Isabelle (online ist neue Version 2009), ProofGeneral, PolyML und HOL herunterladen und installieren (ist erkl¨art)

Starten des ProofGeneral in emacs(Groß- und Kleinschreibung beachten!):

Poolraum: /usr/local/Isabelle/bin/Isabelle(-p xemacs) Download: Isabelle-Pfad/isabelle emacs(-p xemacs) Die Option -p xemacs nach dem jeweiligen Befehl (also z.B.

isabelle emacs -p xemacs) startet ProofGeneral inxemacs

(4)

ProofGeneral

Isabelle-GUI, Plugin f¨ur (X)Emacs verwendet XSymbols

bietet Isabelle-spezifische Men¨us

bietet Buttons zum Steuern des Beweisprozesses (Retract, Undo, Next, Use, Goto, Stop)

(5)

Dateien in Isabelle

Isabelle-Dateien haben die Endung .thy eine Datei beginnt mit:

theoryDateiname imports Basisdateiname (Standard:Main) begin durch die Buttons leitet man den Beweisprozess,

blau unterlegter Text wurde bearbeitet Dateiende wird durchend ausgedr¨uckt

(6)

Aussagen

In Isabelle werden zu zeigende Aussagen mit dem Schl¨usselwort lemma(auch m¨oglich: corollary undtheorem)

danach folgt optional ein Name, beendet durch :

danach folgt die zu zeigende Aussage in Anf¨uhrungszeichen darauf werden mittelsapply Regeln angewandt

(7)

Regeln

allgemeine Form: [[P1; P2; P3]] = Q

P1,P2,P3 sind Pr¨amissen der Regel (Annahmen) Qdie Konklusion (Schlussfolgerung)

= trennt Pr¨amissen und Konklusion Also: “WennP1,P2und P3, dannQ

BeispielModus Ponens:[[P −→ Q; P]] = Q

(8)

Operatoren

Es gibt folgende logische Operatoren in Isabelle/HOL:

Negation ¬(geschrieben \<not>)

Konjunktion (geschrieben\<and>oder kurz: /\) Disjunktion (geschrieben\<or> oder kurz:\/) Implikation−→, nicht verwechseln mit =!

(geschrieben \<longrightarrow>oder kurz: −−>) Gleichheit =

Ungleichheit 6=(geschrieben \<noteq>oder kurz: =/)

(9)

Introduktion und Elimination

Jeder Operator besitzt eine Introduktionsregel, wobei der Operator in der Konklusion steht (Standardname. . .I)

“Was brauche ich, damit die Formel gilt?”

Beispiel: conjI:[[P; Q]] = P Q

Jeder Operator besitzt eine Eliminationsregel, wobei der Operator in der ersten Pr¨amisse steht (Standardname. . .E)

“Was kann ich aus der Formel folgern?”

Beispiel: conjE:[[P Q; [[P; Q]] = R]] = R

Regeln kann ich mir mittels thmlemma-Name anzeigen lassen

(10)

Anwendung von Regeln in Isabelle

Anwendung von Regeln spaltet das Beweisziel evtl. in subgoals auf Jedes subgoal muss erst gezeigt werden, bevor das n¨achste

gezeigt werden kann

Wenn die Konklusion einer Pr¨amisse entspricht:

apply assumption

Wenn man eine (Introduktions-)Regel auf eine Konklusion anwenden m¨ochte:apply(ruleRegel-Name)

ersetzt Beweis der Konklusion der Regel durch (meist mehrere) Beweise der Pr¨amissen der Regel

vorher vorhandene Pr¨amissen werden wieder Pr¨amissen der Beweise

(11)

Anwendung von Regeln in Isabelle

Wenn man eine (Eliminations-)Regel auf einePr¨amisse anwenden m¨ochte:apply(eruleRegel-Name)

Vorsicht: Das aktuell zu zeigende subgoal muss mit der Konklusion der Regel unifizierbar sein!

eliminiert die passende Pr¨amisse und ersetzt Beweis der Konklusion der Regel durch Beweise der weiteren Pr¨amissen der Regel

andere vorhandene Pr¨amissen bleiben wieder erhalten

Wenn Isabelle meldet: No subgoals!, Beenden des Beweises mittels done

(12)

Und jetzt Sie!

Viel Spass beim Ausprobieren!

Referenzen

ÄHNLICHE DOKUMENTE

meist nicht gewollt, da schlecht Aussagen dar¨ uber m¨ oglich Besser: entsprechende Variable gleich festlegen.. Methodik: rule_tac v1 =

Nur Regeln zu Standardpool hinzuf¨ ugen, dessen rechte Seite einfacher als linke

nat¨ urliche Zahl (ungleich 0) ist Nachfolger einer nat¨ urlichen Zahl nichtleere Liste ist Liste mit zus¨ atzlichem Kopfelement.. nichtleere Menge ist Menge mit einem zus¨

Analog: Ganze Pr¨ amissen instantiieren ebenso eckige Klammer,. Schl¨ usselwort OF ,

was passiert jedoch, wenn ein “Teillemma” nur gezeigt werden kann, wenn Induktionshypothese bestimmte Variablen allquantifizieren muss. Kennen allgemein schon die L¨ osung:

Lemma besteht aus Pr¨ amissen und Konklusion, dann Liste der Pr¨ amissen nach Schl¨ usselwort assumes, evtl.. Lemma mit Pr¨ amissen

Aussage nach where kann beliebigen Namen erhalten auch aus Allquantor obtain m¨ oglich. IPD Snelting, Uni Karlsruhe (TH) Rechner¨ ubung TBA Sommersemester 2009 75

voriger Ansatz mit Benamung der F¨ alle kann nicht funktionieren Jedoch trotzdem case m¨ oglich durch Nummerierung der F¨ alle angegebene F¨ alle bekommen nach Reihenfolge Nummer.