TU Kaiserslautern Übungsblatt 1: Spezifikation und Verifikation mit

Werbung
TU Kaiserslautern
Prof. Dr. A. Poetzsch-Heffter
Dipl.-Inf. P. Michel
Fachbereich Informatik
Dipl.-Inf. C. Feller
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 das Genzten-Kalkül, auch Kalkül des natürlichen Schließens genannt. Das Kalkül arbeitet
auf Sequenzen (engl. sequents) der Form Γ ` A, welche aussagen, dass die Formel A aus 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 Formeln A. 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
Γ ` A ∧ B (∧E )
l
Γ`A
Γ ` A ∧ B (∧E )
r
Γ`B
Γ`A∨B
Γ, A ` C
Γ`C
Γ`B
(∨Ir )
Γ`A∨B
Γ, A ` B
(→ I)
Γ`A→B
Γ`A→B
Γ ` A (→ E)
Γ`B
Γ, B ` C
(∨E)
Wahrheitswerte (Konstanten), Negation (unäre Relation) und Abschwächung
Γ ` False (FalseE)
Γ`A
Γ, A ` False
(¬I)
Γ ` ¬A
Γ ` ¬A
Γ ` A (¬E)
Γ ` False
Γ ` B (W )
Γ, A ` B
Universelle und Existentielle Quantoren
Γ ` {anew /x}A
(∀I)
Γ ` ∀x.A
Γ ` {t/x}A
(∃I)
Γ ` ∃x.A
Γ ` ∃x.A
Γ ` ∀x.A (∀E)
Γ ` {t/x}A
Γ, {anew /x}A ` C
(∃E)
Γ`C
Die Namen der Regeln stehen seitlich in Klammern notiert. Dabei steht I für Introduction, E für Elimination
und W für Weakening. Die Syntax {y/x}A bedeutet, dass alle ungebundenen Vorkommen von x in A durch
y ersetzt werden. Für anew muss eine vollkommen neue Variable gewählt werden, die sonst noch nicht
vorkommt. t hingegen darf irgendein beliebiger Term sein.
Ein Beweis in diesem Kalkül ist ein Baum von Regelanwendungen, dessen Blätter Axiome sind und dessen 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
∧I
∧El
∧Er
→I
→E
Isabelle/HOL
conjI
conjunct1
conjunct2
impI
mp
Gentzen
∨Il
∨Ir
∨E
∀E
∀I
Isabelle/HOL
disjI1
disjI2
disjE
spec
allI
Gentzen
¬I
¬E
FalseE
∃I
∃E
Isabelle/HOL
notI
notE
FalseE
exI
exE
Aufgabe 2 Hilbert-Kalkül
Das Hilbert-Kalkül hat nur die Regel Modus-Ponens:
P →Q
Q
P
(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 mit P
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.
Herunterladen