Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Deduktion in der Prädikatenlogik Natürliche Deduktion: Existentieller Quantor • Sprache der Prädikatenlogik ist mächtiger als die der Aussagenlogik; damit verändern sich die Deduktionssysteme • Einführung des existentiellen Quantors • natürliche Deduktion: Schlussregeln der Aussagenlogik gelten weiterhin und werden nur um Regeln für Quantoren erweitert • Resolution: Resolutionsregel wird um Unifikation erweitert; oft Beschränkung auf Hornklauseln, d.h. Klauseln mit höchstens einem positiven Literal P{X/t} --------- ∃I ∃X: P Bedeutung: wenn man P für eine beliebige Substitution {X/t} bewiesen hat, dann kann man schliessen, dass es ein X gibt, für das P gilt. • Eliminierung des existentiellen Quantors [P] . . Q ∃X: P -------------- ∃E Q Bedeutung: wenn man Q aus P {X/t} für eine beliebige Substitution {X/t} bewiesen hat und t nicht frei in P, in Q oder in einer noch nicht gestrichenen Hypothese vorkommt, dann kann man aus ∃X: P auf Q schliessen. Weitere Logik: Deduktion in der Prädikatenlogik 1 Weitere Logik: Deduktion in der Prädikatenlogik 2 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Natürliche Deduktion: Universeller Quantor Resolution: Klauselform der Prädikatenlogik • Einführung des universellen Quantors • Pränexform P{X/t} --------- ∀I ∀X: P Bedeutung: wenn man P für eine beliebige Substitution {X/t} bewiesen hat und t nicht frei in P oder in einer noch nicht gestrichenen Hypothese vorkommt, dann kann man schliessen, dass P für alle X gilt. • Eliminierung des universellen Quantors ∀X: P --------- ∀E P{X/t} Bedeutung: aus ∀X: P kann man schliessen, dass P für eine Instanz P{X/t} gilt. Ein prädikatenlogischer Ausdruck ist in Pränexform, wenn er die Form (Q1X1: (Q2X2: ....QnXn: A) ...)) hat, wobei Qi Quantoren sind, Xi Variable und A keine Quantoren enthält. • Klauselform Ein prädikatenlogischer Ausdruck ist in Klauselform, wenn er die Form (∀X1: (∀X 2 : ....∀Xn: A) ...)) hat, wobei Xi alle Variablen sind, die in A auftauchen, A keine Quantoren enthält und die Form einer Disjunktion von atomaren Ausdrücken oder deren Negation hat. • Beispiel Ausdruck (∀X: mensch(X) → sterblich(X)) Pränexform wie gegeben Klauselform (∀X: ¬ mensch(X) ∨ sterblich(X)) Weitere Logik: Deduktion in der Prädikatenlogik 3 Weitere Logik: Deduktion in der Prädikatenlogik 4 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Umwandlung in Klauselform Umwandlung in Klauselform • Eine Menge von prädikatenlogischen Ausdrücken kann in eine Menge von Klauseln transformiert werden, die genau dann konsistent ist, wenn die Ausgangsmenge konsistent ist. • Die Umwandlung eines Ausdrucks in Klauselform geschieht in 8 Schritten 4. Wir eliminieren alle existentiellen Quantoren. Wenn ein existentieller Quantor nicht im Gültigkeitsbereich eines universellen Quantors vorkommt, ersetzen wir jedes Auftauchen der quantifizierten Variablen durch eine bisher nicht verwendete Konstante. (∃ Y: p(X)) → p(a) • Beispiel ∀ X: (∀ Y: p(X, Y) → ¬ (∀ Y: (q(X, Y) → r(X, Y)))) 1. Wir eliminieren → und erhalten ∀ X: (¬ ∀ Y: p(X, Y) ∨ ¬ (∀ Y: (¬ q(X, Y) ∨ r(X, Y)))) 2. Wir verteilen die Negationen, sodass jede Negation nur auf ein Atom wirkt, und erhalten ∀ X: (∃ Y: ¬ p(X, Y) ∨ ∃ Y: (q(X, Y) ∧ ¬ r(X, Y))) 3. Wir benennen die Variablen um, sodass jede Variable nur einmal quantifiziert wird, und erhalten ∀ X: (∃ Y: ¬ p(X, Y) ∨ ∃ Z: (q(X, Z) ∧ ¬ r(X, Z))) Wenn ein existentieller Quantor im Gültigkeitsbereich universeller Quantoren vorkommt, dann ist es möglich, dass die existentiell quantifizierte Variable von den universell quantifizierten abhängt. Wir ersetzen sie daher durch eine bisher nicht verwendete Funktion der universell quantifizierten Variablen. (∀ X: ∃ Y: p(X, Y)) → p(X, f(X)) Ergebnis: ∀ X: (¬ p(X, f1(X)) ∨ (q(X, f2(X)) ∧ ¬ r(X, f2(X)))) 5. Alle verbleibenden Variablen sind nun universell quantifiziert. Wir können die universellen Quantoren daher auch fortlassen. Alle Variablen werden implizit als universell quantifiziert betrachtet. ¬ p(X, f1(X)) ∨ (q(X, f2(X)) ∧ ¬ r(X, f2(X))) Weitere Logik: Deduktion in der Prädikatenlogik 5 Weitere Logik: Deduktion in der Prädikatenlogik 6 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Umwandlung in Klauselform Klauselform der Prädikatenlogik 6. Wir bringen den Satz in konjunktive Normalform d.h. eine Konjunktion von Disjunktionen. (¬ p(X, f1(X)) ∨ q(X, f2(X))) ∧ (¬ p(X, f1(X)) ∨ ¬ r(X, f2(X))) 7. Wir eliminieren alle konjunktiven Konnektoren und schreiben die Konjunktion als eine Menge von Klauseln. ¬ p(X, f1(X)) ∨ q(X, f2(X)) ¬ p(X, f1(X)) ∨ ¬ r(X, f2(X)) 8. Zum Schluss benennen wir die Variablen noch einmal um, sodass keine Variable in mehr als einer Klausel auftaucht. ¬ p(X, f1(X)) ∨ q(X, f2(X)) • Klausel ist Aussage der Form P1 ∨ P2 ∨ ... ∨ Pn ∨ ¬ N1 ∨ ¬ N2 ∨ ... ∨ ¬ Nm alle Variablen sind implizit vor der Klausel universell quantifiziert • äquivalente Formen ≡ P1 ∨ P2 ∨ ... ∨ Pn ∨ ¬ (N1 ∧ N2 ∧ ... ∧ Nm) ≡ N1 ∧ N2 ∧ ... ∧ Nm → P1 ∨ P2 ∨ ... ∨ Pn • Notation der logischen Programmierung ≡ P1 , P2 , ... , Pn ← N1 , N2 , ... , Nm (NB. Kommata auf der linken Seite bedeuten Disjunktion, auf der rechten Seite Konjunktion) ¬ p(Y, f1(Y)) ∨ ¬ r(Y, f2(Y)) Weitere Logik: Deduktion in der Prädikatenlogik 7 Weitere Logik: Deduktion in der Prädikatenlogik 8 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Resolution mit Variablen Substitutionen, Unifikatoren • gegeben zwei Klauseln • Begriffe p(X1) ∨ q(X1) [L] s bedeutet Anwendung der Substitution s auf das Literal L ¬ p(a) ∨ r(X2, Y2) Literal [L] s = L' ist eine Instanz von L • Resolvente? Literal L subsumiert seine Instanz L' • Da alle Variablen universell quantifiziert sind, kann man jede Variable durch einen Term aus dem Wertebereich der Variablen substituieren. • Im Beispiel ergibt die Substitution {X1/a} die Klauselinstanzen p(a) ∨ q(a) • Unifikator Wenn es für zwei Literale L1 und L2 eine Substitution s gibt, sodass [L1] s = [L2] s dann nennen wir s einen Unifikator von L1 und L2. ¬ p(a) ∨ r(X2, Y2) • allgemeinster Unifikator (most general unificator, mgu) • Resolvente Der Unifikator s ist genau dann der allgemeinste Unifikator für L1 und L2 ist, wenn für jeden anderen Unifikator s' gilt, dass das Literal [L1] s das Literal [L1] s' subsumiert. q(a) ∨ r(X2, Y2) Der allgemeinste Unifikator ist bis auf Variablenumbenennungen eindeutig. Weitere Logik: Deduktion in der Prädikatenlogik 9 Weitere Logik: Deduktion in der Prädikatenlogik 10 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Beispiel für allgemeinsten Unifikator Wann unifizieren zwei Literale? • Literale • Relationszeichen (Prädikatsname) und Arität müssen übereinstimmen p(a, Y, Z) • alle Argumente müssen unifiziert werden können p(X, b, Z) werden durch die Substitution s {X/a, Y/b, Z/c} Unifikation gelingt, wenn ein oder beide Argumente Variable sind Unifikation gelingt, wenn beide Argumente die gleiche Konstante sind unifiziert [p(a, Y, Z)] {X/a, Y/b, Z/c} ≡ [p(X, b, Z)] {X/a, Y/b, Z/c} ≡ p(a, b, c) Aber s ist nicht der allgemeinste Unifikator. Der allgemeinste Unifikator ist in diesem Fall Unifikation gelingt, wenn beide Argumente zusammengesetzte Terme mit dem gleichen Funktionszeichen (Funktionsnamen, Funktor) und der gleichen Arität sind und alle Argumente unifizieren {X/a, Y/b} mit der Instanz [p(a, Y, Z)] {X/a, Y/b} ≡ [p(X, b, Z)] {X/a, Y/b} ≡ p(a, b, Z) Weitere Logik: Deduktion in der Prädikatenlogik 11 Weitere Logik: Deduktion in der Prädikatenlogik 12 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Resolution mit Unifikation Beispiel (Truss p. 313) • Gegeben • Beweis der Addition 2 + 2 = 4 in Peano Arithmetik durch Resolution Literal L1 in einer Klausel K1 Literal ¬ L2 in einer Klausel K2 L1 und L2 haben allgemeinsten Unifikator u • Resolvente besteht aus der Vereinigungsmenge aller Literale von K1 und K2 abzüglich L1 und ¬ L2, auf die u angewandt wurde K1 K2 ------------------------------------[{K1 - {L1}} ∪ {K2 - {¬L2}}] u • Beispiel p(X,f(2)) ∨ q(X) ∨ ¬ r(X,Y) s(V) ∨ ¬ p(4,V) -----------------------------------------------------------------q(4) ∨ ¬ r(4,Y) ∨ s(f(2)) allgemeinster Unifikator ist {X/4, V/f(2)} denn es gilt p(X,f(2)) {X/4, V/f(2)} = p(4,V) {X/4, V/f(2)} Axiome X+0=X X + s(Y) = s(X + Y) Theorem s(s(0)) + s(s(0)) = s(s(s(s(0)))) • Mit den Abkürzungen sX für s(X) add(X,Y,Z) für X+Y=Z lauten die Axiome add(X, 0, X) add(X,Y,Z) → add(X, sY, sZ) und das Theorem add(ss0, ss0, ssss0) • Umwandlung in Klauselform (1) add(X, 0, X) (2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ) (3) ¬ add(ss0, ss0, ssss0)} Weitere Logik: Deduktion in der Prädikatenlogik 13 (negiertes Theorem) Weitere Logik: Deduktion in der Prädikatenlogik 14 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Beispiel (Truss p. 313) Beispiel (Truss p. 313) • Für den ersten Resolutionsschritt verwenden wir das negierte Theorem (3) und die einzige passende Klausel (2). (Das Literal der Klausel (3) unifiziert mit dem Literal der Klausel (1) nicht.) • Für den dritten Resolutionsschritt verwenden wir die Resolvente (5) und Klausel (1). (2) ¬ add(X,Y,Z) ∨ add(X,sY,sZ) (3) ¬ add(ss0,ss0,ssss0) mit dem mgu = {X/ss0, Y/s0, Z/sss0} erhalten wir die Resolvente (4) ¬ add(ss0, s0, sss0) • Für den zweiten Resolutionsschritt verwenden wir die Resolvente (4) und Klausel (2). Klausel (1) kommt wieder nicht in Frage. (4) ¬ add(ss0, s0, sss0) (2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ) Mit dem mgu = {X/ss0, Y/0, Z/ss0} erhalten wir die Resolvente (5) ¬ add(ss0, 0, ss0) Weitere Logik: Deduktion in der Prädikatenlogik 15 (5) ¬ add(ss0, 0, ss0) (1) add(X, 0, X) Mit dem mgu = {X/ss0} erhalten wir die Resolvente (6) {} • Die leere Resolvente bedeutet, dass die Klauselmenge {(1), (2), (3)} inkonsistent ist und dass das Theorem aus den Axiomen folgt, d.h. dass 2 + 2 = 4 in der Peano Arithmetik gilt. • Der Resolutionsbeweis hat eine Kombination von zwei Beweisstrategien benutzt, um effizient und effektiv zur leeren Klausel zu gelangen: set-of-support man benutzt das negierte Theorem als eine der beiden Klauseln beim ersten Resolutionsschritt lineare Resolution man verwendet ab dem zweiten Resolutionsschritt immer die Resolvente des vorherigen Schrittes als eine der beiden Klauseln; die andere Klausel ist eines der Axiome oder eine vorherige Resolvente Weitere Logik: Deduktion in der Prädikatenlogik 16 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Beispiel (Truss p. 313): Variation Beispiel (Truss p. 313): Variation • Im Beispiel wurde die Addition 2+2=4 überprüft. Nun wollen wir den Resolutionsbeweis konstruktiv verwenden, d.h. einen Wert "durch Beweis berechnen". • Dritter Resolutionsschritt: Welchen Wert muss W haben, damit W + 2 = 4? (1) add(X, 0, X) (5) ¬ add(W, 0, ss0) mgu = {X/W, Y/0, X/ss0} • Klauselform (6) {} (1) add(X, 0, X) (2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ) (3) ¬ add(W, ss0, ssss0)} (negiertes Theorem) X wurde an ss0 gebunden, W an X, d.h. W an ss0. Damit haben wir W de facto als ss0 berechnet. • Erster Resolutionsschritt: (2) ¬ add(X,Y,Z) ∨ add(X,sY,sZ) (3) ¬ add(W,ss0,ssss0) mgu = {X/W, Y/s0, Z/sss0} (4) ¬ add(W, s0, sss0) • Zweiter Resolutionsschritt: (2) ¬ add(X,Y,Z) ∨ add(X,sY,sZ) (4) ¬ add(W, s0, sss0) mgu = {X/W, Y/0, Z/ss0} (5) ¬ add(W, 0, ss0) Weitere Logik: Deduktion in der Prädikatenlogik 17 Weitere Logik: Deduktion in der Prädikatenlogik 18 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Implementierung der Resolution in Prolog Definite Klauseln • Programmiersprache Prolog: Versuch, Resolution effizient und effektiv zu machen • definite Klauseln enthalten genau ein positives Literal • Einschränkungen der Sprache auf Hornklauseln • Verwendung der SLD Resolutionsstrategie • Gewinn in Effizienz und Effektivität wird durch Unvollständigkeit erkauft, d.h. es können nicht mehr alle Lösungen durch Resolution gefunden werden ∀(H∨ ¬B1∨ ¬B2 ∨ ... ∨ ¬Bn) werden meistens als nach links gerichtete Implikation geschrieben H ‹– B1, B2, ... , Bn. (n≥0) (Prolog: :- statt ‹– ) Atom H heisst Kopf Konjunktion B1, B2, ... , Bn Körper Kommata stehen für die logische Konjunktion alle Variablen sind implizit vor der Klausel universell quantifiziert Klausel heisst Regel, wenn n>0 Klausel heisst Fakt, wenn n=0 (‹– wird dann oft fortgelassen) Fakt kann als Regel mit dem Körper true betrachtet werden Weitere Logik: Deduktion in der Prädikatenlogik 19 Weitere Logik: Deduktion in der Prädikatenlogik 20 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Definite Programme Zielklauseln, Anfragen • definites Programm: endliche Menge von definiten Klauseln • Klauseln, die nur negative Literale enthalten pfad(X, Y) ‹– verbunden(X, Y). pfad(X, Y) ‹– verbunden(X, Z), pfad(Z, Y). verbunden(a, b). ∀(¬G1 ∨ ¬G2 ∨ ... ∨ ¬Gm) können zu ¬∃ X1 ... Xk (G1∧ G2 ∧ ... ∧ Gm) umgeformt werden, wobei X1 ... Xk die Variablen der Klausel sind verbunden(b, c). • Prolog-Programme sind definite Programme • Bedeutung: es gibt keine Instanzen der Variablen X1 ... Xk, sodass die Konjunktion der Ziele Gi wahr ist • ∀(¬G1 ∨ ¬G2 ∨ ... ∨ ¬G m ) wird definite Zielklausel genannt und als Anfrage verstanden, die durch Widerspruch beantwortet werden kann • meistens geschrieben ‹– G1, G2, ... , Gn (Prolog: ?- G1, G2, ... , Gn.) • Beispiel ‹– pfad(a, b). • definite Klauseln und definite Zielklauseln werden zusammen Horn-Klauseln genannt Weitere Logik: Deduktion in der Prädikatenlogik 21 Weitere Logik: Deduktion in der Prädikatenlogik 22 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) SLD Resolution SLD Resolution • gegeben sei das Prolog Programm • Prolog verwendet Tiefensuche, um den SLD Baum abzusuchen, bzw. zu generieren pfad(X, Y) ‹– verbunden(X, Y). pfad(X, Y) ‹– verbunden(X, Z), pfad(Z, Y). verbunden(a, b). verbunden(b, c). und die Anfrage ‹– pfad(a, Wohin). • Anfrage ‹– pfad(a, Wohin) wird durch Resolution beantwortet und die Variable Wohin wird während des Resolutionsbeweises an die Konstante b gebunden - der Wert von Wohin wird als b berechnet • Prolog verwendet eine Kombination von set-of-support Resolution mit linearer Resolution • wenn eine Resolvente aus mehr als einem Literal besteht, wird immer das am weitesten links stehende Literal für den nächsten Resolutionsschritt verwendet • Resolventen bilden den SLD Baum; Wurzel des Baumes ist die ursprüngliche Anfrage, Blätter des Baumes sind entweder leere Resolventen – Refutationsbeweis ist gelungen – oder nichtleeere Resolventen, für die kein weiterer Resolutionsschritt möglich ist Weitere Logik: Deduktion in der Prädikatenlogik 23 • wenn ein Blatt eine nichtleere Resolvente ist, dann wird automatisch Backtracking ausgelöst, d.h. der Beweis wird am nächsten vorangehenden Knoten des Baumes vorgesetzt, der alternative Zweige hat; gibt es keine alternativen Zweige, dann ist der Refutationsbeweis misslungen • Prolog ist nichtdeterministisch, d.h. Anfragen können mehr als eine Lösung generieren; konkret hat die Anfrage ‹– pfad(a, Wohin). die Lösungen Wohin = b Wohin = c • wenn im SLD Baum unendliche Zweige auftauchen, dann verhindert die Tiefensuche, dass Zweige abgesucht werden, die rechts vom unendlichen Zweig sind; d.h. mögliche Lösungen werden nicht gefunden; Prolog ist also potentiell unvollständig Weitere Logik: Deduktion in der Prädikatenlogik 24 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Semantik der Prädikatenlogik Semantik der Prädikatenlogik • Wann sind Ausdrücke wie • Beispiel p(X) Term p(X, q(a)) X>2 D sei die Menge der Peano Zahlen mit den Funktionen s/1 und +/2 wahr? • Ausdrücke erhalten ihren Wahrheitswert durch eine Interpretation I und eine Variablenabbildung (Variablenzuordnung) V in einem Wertebereich (Diskursbereich) D • Interpretation I Konstante c I(c) ∈D Funktionszeichen f mit Arität n I(f): Dn → D Relationszeichen r mit Arität n I(r) ⊆ Dn I(a) = s(0) I(p/2) = +/2 I(q/1) = s/1 V(X) = s(s(s(0))) p(X, q(a)) --> +(s(s(s(0))), s(s(0))) = s(s(s(s(s(0))))) ∈D • Variablenbelegung V V(X) ∈D Variable X • Abbildung eines Terms t Konstante c I(t) = I(c) ∈D Variable X I(t) = V(X) ∈D f(t1, ..., tn) I(t) = I(f)(I(t1), ..., I(tn)) ∈D Weitere Logik: Deduktion in der Prädikatenlogik 25 Weitere Logik: Deduktion in der Prädikatenlogik 26 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Semantik der Prädikatenlogik Semantik der Prädikatenlogik • Wahrheitswerte prädikatenlogischer Ausdrücke • Beispiel In der Interpretation I und der Variablenbelegung V kann jedem prädikatenlogischen Ausdruck P ein Wahrheitswert I(P) ∈ {W, F} zugeordnet werden. • atomare Ausdrücke Ausdruck even(p(X, q(a))) D sei die Menge der Peano Zahlen mit den Funktionen s/1 und +/2 I(a) = s(0) Ausdruck ist r(t1 , ..., tn) mit dem Relationszeichen r/n und den Termen t1, ..., tn. I(r(t1 , ..., tn)) = W genau dann, wenn Tupel <I(t1), ..., I(tn)> ∈ I(r) I(p/2) = +/2 I(q/1) = s/1 V(X) = s(s(s(0))) I(⊥) = F • komplexe Ausdrücke I((P ∧ Q)) = I(P) ∧ I(Q) I((P ∨ Q)) = I(P) ∨ I(Q) I(even) = {0, s(s(0)), s(s(s(s(0)))), ...} ⊆D p(X, q(a)) --> +(s(s(s(0))), s(s(0))) = s(s(s(s(s(0))))) ∈D I(even(p(X, q(a)))) = F, denn s(s(s(s(s(0))))) ∉I(even) I((P ⇒ Q)) = I(P) ⇒ I(Q) I((¬P)) = ¬I(P) I((∀X: P)) = W genau dann, wenn I(P) = W und das auch für alle anderen Variablenbelegung gilt, die man erhält, wenn man V an der Stelle X beliebig abändert. I((∃X: P)) = W genau dann, wenn I(P) = W oder das für mindestens eine andere Variablenbelegung gilt, die man erhält, wenn man V an der Stelle X beliebig abändert. Weitere Logik: Deduktion in der Prädikatenlogik 27 Weitere Logik: Deduktion in der Prädikatenlogik 28 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Modelle Modelle: Beispiel • Modelle • gegeben sei die Menge von Ausdrücken D sei ein Wertebereich, I eine Interpretation Ein Ausdruck P wird in der Interpretation I wahr genannt und I heisst ein Modell dieses Ausdrucks, wenn P für alle Variablenbelegungen wahr ist. Ist ein geschlossener Ausdruck für eine Variablenbelegung wahr, dann gilt das für alle Variablenbelegungen. Es kann mehr als ein Modell geben. • Menge von prädikatenlogischen Ausdrücken heisst erfüllbar, wenn sie mindestens ein Modell hat {p(a), ∀X: (p(X) ⇒ q(X))} • Modell 1 I1(a) = Sokrates I1(p) = menschlich: {Sokrates, Platon, Meier, ...} I1(q) = sterblich: {Sokrates, Platon, Meier, ...} • Modell 2 I2(a) = 8 I2(p) = durch_4_teilbar: {0, 4, 8, ...} widerlegbar, wenn es mindestens eine Interpretation gibt, die kein Modell ist I2(q) = gerade: {0, 2, 4, ...} tautologisch, wenn jede Interpretation ein Modell ist • es gibt unendlich viele Modelle inkonsistent, wenn sie kein Modell hat • man interessiert sich jedoch meistens nur für das i n t e n d i e r t e Modell und wählt die Namen von Konstanten, Funktionen und Prädikaten entsprechend {menschlich(sokrates), ∀X: (menschlich(X) ⇒ sterblich(X))} • Wahl der Namen erhöht nur die Lesbarkeit; Namen sind jedoch beliebig; es gibt nach wie vor unendlich viele Modelle • Schluss: logische Aussagen legen den Diskursbereich nicht eindeutig fest Weitere Logik: Deduktion in der Prädikatenlogik 29 Weitere Logik: Deduktion in der Prädikatenlogik 30 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Folgerungsrelation Korrektheit und Vollständigkeit der Prädikatenlogik • Folgerungsrelation, logische Konsequenz M und N sind Mengen prädikatenlogischer Ausdrücke Es gilt die logische Konsequenz M |= N, wenn jedes Modell der Menge M auch ein Modell der Menge N ist, d.h. ∀I ∈(Menge der Modelle): |= Ι M ⇒ |= Ι N • Beispiel • Korrektheit Ein unter bestimmten Voraussetzungen ableitbarer Ausdruck ist unter diesen Voraussetzungen auch wahr, d.h. logische Konsequenz der Voraussetzungen. • Vollständigkeit Ein unter bestimmten Voraussetzungen wahrer Ausdruck ist unter diesen Voraussetzungen auch ableitbar. {p(a), ∀X: (p(X) ⇒ q(X))} |= q(a) wenn jedes Modell der linken Seite auch Modell der rechten Seite ist Problem: es gibt unendlich viele Modelle • Lösung durch Deduktion mit Modus Ponens {p(a), ∀X: (p(X) ⇒ q(X))} |− q(a) falls Prädikatenlogik korrekt und vollständig ist Weitere Logik: Deduktion in der Prädikatenlogik 31 Weitere Logik: Deduktion in der Prädikatenlogik 32 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Korrektheit und Vollständigkeit der natürlichen Deduktion in der Prädikatenlogik Korrektheit und Vollständigkeit der prädikatenlogischen Resolution • Gödels Vollständigkeitssatz: • Korrektheit der Resolution Natürliche Deduktion der Prädikatenlogik ist korrekt und vollständig. Wenn eine Klausel K aus einer Menge M von Klauseln durch Resolution abgeleitet werden kann, dann ist K eine logische Konsequenz von M. • Korollar Wenn die leere Klausel aus einer Menge M von Klauseln durch Resolution abgeleitet werden kann, dann ist M inkonsistent. • Vollständigkeit der Resolution bezüglich Refutation Wenn eine Menge von Klauseln inkonsistent ist, dann kann man aus ihr durch Resolution die leere Klausel ableiten. Weitere Logik: Deduktion in der Prädikatenlogik 33 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Entscheidbarkeit der Prädikatenlogik • Prädikatenlogik ist semi-entscheidbar Im Gegensatz zur Aussagenlogik ist Prädikatenlogik nicht entscheidbar, d.h. es gibt keinen allgemeingültigen Algorithmus, der für jeden Ausdruck bestimmt, ob er aus einer Menge von Ausdrücken ableitbar ist oder nicht. • Ein allgemeiner Algorithmus kann also nur für die Herleitbarkeit, aber nicht für die Nichtherleitbarkeit gefunden werden. Weitere Logik: Deduktion in der Prädikatenlogik 35 Weitere Logik: Deduktion in der Prädikatenlogik 34