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