Automatisierte Logik und Programmierung

Werbung
Automatisierte Logik und Programmierung
Einheit 3
Formale Logik (Teil 2)
1. Formalisierung in Aussagenlogik
2. Evidenz für logische Aussagen
3. Evidenzkonstruktion mit Refinement Logik
4. Formale Prädikatenlogik
5. Metamathematik der Refinement Logik
Systematische Konstruktion von Evidenz
• Evidenzkonstruktion ist wie Programmieren
– Man muß einen Term finden, der eine (Datentyp-)Spezifikation erfüllt
– Nicht immer einfach, wenn man semantisch argumentiert, da tiefes
Verständnis des Zusammenhangs zwischen Ein- und Ausgabe nötig
– Die Konstruktion einer Evidenz für ¬¬(P ∨ ¬P ) ist nicht trivial
• Evidenzkonstruktion ist logische Beweisführung
– Spezifikationen der Evidenzterme sind logische Formeln
– Logische Formeln können in Teilformeln zerlegt werden
– Beweise von Formeln sind reduzierbar auf Beweise der Teilformeln
Beweisaufgabe wird verfeinert zu einfacheren Teilaufgaben
• Evidenzkonstruktion durch schrittweise Verfeinerung
– Zerlege Beweisaufgabe in kleinere Teilaufgaben
– Konstruiere Evidenz für atomare Beweisaufgaben
– Setze Evidenz einer Formel aus Evidenzen für Teilformeln zusammen
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
1
R EFINEMENT L OGIK
Beweis durch Verfeinerung
• Informaler Beweis für P ⇒ (Q ⇒ (P ∧ Q))
– Wir nehmen an, daß P gilt und müssen Q ⇒ (P ∧ Q) zeigen
– Dafür nehmen wir an, daß zusätzlich Q gilt und müssen P ∧ Q zeigen
– Da P und Q gilt, gilt auch P ∧ Q
• Beweis für P ⇒ (Q ⇒ (P ∧ Q)) mit Evidenzkonstruktion
– Wir nehmen p : [P ] an und müssen fp : [Q ⇒ (P ∧ Q)] konstruieren
– Dafür nehmen wir q : [Q] an und müssen x : [P ∧ Q] konstruieren
– Um x zu konstruieren, brauchen wir ein p0 : [P ] und ein q0 : [Q].
– Da wir p : [P ] und q : [Q] haben, können wir p0 = p : [P ] wählen
– Da wir p : [P ] und q : [Q] haben, können wir q0 = q : [Q] wählen
– Damit ist x = (p, q) : [P ∧ Q] und fp = λq. (p, q) : [Q ⇒ (P ∧ Q)]
λp. λq. (p, q) : [P ⇒ (Q ⇒ (P ∧ Q))] ist die gesuchte Evidenz
• Methodik läßt sich durch formale Regeln beschreiben
– Regeln zerlegen logische Formeln und setzen Evidenzterme zusammen
– Regeln sind implementierbar durch Pattern Matching und Instantiierung
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
2
R EFINEMENT L OGIK
Refinement Logik
Beweisen durch Verfeinerung logischer Formeln
Notationen und Begriffe
– Kalkül verwaltet zu beweisende Formel und Annahmen
– Regeln operieren auf Beweiszielen (Sequenzen) der Form H ⊢ C
Lesart: Konklusion C folgt aus Liste der Annahmen (Hypothesen) H
– Initialziel ist ⊢ A, d.h. Beweis der Formel A ohne weitere Annahmen
– Regeln transformieren Beweisziele in Listen von Teilzielen
Regeln werden als
Regelschemata dargestellt
mit Platzhaltern für Formeln
H ⊢G
H1 .⊢ G1
.
H n ⊢ Gn
Beweisbarkeit der Teilziele impliziert Beweisbarkeit des Hauptziels
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
3
R EFINEMENT L OGIK
Refinement Logik und Evidenz
• Regelschema für Konjunktionen
H ⊢ A ∧B
⊢ (P ⇒ Q) ∧ (R ⇒ Q)
BY andR
H ⊢A
1. ⊢ P ⇒ Q
H ⊢B
andR
2. ⊢ R ⇒ Q
– Beweisbarkeit von A ∧ B folgt aus Beweisbarkeit von A und von B
– Anwendung der Regel andR auf konkrete Formel (P ⇒ Q) ∧ (R ⇒ Q)
instantiiert A mit P ⇒ Q und B mit R ⇒ Q
– Entstehende Teilziele werden numeriert
• Regelschema mit Evidenzkonstruktion
– Beweisbarkeit der Teilziele impliziert Beweisbarkeit des Hauptziels
– Evidenz des Hauptziels entsteht aus Evidenz für Teilziele
H ⊢ A ∧ B ev = (a, b)
H ⊢ A ev = a
andR
H ⊢ B ev = b
– Evidenz für H ⊢ A ∧ B ist (a, b), wenn a Evidenz für H ⊢ A ist
und b Evidenz für H ⊢ B
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
4
R EFINEMENT L OGIK
Regeln für Aussagenvariablen
• Aussagenvariablen können nicht zerlegt werden
– Kein fester Beweis für A, solange nichts über A bekannt ist
– Aber A kann bewiesen werden, wenn A eine der Hypothesen ist
H, A, H ′ ⊢ A
axiom
– H und H ′ sind (möglicherweise leere) Listen von Formeln
– Es werden keine Teilziele generiert, da Sequenz selbsterklärend ist
• Evidenzkonstruktion benötigt Labels für Hypothesen
H, a:A, H ′ ⊢ A ev = a
axiom
– Label der verwendeten Hypothese ist “Variable” der Evidenzsprache
– Evidenz für Konklusion A ist Label der verwendeten Hypothese
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
5
R EFINEMENT L OGIK
Regeln für Implikationen (I)
• Implikation auf rechter Seite einer Sequenz
– Um H ⊢ A ⇒ B zu zeigen, nimmt man A an und zeigt B
– A wird zusätzliche Hypothese im Teilziel mit Variable a als Label
H ⊢ A ⇒ B ev = λa.b
H, a:A ⊢ B ev = b
impliesR
– Regel nimmt an, daß Evidenz b für das Teilziel H, a:A ⊢ B existiert
d.h. es gibt generische Methode, b : [B] aus a : [A] zu konstruieren
– Evidenz für H ⊢ A ⇒ B muß Funktion λa.b : [A]→[B] sein
• Beweis für P ⇒ P
⊢ P ⇒ P ev = λp. p
1. p:P ⊢ P ev = p
BY impliesR
BY axiom
– impliesR erzeugt Teilziel mit neuer Hypothese p:[P ]
– axiom beweist Teilziel mit Evidenz p
– impliesR konstruiert hieraus Evidenz λp. p für P ⇒ P
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
6
R EFINEMENT L OGIK
Regeln für Implikationen (II)
• Implikation auf linker Seite einer Sequenz
– Um C unter der Annahme A ⇒ B zu zeigen, benötigt man Evidenz
für A und kann dann die Annahme B verwenden, um C zu zeigen
H, f :A ⇒ B, H ′ ⊢ C
H, f :A ⇒ B, H ′ ⊢ A
H, b:B, H ′ ⊢ C
ev = c[f (a)/b]
ev = a
impliesL
ev = c
– Annahme A ⇒ B benötigt Label f
– B wird zusätzliche Hypothese im Teilziel 2 mit Variable b als Label
– Regel nimmt an, daß Evidenzen a : [A] bzw. c : [C] existieren
es gibt Methode, c : [C] aus beliebigen b : [B] zu konstruieren
und f (a) ist konkrete Evidenz in [B]
– Anwendung von λb.c auf f (a) liefert Evidenz für C im Hauptziel
Evidenz (λb.c)(f (a)) wird evaluiert zu reduzierter Form c[f (a)/b]
– Annahme A ⇒ B wird im Teilziel 1 möglicherweise noch benötigt
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
7
R EFINEMENT L OGIK
Anwendung der Implikationsregeln
• Beweis für P ⇒ (Q ⇒ P )
⊢ P ⇒ (Q ⇒ P ) ev = λp. (λq. p)
1. p:P ⊢ Q ⇒ P ev = λq. p
1.1. p:P, q:Q ⊢ P ev = p
BY impliesR
BY impliesR
BY axiom
– Zwei Anwendungen von impliesR erzeugen Beweisbaum der Tiefe 2
– Numerierung 1.1. beschreibt erstes Teilziel des Teilziels 1
• Beweis für P ⇒ ((P ⇒ Q) ⇒ Q)
P ⇒ ((P ⇒ Q) ⇒ Q)
ev = λp. (λh. (h(p))) BY
1. p:P ⊢ (P ⇒ Q) ⇒ Q
ev = λh. h(p)
BY
1.1. p:P, h:(P ⇒ Q) ⊢ Q
ev = h(p)
BY
1.1.1. p:P, h:(P ⇒ Q) ⊢ P ev = p
BY
1.1.2. p:P, q:Q ⊢ Q
ev = q
BY
impliesR
impliesR
impliesL
axiom
axiom
– Evidenz h(p) in Schritt 1.1 ist reduzierte Form von (λq.q)(h(p))
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
8
R EFINEMENT L OGIK
Regeln für Konjunktion
• Konjunktion auf rechter Seite einer Sequenz
– Um H ⊢ A ∧ B zu zeigen, muß A und B gezeigt werden
H ⊢ A ∧ B ev = (a, b)
H ⊢ A ev = a
H ⊢ B ev = b
andR
– Regel setzt Evidenzen a und b der Teilziele zu (a, b) zusammen
• Konjunktion auf linker Seite einer Sequenz
– Die Annahme A ∧ B ist äquivalent zu den beiden Annahmen A und B
H, x:A ∧ B, H ′ ⊢ C
ev = c[x.1, x.2/a, b]
H, a:A, b:B, H ′ ⊢ C ev = c
andL
– Label x für A ∧ B entspricht Paar der Labels a:A und b:B
– Evidenz c hängt im Teilziel von a und b ab
– Im Hauptziel muß a durch x.1 und b durch x.2 ersetzt werden
Evidenz ((λa. (λb.c))(x.1))(x.2) wird evaluiert zu c[x.1, x.2/a, b]
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
9
R EFINEMENT L OGIK
Anwendung der Konjunktionsregeln
• Beweis für P ⇒ (Q ⇒ (P ∧ Q))
⊢ P ⇒ (Q ⇒ (P ∧ Q)) ev = λp. (λq. (p, q))
1. p:P ⊢ Q ⇒ (P ∧ Q) ev = λq. (p, q)
1.1. p:P, q:Q ⊢ P ∧ Q
ev = (p, q)
1.1.1. p:P, q:Q ⊢ P
ev = p
1.1.2. p:Q, q:Q ⊢ P
ev = q
BY
BY
BY
BY
BY
impliesR
impliesR
andR
axiom
axiom
– Naheliegender Beweis liefert gleiche Evidenz wie zuvor
• Beweis für (P ∧ Q) ⇒ P
⊢ (P ∧ Q) ⇒ P
ev = λx. x.1
1. x:(P ∧ Q) ⊢ P ev = x.1
1.1. p:P, q:Q ⊢ P ev = p
BY impliesR
BY andL
BY axiom
– Evidenz x.1 in Schritt 1 ist reduzierte Form von ((λp. (λq. p))(x.1))(x.2)
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
10
R EFINEMENT L OGIK
Regeln für Disjunktionen
• Disjunktion auf rechter Seite einer Sequenz
– Um H ⊢ A ∨ B zu zeigen, muß A oder B gezeigt werden
– Zwei Regeln ermöglichen es, eine Wahl zu treffen
H ⊢ A ∨ B ev = inl(a)
H ⊢ A ∨ B ev = inr(b)
orR1
orR2
H ⊢ A ev = a
H ⊢ B ev = b
– Regeln kennzeichnen Herkunft der Evidenzen a / b mit inl / inr
• Disjunktion auf linker Seite einer Sequenz
– Um C unter der Annahme A ∨ B zu zeigen, muß C unter der Annahme
A und unter der Annahme B gezeigt werden können (Fallanalyse)
H, x:A ∨ B, H ′ ⊢ C ev = case x of inl(a) → c1
H, a:A, H ′ ⊢ C
H, b:B, H ′ ⊢ C
ev = c1
| inr(b) → c2
orL
ev = c2
– Label x für A ∨ B ist entweder inl(a) mit a:A oder inr(b) mit b:B
– Evidenz c1 hängt von a, Evidenz c2 von b ab
– Evidenz im Hauptziel wird durch Fallanalyse zusammengesetzt
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
11
R EFINEMENT L OGIK
Anwendung der Disjunktionsregeln
• Beweis für P ⇒ (P ∨ Q)
⊢ P ⇒ (P ∨ Q)
1. p:P ⊢ P ∨ Q
1.1. p:P ⊢ P
BY impliesR
BY orR1
BY axiom
ev = λp. inl(p)
ev = inl(p)
ev = p
• Beweis für (P ∨ Q) ⇒ (Q ∨ P )
(P ∨ Q) ⇒ (Q ∨ P )
BY impliesR
1. x:(P ∨ Q)
BY orL
ev = λx. (case x of inl(p) → inr(p)
| inr(q) → inl(q))
⊢ Q ∨ P ev = case x of inl(p) → inr(p)
| inr(q) → inl(q)
Q ∨P
ev = inr(p)
1.1. p:P ⊢
1.1.1. p:P ⊢ P
1.2. q:Q ⊢ Q ∨ P
1.2.1. q:Q ⊢ Q
AUTOMATISIERTE L OGIK
UND
ev = p
ev = inl(q)
ev = q
P ROGRAMMIERUNG §2
12
BY
BY
BY
BY
orR2
axiom
orR1
axiom
R EFINEMENT L OGIK
Regeln für Negation
Spezialisierte Implikationsregeln, da ¬A =
ˆ A⇒f
• Negation auf rechter Seite einer Sequenz
– Um H ⊢ ¬A zu zeigen, muß aus Annahme A ein Widerspruch folgen
H ⊢ ¬A ev = λa.b
notR
H, a:A ⊢ f ev = b
– Es gibt keine direkte Methode, Evidenz für f zu konstruieren
• Negation auf linker Seite einer Sequenz
– Um C unter Annahme ¬A zu zeigen, benötigt man Evidenz für A
– Aus dem resultierenden Widerspruch folgt C ohne weiteren Beweis (!)
H, f :¬A, H ′ ⊢ C
ev = any(f (a))
notL
H, f :¬A, H ′ ⊢ A ev = a
– Evidenz any(f (a)) drückt aus, daß aus Widerspruch alles folgt
– Typisierung ist any: {}→[C] für beliebige Formeln C
– Eingabe für any beschreibt Quelle des Widerspruchs,
Der Term f (a) konstruiert ein Element, das es gar nicht geben kann
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
13
R EFINEMENT L OGIK
Anwendung der Negationsregeln
• Beweis für P ⇒ ¬¬P
⊢ P ⇒ ¬¬P ev = λp. (λh. any(h(p)))
1. p:P ⊢ ¬¬P ev = λh. any(h(p))
1.1. p:P, h:(¬P ) ⊢ f ev = any(h(p))
1.1.1. p:P, h:(¬P ) ⊢ P ev = p
BY
BY
BY
BY
impliesR
notR
notL
axiom
– Beweis konstruiert Evidenz für P ⇒ (¬P ⇒ Q) für beliebige Q
– Direkt entwickelte Evidenz λp. (λh. h(p)) benötigt Q = f
• Beweis für ¬(P ∨ Q) ⇒ ¬P
⊢ ¬(P ∨ Q) ⇒ ¬P ev = λh. (λp.any(h(inl(p))))
1. h:¬(P ∨ Q) ⊢ ¬P ev = λp.any(h(inl(p)))
1.1. h:¬(P ∨ Q), p:P ⊢ f ev = any(h(inl(p)))
1.1.1. h:¬(P ∨ Q), p:P ⊢ P ∨ Q ev = inl(p)
1.1.1.1. h:¬(P ∨ Q), p:P ⊢ P ev = p
BY
BY
BY
BY
BY
impliesR
notR
notL
orR1
axiom
– Beweis konstruiert Evidenz für ¬(P ∨ Q) ⇒ (P ⇒ R) für beliebige R
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
14
R EFINEMENT L OGIK
Ein komplexerer Beweis
⊢ ((P ∨ Q) ∧ ((P ⇒ R) ∧ (Q ⇒ R))) ⇒ R
ev = λx.(case x.1 of inl(p) → x.2.1(p)
| inr(q) → x.2.2(q))
BY impliesR
1. x:(P ∨ Q) ∧ ((P ⇒ R) ∧ (Q ⇒ R)) ⊢ R
ev = case x.1 of inl(p) → x.2.1(p)
| inr(q) → x.2.2(q)
BY andL
1.1. z:P ∨ Q, y:(P ⇒ R) ∧ (Q ⇒ R) ⊢ R
ev = case z of inl(p) → y.1(p)
| inr(q) → y.2(q)
BY andL
1.1.1. z:P ∨ Q, g:P ⇒ R, h:Q ⇒ R ⊢ R
ev = case z of inl(p) → g(p)
| inr(q) → h(q)
1.1.1.1. p:P, g:P ⇒ R, h:Q ⇒ R ⊢ R
ev = g(p)
1.1.1.1.1. p:P, g:P ⇒ R, h:Q ⇒ R ⊢ P
ev = p
1.1.1.1.2. p:P, r:R, h:Q ⇒ R ⊢ R
ev = r
1.1.1.2. q:Q, g:P ⇒ R, h:Q ⇒ R ⊢ R
ev = h(q)
1.1.1.2.1. q:Q, g:P ⇒ R, h:Q ⇒ R ⊢ Q
ev = q
1.1.1.2.2. q:Q, g:P ⇒ R, r:R ⊢ R
ev = r
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
15
BY
BY
BY
BY
BY
BY
BY
orL
impliesL g
axiom
axiom
impliesL h
axiom
axiom
R EFINEMENT L OGIK
Was passiert mit P ∨ ¬P , ¬¬P ⇒ P , etc.?
• Beweisansätze für P
⊢ P ∨ ¬P
1. ⊢ P
∨ ¬P
⊢ P ∨ ¬P
1. ⊢ ¬P
1.1. p:P ⊢ f
BY orR1
BY ?????
BY orR2
BY notR
BY ?????
– Beide Ansätze können nicht fortgesetzt werden
• Beweisansatz für ¬¬P ⇒ P
⊢ ¬¬P ⇒ P
1. f :¬¬P ⊢ P
1.1. f :¬¬P ⊢ ¬P
1.1.1. f :¬¬P, p:P ⊢ f
BY impliesR
BY notL
BY notR
BY ?????
– Keine sinnvolle Fortsetzung möglich
• Beweisansatz für (P ⇒ Q) ⇒ (¬P
⊢ (P ⇒ Q) ⇒ (¬P ∨ Q)
1. f :P ⇒ Q ⊢ ¬P ∨ Q
∨ Q)
BY impliesR
BY impliesL?, orR1?, orR2?
– Keine der drei möglichen Fortsetzungen führt zum Erfolg
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
16
R EFINEMENT L OGIK
Refinement Logik – Zusammenfassung
Links
H, f :A ⇒ B, H ′ ⊢ C
ev = c[f (a)/b]
Rechts
impliesL H ⊢ A ⇒ B
H, f :A ⇒ B, H ′ ⊢ A ev = a
H, b:B, H ′ ⊢ C
H, x:A ∧ B, H ′ ⊢ C
H, a:A, b:B, H ′ ⊢ C
H, x:A ∨ B, H ′ ⊢ C
H, a:A ⊢ B
ev = c[x.1, x.2/a, b]
andL H ⊢ A ∧ B
ev = c
H, a:A, H ′ ⊢ C
H, b:B, H ′ ⊢ C
ev = c2
ev = a
H⊢B
ev = b
orL H ⊢ A ∨ B
H⊢A
1
H ⊢ A ∨B
ev = any(f (a))
notL H ⊢ ¬A
ev = a
ev = (a, b)
H⊢A
H⊢B
H, f :¬A, H ′ ⊢ A
ev = b
ev = c
ev = case x of inl(a)→ c1
| inr(b)→ c2
ev = c
H, f :¬A, H ′ ⊢ C
ev = λa.b impliesR
H, a:A ⊢ f
ev = inl(a)
UND
P ROGRAMMIERUNG §2
17
orR1
ev = a
ev = inr(b)
orR2
ev = b
ev = λa.b
notR
ev = b
H, a:A, H ′ ⊢ A ev = a
AUTOMATISIERTE L OGIK
andR
R EFINEMENT L OGIK
axiom
Prädikatenlogik
Das übliche Verständnis des Begriffs “Logik”
• Ermöglicht Formulierung universeller Zusammenhänge
... und ihre Anwendung auf Individuen
“Jeder Mensch ist sterblich.
Sokrates ist ein Mensch.
Also ist Sokrates sterblich”
((∀x)(Human(x) ⇒ M ortal(x))
∧
Human(sokrates))
⇒ M ortal(sokrates)
• Unterstützt unterspezifizierte Aussagen und Funktionen
“Studierende, die mindestens 120 Leistungspunkte erworben haben,
können ein Thema für die Bachelorarbeit bekommen”
(∀st) (lp(s)≥120 ⇒ (∃t) (BA(t) ∧ Bekommt(s, t)))
• Erweiterung der Aussagenlogik
– Syntax wird ergänzt um Variablen, Funktionen, und Quantoren
– Neue Konzepte: Bindungsbereich, Variablenvorkommen und Substitution
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
18
P R ÄDIKATENLOGIK
Syntax der Prädikatenlogik
• Erlaubte Symbole
– Variablen x, y, z, x0, y0,, . . .
– Funktionssymbole f, g, h, a, b, c, f0, g0,, . . . (mit Stelligkeit, a, b, c oft nullstellig)
(mit Stelligkeit)
– Prädikatssymbole P, Q, R, Po, Q0, R0,, . . .
– Logische Symbole f, ¬, ∧ , ∨ , ⇒ , ∀, ∃ und Klammern
• Terme: Syntax für individuelle Objekte
– Variablen und nullstellige Funktionen (Konstante) sind (atomare) Terme
– Sind t1, .., tn Terme und f n-stellige Funktion, dann ist f (t1, . . . , tn) Term
• Formeln: Syntax für Aussagen
– f und nullstellige Prädikate (Aussagenvariablen) sind (atomare) Formeln
– P (t1, . . . , tn) ist (atomare) Formel
(t1, .., tn Terme, P n-stelliges Prädikat)
– Sind A und B Formeln, dann auch ¬A, (A ⇒ B), (A ∧ B), (A ∨ B)
– Ist B Formel und x eine Variable, dann sind (∀x)B und (∃x)B Formeln
Bindungsbereich des Quantors (Scope) ist die kürzeste Formel, die auf den Quantor folgt
Später: alternative Notationen ∀x. B und ∃x. B und Konventionen, Klammern zu sparen
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
19
P R ÄDIKATENLOGIK
Semantik der Prädikatenlogik
• Evidenz für Gültigkeit von Formeln
– Formuliert als Terme in erweiterter λ-Notation
(Einheit 5)
– Konstruktion von Evidenz folgt induktivem Aufbau der Syntax
• Evidenz für atomare Formeln
– f hat keine Evidenz
[f] = {}
– A = P (t1, ..tn) steht für unbekannte Aussagen
[A] unspezifiziert
• “Aussagenlogische” Evidenzkonstruktion wie zuvor
[A ⇒ B] = [A]→[B]
– Implikation
– Konjunktion
[A ∧ B] = [A]×[B]
– Disjunktion
[A ∨ B] = [A] + [B]
[¬A] = [A]→{}
– Negation
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
20
P R ÄDIKATENLOGIK
Evidenz für Universelle Quantifikation
• (∀x)B: “Für alle x gilt B”
[(∀x)B] = x : U→[B]
– Für jede Instanz von x muß eine Evidenz b für B konstruiert werden
– Evidenz für (∀x)B muß Funktion f sein mit f (x) : [B] für alle x
– Eingabe x für f stammt aus einem Universum von Objekten U
– Ausgabetyp [B] von f kann von konkretem Eingabewert x : U abhängen
z.B. B = (P a ⇒ P x) hat genau dann Evidenz, wenn x mit a instantiiert
– Typ der Evidenzen für (∀x)B ist ein “abhängiger” Funktionenraum
• Konkrete Evidenz für (∀x)(P x ⇒ P x)
– Evidenz ist Funktion f : (x:U→([P x]→[P x])), wobei für alle x gilt
f (x) = gx : [P x]→[P x] und qx(p) : [P x], falls p : [P x]
– Einfachste Lösung ist gx(p) = p, also
f = λx. (λp. p)
• Konkrete Evidenz für ((∀x)P x) ⇒ P a
– Evidenz ist Funktion f : (x:U→[P x])→[P a])) mit f (h) = xh : [P a]
für alle h : (x:U→[P x]).
– Einfachste Lösung ist Anwendung von h auf Konstante a f = λh. h(a)
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
21
P R ÄDIKATENLOGIK
Evidenz für Existentielle Quantifikation
• (∃x)B: “Es gibt ein x, für das B gilt” [(∃x)B] = x : U×[B]
– Um Evidenz für (∃x)B zu konstruieren, braucht man b : [B] für ein x : U
– Formel B kann von Wahl des konkreten Wertes für x abhängen
– Typ der Evidenzen für (∃x)B ist ein “abhängiger” Produktraum
• Konkrete Evidenz für P a ⇒ ((∃x)P x)
– Evidenz ist Funktion f : (p:[P a]→(x : U×[P x])) mit f (p) = (x, p′) für
alle p : [P a], wobei x : U und p′ Evidenz für P x
– Einfachste Lösung ist x = a and p′ = p
f = λp. (a, p)
• Konkrete Evidenz für ((∃x)P x) ⇒ ((∃y)P y)
– Evidenz ist Funktion f mit f (z) = (y, p′) für alle z : (x : U×[P x]),
wobei y : U und p′ Evidenz für P y
– z muß ein Paar (a, p) mit a : U und p : [P a]
– Einfachste Lösung: x = a = z.1 and p′ = p = z.2, also f = λz. (z.1, z.2)
– Wegen z = (z.1, z.2) kann Evidenz vereinfacht werden zu
f = λz. z
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
22
P R ÄDIKATENLOGIK
Evidenz für komplexere Formeln
• ((∀x)(P x ∧ Q x)) ⇒ ((∀x)P x ∧ (∀x)Q x)
– Evidenz ist Funktion f so daß für alle h : (x:U→[P x]×[Q x]) gilt
f (h) = (gp, gq ) : (x:U→[P x])×(x:U→[Q x])
– gp und gq nehmen ein x:U und erzeugen Elemente von [P x] bzw. [Q x]
– Einfachste Lösung ist gp(x) = h(x).1 und gq (x) = h(x).2
f = λh. (λx. h(x).1, λx. h(x).2)
• ¬((∀x)¬(P x)) ⇒ (∃x)P x
– Evidenz ist Funktion f so daß für alle h : (x:U→([P x]→{}))→{} gilt
f (h) = (x, p) mit p : [P x]
– Zur Konstruktion von f (h) benötigt man Kenntnisse über P und
Objekte x, für die P x gilt
– Es gibt keinen allgemeinen Weg, x oder p aus h zu konstruieren,
solange das Prädikatssymbol P unspezifiziert ist
Keine universelle Evidenz
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
23
P R ÄDIKATENLOGIK
Evidenzsemantik – Zusammenfassung
Aussage A Evidenztyp [A] Evidenzkonstruktion
A⇒B
[A]→[B]
λa.b
A ∧B
[A]×[B]
(a, b)
A ∨B
[A] + [B]
inl(a), inr(b)
¬A
f
(∀x)B
(∃x)B
[A]→{}
{}
x : U→[B]
x : U×[B]
λa.b
–
λa.b
(a, b)
Dekompositionsterm
f (a)
x.1, x.2
case x of inl(a) → s
| inr(b) → t
f (a)
–
f (a)
x.1, x.2
• Formeln korrespondieren mit Datentyp ihrer Evidenzen
– Es gibt Terme, um Evidenz zu konstruieren oder zu zerlegen
– Beide sind invers zueinander und ermöglichen “Rechnen” mit Evidenz
• Evidenzterme bilden eine Programmiersprache
(Einheit 5)
– Sprache umfasst Terme der Prädikatenlogik
– Prädikatenlogik kann nur Programme ohne Schleifen spezifizieren
– Mehr Ausdruckskraft benötigt Gleichheit, Zahlen, Induktion, . . .
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
24
P R ÄDIKATENLOGIK
Prädikatenlogische Refinement Logik
• Erweiterung der aussagenlogische Regeln
– Regel axiom ist auf atomare prädikatenlogische Formeln anwendbar
– Unveränderte Regeln für A ⇒ B, A ∧ B, A ∨ B, ¬A
– Konstruktierte Evidenz ändert sich ebenfalls nicht
• Behandlung von Quantoren
– Um (∀x)B zu zeigen, muß man B für jede Instanz von x zeigen
Hierzu wählt man x′ : U beliebig aber fest und zeigt B für x′ statt x
– Um (∃x)B zu zeigen, muß man eine B für eine Instanz von x zeigen
Hierzu gibt man ein Objekt a an und zeigt B für a statt x
– Regeln benötigen “syntaktische Instantiierung” von Variablen
• Formales Konzept: Substitution B[t/x]
– Ersetzen der Variablen x in Formel B durch Term t
Unvollständiger Ersatz für Instantiierung, wenn Universum überabzählbar
– Substitution muß Verständnis von “Für alle” und “es gibt” erhalten
(∀x)P x und (∀y)P y bedeuten dasselbe
– Nur ungebundene Variablen dürfen ersetzt werden
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
25
P R ÄDIKATENLOGIK
Vorkommen von Variablen in Formeln
• Vorkommen der Variablen x in Formel B, informal
– Gebunden: x erscheint im Scope eines Quantors (∀x) oder (∃x)
– Frei: x kommt in B vor, ohne gebunden zu sein
– B heißt geschlossen falls B keine freien Variablen enthält
• Präzise, induktive Definition
x
f
f (t1, ..., tn)
P (t1, ..., tn)
¬A, A ⇒ B
A ∧ B, A ∨ B
(∀x)B
(∃x)B
die Variable x kommt frei vor; y6=x kommt nicht vor
die Variable x kommt nicht vor
freie Vorkommen von x in ti bleiben frei
gebundene Vorkommen von x bleiben gebunden.
freie Vorkommen von x in A, B bleiben frei
gebundene Vorkommen von x bleiben gebunden.
beliebige Vorkommen von x in B werden gebunden
Vorkommen von y6=x in B bleiben unverändert
x frei und gebunden
z
}|
{
x gebunden
z
}|
{
(∀x)(P (x) ∧ Q(x))) ∧ R(x)
|
{z
}
| {z }
x frei
x frei
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
26
P R ÄDIKATENLOGIK
Substitution B[t/x] formal
Endliche Abbildung σ von Variablen in Terme
– σ = [t1, .., tn/x1, .., xn] =
ˆ σ(x1)=t1,. . . , σ(xn)=tn
– Aσ: Anwendung von σ auf den Ausdruck A τ und σ
⌊x⌋[t/x]
=t
⌊x⌋[t/y]
=x
⌊f (t1 , .., tn )⌋σ
= f (t1σ, .., tnσ)
⌊f⌋σ
=f
⌊P (t1, .., tn )⌋σ
= P (t1σ, .., tnσ)
⌊¬A⌋σ
= ¬Aσ
⌊A ∧ B ⌋σ
= Aσ ∧ Bσ
⌊A ∨ B ⌋σ
= Aσ ∨ Bσ
⌊A ⇒ B ⌋σ
= Aσ ⇒ Bσ
⌊(∀x)B ⌋[t/x]
= (∀x)B
⌊(∃x)B ⌋[t/x]
= (∃x)B
⌊(∀x)B ⌋[t/y]
= ⌊(∀z)B[z/x]⌋[t/y]
⌊(∃x)B ⌋[t/y]
= ⌊(∃z)B[z/x]⌋[t/y] ∗
⌊(∀x)B ⌋[t/y]
= (∀x).⌊B[t/y]⌋
⌊(∃x)B ⌋[t/y]
= (∃x)⌊B[t/y]⌋
(y6=x)
∗
: y6=x, y frei in B, x frei in t, z neue Variable
∗∗
: y6=x, y nicht frei in B oder x nicht frei in t
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
27
P R ÄDIKATENLOGIK
∗∗
Regeln für Allquantor
• Allquantor auf rechter Seite einer Sequenz
– Um H ⊢ (∀x)B zu zeigen, muß man B für jede Instanz von x zeigen
Einziger Weg ist generischer Beweis, der nicht von Instanz abhängt
– Wähle neue Variable x′ und beweise B[x′/x]
H ⊢ (∀x)B
ev = λx′. b
H, x′:U ⊢ B[x′/x] ev = b
allR
– Im Teilziel wird generische Evidenz b für B[x′/x] und alle x′ konstruiert
– Evidenz für (∀x)B muß Funktion λx′.b sein
• Allquantor auf linker Seite einer Sequenz
– Um C unter Annahme (∀x)B zu zeigen, darf man jede Instanz von x
verwenden, also die Annahme B[t/x] für beliebige Terme t ergänzen
H, f :(∀x)B, H ′ ⊢ C
ev = c[f (t)/b]
H, f :(∀x)B, b:B[t/x], H ′ ⊢ C ev = c
allL t
– Regel nimmt an, daß Evidenz c aus Evidenz b:B[t/x] konstruierbar ist
– Anwendung von λb.c auf f (t) liefert Evidenz für C im Hauptziel
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
28
P R ÄDIKATENLOGIK
Anwendung der Allquantorregeln
• Beweis für (∀x)(P x ⇒ P x)
⊢ (∀x)(P x ⇒ P x) ev = λx. (λp.p)
1 x:U ⊢ P x ⇒ P x ev = λp.p
1.1 x:U, p:P x ⊢ P x ev = p
BY allR
BY impliesR
BY axiom
• Beweis für ((∀x)P x) ⇒ P a
⊢ ((∀x)P x) ⇒ P a ev = λf. f (a)
1 f :(∀x)P x ⊢ P a
ev = p[f (a)/p]
1.1 f :(∀x)P x, p:P a ⊢ P a ev = p
BY impliesR
BY allL a
BY axiom
• Beweis für ((∀x)P x) ⇒ (P a ∧ P b)
⊢ ((∀x)P x) ⇒ (P a ∧ P b) ev = λf.(f (a), f (b))
1 f :(∀x)P x ⊢ P a ∧ P b
ev = (f (a), f (b))
1.1 f :(∀x)P x, pa:P a ⊢ P a ∧ P b ev = (pa, f (b))
1.1.1 f :(∀x)P x, pa:P a, pb:P b ⊢ P a ∧ P b ev = (pa, pb)
1.1.1.1 f :(∀x)P x, pa:P a, pb:P b ⊢ P a
ev = pa
1.1.1.2 f :(∀x)P x, pa:P a, pb:P b ⊢ P b
ev = pb
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
29
BY
BY
BY
BY
BY
BY
impliesR
allL a
allL b
andR
axiom
axiom
P R ÄDIKATENLOGIK
Regeln für Existenzquantor
• Existenzquantor auf rechter Seite einer Sequenz
– Um H ⊢ (∃x)B zu zeigen, muß B[t/x] für einen Term t gezeigt werden
H ⊢ (∃x)B
ev = (t, b)
H ⊢ B[t/x] ev = b
exR t
– Regel setzt Term t und Evidenz b : B[t/x] zur Evidenz (t, b) zusammen
• Existenzquantor auf linker Seite einer Sequenz
– Um C unter Annahme (∃x)B zu beweisen, muß man C unter Annahme B
für eine beliebige Instanz von x, also generisch, zeigen können
– Wähle neue Variable x′ und verwende Annahme B[x′/x]
H, z:(∃x)B, H ′ ⊢ C
ev = c[z.1, z.2/x′ , b]
H, x′:U, b:B[x′/x], H ′ ⊢ C ev = c
exL
– Label z für (∃x)B entspricht Paar aus Variablen x′ und Label b:B
– Evidenz c hängt im Teilziel von x′ und b ab
– Im Hauptziel muß x′ durch z.1 und b durch z.2 ersetzt werden
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
30
P R ÄDIKATENLOGIK
Anwendung der Existenzquantorregeln
• Beweis für P a ⇒ ((∃x)P x)
⊢ P a ⇒ ((∃x)P x) ev = λp.(a, p)
1 p:P a ⊢ (∃x)P x ev = (a, p)
1.1 p:P a ⊢ P a
ev = p
BY impliesR
BY exR a
BY axiom
• Beweis für ((∃x)P x) ⇒ ((∃y)P y)
⊢ ((∃x)P x) ⇒ ((∃y)P y) ev = λz. (z.1, z.2) BY impliesR
1 z:(∃x)P x ⊢ (∃y)P y
ev = (z.1, z.2)
BY exL
1.1 x:U, p:P x ⊢ (∃y)P y ev = (x, p)
BY exR x
1.1.1 x:U, p:P x ⊢ P x
ev = p
BY axiom
– Evidenz (z.1, z.2) kann zu z vereinfacht werden
– Reihenfolge der Regelanwendungen wichtig für erfolgreichen Beweis
⊢ ((∃x)P x) ⇒ ((∃y)P y)
1 z:(∃x)P x ⊢ (∃y)P y
1.1 z:(∃x)P x ⊢ P x
1.1.1 x′:U, p:P x′ ⊢ P x
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
BY
BY
BY
BY
31
impliesR
exR x
exL
???
P R ÄDIKATENLOGIK
Ein komplexerer Beweis
⊢ ((∀x)(P x ∧ Qx)) ⇒ ((∀x)P x ∧ (∀x)Qx)
1. f :(∀x)(P x ∧ Qx) ⊢ ((∀x)P x ∧ (∀x)Qx)
1.1. f :(∀x)(P x ∧ Qx) ⊢ (∀x)P x
1.1.1. x:U, f :(∀x)(P x ∧ Qx) ⊢ P x
1.1.1.1. x:U, f :(∀x)(P x ∧ Qx), z:(P x ∧ Qx) ⊢ P x
1.1.1.1.1. x:U, f :(∀x)(P x ∧ Qx), p:P x, q:Qx ⊢ P x
1.2. f :(∀x)(P x ∧ Qx) ⊢ (∀x)Qx
1.2.1. x:U, f :(∀x)(P x ∧ Qx) ⊢ Qx
1.2.1.1. x:U, f :(∀x)(P x ∧ Qx), z:(P x ∧ Qx) ⊢ Qx
1.2.1.1.1. x:U, f :(∀x)(P x ∧ Qx), p:P x, q:Qx ⊢ Qx
BY
BY
BY
BY
BY
BY
BY
BY
BY
BY
impliesR
andR
allR
allL x
andL
axiom
allR
allL x
andL
axiom
Konstruierte Evidenz ist λf. (λx.(f x).1, λx.(f x).2)
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
32
P R ÄDIKATENLOGIK
Refinement Logik – Zusammenfassung
Links
H, f :A ⇒ B, H ′ ⊢ C
H, f :A ⇒ B, H ′ ⊢ A
H, b:B, H ′ ⊢ C
H, x:A ∧ B, H ′ ⊢ C
H, a:A, b:B, H ′ ⊢ C
H, x:A ∨ B, H ′ ⊢ C
H, a:A, H ′ ⊢ C
H, b:B, H ′ ⊢ C
H, f :¬A, H ′ ⊢ C
H, f :¬A, H ′ ⊢ A
ev=c[f (a)/b]
ev=a
ev=c
ev=c[x.1, x.2/a, b]
ev=c
impliesL H ⊢ A ⇒ B
H, a:A ⊢ B
ev=λa.b impliesR
ev=b
andL H ⊢ A ∧ B
H ⊢A
H ⊢B
ev=case x of inl(a)→ c1 orL H ⊢ A ∨ B
| inr(b)→ c2
ev=c1
H ⊢A
ev=c2
H ⊢ A ∨B
H ⊢B
ev=any(f (a))
notL H ⊢ ¬A
ev=a
H, a:A ⊢ f
H, a:A, H ′ ⊢ A
H, f :(∀x)B, H ′ ⊢ C
ev=c[f (t)/b]
H, f :(∀x)B, b:B[t/x], H ′ ⊢ C ev=c
H, z:(∃x)B, H ′ ⊢ C
H, x′ :U, b:B[x′/x], H ′ ⊢ C
Rechts
ev=c[z.1, z.2/x′ , b]
ev=c
ev=(a, b)
andR
ev=a
ev=b
ev=inl(a) orR1
ev=a
ev=inr(b)
orR2
ev=b
ev=λa.b
notR
ev=b
ev=a
axiom
allL t H ⊢ (∀x)B
ev=λx′. b
H, x′ :U ⊢ B[x′/x]ev=b
exL H ⊢ (∃x)B
H ⊢ B[t/x]
ev=(t, b)
ev=b
t ist ein beliebiger Term, x′ eine neue Variable
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
33
P R ÄDIKATENLOGIK
allR
exR t
Sinnvolle Zusatzregeln
• Einfügen von Zwischenbehauptungen
– C ist gültig, wenn C aus der Annahme A folgt und A gültig ist
H ⊢ C ev = (λx.c)(a)
H⊢A
ev = a
H, x:A ⊢ C ev = c
cut A
– A kann eine beliebige “Schnitt”-Formel sein
– Beweise werden signifikant kürzer, wenn A mehrfach benutzt wird
– Evidenz (λx.c)(a) wird nicht evaluiert (Gefahr der Termaufblähung)
• Ausdünnen von Annahmen
– Hypothesen, die nicht gebraucht werden, können entfernt werden
H, a:A, H ′ ⊢ C
H, H ′ ⊢ C
ev = c
ev = c
thin A
– Sinnvoll, um Hypothesenliste übersichtlich zu halten
– Evidenz c hängt im Hauptziel nicht vom Label a ab
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
34
P R ÄDIKATENLOGIK
Metamathematik der Refinement Logik
Aussagen über den logischen Kalkül
• Wichtig für Analyse der Eigenschaften des Kalküls
– Ist Refinement Logik korrekt? (sind beweisene Formeln gültig?
– Ist Refinement Logik vollständig? (sind gültige Formeln beweisbar?)
– Welche Formeln sind entscheidbar?
– Was ist die Komplexität von Beweissuche?
• Hilfreich für Implementierung und Automatisierung
– Beschreibung der Struktur der Grundelemente des Kalküls
– Daten- und Zugriffsstrukturen für Formeln, Beweise, Evidenz, . . .
– Algorithmen zur Anwendung von Regeln und Evidenzkonstruktion
– Benutzerdefinierbare (“konservative”) Erweiterung von Objektsprache
und Regelsystem durch Definitionen und Beweisstrategien
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
35
M ETAMATHEMATIK DER R EFINEMENT L OGIK
Unterschied Objekt- / Metasprache
Präsentation von Kalkülen hat zwei Sprachebenen
• Objektsprache:
– Sprache des Kalküls, in dem formalisiert wird
– Formale Sprache mit präzise definierter Syntax
– Konkretes Element z.B. (∃x)(P x) ∨ Q x) ⇒ (¬((∀x)(¬P x ∧ ¬Q x)))
• Metasprache:
– Sprache, um Aussagen über den Kalkül zu machen
· Beschreibung von Syntax, Semantik, Eigenschaften des Kalküls
– Natürliche, oft stark schematisierte Sprache
– Enthält Objektsprache, angereichert um syntaktische Metavariablen
–Konkretes Element z.B. aus (∃x) (A ∨ B) folgt ¬((∀x) (¬A ∧ ¬B))
• Unterscheidung zuweilen durch Fonts / Farben
– Ansonsten aus Kontext eindeutig erkennbar
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
36
M ETAMATHEMATIK DER R EFINEMENT L OGIK
Refinement Logik als formaler Kalkül (I)
Metasprachliche Präzisierung der verwendeten Konzepte
• Kalkül verwendet Objekt-Logik / Evidenz als Parameter
– Objektsprache ist (bisher) Sprache der Prädikatenlogik
– Evidenz formuliert als Terme in erweiterter λ-Notation
– Semantik der Logik erklärt, wann Terme Evidenz für Formeln sind
• Sequenz (Ziel) H ⊢ C
– H = x1:A1, .., xn:An Hypothesenliste (xi verschieden), C Konklusionsformel
– xi:Ai Deklaration “xi ist Evidenz für Ai” (x Term-Variable, A Formel)
– Initialsequenz: Sequenz ⊢ C ohne Hypothesen
• Evidenzterm für x1:A1, .., xn:An ⊢ C
– Term e mit freien Variablen aus den xi
e ist Evidenz für C, wenn alle xi mit Evidenz für Ai instantiiert werden
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
37
M ETAMATHEMATIK DER R EFINEMENT L OGIK
Refinement Logik als formaler Kalkül (II)
• (Verfeinerungs-)Regel (dec, val)
– dec Dekomposition: Abbildung von Sequenzen in Liste von Sequenzen
(vom Beweisziel in Liste der Teilziele)
– val Validierung: Abbildung von Liste von Sequenzen und Termen in Term
– Regeln werden als Regelschemata dargestellt mit Metavariablen
als Platzhaltern für Formeln und Evidenzterme
– Konkrete Regeln entstehen hieraus durch Instantiierung der Metavariablen
• Beweise
– Jede Sequenz S = H ⊢ C ist unvollständiger Beweis mit Wurzel S
– (S, r, [π1, . . . , πn]) ist Beweis mit Wurzelsequenz S, wenn πi Beweise für
alle Sequenzen Si sind, die durch Anwendung von r auf S entstehen
– vollständiger Beweis: Beweis ohne unvollständige Teilbeweise
– Theorem: vollständiger Beweis, dessen Wurzel eine Initialsequenz ist
• Extraktterm ext(π) eines vollständigen Beweises
– ext(S, (dec, val), [π1, . . . , πn]) = val([S, (S1, ext(π1)), .., (Sn, ext(πn))]),
wobei Si Wurzeln der πi
Definition gilt auch für π = (S, (dec, val), [])
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
38
M ETAMATHEMATIK DER R EFINEMENT L OGIK
Korrektheit und Vollständigkeit
• Gültigkeit von Sequenzen und Formeln
– Eine Sequenz ist gültig, wenn es einen Evidenzterm für sie gibt
7→ Eine Formel C ist gültig, wenn die Initialsequenz ⊢ C gültig ist
• Korrektheit einer Regel r = (dec, val)
– Sind Si = Hi ⊢ Ci Ergebnis der Anwendung von dec auf S = H ⊢ C
und ci Evidenzterme für Si, dann ist val(S, (Si, ci)) Evidenzterm für S
• Refinement Logik ist korrekt
– Alle Regeln der Refinement Logik sind korrekt
– Alle Theoreme der Refinement Logik haben gültige Formeln als Wurzeln
7→ Alle beweisbaren Formeln sind gültig
• Refinement Logik ist vollständig
– Für jede gültige Formel C gibt es ein Theorem mit Wurzel ⊢ C
7→ Alle gültigen Formeln sind beweisbar
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
39
M ETAMATHEMATIK DER R EFINEMENT L OGIK
Definitorische Erweiterung
• Konservative Erweiterung der Objektsprache
– Neues Konstrukte sind definitorische Abkürzung für existierende
objektsprachliche Ausdrücke (ggf. mit Parametern)
– Beispiel: Äquivalenz in der Prädikatenlogik
A ⇔ B ≡ (A ⇒ B) ∧ (B ⇒ A)
– Bedeutung ergibt sich aus Semantik bestehender Konstrukte
– Auffalten der Definition in Beweisen ersetzt linke durch rechte Seite
H ⊢ C ev = c
H ⊢ C[rhs/lhs]
unfold name
ev = c
• Erlaubt kleinen Grundformalismus
– Einfache Syntax, Semantik und Inferenzsystem
– Eigenschaften leicht beweisbar
• Erhöht Flexibilität des Formalismus
– Erlaubt freiere Syntax und umfangreiche formale Sprache
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
40
M ETAMATHEMATIK DER R EFINEMENT L OGIK
Taktiken und Beweisstrategien
• Konservative Erweiterung des Regelsystems
– Taktiken sind Abkürzungen für komplexe Regelanwendungen
– Einfache Taktiksprache unterstützt Verknüpfung von Regeln
r1 THEN r2:
Führe Regel r2 direkt nach r1 aus
r1 ORELSE r2: Führe Regel r2 aus, wenn r1 nicht anwendbar ist
Repeat r:
Führe Regel r solange wie möglich aus
– Ermöglicht kürzere und besser strukturierte Beweise
⊢ P ⇒ (Q ⇒ (P ∧ Q))
1. p:P, q:Q ⊢ P ∧ Q
BY Repeat impliesR
BY andR THEN axiom
⊢ ((P ∨ Q) ∧ ((P ⇒ R) ∧ (Q ⇒ R))) ⇒ R
1.z:P ∨ Q, g:P ⇒ R, h:Q ⇒ R ⊢ R
1.1. p:P, g:P ⇒ R, h:Q ⇒ R ⊢ R
1.2. q:Q, g:P ⇒ R, h:Q ⇒ R ⊢ R
BY
BY
BY
BY
impliesR THEN Repeat andL
orL
impliesL g THEN axiom
impliesL h THEN axiom
– Elementarer Beweis und Extraktterm durch Expansion rekonstruierbar
• Taktiksprache formalisiert Metasprache der Logik (ML)
– Unterstützt Formulierung komplexer Taktiken und Strategien
durch Analyse des Beweisziels für gezielte Regelauswahl
(ALuP II)
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
41
M ETAMATHEMATIK DER R EFINEMENT L OGIK
Sequenzenkalkül: Beweismethodik
• Kalkül garantiert Korrektheit formaler Beweise
– Kalkül ist selbst keine Methode um Beweise zu finden
• Es gibt Leitlinien für erfolgreiche Beweissuche
– Versuche vorrangig Zweige abzuschließen ( axiom )
– Verwende Dekompositionsregeln, die Formeln äquivalent aufbrechen
– Verwende orL vor orR1 / orR2
– Verwende exL und allR vor exR und allL
– Wähle anwendbare Regel, welche die wenigsten Teilziele erzeugt
Methodik ist als Taktik programmierbar
(ALuP II)
• Beweismethodik läßt Fragen offen
– Auswahl der Substitution für Quantoren erfordert “Vorausschau”
– Maschinennahe Methoden finden Substitution durch Unifikation
Mehr dazu in der Vorlesung “Inferenzmethoden”
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
42
M ETAMATHEMATIK DER R EFINEMENT L OGIK
Alternative Vorgehensweisen
• Semantikdefinition durch Interpretation
– Interpretation von Variablen, Funktionen, Prädikaten in Zielsprache
– Homomorphe Fortsetzung der Interpretation auf komplexe Formeln
– Gültigkeit ist “Wahrheit” unter allen möglichen Interpretationen
Benötigt Erklärung der Bedeutung der Zielsprache
• Alternative Beweiskalküle
– Axiom-orientierte Frege–Hilbert–Kalküle
Sehr mächtig, nur eine Regel, aufwendige Beweissuche
– Natürliches Schließen, Sequenzenkalküle
Synthetische Vorgehensweise, gut für Beweispräsentation
– (Analytische) Tableaux-Kalküle
kompakte, evidenzlose Version der Refinement Logik
– Maschinennahe Resolutions-/Konnektionskalküle
Gut geeignet für automatische Beweissuche, schwer lesbare Beweise
• Ausdrucksstärkere Logiken
– Gleichheit, Sorten, Arithmetik, Logik höherer Stufe
AUTOMATISIERTE L OGIK
UND
P ROGRAMMIERUNG §2
43
M ETAMATHEMATIK DER R EFINEMENT L OGIK
Herunterladen