Automatisierte Logik und Programmierung

Werbung
Übung zur Vorlesung
Automatisierte Logik und Programmierung
Prof. Chr. Kreitz
Universität Potsdam, Theoretische Informatik — Wintersemester 2003/04
Blatt 2 — Abgabetermin: —
Das Übungsblatt soll dazu dienen, sich mit dem analytischen Sequenzenkalkül und den zugehörigen
Themen Substitution, Korrektheit und Gleichheit vertraut zu machen.
Aufgabe 2.1 (Logik–Kalküle)
Leite folgende Formeln sowohl im Kalkül des natürlichen Schließens (Skript, Abschnitt 2.1.6.2)
als auch im Sequenzenkalkül (Skript, Abschnitt 2.1.6.3 bzw. Abbildung 2.6) ab. Versuche dabei
herauszufinden, ob sie nur mit den klassischen oder auch mit den intuitionistischen Versionen
ableitbar sind:
2.1–a ¬¬(A∨¬A)
2.1–b ¬(¬A∧¬B)⇒A∨B
2.1–c (¬A∨¬B)∧A∧B⇒ ∀x.∃y.Q(f(y,g(f(y,g(x)))))∨¬P(f(x,f(x,g(y)))))
2.1–d (A∨B)∧¬(A∧B)⇒ ¬A∧B∨A∧¬B
Hinweis: Leite zuerst im Sequenzenkalkül ab. Die dadurch gewonnene Information erleichtert
das natürliche Schließen erheblich.
Aufgabe 2.2 (Substitution)
Führe die folgenden Substitutionen durch (vgl. Definition 2.2.20 im Skript):
2.2–a (∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z))[f(a)/x]
2.2–b (∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z))[f(a)/z]
2.2–c (∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z))[f(a)/y]
2.2–d (∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z))[f(z)/x]
2.2–e (∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z))[f(y)/z]
2.2–f (∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z))[f(x)/z]
Achtung: es gibt da ein paar kleine Feinheiten zu beachten. . .
Aufgabe 2.3 (Sequenzenkalkül)
Beweise die folgenden Formeln mit Hilfe des analytischen Sequenzenkalküls für die Prädikatenlogik erster Stufe (vgl. Abbildung 2.6 im Skript). Beachte wiederum, daß manche Beweise nur
mit Hilfe der magic–Regel an geeigneter Stelle zu führen sind:
2.3–a (¬∀x:T.P(x))⇒ ∃x:T.¬P(x)
2.3–b ∀0:N.(∀n,m:N.≥(n,m)⇒≥(s(n),m))∧ ≥(s(0),0)⇒≥(s(s(0)),0)
2.3–c
⇒
∀a,b,c:Kiste.Auf(a,b)∧Auf(b,c)∧Rot(c)∧¬Rot(a)
∃x,y:Kiste.Auf(y,x)∧¬Rot(y)∧Rot(x)
∧
⇒
(∀x:Mensch.∃y:Mensch.Vater(y,x)
∀x,y,z:Mensch.Vater(y,x)∧Vater(z,y)⇒ GroßVater(z,x))
∀x:Mensch.∃y:Mensch.GroßVater(y,x)
2.3–d
Vorlesung Automatisierte Logik und Programmierung
2
Übung 2
Aufgabe 2.4 (Gleichheit)
Beweise mit den Regeln des analytischen Sequenzenkalküls (vgl. Abbildung 2.6):
2.4–a `
∀n,m:N.
2.4–b `
∀a:O. (g(g(g(a)))=a ∧ g(g(g(g(g(a)))))=a) ⇒ g(a)=a
2.4–c
∀0:N.
`
m=n ⇒ s(n)=s(m)
⇒
( ∀n,m:N. plus(n,s(m))=s(plus(n,m)) ∧ plus(n,0)=n )
plus( s(s(0)),s(s(s(0))) ) = s(s(s(s(s(0)))))
Hinweis: Mache massiven Gebrauch von den Gleichheitsregeln (reflexivity, symmetry,
transitivity und substitution).
Aufgabe 2.5 (Korrektheit von Regeln)
Beweise die Korrektheit der folgenden Regeln aus dem analytischen Sequenzenkalkül (vgl. Abbildung 2.6 im Skript):
2.5–a or e
2.5–b imp e
2.5–c ex e
Hinweis: Halte Dich i.w. an die Vorgehensweise aus Lemma 2.2.28 im Skript.
Vorlesung Automatisierte Logik und Programmierung
1
Übung 2
Lösung 2.1 Ziel dieser Aufgabe ist es die beiden Formen der Logik–Kalküle in bezug auf
deren Stärken und Schwächen kennenzulernen. Daneben soll natürlich der Zusammenhang zwischen semantischer Gültigkeit und syntaktischer Ableitbarkeit erfahren werden können. Als Seiteneffekt soll hier außerdem die Frage nach intuitionsitischer vs. klassischer Logik aufgewärmt
werden und jeglicher Streit heirüber — ganz im Sinne Leibnitz’ — mittels der Kalküle abgehakt
werden.
Im folgenden wollen wir nur ein paar Hinweise für den richtigen Lösungsweg geben. Der Rest
sollte dann keine Schwierigkeiten mehr bereiten:
2.1–a ¬¬(A∨¬A):
Der (intuitionistische) Sequenzenbeweis beginnt mit der Negationseinführung.
Dann muß die verbleibende Negation zweimal eliminiert werden. Beim ersten Mal wird
¬A eingeführt, beim zweiten mal A bewiesen.
Der natürliche Beweis beginnt mit der Annahme von 1. A und 2. ¬(A∨¬A). Mit 1. gilt
auch A∨¬A und somit entsteht ein Widerspruch zu Annahme 2. Wir streichen daher 1.
und folgern ¬A. Hieraus kann man wiederum A∨¬A schließen, so daß ein Widerspruch
zu 2. entsteht. Wir können nun auch dieses streichen und schließlich die Behauptung
folgern.
2.1–b ¬(¬A∧¬B)⇒A∨B:
Es handelt sich hier um eine abgewandelte de–Morgan–Regel, von
der bekannt sein sollte, daß sie in der vorliegenden Richtung nur klassisch gilt. Daher beginnt der Sequenzenbeweis (nach Einführung der Implikation) direkt mit der klassischen
Widerspruchselimination. Es folgt die Elimination von ¬(¬A∧¬B) samt nachfolgender
Konjunktionseinführung. Ab dann geht der Beweis straightforward.
Der natürliche Beweis geht unter Annahme von 1. ¬(¬A∧¬B), 2. A, 3. B, 4. A∨B und
5. ¬(A∨B). Aus 4. folgt direkt A∨B. Ebenso aus 2. und 3. Die letzten beiden kann
man dann jeweils mit 5. auf einen Widerspruch führen und so deren Gegenteil folgern,
wodurch sie gestrichen werden können. Diese Gegenteile lassen sich gemeinsam zu ¬A∧¬B
ableiten. Mit Annahme 1. ensteht damit ein Widerspruch, aus dem sich alles und damit
auch A∨B folgern läßt. Somit kann man sowohl unter der Annahme 4. als auch unter
5. auf A∨B schließen. Zusammen mit dem klassischen Axiom (A∨B)∨¬(A∨B) kann man
dann 4. und 5. streichen und A∨B folgern. Damit haben wir unter Annahme von 1. auf
A∨B geschlossen und können somit 1. streichen und die gewünschte Implikation einführen.
2.1–c (¬A∨¬B)∧A∧B⇒
∀x.∃y.Q(f(y,g(f(y,g(x)))))∨¬P(f(x,f(x,g(y))))):
Von der rechten Seite sollte man sich nicht abschrecken lassen, da die linke bereits
widersprüchlich ist. Damit kann man alles, also auch solche Mammutkonstruktionen
folgern, auf die es im Beweis jedoch nicht ankommt.
Der Sequenzenbeweis beginnt mit den beiden Konjunktionseliminationen und anschließender Fallunterscheidung mittels Disjunktionselimination. In jedem der beiden Fälle schließt
dann die jeweils mögliche Negationselimination den Beweis ab.
Der natürliche Beweis beruht auf Annahme der linken Seite, sowie von ¬A und ¬B. Per
Konjunktionseliminationen
werden
dann
die
einzelnen
Teilformeln
1. ¬A∨¬B, 2. A und 3. B erzeugt. Aus 2. und 3. läßt sich jeweils ein Widerspruch zu
den anfangs getroffenen Annahmen folgern, so daß man diese Annahmen streichen kann
und zusammen mit 1. insgesamt einen Widerspruch hergeleitet hat. Daraus läßt sich
dann die rechte Seite folgern, und die Annahme der linken kann gestrichen werden, um
die gewünschte Implikation zu erhalten.
Vorlesung Automatisierte Logik und Programmierung
2
Übung 2
2.1–d (A∨B)∧¬(A∧B)⇒ ¬A∧B∨A∧¬B:
Der Sequenzenbeweis beginnt hier mit der Disjunktionselimination. Danach kann die jeweils geeignete Seite der Disjunktion rechts verwendet und ein intuitionistischer Beweis geführt werden.
Der natürliche Beweis ist — wie immer — völlig analog.
Lösung 2.2 Ziel dieser Aufgabe ist es, aufgrund der Entscheidung, welche Auftreten der
Variablen frei bzw. gebunden sind, den jeweils vorliegenden Fall für die Substitutionsregeln zu
erkennen:
2.2–a
=
=
=
(∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z))[f(a)/x]
∃y:T.(P(x,y,z))[f(a)/x] ⇒(∀z:T.Q(x,y,z))[f(a)/x]
∃y:T.P(f(a),y,z)⇒ ∀z:T.(Q(x,y,z))[f(a)/x]
∃y:T.P(f(a),y,z)⇒ ∀z:T.Q(f(a),y,z)
=
=
(∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z))[f(a)/z]
∃y:T.(P(x,y,z))[f(a)/z] ⇒ (∀z:T.Q(x,y,z))[f(a)/z]
∃y:T.P(x,y,f(a))⇒ ∀z:T.Q(x,y,z)
2.2–b
2.2–c
(∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z))[f(a)/y]
= ∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z)
2.2–d
=
=
=
=
(∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z))[f(z)/x]
∃y:T.(P(x,y,z))[f(z)/x] ⇒(∀z:T.Q(x,y,z))[f(z)/x]
∃y:T.P(f(z),y,z)⇒(∀z’:T.(Q(x,y,z))[z’/z])[f(z)/x]
∃y:T.P(f(z),y,z)⇒ ∀z’:T.(Q(x,y,z’))[f(z)/x]
∃y:T.P(f(z),y,z)⇒ ∀z’:T.Q(f(z),y,z’)
=
=
=
=
=
=
(∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z))[f(y)/z]
(∃y’:T.(P(x,y,z)⇒ ∀z:T.Q(x,y,z))[y’/y])[f(y)/z]
(∃y’:T.(P(x,y,z))[y’/y] ⇒ (∀z:T.Q(x,y,z))[y’/y])[f(y)/z]
(∃y’:T.P(x,y’,z)⇒ ∀(z:T.Q(x,y,z))[y’/y])[f(y)/z]
(∃y’:T.P(x,y’,z)⇒ ∀z:T.Q(x,y’,z))[f(y)/z]
∃y’:T.(P(x,y’,z))[f(y)/z] ⇒ (∀z:T.Q(x,y’,z))[f(y)/z]
∃y’:T.P(x,y’,f(y))⇒ ∀z:T.Q(x,y’,z)
2.2–e
2.2–f
(∃y:T.P(x,y,z)⇒ ∀z:T.Q(x,y,z))[f(x)/z]
= ∃y:T.(P(x,y,z))[f(x)/z] ⇒ (∀z:T.Q(x,y,z))[f(x)/z]
= ∃y:T.P(x,y,f(x))⇒ ∀z:T.Q(x,y,z)
Lösung 2.3
Ziel dieser Aufgabe ist es, sich mit der NuPRL–Version des analytischen Sequenzenkalküls
auseinanderzusetzen. Außerdem soll verstärkt ein Gefühl für das Beweisen in voller Prädikatenlogik entwickelt werden. Mit Hilfe der soeben geübten Substitution sollten die Quantorregeln
beherrschbar sein.
Die etwas eigenartig anmutende Hypothesennumerierung in den folgenden Beweisen (die allesamt am Rechner geführt wurden) rührt daher, daß die Typisierungshypothesen für Prädikats–
und Bereichszeichen der Übersicht halber herausgenommen wurden.
Vorlesung Automatisierte Logik und Programmierung
3
2.3–a (¬∀x:T.P x)⇒ ∃x:T.¬P x:
` ¬(∀x:T. P x) ⇒ (∃x:T. ¬(P x))
|
BY imp i
\
3. ¬(∀x:T. P x)
` ∃x:T. ¬(P x)
|
BY classical contradiction
\
4. ¬(∃x:T. ¬(P x))
` False
|
BY not e 3
\
` ∀x:T. P x
|
BY all i
\
5. x: T
` P x
|
BY classical contradiction
\
6. ¬(P x)
` False
|
BY not e 4
\
` ∃x:T. ¬(P x)
|
BY ex i ’x’
\
` ¬(P x)
|
BY hypothesis 6
2.3–b ∀0:N.(∀n,m:N.≥(n,m)⇒≥(s(n),m))∧ ≥(s(0),0)⇒≥(s(s(0)),0):
N
N
N
` ∀0: . (∀n: . ∀m: . ≥ n m ⇒ ≥ (s n) m) ∧ ≥ (s 0) 0 ⇒ ≥ (s (s 0)) 0
|
BY all i
\
4. 0:
` (∀n: . ∀m: . ≥ n m ⇒ ≥ (s n) m) ∧ ≥ (s 0) 0 ⇒ ≥ (s (s 0)) 0
|
BY imp i
\
5. (∀n: . ∀m: . ≥ n m ⇒ ≥ (s n) m) ∧ ≥ (s 0) 0
` ≥ (s (s 0)) 0
|
BY and e 5
\
5. ∀n: . ∀m: . ≥ n m ⇒ ≥ (s n) m
6. ≥ (s 0) 0
` ≥ (s (s 0)) 0
|
BY all e 5 ’s 0’
\
7. ∀m: . ≥ (s 0) m ⇒ ≥ (s (s 0)) m
` ≥ (s (s 0)) 0
|
BY all e 7 ’0’
\
8. ≥ (s 0) 0 ⇒ ≥ (s (s 0)) 0
` ≥ (s (s 0)) 0
|
BY imp e 8
|\
| ` ≥ (s 0) 0
| |
| BY hypothesis 6
\
8. ≥ (s (s 0)) 0
` ≥ (s (s 0)) 0
|
BY hypothesis 8
N
N
N
N
N
N
N
N
Übung 2
Vorlesung Automatisierte Logik und Programmierung
2.3–c
⇒
4
Übung 2
∀a,b,c:Kiste.Auf(a,b)∧Auf(b,c)∧Rot(c)∧¬Rot(a)
∃x,y:Kiste.Auf(y,x)∧¬Rot(y)∧Rot(x):
` ∀a:Kiste. ∀b:Kiste. ∀c:Kiste
|
Auf a b ∧ Auf b c ∧ Rot c ∧ ¬(Rot a) ⇒ (∃x:Kiste. ∃y:Kiste. Auf y x ∧ ¬(Rot y) ∧ Rot x)
BY all i THEN all i THEN all i
\
4. a: Kiste, 5. b: Kiste, 6. c: Kiste
` Auf a b ∧ Auf b c ∧ Rot c ∧ ¬(Rot a) ⇒ (∃x:Kiste. ∃y:Kiste. Auf y x ∧ ¬(Rot y) ∧ Rot x)
BY imp i
\
7. Auf a b ∧ Auf b c ∧ Rot c ∧ ¬(Rot a)
` ∃x:Kiste. ∃y:Kiste. Auf y x ∧ ¬(Rot y) ∧ Rot x
BY classical contradiction
\
8. ¬(∃x:Kiste. ∃y:Kiste. Auf y x ∧ ¬(Rot y) ∧ Rot x)
` False
BY not e 8
\
` ∃x:Kiste. ∃y:Kiste. Auf y x ∧ ¬(Rot y) ∧ Rot x
BY ex i ’b’
\
` ∃y:Kiste. Auf y b ∧ ¬(Rot y) ∧ Rot b
BY ex i ’a’
\
` Auf a b ∧ ¬(Rot a) ∧ Rot b
BY and e 7
\
7. Auf a b
8. Auf b c ∧ Rot c ∧ ¬(Rot a)
9. ¬(∃x:Kiste. ∃y:Kiste. Auf y x ∧ ¬(Rot y) ∧ Rot x)
` Auf a b ∧ ¬(Rot a) ∧ Rot b
BY and e 8
\
8. Auf b c
9. Rot c ∧ ¬(Rot a)
10. ¬(∃x:Kiste. ∃y:Kiste. Auf y x ∧ ¬(Rot y) ∧ Rot x)
` Auf a b ∧ ¬(Rot a) ∧ Rot b
BY and e 9
\
9. Rot c
10. ¬(Rot a)
11. ¬(∃x:Kiste. ∃y:Kiste. Auf y x ∧ ¬(Rot y) ∧ Rot x)
` Auf a b ∧ ¬(Rot a) ∧ Rot b
BY and i
|\
| ` Auf a b
| BY hypothesis 7
\
` ¬(Rot a) ∧ Rot b
BY and i
|\
| ` ¬(Rot a)
| BY hypothesis 10
\
` Rot b
BY classical contradiction
\
12. ¬(Rot b)
` False
BY not e 11
\
` ∃x:Kiste. ∃y:Kiste. Auf y x ∧ ¬(Rot y) ∧ Rot x
BY ex i ’c’
\
` ∃y:Kiste. Auf y c ∧ ¬(Rot y) ∧ Rot c
BY ex i ’b’
\
` Auf b c ∧ ¬(Rot b) ∧ Rot c
BY and i
|\
| ` Auf b c
| BY hypothesis 8
\
` ¬(Rot b) ∧ Rot c
BY and i
|\
| ` ¬(Rot b)
| BY hypothesis 12
\
` Rot c
BY hypothesis 9
Vorlesung Automatisierte Logik und Programmierung
2.3–d
∧
⇒
5
(∀x:Mensch.∃y:Mensch.Vater(y,x)
∀x,y,z:Mensch.Vater(y,x)∧Vater(z,y)⇒ GroßVater(z,x))
∀x:Mensch.∃y:Mensch.GroßVater(y,x):
` (∀x:Mensch. ∃y:Mensch. Vater y x)
| ∧ (∀x:Mensch. ∀y:Mensch. ∀z:Mensch. Vater y x ∧ Vater z y ⇒ GrossVater z x)
| ⇒ (∀x:Mensch. ∃y:Mensch. GrossVater y x)
BY imp i
\
4. (∀x:Mensch. ∃y:Mensch. Vater y x)
∧ (∀x:Mensch. ∀y:Mensch. ∀z:Mensch. Vater y x ∧ Vater z y ⇒ GrossVater z x)
` ∀x:Mensch. ∃y:Mensch. GrossVater y x
BY and e 4
\
4. ∀x:Mensch. ∃y:Mensch. Vater y x
5. ∀x:Mensch. ∀y:Mensch. ∀z:Mensch. Vater y x ∧ Vater z y ⇒ GrossVater z x
` ∀x:Mensch. ∃y:Mensch. GrossVater y x
BY all i
\
6. x: Mensch
` ∃y:Mensch. GrossVater y x
BY all e 4 ’x’
\
7. ∃y:Mensch. Vater y x
` ∃y:Mensch. GrossVater y x
BY ex e 7
\
7. y: Mensch
8. Vater y x
` ∃y:Mensch. GrossVater y x
BY all e 5’x’
\
9. ∀y:Mensch. ∀z:Mensch. Vater y x ∧ Vater z y ⇒ GrossVater z x
` ∃y:Mensch. GrossVater y x
BY all e 9 ’y’
\
10. ∀z:Mensch. Vater y x ∧ Vater z y ⇒ GrossVater z x
` ∃y:Mensch. GrossVater y x
BY all e 4 ’y’
\
11. ∃y0:Mensch. Vater y0 y
` ∃y:Mensch. GrossVater y x
BY ex e 11
\
11. y0: Mensch
12. Vater y0 y
` ∃y:Mensch. GrossVater y x
BY all e 10 ’y0’
\
13. Vater y x ∧ Vater y0 y ⇒ GrossVater y0 x
` ∃y:Mensch. GrossVater y x
BY imp e 13
|\
| ` Vater y x ∧ Vater y0 y
| BY and i
| |\
| | ` Vater y x
| | BY hypothesis 8
| \
|
` Vater y0 y
|
BY hypothesis 12
\
13. GrossVater y0 x
` ∃y:Mensch. GrossVater y x
BY ex i ’y0’
\
` GrossVater y0 x
BY hypothesis 13
Übung 2
Vorlesung Automatisierte Logik und Programmierung
6
Übung 2
Lösung 2.4 Ziel dieser Aufgabe ist es, außer der vertieften Auseinandersetzung mit dem
prädikatenlogischen Sequenzenkalkül, ein gewisses Gefühl für den Umgang mit Gleichheit zu
bekommen. Die dazu ausgewählten Beispiele dürften dabei von ausreichendem Umfang sein. . .
Die etwas eigenartige Hypothesennumerierung in den folgenden NuPRL–Ableitungen beruht
darauf, daß die Typisierungshypothesen für Bereiche, Prädikate und Funktionen der Übersicht
halber weggelassen wurden:
2.4–a `
∀n,m:N.
N
m=n ⇒ s(n)=s(m):
N
` ∀n: . ∀m: . m = n ⇒ s n = s m
BY all i THEN all i
\
3. n:
4. m:
` m = n ⇒ s n = s m
BY imp i
\
5. m = n
` s n = s m
BY substitution ’m = n’
|\
| ` m = n
| BY hypothesis 5
\
` s n = s n
BY reflexivity
N
N
2.4–b `
∀a:O. (g(g(g(a)))=a ∧ g(g(g(g(g(a)))))=a) ⇒ g(a)=a:
` ∀a:O. g (g (g a)) = a ∧ g (g (g (g (g a)))) = a ⇒ g a = a
BY all i
\
3. a: O ` g (g (g a)) = a ∧ g (g (g (g (g a)))) = a ⇒ g a = a
BY imp i
\
4. g (g (g a)) = a ∧ g (g (g (g (g a)))) = a ` g a = a
BY and e 4
\
4. g (g (g a)) = a
5. g (g (g (g (g a)))) = a ` g a = a
BY substitution ’a = g (g (g (g (g a))))’
|\
| ` a = g (g (g (g (g a))))
| BY symmetry
| \
|
` g (g (g (g (g a)))) = a
|
BY hypothesis 5
\
` g (g (g (g (g (g a))))) = g (g (g (g (g a))))
BY substitution ’g (g (g (g (g (g a))))) = a’
|\
| ` g (g (g (g (g (g a))))) = a
| BY substitution ’g (g (g a)) = a’
| |\
| | ` g (g (g a)) = a
| | BY hypothesis 4
| \
|
` g (g (g a)) = a
|
BY hypothesis 4
\
` a = g (g (g (g (g a))))
BY symmetry
\
` g (g (g (g (g a)))) = a
BY hypothesis 5
Vorlesung Automatisierte Logik und Programmierung
2.4–c
`
∀0:N.
Übung 2
( ∀n,m:N.
⇒
N
7
plus(n,s(m))=s(plus(n,m))
∧ plus(n,0)=n )
plus( s(s(0)),s(s(s(0))) ) = s(s(s(s(s(0))))):
` ∀0:
|
(∀n: . ∀m: . plus n (s m) = s (plus n m) ∧ plus n 0 = n)
|
⇒ plus (s (s 0)) (s (s (s 0))) = s (s (s (s (s 0))))
BY all i
\
4. 0:
` (∀n: . ∀m: . plus n (s m) = s (plus n m) ∧ plus n 0 = n)
| ⇒ plus (s (s 0)) (s (s (s 0))) = s (s (s (s (s 0))))
BY imp i
\
5. ∀n: . ∀m: . plus n (s m) = s (plus n m) ∧ plus n 0 = n
` plus (s (s 0)) (s (s (s 0))) = s (s (s (s (s 0))))
BY all e 5 ’s (s 0)’
\
6. ∀m: .
plus (s (s 0)) (s m) = s (plus (s (s 0)) m) ∧
plus (s (s 0)) 0 = s (s 0)
` plus (s (s 0)) (s (s (s 0))) = s (s (s (s (s 0))))
BY all e 6 ’s (s 0)’
\
7. plus (s (s 0)) (s (s (s 0))) = s (plus (s (s 0)) (s (s 0)))
∧
plus (s (s 0)) 0 = s (s 0)
` plus (s (s 0)) (s (s (s 0))) = s (s (s (s (s 0))))
BY and e 7
\
7. plus (s (s 0)) (s (s (s 0))) = s (plus (s (s 0)) (s (s 0)))
8. plus (s (s 0)) 0 = s (s 0)
` plus (s (s 0)) (s (s (s 0))) = s (s (s (s (s 0))))
BY substitution
| ’plus (s (s 0)) (s (s (s 0))) = s (plus (s (s 0)) (s (s 0)))’
|\
| ` plus (s (s 0)) (s (s (s 0))) = s (plus (s (s 0)) (s (s 0)))
| BY hypothesis 7
\
` s (plus (s (s 0)) (s (s 0))) = s (s (s (s (s 0))))
BY all e 6 ’s 0’
\
9. plus (s (s 0)) (s (s 0)) = s (plus (s (s 0)) (s 0)) ∧ plus (s (s 0)) 0 = s (s 0)
` s (plus (s (s 0)) (s (s 0))) = s (s (s (s (s 0))))
BY and e 9
\
9. plus (s (s 0)) (s (s 0)) = s (plus (s (s 0)) (s 0))
10. plus (s (s 0)) 0 = s (s 0)
` s (plus (s (s 0)) (s (s 0))) = s (s (s (s (s 0))))
BY substitution ’plus (s (s 0)) (s (s 0)) = s (plus (s (s 0)) (s 0))’
|\
| ` plus (s (s 0)) (s (s 0)) = s (plus (s (s 0)) (s 0))
| BY hypothesis 9
\
` s (s (plus (s (s 0)) (s 0))) = s (s (s (s (s 0))))
BY all e 6 ’0’
\
11. plus (s (s 0)) (s 0) = s (plus (s (s 0)) 0) ∧ plus (s (s 0)) 0 = s (s 0)
` s (s (plus (s (s 0)) (s 0))) = s (s (s (s (s 0))))
BY and e 11
\
11. plus (s (s 0)) (s 0) = s (plus (s (s 0)) 0)
12. plus (s (s 0)) 0 = s (s 0)
` s (s (plus (s (s 0)) (s 0))) = s (s (s (s (s 0))))
BY substitution ’plus (s (s 0)) (s 0) = s (plus (s (s 0)) 0 )’
|\
| ` plus (s (s 0)) (s 0) = s (plus (s (s 0)) 0)
| BY hypothesis 11
\
` s (s (s (plus (s (s 0)) 0))) = s (s (s (s (s 0))))
BY substitution ’plus (s (s 0)) 0 = s (s 0)’
|\
| ` plus (s (s 0)) 0 = s (s 0)
| BY hypothesis 12
\
` s (s (s (s (s 0)))) = s (s (s (s (s 0))))
BY reflexivity
N
N
N
N
N
N
N
N
Vorlesung Automatisierte Logik und Programmierung
8
Übung 2
Lösung 2.5 Ziel dieser Aufgabe ist es, die Korrektheit der Regeln für den prädikatenlogischen Sequenzenkalkül einzusehen. Dazu soll an einigen Beispielen der Zusammenhang
zwischen Regeln und Semantik exemplarisch gezeigt werden:
2.5–a or e:
Annahmen
1. Γ = A1 , . . . An und ∆ = B1 , . . . Bm sind beliebige Folgen von n bzw. m Formeln mit
m, n ∈ N0 .
2. A, B, C sind beliebige Formeln.
3. ι ist eine beliebige Interpretationsfunktion.
4. ι(A1 ) = · · · = ι(An ) = ι(B1 ) = · · · = ι(Bm ) = wahr.
5. ι(Γ, A, ∆ ` C) = wahr.
6. ι(Γ, B, ∆ ` C) = wahr.
7. ι(A ∨ B) = wahr.
Beweis
Mit Definition 2.2.13 (Skript, S. 32) folgt aus 1. bis 6. daß ι(C) = wahr gilt, wann immer
Annahme 4. und ι(A) = wahr gilt und wann immer Annahme 4. und ι(B) = wahr gilt.
Nach Definition 2.2.8 (Skript, S. 28) folgt nun aber aus Annahme 7. daß entweder
ι(A) = wahr oder ι(B) = wahr gilt. Unter Hinzunahme von Annahme 4. folgt nach dem
letzten Schluß somit ι(C) = wahr.
Damit ist also auch ι(Γ, A ∨ B, ∆ ` C) = wahr.
Insgesamt folgt so aus ι(Γ, A, ∆ ` C) = wahr und ι(Γ, B, ∆ ` C) = wahr immer ι(Γ, A ∨
B, ∆ ` C) = wahr, was zu zeigen war.
2.5–b imp e :
Annahmen
1. Γ = A1 , . . . An und ∆ = B1 , . . . Bm sind beliebige Folgen von n bzw. m Formeln mit
m, n ∈ N0 .
2. A, B, C sind beliebige Formeln.
3. ι ist eine beliebige Interpretationsfunktion.
4. ι(A1 ) = · · · = ι(An ) = ι(B1 ) = · · · = ι(Bm ) = wahr.
5. ι(Γ, A ⇒ B, ∆ ` A) = wahr.
6. ι(Γ, B, ∆ ` C) = wahr.
7. ι(A ⇒ B) = wahr.
Beweis
Unter den Annahmen 1. bis 4. folgt aus Annahme 5. nach Definition 2.2.13 (Skript,
S. 32), daß ι(A) = wahr gilt
Vorlesung Automatisierte Logik und Programmierung
9
Übung 2
Zusammen mit Annahme 7. folgt dann nach Definition 2.2.8 (Skript, S. 28), daß somit
ι(B) = wahr unter Annahme von 1. bis 5. gilt.
Damit folgt aber aus Annahme 6. nach Definition 2.2.13, daß ι(C) = wahr ist.
Insgesamt haben wir ι(C) = wahr und somit ι(Γ, A ⇒ B, ∆ ` C) = wahr unter Annahme
von 1. bis 7., was zu zeigen war.
2.5–c ex e:
Annahmen
1. x ∈ V ist eine beliebige Variable.
2. T ∈ T ist ein beliebiges Bereichssymbol.
3. Γ = A1 , . . . An und ∆ = B1 , . . . Bm sind beliebige Folgen von n bzw. m Formeln mit
m, n ∈ N0 , so daß x in keiner dieser Formeln frei vorkommt.
4. A, C sind beliebige Formeln, wobei x in C nicht frei vorkommt.
5. ι ist eine beliebige Interpretationsfunktion.
6. ι(A1 ) = · · · = ι(An ) = ι(B1 ) = · · · = ι(Bm ) = wahr.
7. ι(Γ, A, ∆ ` C) = wahr.
8. ι(∃x : T.A) = wahr.
Beweis
Nach Definition 2.2.8 (Skript, S. 28) folgt aus Annahme 8. daß es ein u ∈ ι(T ) gibt, so
daß ιux (A) = wahr gilt.
Da x weder in A1 , . . . An , B1 , . . . Bm noch in C frei vorkommt, hängt die Wahrheit von
A1 , . . . An , B1 , . . . Bm und C nicht von ι(x) ab. Damit gilt unter den Annahmen 1. bis 7.
nach Definition 2.2.13 (Skript, S. 32) und dem letzten Schluß (es gibt ein u ∈ ι(T ) mit
ιux (A) = wahr), daß auch ιux (C) = wahr ist.
Unter Annahme von 1. bis 8. gilt also, daß ι(C) = wahr gilt.
Insgesamt haben wir also nach Definition 2.2.13 gezeigt, daß ι(Γ, ∃x : T.A, ∆ ` C) =
wahr gilt, falls Annahmen 1. bis 5. und 7. gelten, was zu zeigen war.
Herunterladen