Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Prädikatenlogik • Aussagen wie 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 Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes) • 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 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 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Quantoren • Quantoren erlauben Aussagen über Mengen von Objekten, für die ein Prädikat gilt 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 Alle Menschen sind sterblich. ∀X: (mensch(X) → sterblich(X)) • 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)) Einführung in die Logik: Prädikatenlogik 2 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Quantoren • man kann Quantoren auch mit expliziten Bereichsangaben versehen sei M die Menge aller Menschen ∀X: (mensch(X) → sterblich(X)) ∀X, X∈M: sterblich(X) [kurz: ∀X∈M: sterblich(X)] 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) Einführung in die Logik: Prädikatenlogik 3 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Quantoren • Skopus 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. • 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 4 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Quantoren • Schachtelung von Quantoren ∀X: ∀Y: p(X,Y) ∀X: ∃Y: p(X,Y) • geschachtelte universelle können vertauscht werden (existentielle) Quantoren ∀X: ∀Y: p(X,Y) ≡ ∀Y: ∀X: p(X,Y) ∃X: ∃Y: p(X,Y) ≡ ∃Y: ∃X: p(X,Y) • universelle und existentielle Quantoren dürfen im allgemeinen nicht vertauscht werden Alle Menschen lieben einen Menschen. (M Menge aller Menschen) ∀X∈M: ∃Y∈M: liebt(X,Y) Bedeutung: Für jeden Menschen gibt es einen – nicht notwendigerweise denselben – Menschen, den er liebt. ∃Y∈M: ∀X∈M: liebt(X,Y) Bedeutung: Es gibt (mindestens) einen Menschen, der von allen Menschen geliebt wird. (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 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Umformungen quantifizierter Ausdrücke • Negation von Quantoren ¬ ∀X: p(X)) ≡ ∃X: ¬ p(X) ¬ ∃X: p(X)) ≡ ∀X: ¬ p(X) • 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) (∃X: P) ∨ Q ≡ ∃X: (P ∨ Q) (∀X: P) → Q ≡ ∃X: (P → Q) (∃X: P) → Q ≡ ∀X: (P → Q) Q → (∀X: P) ≡ ∀X: (Q → P) Q → (∃X: P) ≡ ∃X: (Q → P) • Name der quantifizierten Variablen ist belanglos ∀X: p(X) ≡ ∀Z23: p(Z23) ∃Y: p(Y) ≡ ∃XYZ: p(XYZ) Einführung in die Logik: Prädikatenlogik 6 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Syntax der Prädikatenlogik • zwei Alphabete logische Zeichen Theoriezeichen (abhängig vom Diskursbereich) • logische Zeichen Menge von Variablen: X, X23, ... Konnektoren: ¬, ∧, ∨, → logisches Atom: ⊥ Quantoren: ∀, ∃ Trennzeichen: ":" "," "(" ")" • Theoriezeichen Menge von Konstanten Menge von Funktionszeichen mit Arität (f/N) Menge von Relationszeichen mit Arität (p/N) Einführung in die Logik: Prädikatenlogik 7 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Syntax der Prädikatenlogik • Sprache der Prädikatenlogik besteht aus Termen und wohlgeformten Ausdrücken (Formeln) • Terme Jede Variable ist ein Term. X (Variablen stehen für (noch) nicht bekannte Objekte des Diskursbereiches.) Jede Konstante ist ein Term. a, sokrates (Konstante stehen Diskursbereiches.) für bekannte Objekte des 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 8 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Syntax der Prädikatenlogik • (wohlgeformte) Ausdrücke ⊥ ist ein atomarer Ausdruck. Wenn t1, ..., tn Terme sind und r ein n-stelliges Relationszeichen – meistens geschrieben als p/n – dann ist r(t1, ..., tn) ein atomarer Ausdruck. rot(X) liebt(anton, maria) (Relationszeichen werden auch Prädikate genannt.) 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. Es gibt keine weiteren Ausdrücke. Einführung in die Logik: Prädikatenlogik 9 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Beispiel: Peano Arithmetik • Theoriezeichen Konstante: 0 Funktionszeichen: s/1 (= Nachfolgerfunktion) +/2 (= Addition) */2 (= Multiplikation) Relationszeichen: =/2 (= 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: =(X + s(Y), s(X + Y)) (Präfixnotation) ≡ X + s(Y) = s(X + Y) (Infixnotation) Einführung in die Logik: Prädikatenlogik 10 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Baumstruktur • Terme haben eine Baumstruktur, z.B. +(X, s(0)) + X s 0 • Formeln haben eine Baumstruktur, z.B. ∃X: (mensch(X) ∧ sterblich(X)) ∃X ∧ mensch(X) sterblich(X) Einführung in die Logik: Prädikatenlogik 11 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Substitutionen • Substitutionen Ersetzen einer Variablen in einem Ausdruck durch einen Term. Seien X eine Variable, T ein Term und P ein Ausdruck. (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. • Beispiele (∀X: (gerade(X)) ∨ null(X)) {X/0} ≡ ∀X: (gerade(X)) ∨ null(0) (vater(X)) {X/vater(anton)} ≡ vater(vater(anton)) Einführung in die Logik: Prädikatenlogik 12 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Normalformen • prädikatenlogische Ausdrücke können in äquivalente Ausdrücke umgeformt werden • Beispiel ∀X: (mensch(X) → sterblich(X)) ≡ ∀X: (¬ mensch(X) ∨ sterblich(X)) ≡ ∀X: (¬ (mensch(X) ∧ ¬ sterblich(X))) ≡ ¬ ∃ X: (mensch(X) ∧ ¬ sterblich(X))) • gesucht: Normalformen für prädikatenlogische Ausdrücke Einführung in die Logik: Prädikatenlogik 13 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Normalformen: Pränexform • Pränexform 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. • 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 (mindestens) eine logisch äquivalente Pränexform. es Einführung in die Logik: Prädikatenlogik 14 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Anwendung: Analyse natürlichsprachlicher Sätze • natürlichsprachliche Sätze können auch in Prädikatenlogik übersetzt werden • Beispiel 1 Jeder im Raum spricht Französisch oder Deutsch. 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))) Einführung in die Logik: Prädikatenlogik 15 Formale Grundlagen der Informatik (Fuchs/Kraan SS 99) Anwendung: Analyse natürlichsprachlicher Sätze • Beispiel 2 Einige Personen sagen einige Zeit die Wahrheit, andere lügen nie. Umformulierung 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 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