Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Prädikatenlogik Quantoren • Aussagen wie • Quantoren erlauben Aussagen über Mengen von Objekten, für die ein Prädikat gilt Die Sonne scheint. die in der Aussagenlogik atomar sind, werden in der Prädikatenlogik in Terme (sonne) und Prädikate (scheint) aufgelöst scheint(sonne) • Terme Alle Menschen sind sterblich. Es gibt sterbliche Menschen. • universelle Quantifizierung macht eine Aussage über alle Elemente einer Menge; sie ist genau dann wahr, wenn die quantifizierte Aussage für jedes Element der Menge gilt Namen von Objekten des Diskursbereichs Alle Menschen sind sterblich. (Subjekte, Objekte des natürlichsprachlichen Satzes) ∀X: (mensch(X) → sterblich(X)) • Prädikate Namen von Eigenschaften, Relationen, Klassen (Verben, Attribute des natürlichsprachlichen Satzes) • Prädikatenlogik führt Variablen ein, die für (noch) nicht bekannte Objekte des Diskursbereichs stehen • existentielle Quantifizierung macht eine Aussage über einzelne Elemente einer Menge; sie ist genau dann wahr, wenn die quantifizierte Aussage für mindestens ein Element der Menge gilt Es gibt sterbliche Menschen. ∃X: (mensch(X) ∧ sterblich(X)) scheint(X) Diese Variablen ähneln den aus der Mathematik bekannten. Sie sind nicht zu verwechseln mit Variablen in prozeduralen Programmiersprachen, die für Speicherstellen stehen. (Prädikatenlogik 2. Ordnung kennt auch Variablen für Prädikate) Einführung in die Logik: Prädikatenlogik 1 Einführung in die Logik: Prädikatenlogik 2 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Quantoren Quantoren • man kann Quantoren auch mit expliziten Bereichsangaben versehen • Skopus sei M die Menge aller Menschen ∀X: (mensch(X) → sterblich(X)) ∀X, X∈M: sterblich(X) [kurz: ∀X∈M: sterblich(X)] In den Ausdrücken ∀X: P oder ∃X: P heisst P der Skopus (Gültigkeitsbereich) der Variablen X. Eine Variable im Skopus eines Quantors heisst gebunden. Eine nicht gebundene Variable heisst frei. Ein Ausdruck ohne freie Variable heisst geschlossen. analog ∃X: (mensch(X) ∧ sterblich(X)) ∃X, X∈M: sterblich(X) [kurz: ∃X∈M: sterblich(X)] • bei einem endlichen Bereich M = {m1, m2, ...., mn} sieht man ∀X∈M: p(X) ≡ p(m1) ∧ p(m2) ∧ ... ∧ p(mn) ∃X∈M: p(X) ≡ p(m1) ∨ p(m2) ∨ ... ∨ p(mn) • Beispiel (∃X: gerade(X)) ∨ null(X) Erstes Vorkommen von X ist gebunden, zweites frei. (Besser: Variablen eindeutig benennen.) • Beispiel (∀X: mensch(X) → (∃Y: mensch(Y) ∧ liebt(X,Y))) ---------------------- Skopus X ------------------------------- Skopus Y --------Ausdruck ist geschlossen Einführung in die Logik: Prädikatenlogik 3 Einführung in die Logik: Prädikatenlogik 4 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Quantoren Umformungen quantifizierter Ausdrücke • Schachtelung von Quantoren • Negation von Quantoren ∀X: ∀Y: p(X,Y) ¬ ∀X: p(X)) ≡ ∃X: ¬ p(X) ∀X: ∃Y: p(X,Y) ¬ ∃X: p(X)) ≡ ∀X: ¬ p(X) • geschachtelte universelle (existentielle) Quantoren können vertauscht werden ∀X: ∀Y: p(X,Y) ≡ ∀Y: ∀X: p(X,Y) ∃X: ∃Y: p(X,Y) ≡ ∃Y: ∃X: p(X,Y) • Skopusveränderungen (X taucht in P auf, nicht in Q) (∀X: P) ∧ Q ≡ ∀X: (P ∧ Q) (∀X: P) ∨ Q ≡ ∀X: (P ∨ Q) (∃X: P) ∧ Q ≡ ∃X: (P ∧ Q) • universelle und existentielle Quantoren dürfen im allgemeinen nicht vertauscht werden Alle Menschen lieben einen Menschen. (M Menge aller Menschen) (∃X: P) ∨ Q ≡ ∃X: (P ∨ Q) (∀X: P) → Q ≡ ∃X: (P → Q) (∃X: P) → Q ≡ ∀X: (P → Q) Q → (∀X: P) ≡ ∀X: (Q → P) ∀X∈M: ∃Y∈M: liebt(X,Y) Bedeutung: Für jeden Menschen gibt es einen – nicht notwendigerweise denselben – Menschen, den er liebt. Q → (∃X: P) ≡ ∃X: (Q → P) • Name der quantifizierten Variablen ist belanglos ∃Y∈M: ∀X∈M: liebt(X,Y) ∀X: p(X) ≡ ∀Z23: p(Z23) Bedeutung: Es gibt (mindestens) einen Menschen, der von allen Menschen geliebt wird. ∃Y: p(Y) ≡ ∃XYZ: p(XYZ) (N Menge aller natürlichen Zahlen) ∀X∈N: ∃Y∈N: Y > X [wahr] ∃Y∈N: ∀X∈N: Y > X [falsch] Einführung in die Logik: Prädikatenlogik 5 Einführung in die Logik: Prädikatenlogik 6 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Syntax der Prädikatenlogik Syntax der Prädikatenlogik • zwei Alphabete • Sprache der Prädikatenlogik besteht aus Termen und wohlgeformten Ausdrücken (Formeln) logische Zeichen Theoriezeichen (abhängig vom Diskursbereich) • Terme Jede Variable ist ein Term. • logische Zeichen Menge von Variablen: X, X23, ... X (Variablen stehen für (noch) nicht bekannte Objekte des Diskursbereiches.) Konnektoren: ¬, ∧, ∨, → logisches Atom: ⊥ Quantoren: ∀, ∃ Jede Konstante ist ein Term. Trennzeichen: ":" "," "(" ")" a, sokrates • Theoriezeichen (Konstante stehen für bekannte Objekte des Diskursbereiches.) Menge von Konstanten Menge von Funktionszeichen mit Arität (f/N) Menge von Relationszeichen mit Arität (p/N) Wenn t1 , ..., tn Terme sind und f ein n-stelliges Funktionszeichen – meistens geschrieben als f/n – dann ist f(t1, ..., tn) ein zusammengesetzter Term. vater_von(sokrates) vater_von(vater_von(sokrates)) (Zusammengesetzte Terme stehen für aus anderen Objekten "konstruierte" Objekte des Diskursbereiches.) Es gibt keine weiteren Terme. Einführung in die Logik: Prädikatenlogik 7 Einführung in die Logik: Prädikatenlogik 8 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Syntax der Prädikatenlogik Beispiel: Peano Arithmetik • (wohlgeformte) Ausdrücke • Theoriezeichen ⊥ ist ein atomarer Ausdruck. Konstante: 0 Wenn t1, ..., tn Terme sind und r ein n-stelliges Relationszeichen – meistens geschrieben als p/n – dann ist r(t1, ..., tn) ein atomarer Ausdruck. Funktionszeichen: s/1 (= Nachfolgerfunktion) rot(X) +/2 (= Addition) liebt(anton, maria) */2 (= Multiplikation) (Relationszeichen werden auch Prädikate genannt.) Relationszeichen: =/2 Wenn P und Q Ausdrücke sind, dann auch ( ¬ P) (P ∧ Q) (P ∨ Q) (P → Q) (P und Q sind Platzhaltervariable, die für Aussagen stehen.) Ist P ein Ausdruck und X eine Variable, dann sind auch (∀X: P) (∃ X: P) Ausdrücke. (= Gleichheitsrelation) • Beispiele Terme: 0 s(0) s(s(0)) +(X, s(0)) (Präfixnotation) ≡ X + s(0) (Infixnotation) *(s(s(0)), X) (Präfixnotation) ≡ s(s(0)) * X (Infixnotation) Ausdrücke: Es gibt keine weiteren Ausdrücke. =(X + s(Y), s(X + Y)) (Präfixnotation) ≡ X + s(Y) = s(X + Y) (Infixnotation) Einführung in die Logik: Prädikatenlogik 9 Einführung in die Logik: Prädikatenlogik 10 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Baumstruktur Substitutionen • Terme haben eine Baumstruktur, z.B. • Substitutionen +(X, s(0)) Ersetzen einer Variablen in einem Ausdruck durch einen Term. + Seien X eine Variable, T ein Term und P ein Ausdruck. X s (P) {X/T} ist der Ausdruck, den man erhält, wenn man jedes freie Auftreten von X in P durch T ersetzt. (P) {X/T} wird Instanz von P genannt. 0 • Formeln haben eine Baumstruktur, z.B. ∃X: (mensch(X) ∧ sterblich(X)) ∃X • Beispiele (∀X: (gerade(X)) ∨ null(X)) {X/0} ≡ ∀X: (gerade(X)) ∨ null(0) (vater(X)) {X/vater(anton)} ≡ vater(vater(anton)) ∧ mensch(X) sterblich(X) Einführung in die Logik: Prädikatenlogik 11 Einführung in die Logik: Prädikatenlogik 12 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Normalformen Normalformen: Pränexform • prädikatenlogische Ausdrücke können in äquivalente Ausdrücke umgeformt werden • Pränexform • Beispiel Ein prädikatenlogischer Ausdruck ist in Pränexform, wenn er die Form ∀X: (mensch(X) → sterblich(X)) (Q1X1: (Q2X2: .... (QnXn: (A) ...)) ≡ hat, wobei Qi Quantoren sind, Xi Variable und A keine Quantoren enthält. ∀X: (¬ mensch(X) ∨ sterblich(X)) ≡ ∀X: (¬ (mensch(X) ∧ ¬ sterblich(X))) ≡ ¬ ∃ X: (mensch(X) ∧ ¬ sterblich(X))) • gesucht: Normalformen für prädikatenlogische Ausdrücke • Beispiel ¬ ∀X: (p(X,Y)) ∧ q(X) ∧ ¬ (∀Z: (r(Z)) ∨ s(W)) ≡ [Regel: ¬ ∀X: p(X)) ≡ ∃X: ¬ p(X)] [Regel: ¬ (P ∧ Q) ≡ (¬ P ∨ ¬ Q)] ∃X: (¬ p(X,Y)) ∧ q(X) ∧ ¬ ∀Z: (r(Z)) ∧ ¬ s(W) ≡ [Regel: Umbenennung X durch U] [Regel: ¬ ∀X: p(X) ≡ ∃X: ¬ p(X)] ∃U: ¬ p(U,Y) ∧ q(X) ∧ ∃Z: (¬ r(Z)) ∧ ¬ s(W) ≡ [Regel: (∃X: P) ∧ Q ≡ ∃X: (P ∧ Q)] [Regel: Kommutativität von ∧] ∃U: ∃Z: (¬ p(U,Y) ∧ q(X) ∧ ¬ r(Z) ∧ ¬ s(W)) • Zu jeder prädikatenlogischen Formel gibt es (mindestens) eine logisch äquivalente Pränexform. Einführung in die Logik: Prädikatenlogik 13 Einführung in die Logik: Prädikatenlogik 14 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Anwendung: Analyse natürlichsprachlicher Sätze Anwendung: Analyse natürlichsprachlicher Sätze • natürlichsprachliche Sätze können auch in Prädikatenlogik übersetzt werden • Beispiel 2 • Beispiel 1 Einige Personen sagen einige Zeit die Wahrheit, andere lügen nie. Jeder im Raum spricht Französisch oder Deutsch. Umformulierung Umformulierung in halbformale Darstellung Für alle X gilt, wenn X eine Person im Raum ist, dann spricht X Französisch oder spricht X Deutsch. Einführung von Prädikaten r/1 "ist eine Person im Raum" f/1 "spricht Französisch" d/1 "spricht Deutsch" prädikatenlogische Formel ∀X: (r(X) → (f(X) ∨ d(X))) Es gibt eine Person X und es gibt einen Zeitpunkt T, an dem X die Wahrheit sagt. Es gibt eine Person Y, die zu allen Zeitpunkten Z nicht lügt. Einführung von Prädikaten p/1 "ist eine Person " z/1 "ist ein Zeitpunkt" w/2 "sagt die Wahrheit zu einem Zeitpunkt" l/2 "lügt zu einem Zeitpunkt" prädikatenlogische Formel ∃X: ∃Z: (p(X) ∧ z(Z) ∧ w(X,Z)) ∧ ∃Y: (p(Y) ∧ ∀Z: (z(Z) → ¬ l(Y,Z))) Die Information, dass sich w/2 und l/2 gegenseitig ausschliessen, ist nicht explizit bekannt, und kann deshalb nicht zur Vereinfachung verwendet werden. Einführung in die Logik: Prädikatenlogik 15 Einführung in die Logik: Prädikatenlogik 16 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Anwendung: Analyse natürlichsprachlicher Sätze • Beispiel 3 You can lie to all people some of the time and you can lie to some people all of the time, but you cannot lie to all people all of the time. Umformulierung Für alle Personen X gilt, es gibt eine Person Y und es gibt einen Zeitpunkt T, an dem Y X belügt. Für alle Zeitpunkte T gilt, dass es eine Person X gibt und eine Person Y gibt und X Y belügt. Es gibt keinen Zeitpunkt T, an dem es eine Person X gibt, die alle Personen Y belügt . Einführung von Prädikaten p/1 "ist eine Person " z/1 "ist ein Zeitpunkt" b(X,Y,Z) "X belügt Y zu einem Zeitpunkt Z" prädikatenlogische Formel ∀X: ∃Y: ∃Z: (p(X) ∧ p(Y) ∧ z(Z) ∧ b(Y, X, T)) ∧ ∀Z: ∃X: ∃Y: (p(X) ∧ p(Y) ∧ z(Z) ∧ b(X, Y, T)) ∧ ¬ ∃Z : ∃X: ∀Y: (p(X) ∧ p(Y) ∧ z(Z) ∧ b(X, Y, T)) Einführung in die Logik: Prädikatenlogik 17