Prof. Dr. A. Poetzsch-Heffter Dipl.-Inf. P. Michel
Dipl.-Inf. C. Feller
TU Kaiserslautern
Fachbereich Informatik AG Softwaretechnik
Übungsblatt 1: Spezifikation und Verifikation mit Logik Höherer Ordnung (Sommersemester 2010)
Ausgabe: 12.04.2010
Aufgabe 1 Kalkül des natürlichen Schließens
Wir betrachten dasGenzten-Kalkül, auch Kalkül desnatürlichen Schließens genannt. Das Kalkül arbeitet aufSequenzen(engl.sequents) der FormΓ ` A, welche aussagen, dass die FormelAaus der Menge der Formeln Γ syntaktisch folgt. Kann man mit Hilfe der Regeln des Kalküls aus den Axiomen eine solche Sequenz ableiten, gilt auch die semantische Folgerungsbeziehung (das Kalkül ist korrekt).
Das Kalkül beinhaltet nur ein einziges Axiom, was besagt, dass man jede Formel unter Annahme von sich selbst herleiten kann:A ` A, für alle FormelnA. Dafür gibt es um so mehr Regeln, mit denen sich aus Sequenzen neue bilden lassen:
Konjunktion, Disjunktion und Implikation (binäre Relationen)
Γ`A Γ`B (∧I) Γ`A∧B
Γ`A (∨Il) Γ`A∨B
Γ`B (∨Ir) Γ`A∨B
Γ, A`B
(→I) Γ`A→B
Γ`A∧B (∧El) Γ`A
Γ`A∧B (∧Er) Γ`B
Γ`A→B Γ`A (→E) Γ`B
Γ`A∨B Γ, A`C Γ, B`C Γ`C (∨E)
Wahrheitswerte (Konstanten), Negation (unäre Relation) und Abschwächung
Γ`False (FalseE) Γ`A
Γ, A`False Γ` ¬A (¬I)
Γ` ¬A Γ`A (¬E) Γ`False
Γ`B (W) Γ, A`B
Universelle und Existentielle Quantoren Γ` {anew/x}A
(∀I) Γ` ∀x.A
Γ` ∀x.A (∀E) Γ` {t/x}A Γ` {t/x}A
Γ` ∃x.A (∃I)
Γ` ∃x.A Γ,{anew/x}A`C Γ`C (∃E)
Die Namen der Regeln stehen seitlich in Klammern notiert. Dabei stehtIfürIntroduction,EfürElimination undW fürWeakening. Die Syntax{y/x}Abedeutet, dass alle ungebundenen Vorkommen vonxinAdurch y ersetzt werden. Für anew muss eine vollkommen neue Variable gewählt werden, die sonst noch nicht vorkommt.thingegen darf irgendein beliebiger Term sein.
Ein Beweis in diesem Kalkül ist ein Baum von Regelanwendungen, dessen Blätter Axiome sind und des- sen Wurzel die zu beweisende Behauptung ist. Man erstellt einen Beweis in diesem Kalkül üblicherweise rückwärts, als ausgehend von der Behauptung, hin zu Axiomen.
a) (Vorbereiten!) Zeigen Sie mit Hilfe des Gentzen-Kalküls, dass gilt:
`(a∨(b∧c))→((a∨b)∧(a∨c))
b) (Vorbereiten!) Zeigen Sie mit Hilfe des Gentzen-Kalküls, dass gilt:
` ∃x.∀y.P(x, y)→ ∀y.∃x.P(x, y)
c) Schreiben Sie eine Isabelle/HOL Theorie, die Ihre Beweise aus a) und b) umsetzt. Ein Gerüst mit dem Sie starten können sieht so aus:
theory Blatt1 imports Main begin
lemma Aufgabe_1_a:
"(a \/ (b /\ c)) −−> ((a \/ b) /\ (a \/ c))"
apply (rule ...) ...
done
lemma Aufgabe_1_b:
"(EX x. ALL y. P x y) −−> (ALL y. EX x. P x y)"
...
end
Die Regeln des Gentzen-Kalküls entsprechen in etwa den folgenden Isabelle/HOL Regeln:
Gentzen Isabelle/HOL Gentzen Isabelle/HOL Gentzen Isabelle/HOL
∧I conjI ∨Il disjI1 ¬I notI
∧El conjunct1 ∨Ir disjI2 ¬E notE
∧Er conjunct2 ∨E disjE FalseE FalseE
→I impI ∀E spec ∃I exI
→E mp ∀I allI ∃E exE
Aufgabe 2 Hilbert-Kalkül
Das Hilbert-Kalkül hat nur die RegelModus-Ponens:
P →Q P Q (MP)
Dazu kommen die drei Axiome:
(A1) P →(Q→P)
(A2) (P →(Q→R))→((P →Q)→(P →R)) (A3) (¬P → ¬Q)→(Q→P)
Ein Beweis im Hilbert-Kalkül ist eine Sequenz von Formeln, bei der jede Formel entweder ein Axiom, eine Annahme (engl.assumption) oder das Ergebnis einer Modus-Ponens Anwendung auf zwei vorhergehende Formeln ist. Die SequenzΓ ` P bedeutet, dass es mit den Annahmen ausΓeinen Beweis gibt, der mitP endet.
a) (Vorbereiten!) Zeigen Sie, dass`b→(a→a).
b) (Vorbereiten!) Zeigen Sie, dass`a∨ ¬a. (Hinweis: Verwenden Sie die Regeln aus der Vorlesung, um das∨zu eliminieren.)
c) (Vorbereiten!) Zeigen Sie, dass¬¬a`a.
d) Übertragen Sie die Beweise sinnvoll nach Isabelle/HOL.