20 kB

Werbung
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
Herunterladen