Logik für Informatiker 2 Wintersemester 2012/13 Prädikatenlogik In der Prädikatenlogik kann man die in der Aussagenlogik bereits betrachteten atomaren Aussagen eleganter formulieren: A = „Borussia Dortmund ist deutscher Fußballmeister“: deutscher _fussballmeister (’Borussia Dortmund ’, 2012 ). B = „eine Stadt mit mindestens 100000 Einwohnern ist groß“: grosse_stadt(Stadt) ← einwohner (Stadt, X ) ∧ X ≥ 100000 . C = „Würzburg hat über 300.000 Einwohner“: einwohner (’Wuerzburg’, 300000 ). Dann kann man generische Aussagen machen. Z.B. ist die Formel zu B auf alle Städte mit mindestens 100000 Einwohnern anwendbar. Prof. Dr. Dietmar Seipel 145 Logik für Informatiker 2.1 Wintersemester 2012/13 Grundbegriffe der Prädikatenlogik Erweiterung der Aussagenlogik um Variablen– Funktions– Prädikaten– ) U, V, W, X, Y, Z Symbole f, g, h a, b, c p, q, r und Quantoren: • Existenzquantor: ∃, • Allquantor: ∀. Die bekannten Junktoren ∧, ∨, ¬ und → sind weiterhin erlaubt. Prof. Dr. Dietmar Seipel 146 Logik für Informatiker Wintersemester 2012/13 Beispiel (Prädikatenlogiche Formeln) 1. Konvergenz, Grenzwert: limn→∞ f (n) = a ist in der Analysis definiert als ∀ ǫ > 0 ∃ n0 ∀ n ≥ n0 |f (n) − a| < ǫ. Hier sind ǫ, n0 und n Variablensymbole (nur über diese kann man quantifizieren), 0, a, f , − und | . . . | sind Funktionssymbole, und >, ≥ und < sind Prädikatensymbole. Funktionssymbole ohne Argumente – wie 0 und a – nennt man auch Konstantensymbole; ihre Stelligkeit ist 0. f und | . . . | sind 1–stellig, − ist 2–stellig. Hier sind auch alle Prädikatensymbole 2–stellig. Für f (n) = 1/n gilt z.B. limn→∞ f (n) = limn→∞ 1/n = 0 = a. Für jede vorgegebene reelle Zahl ǫ > 0 existiert ein n0 ∈ IN , etwa n0 = ⌈1/ǫ⌉ + 1, so daß für alle n ≥ n0 gilt |1/n − 0| < ǫ. Prof. Dr. Dietmar Seipel 147 Logik für Informatiker Wintersemester 2012/13 2. Konjunktion: (∃ Jahr weltmeister (brasilien, Jahr )) ∧ (∀ Jahr ¬weltmeister (nigeria, Jahr )) • Brasilien war bereits Fußballweltmeister, d.h.: es gibt ein Jahr, in dem Brasilien Fußballweltmeister war; • Nigeria aber noch nicht. 3. Implikation: ∀ Stadt ∀X ( grosse_stadt(Stadt) ← einwohner (Stadt, X ) ∧ X ≥ 100000 ) ist äquivalent zu ∀ Stadt ( grosse_stadt(Stadt) ← ∃X ( einwohner (Stadt, X ) ∧ X ≥ 100000 ) ) Prof. Dr. Dietmar Seipel 148 Logik für Informatiker Wintersemester 2012/13 Syntax Wir setzen folgende abzählbaren Mengen voraus: • Variablensymbole: V = { X1 , X2 , . . . }, • Funktionssymbole: F = { f1 , f2 , . . . }, • Prädikatensymbole: P = { p1 , p2 , . . . }. Jedes Funktions– bzw. Prädikatensymbol hat eine Stelligkeit k ∈ IN0 . Schöningh schreibt fik , pki , wir schreiben fi /k, pi /k. Allerdings kann dasselbe Funktions– bzw. Prädikatensymbol in einer Formel mit unterschiedlichen Stelligkeiten auftreten. In f (f (a), f (a, a, a)) ist das erste Auftreten von f zweistellig, das zweite einstellig, und das dritte dreistellig. Eigentlich handelt es sich dabei um unterschiediche Funktionssymbole f /2, f /1 und f /3 mit demselben Namen f . Prof. Dr. Dietmar Seipel 149 Logik für Informatiker Wintersemester 2012/13 Induktive Definitionen Terme 1. Jedes Variablensymbol X ∈ V ist ein Term. 2. Ist f ein Funktionssymbol der Stelligkeit k, und sind t1 , . . . , tk (ebenso viele) Terme, so ist auch f (t1 , . . . , tk ) ein Term. 3. Ist k = 0, so schreibt man kurz f ausstelle von f (), und man nennt f dann eine Konstante. Beispiel (Terme) • f1 (X2 ), • f3 (f2 , f1 (X3 )). Stelligkeiten: Prof. Dr. Dietmar Seipel f1 f2 f3 1 0 2 150 Logik für Informatiker Wintersemester 2012/13 Formeln 1. Für ein k–stelliges Prädikatensymbol p und Terme t1 , . . . tk ist p(t1 , . . . , tk ) eine atomare Formel. Falls k = 0 ist, so schreiben wir kurz p anstelle von p(). 2. Für jede Formel F ist auch ¬F eine Formel. 3. Sind F1 und F2 Formeln, so auch (F1 ∧ F2 ) und (F1 ∨ F2 ). 4. Falls X ein Variablensymbol ist und F eine Formel, so sind auch ∃X F und ∀X F Formeln. Man kann wieder redundante Klammerpaare weglassen, und Teilformeln werden analog zur Aussagenlogik definiert. Man könnte weitere Formeln mittels anderer Junktoren bilden, z.B. die Implikation F1 → F2 . Andererseits könnte man diese Formel auch wie ¬F1 ∨ F2 auffassen. Prof. Dr. Dietmar Seipel 151 Logik für Informatiker Wintersemester 2012/13 Beispiel (Formeln) 1. In der Formel F = (∃X1 p1 (X1 , f1 (X2 ))) ∨ (∀X2 p2 (X2 , f3 (f2 , f1 (X3 )))) haben die Prädikatensymbole die folgenden Stelligkeiten: p1 p2 2 2 2. Man kann auch über Variablensymbole quantifizieren, die nicht in der betroffenen Formel vorkommen: F = ∀X p(Y ). 3. In der folgenden Implikation bezeichnen die beiden Vorkommen von X dasselbe: F = ∀X ( student(X) → person(X) ). 4. In F = ∀X ( p(X ) → ∃X q(X) ) bezieht sich die Allquantifizierung ∀X auf p(X), die Existenzquantifizierung ∃X auf q(X). Es gibt keinen Zusammenhang zwischen den beiden Vorkommen von X. Prof. Dr. Dietmar Seipel 152 Logik für Informatiker Wintersemester 2012/13 Klammerungsregeln 1. Wir nehmen an, daß die Quantoren am stärksten binden. D.h. QX F ⊗ G bedeutet (QX F ) ⊗ G, für einen Quantor Q ∈ { ∀, ∃ } und einen Junktor ⊗ ∈ { ∧, ∨, → }. Z.B. bedeutet ∀X ∀ Y ( ∃Z (p(X, Z) ∧ p(Z, Y )) → p(X, Y ) ) dasselbe wie ∀X ∀ Y ( (∃Z (p(X, Z) ∧ p(Z, Y ))) → p(X, Y ) ) 2. Wir nehmen an, daß die Negation stärker bindet als die Konjunktion, die Disjunktion und die Implikation, und wir nehmen an, daß die Konjunktion stärker bindet als die Disjunktion (Punkt vor Strich) und die Implikation, und die Disjunktion stärker als die Implikation. D.h. F ∨ ¬ G ∧ G′ → H bedeutet (F ∨ ((¬ G) ∧ G′ )) → H. Prof. Dr. Dietmar Seipel 153 Logik für Informatiker Wintersemester 2012/13 Schreibweisen Die Formel ∀ ǫ > 0 ∃ n0 ∀ n ≥ n0 |f (n) − a| < ǫ müßte man eigentlich ausführlich wie folgt schreiben: ∀ǫ ( ǫ ∈ IR ∧ ǫ > 0 → ∃n0 ( n0 ∈ IN ∧ ∀n ( n ∈ IN ∧ n ≥ n0 → |f (n) − a| < ǫ ) ) ). In der Kurzschreibweise wurde implizit angenommen, daß ǫ eine reelle Zahl ist, und daß n und n0 natürliche Zahlen sind. Daneben wurde die vereinfachende Infix– bzw. Zirkumfix–Notation für Funktions– und Prädikatensymbole verwendet. Manchmal schreibt man anstelle von ∀X F auch ∀X : F ; analog für ∃. Prof. Dr. Dietmar Seipel 154 Logik für Informatiker Wintersemester 2012/13 Infix– und Zirkumfix–Notation Zur leichteren Lesbarkeit kann man gewisse binäre Funktions– und Prädikatensymbole in Infix–Notation schreiben. Anstelle der Präfix–Notation ⊙(t1 , t2 ) schreiben wir dann die Infix–Notation t1 ⊙ t2 . Die atomare Formel |f (n) − a| < ǫ mit dem binären Prädikatensymbol < und dem binären Funktionssymbol − würde in Präfix–Notation wie folgt aussehen: < ( || (−(f (n), a)), ǫ ) Einen Term ||(t) mit dem unären Funktionssymbol || (Betrag) können wir in Zirkumfix–Notation |t| schreiben. Prof. Dr. Dietmar Seipel 155 Logik für Informatiker Wintersemester 2012/13 Freie und gebundene Variablen 1. Ein Vorkommen einer Variable X in einer Formel F heißt gebunden, falls X quantifiziert in einer Teilformel von F der Form ∃X G oder ∀X G vorkommt (d.h. im Geltungsbereich eines Quantors über X). 2. Andernfalls heißt das Vorkommen von X frei. 3. Eine Formel F ohne Vorkommen von freien Variablen heißt geschlossen, oder eine Aussage. Andernfalls heißt F offen. Beispiel: Die folgende Formel F ist offen: F = (∃X1 p1 (X1 , f1 (X2 ))) ∨ (∀X2 p2 (X2 , f3 (f2 , f1 (X3 )))). • Die beiden unterstrichenen Vorkommen der Variablen X1 und X2 sind gebunden. Alle anderen Vorkommen sind frei. • Das (einzige) Vorkommen von X3 ist frei. Prof. Dr. Dietmar Seipel 156 Logik für Informatiker Wintersemester 2012/13 Definition (Semantik der Prädikantenlogik) Eine Struktur ist ein Paar A = (UA , IA ) mit 1. UA ist eine beliebige, nicht–leere Menge, genannt Grundmenge von A, Grundbereich, Individuenbereich, Universum. 2. IA ist eine partielle Abbildung auf V ∪ F ∪ P mit • jedem k–stelligen Prädikantensymbol p ∈ P ∩ def (IA ) ist ein k–stelliges Prädikat IA (p) über UA zugeordnet, d.h. eine Relation k IA (p) ⊆ UA . • jedem k–stelligen Funktionssymbol f ∈ F ∩ def (IA ) ist eine k k–stellige Funktion IA (f ) : UA → UA zugeordnet. • jedem Variablensymbol X ∈ V ∩ def (IA ) ist ein Individuum IA (X) ∈ UA zugeordnet. k Dabei ist UA die Menge aller k–Tupel mit Komponenten aus UA . Prof. Dr. Dietmar Seipel 157 Logik für Informatiker Wintersemester 2012/13 Der Definitionsbereich def (IA ) der partiellen Abbildung IA ist meist eine echte Teilmenge von V ∪ F ∪ P: def (IA ) ⊆ V ∪ F ∪ P. Die Struktur A paßt zu einer Formel F , falls IA für alle in F vorkommenden Prädikaten–, Funktions– und Variablensymbole für freie Variablen definiert ist. Abkürzung: IA (α) = αA , für alle α ∈ V ∪ F ∪ P. Falls α außerhalb des Definitionsbereichs def (IA ) liegt, so ist αA undefiniert. Prof. Dr. Dietmar Seipel 158 Logik für Informatiker Wintersemester 2012/13 Beispiel (Struktur) Die folgende Struktur A paßt zur Formel F = ∀X p(X, f (X)) ∧ q(g(a, Z)). Die Grundmenge von A und die Interpretation der Prädikaten– und Funktionssymbole seien wie folgt: UA = IN0 = { 0, 1, 2, . . . }, pA = { (m, n) ∈ IN02 | m < n }, qA = { (n) ∈ IN01 | n ist eine Primzahl }, f A (n) = n + 1, d.h. f A ist die Nachfolgerfunktion auf IN0 , g A (n, m) = n + m, d.h. g A ist die Additionsfunktion auf IN0 . Das 0–stellige Funktionssymbol a werde als aA = 2 interpretiert, und die Variablensymbole als X A = 23, Z A = 3. Prof. Dr. Dietmar Seipel 159 Logik für Informatiker Wintersemester 2012/13 In dieser Struktur A gilt F offensichtlich (die entsprechenden Definitionen der Semantik folgen noch), denn • die Nachfolgerfunktion f A paßt zur Kleiner–Relation pA : p(X, f (X)) entspricht in A dem Vergleich X < X + 1; und • g A (aA , Z A ) = 2 + 3 = 5 ist in der Primzahl–Relation q A . Ändert man dagegen q A zu q A′ = { (n) ∈ IN01 | n ist eine gerade Zahl }, und läßt den Rest unverändert, so gilt F in der veränderten Struktur A′ nicht, da 5 keine gerade Zahl ist. Wenn man eine fest vorgegebene Interpretation eines Funktions– oder Prädikatensymbols betrachten will, dann muß man diese durch Hinzunahme geeigneter Axiome zu F erzwingen. Prof. Dr. Dietmar Seipel 160 Logik für Informatiker Wintersemester 2012/13 Definition (Semantik der Prädikatenlogik) Wir betrachten im folgenden Formeln F und zu F passende Strukturen A. Der Wert A(t) eines Terms t wird induktiv definiert als: 1. A(t) = tA , falls t ∈ V eine Variable ist. 2. A(t) = f A (A(t1 ), . . . , A(tk )), falls t = f (t1 , . . . , tk ) ein komplexer Term ist. Eine Herbrand–Struktur bildet alle Terme auf sich selbst ab. Für X ∈ V und u ∈ UA sei A[X|u] diejenige Struktur B, welche man aus A erhält, indem man X A auf X B = u ändert und A ansonsten unverändert läßt: • für alle α ∈ P ∪ F ∪ V \ {X} gilt αB = αA , • X B = u (unabhängig von X A ). Prof. Dr. Dietmar Seipel 161 Logik für Informatiker Wintersemester 2012/13 Der Wahrheitswert A(F ) wird dann ebenfalls induktiv definiert: 1, falls (A(t ), . . . , A(t )) ∈ pA 1 k A(p(t1 , . . . , tk )) = 0, sonst A(¬G) = ¬A(G), A(F1 ∧ F2 ) = A(F1 ) ∧ A(F2 ), A(F1 ∨ F2 ) = A(F1 ) ∨ A(F2 ), 1, falls für alle u ∈ U gilt A A [X|u] (G) = 1 = 0, sonst 1, falls es ein u ∈ U gibt mit A A [X|u] (G) = 1, = 0, sonst A(∀XG) A(∃XG) Damit gilt offensichtlich auch A(F → G) = A(F ) → A(G). Prof. Dr. Dietmar Seipel 162 Logik für Informatiker Wintersemester 2012/13 Die Definitionen für die booleschen Junktoren sind exakt analog zur Aussagenlogik. Die Fallunterscheidungen könnte man wie folgt abkürzen: A(p(t1 , . . . , tk )) = (A(t1 ), . . . , A(tk )) ∈ pA , A(∀XG) = ∧u∈UA A[X|u] (G), A(∃XG) = ∨u∈UA A[X|u] (G). 1. Ersteres gilt, da der Test e ∈ M auf Elementschaft in einer Menge einen der Wahrheitswerte 1 oder 0 als Resultat hat. 2. Die – potentiell unendliche – Konjunktion im zweiten Teil ist genau dann 1, wenn für alle u ∈ UA gilt A[X|u] (G) = 1. 3. Die – potentiell unendliche – Disjunktion im dritten Teil ist genau dann 1, wenn es (mindestens) ein u ∈ UA gibt mit A[X|u] (G) = 1. Prof. Dr. Dietmar Seipel 163 Logik für Informatiker Wintersemester 2012/13 Die Prädikatenlogik verallgemeinert die Aussagenlogik. Die atomaren Formeln p der Aussagenlogik entsprechen 0–stelligen Prädikatensymbolen. Es gibt es nur zwei mögliche Relationen pA ⊆ UA0 = {( )} : • Falls pA = {( )} nur das 0–stellige Tupel ( ) enthält, so ist A(p) = 1. • Falls pA = {} leer ist, so ist A(p) = 0. In der Aussagenlogik gibt es keine höherstelligen Prädikatensymbole, und deswegen braucht man auch keine Variablen– bzw. Funktionssymbole um Terme zu bilden. Auch die Quantifizierung ist in der Aussagenlogik sinnlos, da es dort keine Variablensymbole gibt. Prof. Dr. Dietmar Seipel 164 Logik für Informatiker Wintersemester 2012/13 Definition (Modelle) 1. Eine Struktur A erfüllt eine Formel F , falls A zu F paßt und A(F ) = 1 ist. 2. Dann sagen wir auch, daß die Formel F in A gilt. 3. Dann ist A ein Modell von F , und wir schreiben auch A |= F . Herbrand–Strukturen In der Praxis arbeitet man meist mit geschlossenen Formeln F und Herbrand–Strukturen A = (UA , IA ) : 1. Ihre Grundmenge UA besteht aus den Termen über den Funktionssymbolen von F . Terme werden nicht interpretiert. 2. Herbrand–Strukturen können also alleine durch die Interpretation der Prädikatensymbole charakterisiert werden. Prof. Dr. Dietmar Seipel 165 Logik für Informatiker Wintersemester 2012/13 Variablenbelegungen • Für geschlossene Formeln F ist die Belegung der Variablen X ∈ V mit Werten X A ∈ UA irrelevant. • Für eine quantifizierte Variable X werden sowieso alle Strukturen A[X|u] für u ∈ UA untersucht – ohne den Wert X A zu beachten. • Der Wert X A einer Variable X ist nur relevant, falls X mindestens einmal frei in F vorkommt. Für die Formel F = ( ∀X p(X) ) ∧ q(X) mit je einem gebundenen und einem freien Vorkommen des Variablensymbols X, ist X A nur für das zweite Vorkommen von X relevant. Es gilt pA[X|u] = pA und A(F ) = ∧u∈UA A[X|u] (p(X)) ∧ A(q(X)) = ∧u∈UA (u) ∈ pA ∧ (X A ) ∈ q A . Prof. Dr. Dietmar Seipel 166 Logik für Informatiker Wintersemester 2012/13 Beispiel (Herbrand–Struktur, Modell) Wir betrachten die folgende geschlossene Formel F : F = f ∧ ∀X r, f = married (a, b), r = student(X ) → person(X ). a und b sind verheiratet, und jeder Studierende ist eine Person. Wir betrachten eine Herbrand–Struktur A. Diese bildet alle Funktionssymbole auf sich selbst ab. Hier gibt es nur Konstanten, d.h. 0–stellige Funktionssymbole; diese bilden die Grundmenge UA . UA = { a, b }, αA = α, für alle Konstanten α ∈ UA . Prof. Dr. Dietmar Seipel 167 Logik für Informatiker Wintersemester 2012/13 Wir werden später sehen, daß man das gebundene Variablensymbol X in ∀X r umbenennen könnte, z.B. in Y . Dann würde man die Teilformel ∀ Y ( student(Y ) → person(Y ) ) erhalten, die – entsprechend unserer Anschauung – zu ∀X r äquivalent ist, da man für X und Y sowieso alle Werte u ∈ UA einsetzen kann. Wir interpretieren die Prädikatensymbole wie folgt: married A = { (a, b) }, student A = { (a), (b) }, person A = { (a) }. Diese Interpretationen könnte man durch eine einzige Menge von Atomen repräsentieren: I = { married(a, b), student (a), student(b), person(a) }. Prof. Dr. Dietmar Seipel 168 Logik für Informatiker Wintersemester 2012/13 Dann gilt A(f ) = (a, b) ∈ married A = 1, A(∀X r) = ∧u∈UA ( (u) ∈ student A → (u) ∈ person A ) = ( (a) ∈ student A → (a) ∈ person A ) ∧ ( (b) ∈ student A → (b) ∈ person A ) = 0, da (b) 6∈ person A . Da student und person 1–stellige Prädikatensymbole 1 sind, werden Tupel (u) ∈ UA mit nur einer Komponente untersucht. Also ist die untersuchte Struktur A zwar ein Modell von f , aber kein Modell von ∀X r, und somit auch kein Modell von F . Die Struktur A paßt zu F auch ohne eine Interpretation X A des Variablensymbols X anzugeben, da über X quantifiziert wird. Prof. Dr. Dietmar Seipel 169 Logik für Informatiker Wintersemester 2012/13 Beispiel (Herbrand–Struktur, Modell) Wir betrachten die folgende geschlossene Formel F : F = f1 ∧ f2 ∧ f3 ∧ ∀X ∀Y ∀Z r, f1 = father (a, b), f2 = brother (b, c), f2 = brother (b, d ), r = father (X , Y ) ∧ brother (Y , Z ) → uncle(X , Z ). Ein Onkel Z von X ist ein Bruder des Vaters Y . Man könnte father und brother auch mittels zweier Prädikate parent und male definieren. Wir betrachten wieder eine Herbrand–Struktur A, die die Konstanten (hier die einzigen Funktionssymbole) in F auf sich selbst abbildet: UA = { a, b, c, d }, αA = α, für alle Konstanten α ∈ UA . Prof. Dr. Dietmar Seipel 170 Logik für Informatiker Wintersemester 2012/13 Wir interpretieren die Prädikatensymbole wie folgt: father A = { (a, b) }, brother A = { (b, c), (b, d) }, uncle A = { (a, c) }. Für die Variablenbelegung X A = a, Y A = b, Z A = c, ist A ein Modell für die Fakten f1 , f2 , f3 , und die Regel r: A(r) = A(father (X , Y )) ∧ A(brother (Y , Z )) → A(uncle(X , Z )) = (a, b) ∈ father A ∧ (b, c) ∈ brother A → (a, c) ∈ uncle A = 1 ∧ 1 → 1 = 1. Der Wahrheitswert von e ∈ M ist 1, falls e ∈ M gilt, sonst 0. Prof. Dr. Dietmar Seipel 171 Logik für Informatiker Wintersemester 2012/13 Die Struktur A[Z|d] interpretiert die Prädikatensymbole wie A. A[Z|d] ist ebenfalls ein Modell für die Fakten f1 , f2 , f3 . Da (a, d) 6∈ uncleA , ist A[Z|d] aber kein Modell für die Regel r: A[Z|d] (r) = A[Z |d] (father (X , Y )) ∧ A[Z |d] (brother (Y , Z )) → A[Z |d] (uncle(X , Z )) = (a, b) ∈ father A ∧ (b, d ) ∈ brother A → (a, d ) ∈ uncle A = 1 ∧ 1 → 0 = 0. Also ist A auch kein Modell für die quantifizierte Regel ∀X ∀Y ∀Z r, und somit auch kein Modell für die komplette Formel F . Wenn wir die Interpretation von uncle erweitern zu uncle A′ = { (a, c), (a, d) } und sonst alles wie in A belassen, dann erhalten wir ein Modell A′ von F . Prof. Dr. Dietmar Seipel 172 Logik für Informatiker Wintersemester 2012/13 Logische Folgerung, Erfüllbarkeit, Gültigkeit Seien F und G prädikatenlogische Formeln. 1. G folgt logisch aus F , falls jedes Modell A von F auch ein Modell von G ist. Dann schreiben wir F |= G. 2. F ist erfüllbar, falls es ein Modell von F gibt. 3. F ist gültig, falls jede zu F passende Struktur ein Modell von F ist. Man kann die logische Folgerung auf die Erfüllbarkeit bzw. die Gültigkeit zurückführen: F |= G ⇐⇒ F ∧ ¬ G ist unerfüllbar ⇐⇒ ¬ (F ∧ ¬ G) ist gültig. Man kann die bekannten Begriffe auf Formelmengen F ausdehnen. Eine endliche Formelmenge F = { f1 , . . . , fn } ist dabei äquivalent zu einer Konjunktion f1 ∧ . . . ∧ fn . Prof. Dr. Dietmar Seipel 173 Logik für Informatiker 2.2 Wintersemester 2012/13 Normalformen Wir werden im folgenden sehen, daß man eine prädikatenlogische Formel äquivalent umformen kann, so daß alle Quantoren am Anfang der Formel stehen (Pränexform). Man kann sogar noch – mittels Skolemfunktionen – alle Existenzquantoren entfernen (Skolemform). Die Skolemform ist genau dann erfüllbar, wenn die Ausgangsformel erfüllbar ist. Die Skolemform kann man dann – wie in der Aussagenlogik – auf Klauselform bringen (KNF). Darauf können wir dann eine verallgemeinerte Resolutionsmethode anwenden. Prof. Dr. Dietmar Seipel 174 Logik für Informatiker Wintersemester 2012/13 Definition (Äquivalenz) Zwei prädikatenlogische Formeln F und G heißen äquivalent, falls für alle sowohl zu F als auch zu G passenden Strukturen A gilt: A(F ) = A(G). Dann schreiben wir F ≡ G. Satz (Äquivalenz) 1. Negation vertauscht die Quantoren ∀ und ∃: ¬ ∀X F ≡ ∃X ¬ F, ¬ ∃X F ≡ ∀X ¬ F. Nicht alle Strukturen passen zu F ist z.B. äquivalent zu es gibt Strukturen, die nicht zu F passen. Prof. Dr. Dietmar Seipel 175 Logik für Informatiker Wintersemester 2012/13 2. Falls X in G nicht frei vorkommt: (QX F ⊗ G) ≡ QX (F ⊗ G), für einen Quantor Q ∈ { ∀, ∃ } und einen Junktor ⊗ ∈ { ∧, ∨ }. 3. Ausklammern von Quantoren: (∀X F ∧ ∀X G) ≡ ∀X (F ∧ G), (∃X F ∨ ∃X G) ≡ ∃X (F ∨ G). 4. Vertauschen gleichartiger Quantoren: ∀X ∀Y F ≡ ∀Y ∀X F, ∃X ∃Y F ≡ ∃Y ∃X F. Dagegen sind die folgenden Formeln im allgemeinen nicht äquivalent: Prof. Dr. Dietmar Seipel (∀XF ∨ ∀XG) 6≡ ∀X (F ∨ G), (∃XF ∧ ∃XG) 6≡ ∃X (F ∧ G). 176 Logik für Informatiker Wintersemester 2012/13 Beispiel (Äquivalenz) 1. Nach 1. gilt ¬ ∀X r(X, Y ) ≡ ∃X ¬ r(X, Y ). 2. Da X und Y nicht frei in ¬ q(Z) vorkommen, kann man nach 2. die Quantoren ∀X und ∃Y sich auf beide Formeln erstrecken lassen: ∀X ∃Y p(X, g(Y, f (X))) ∨ ¬ q(Z) ≡ ∀X ∃Y (p(X, g(Y, f (X))) ∨ ¬ q(Z)). Da X frei in q(X) vorkommt, kann man den Quantor ∀X nicht sich auf beide Formeln erstrecken lassen: ∀X p(X) ∧ q(X) 6≡ ∀X ( p(X) ∧ q(X) ). 3. Für Konjunktionen kann man nach 3. universelle Quantoren ausklammern: ∀X p(X) ∧ ∀X q(X) ≡ ∀X ( p(X) ∧ q(X) ). Prof. Dr. Dietmar Seipel 177 Logik für Informatiker Wintersemester 2012/13 4. Dagegen kann man unterschiedliche Quantoren im Allgemeinen nicht vertauschen: ∀X ∃Y F 6≡ ∃Y ∀X F. Für F = Y > X (Infix–Notation) gilt: wenn man > als die Größer–Relation auf den natürlichen Zahlen interpretiert, d.h. UA = IN0 = { 0, 1, 2, . . . }, >A = { (m, n) ∈ IN02 | m > n }, dann erfüllt A die Formel ∀X ∃Y F , da es für alle X ∈ IN0 eine größere Zahl Y ∈ IN0 gibt, während ∃Y ∀X F nicht erfüllt ist, da es kein Y ∈ IN0 gibt, das größer ist als alle Zahlen X ∈ IN0 : A(∀X ∃Y F ) = 1 6= 0 = A(∃Y ∀X F ). Prof. Dr. Dietmar Seipel 178 Logik für Informatiker Wintersemester 2012/13 Äquivalenz vs. Implikation 1. F ≡ G gilt genau dann, wenn F → G und G → F gültig (Tautologien) sind. 2. Aus F ≡ G folgt, daß F → G und G → F gültig sind. Für die nicht geltenden Äquivalenzen (∀XF ∨ ∀XG) 6≡ ∀X (F ∨ G), (∃XF ∧ ∃XG) 6≡ ∃X (F ∧ G). sind zumindest die folgenden Implikationen gültig: Prof. Dr. Dietmar Seipel (∀XF ∨ ∀XG) → ∀X (F ∨ G), (∃XF ∧ ∃XG) ← ∃X (F ∧ G). 179 Logik für Informatiker Wintersemester 2012/13 Definition (Ersetzung von Variablen) 1. Sei F eine Formel, X eine Variable und t ein Term. Dann bezeichnet F [X|t] diejenige Formel, die man aus F erhält, indem man jedes freie Vorkommen von X durch t ersetzt. 2. [X|t] wird als Substitution bezeichnet. 3. Eine Folge θ = [X1 |t1 ] . . . [Xn |tn ] von Substitutionen wird auch als Substitution bezeichnet. 4. Für eine Formel F bezeichnet F θ die Formel (((F [X1 |t1 ])[X2 |t2 ]) . . . )[Xn |tn ], die man durch sukzessive Anwendung der Substitutionen [Xi |ti ] erhält. Prof. Dr. Dietmar Seipel 180 Logik für Informatiker Wintersemester 2012/13 Beispiel (Substitution) Sei θ = [X|h(Z)] [Y |U ]. In der folgenden Formel sind die ersten beiden Vorkommen von X gebunden und werden nicht durch h(Z) ersetzt: (∀X p(X, f (X), g(Y )) ∨ q(X)) θ = (∀Xp(X, f (X), g(U )) ∨ q(h(Z))). Gebundene Umbenennung Ist F = QX G eine Formel mit einem Quantor Q ∈ { ∃, ∀ } und X ′ eine Variable, die in G nicht vorkommt, dann gilt F = QX G ≡ QX ′ G [X|X ′ ]. Beispiel (Gebundene Umbenennung) Für G = p(X, g(Y, f (X))) gilt ∃Y G Prof. Dr. Dietmar Seipel ≡ ∃Y ′ G [Y |Y ′ ] = ∃Y ′ p(X, g(Y ′ , f (X))). 181 Logik für Informatiker Wintersemester 2012/13 Beispiel (Gebundene Umbenennung) 1. Die folgenden offenen Formeln sind nicht äquivalent: F = p(X), G = p(Y ). Für die Struktur A mit der Grundmenge UA = { 1, 2 } und pA = { (1) } und der Variablenbelegung X A = 1, Y A = 2 gilt A(F ) = (1) ∈ pA = 1 6= 0 = (2) ∈ pA = A(G). 2. Die folgenden quantifizierten Formeln sind dagegen äquivalent: F = ∀ X p(X), G = ∀ Y p(Y ). Es gilt G = ∀ Y p(X) [X|Y ]. Für gebundene Vorkommen kann man das Variablensymbol umbenennen. Prof. Dr. Dietmar Seipel 182 Logik für Informatiker Wintersemester 2012/13 Beispiel (Ausklammern nach gebundener Umbenennung) 1. Die folgenden Formeln sind bekanntermaßen im allgemeinen nicht äquivalent: (∀XF ∨ ∀XG) 6≡ ∀X (F ∨ G), (∃XF ∧ ∃XG) 6≡ ∃X (F ∧ G). 2. Sei F = rot(X) und G = blau(X). • Dann besagt (∀XF ∨ ∀XG) : entweder alle Kugeln sind rot, oder alle Kugeln sind blau. • Dagegen besagt ∀X (F ∨ G), daß jede Kugel entweder rot oder blau ist. Aber es kann sowohl rote als auch blaue Kugeln geben. In den folgenden Strukturen mit einfarbigen Kugeln unterscheiden sich auch die Formeln mit der existentiellen Quantifizierung. Prof. Dr. Dietmar Seipel 183 Logik für Informatiker Wintersemester 2012/13 F1 = (∀Xrot(X) ∨ ∀Xblau(X)) 6≡ F2 = ∀X (rot(X) ∨ blau(X)), G1 = (∃Xrot(X) ∧ ∃Xblau(X)) 6≡ G2 = ∃X (rot(X) ∧ blau(X)). Die folgenden Strukturen Ai mit einfarbigen Kugeln erfüllen G2 nicht, da es keine Kugeln gibt, die gleichzeitig rot und blau sind. A1 A2 A3 A1 erfüllt F2 und G1 , aber nicht F1 und G2 , denn jede Kugel ist entweder rot oder blau (mit Punkt in der Mitte), und es gibt rote und blaue Kugeln. A2 und A3 erfüllen F1 und F2 , aber nicht G1 und G2 , denn in beiden Strukturen haben alle Kugeln dieselbe Farbe, rot bzw. blau. Prof. Dr. Dietmar Seipel 184 Logik für Informatiker Wintersemester 2012/13 3. Für ein frisches Variablensymbol X ′ , das nicht in (∀XF ∨ ∀XG) vorkommt, gilt: (∀XF ∨ ∀XG) ≡ (∀X ′ F [X|X ′ ] ∨ ∀XG) ≡ ∀X ′ (F [X|X ′ ] ∨ ∀XG) ≡ ∀X ′ ∀X (F [X|X ′ ] ∨ G). Also gilt z.B. (∀X rot(X) ∨ ∀X blau(X)) ≡ ∀X ′ ∀X (rot(X ′ ) ∨ blau(X)). Prinzipiell können Kugeln mehrfarbig sein. Wenn es aber eine rote Kugel r gäbe, die nicht auch blau ist, und eine blaue Kugel b, die nicht auch rot ist, dann wäre A[X ′ |b][X|r] (rot(X ′ ) ∨ blau(X)) = 0. 4. Für ein frisches Variablensymbol X ′ , das nicht in (∃XF ∧ ∃XG) vorkommt, gilt analog auch: (∃XF ∧ ∃XG) ≡ ∃X ′ ∃X (F [X|X ′ ] ∧ G). Prof. Dr. Dietmar Seipel 185 Logik für Informatiker Wintersemester 2012/13 5. Auch aus einer Implikation kann man nach gebundener Umbenennung ausklammern: F = ∀X ( p(X ) → ∃X q(X) ) ≡ ∀X ( p(X ) → ∃X ′ q(X ′ ) ) ≡ ∀X ∃X ′ ( p(X ) → q(X ′ ) ). Hier mußte X gebunden in X ′ umbenannt werden, da das Vorkommen von X in p(X) durch ∀X und das Vorkommen von X in q(X) durch ∃X gebunden waren. Nach dem Vorziehen des Quantors ∃X ′ erstrecken sich nun beide Quantoren auf p(X ) → q(X ′ ), also auf beide Teilformeln. Prof. Dr. Dietmar Seipel 186 Logik für Informatiker Wintersemester 2012/13 Definition (BPF, bereinigte Pränexform) 1. Eine Formel F heißt bereinigt, • wenn es keine Variable X gibt, die in F sowohl gebunden als auch frei vorkommt, und • wenn hinter allen vorkommenden Quantoren verschiedene Variablen stehen. 2. Eine Formel F heißt Pränex oder in Pränexform, falls sie von der Form Q1 X1 Q2 X2 . . . Qn Xn G ist, mit Quantoren Qi ∈ { ∃, ∀ } und Variablen Xi , und falls ferner G quantorenfrei ist. Satz (BPF) Für jede Formel F gibt es eine äquivalente Formel G in BPF. Prof. Dr. Dietmar Seipel 187 Logik für Informatiker Wintersemester 2012/13 ∨ Beispiel (BPF) Aus ¬ ∀X r(X, Y ) ∨ ¬ ∀X r(X, Y ) ≡ ∃X ′ ¬ r(X ′ , Y ), ∀X ∃Y p(X, g(Y, f (X))) ¬q(Z) ∀X ∃Y p(X, g(Y, f (X))) ∨ ¬ q(Z) ≡ ∀X ∃Y ′ (p(X, g(Y ′ , f (X))) ∨ ¬ q(Z)), folgt: F = (∀X ∃Y p(X, g(Y, f (X))) ∨ ¬ q(Z)) ∨ ¬ ∀X r(X, Y ) ≡ ∀X ∃Y ′ ∃X ′ ( p(X, g(Y ′ , f (X))) ∨ ¬ q(Z) ∨ ¬ r(X ′ , Y ) ). Die Quantoren ∀X und ∃Y beziehen sich nicht auf ¬ ∀X r(X, Y ). Deswegen benennen wir Y vorne in Y ′ gebunden um und X hinten in X ′ . Danach können alle Quantoren ganz nach vorne gezogen werden. Prof. Dr. Dietmar Seipel 188 Logik für Informatiker Wintersemester 2012/13 Die enstandene Formel in BPF hat immer noch 2 freie Vorkommen von Variablensymbolen, nämlich Y und Z. ∀X ∃Y ′ ∃X ′ ∨ ∨ p(X, g(Y ′ , f (X))) ¬ r(X ′ , Y ) ¬q(Z) Die gebundenen Umbenennungen waren erforderlich, • da X einmal universell und einmal existentiell quantifiziert ist, und • da sich der Quantor ∃Y ′ nicht auf ¬ r(X ′ , Y ) beziehen soll. Prof. Dr. Dietmar Seipel 189 Logik für Informatiker Wintersemester 2012/13 Beispiel (BPF) In der folgenden BPF–Formel F kommt das universell quantifizierte Variablensymbol Y nur im Regelrumpf von r vor: F = ∀X ∀Y ∀Z r, r = father (X , Y ) ∧ brother (Y , Z ) → uncle(X , Z ). Dann könnte man den vor r stehenden Allquantor ∀Y auch als Existenzquantor ∃Y in den Regelrumpf von r ziehen: ∀Y r Prof. Dr. Dietmar Seipel ≡ ∀Y (¬ (father (X , Y ) ∧ brother (Y , Z )) ∨ uncle(X , Z )) ≡ ∀Y ¬ (father (X , Y ) ∧ brother (Y , Z )) ∨ uncle(X , Z ) ≡ ¬ ∃Y (father (X , Y ) ∧ brother (Y , Z )) ∨ uncle(X , Z ) ≡ ∃Y (father (X , Y ) ∧ brother (Y , Z )) → uncle(X , Z ). 190 Logik für Informatiker Wintersemester 2012/13 Exkurs: Existenzquantor im Regelkopf Ein Existenzquantor ∃ Y im Kopf einer BPF–Regel, F = ∀X ( kugel (X ) → ∃ Y farbe(X , Y ) ), entspricht dagegen einem vor der Regel stehenden Existenzquantor ∃ Y : F ≡ ∀X ∃ Y ( kugel (X ) → farbe(X , Y ) ). Für eine vorgegebene Struktur A ergibt er eine Disjunktion im Regelkopf: A(F ) = ∧u∈UA ( (u) ∈ kugel A → ∨v ∈UA (u, v ) ∈ farbe A ). Da die Grundmenge U = UA für Herbrand–Strukturen unabhängig von A ist, könnte man F praktisch wie eine Regel mit einem disjunktiven Kopf auffassen: F = ˆ ∀X ( kugel (X ) → ∨v ∈U farbe(X , v ) ). Prof. Dr. Dietmar Seipel 191 Logik für Informatiker Wintersemester 2012/13 In der Praxis möchte man allerdings für v ∈ U nur Farben zulassen, etwa rot, grün, blau. Dann meint man eigentlich die folgende Formel: F = ˆ ∀X ( kugel (X ) → farbe(X , rot) ∨ farbe(X , grün) ∨ farbe(X , blau) ). Diese könnte man wieder mit einem Existenzquantor ∃ Y im Regelkopf ausdrücken, G = ∀X ( kugel (X ) → ∃ Y (farbe(Y ) ∧ farbe(X , Y )) ). Man könnte dazu ein 1–stelliges Prädikat farbe, das die zugelassenen Farben angibt, mit Hilfe geeigneter Formeln definieren. Prof. Dr. Dietmar Seipel 192 Logik für Informatiker Wintersemester 2012/13 Definition (Skolemform) Zu einer Formel F in BPF erhält man die Skolemform durch Elimination der Existenzquantoren nach folgendem Schema: 1. Wir betrachten den ersten Existenzquantor in F : F = ∀X1 ∀X2 . . . ∀Xn ∃X G. 2. Sei f ein neues bisher in F nicht vorkommendes n–stelliges Funktionssymbol. Dann setzen wir F ′ = ∀X1 ∀X2 . . . ∀Xn G [X|f (X1 , . . . , Xn )]. Nun eliminieren wir nach demselben Schema alle weiteren Existenzquantoren in F ′ . 3. Sobald die so erhaltene Formel F ′′ keine Existenzquantoren mehr enthält, ist sie in Skolemform: F ′′ = ∀X1 ∀X2 . . . ∀Xk F ∗ mit quantorenfreier Formel F ∗ , die wir Matrix nennen. Prof. Dr. Dietmar Seipel 193 Logik für Informatiker Wintersemester 2012/13 Beispiel (Skolemform) Wir betrachten die folgende Formel F in BPF: F = ∃X ∀Y ∃Z ∀V ∃W ¬p(X, Y, Z, V, W ) F′ = ∀Y ∃Z ∀V ∃W ¬p(a, Y, Z, V, W ) F ′′ = ∀Y ∀V ∃W ¬p(a, Y, f (Y ), V, W ) F ′′′ = ∀Y ∀V ¬p(a, Y, f (Y ), V, g(Y, V )). Wir ersetzen die existentiell quantifizierten Variablen durch Terme: • Zuerst ersetzen wir X durch eine frische Konstante a. • Dann ersetzen wir Z im Scope von Y durch einen Term f (Y ). • Schließlich ersetzen wir W im Scope von Y und V durch einen Term g(Y, V ). Prof. Dr. Dietmar Seipel 194 Logik für Informatiker Wintersemester 2012/13 Beispiel (Skolemform) Das 3–stellige Prädikatensymbol p steht für eine Gruppenoperation; wir schreiben p(X, Y, Z) anstelle von X ◦ Y = Z (Produkt). Die folgende Formel beschreibt die Gruppenaxiome zur Existenz eines links–neutralen Elements (X) und zur Existenz von Links–Inversen (Z): F = ∃X ( ∀Y p(X, Y, Y ) ∧ ∀Y ∃Z p(Z, Y, X) ). Wir bringen F zuerst in BPF, und dann mittels zweier Skolemfunktionen e (0–stellig) und i (1–stellig) in Skolemform F ′ : F ≡ ∃X ∀Y ∃Z ( p(X, Y, Y ) ∧ p(Z, Y, X) ), F′ = ∀Y ( p(e, Y, Y ) ∧ p(i(Y ), Y, e) ). Bei der Erzeugung der BPF wurde der bekannte Satz zur Verschiebung der Quantoren ∀Y und ∃Z angewendet. Prof. Dr. Dietmar Seipel 195 Logik für Informatiker Wintersemester 2012/13 Definition (Erfüllbarkeitsäquivalenz) Zwei prädikatenlogische Formeln F und G heißen erfüllbarkeitsäquivalent, wenn gilt: F ist genau dann erfüllbar, wenn G erfüllbar ist. F und G müssen nicht dieselben Modelle haben. Die Erfüllbarkeitsäquivalenz bedeutet aber, daß F und G entweder beide ein Modell besitzen, oder daß keine der beiden Formeln ein Modell besitzt. Beispiel (Erfüllbarkeitsäquivalenz) Indem man die freie Variable X in G = ∀Y p(X, Y, Y ) ∧ ∀Y ∃Z p(Z, Y, X) existentiell quantifiziert, erhält man eine erfüllbarkeitsäquivalente Formel F = ∃X ( ∀Y p(X, Y, Y ) ∧ ∀Y ∃Z p(Z, Y, X) ). Prof. Dr. Dietmar Seipel 196 Logik für Informatiker Wintersemester 2012/13 Satz (Skolemform) Eine Formel F in BPF ist genau dann erfüllbar, wenn ihre Skolemform erfüllbar ist. Beweis: Wir betrachten den Eliminationsschritt F 7→ F ′ für den ersten Existenzquantor: F = ∀X1 ∀X2 . . . ∀Xn ∃X G. 1. Annahme: F ′ ist erfüllbar mit einer passenden Struktur A′ , d.h. A′ (F ′ ) = 1. Dann paßt A′ auch zu F und es gilt ∀u1 , . . . , un ∈ UA′ : A′[X1 |u1 ]...[Xn |un ] (G[X|f (X1 , . . . , Xn )]) = 1. Prof. Dr. Dietmar Seipel 197 Logik für Informatiker Wintersemester 2012/13 Daraus folgt ∀u1 , . . . , un ∈ UA′ : A′[X |u ]...[X |u ][X|f A′ (u 1 1 n n 1 ,... ,un )] (G) = 1. Daraus folgt A′ ∀u1 , . . . , un ∈ UA′ : ∃u = f (u1 , . . . , un ) ∈ UA′ : A′[X1 |u1 ]...[Xn |un ][X|u] (G) = 1. Daraus folgt A′ (∀X1 . . . ∀Xn ∃X G) = 1. Also ist A′ auch ein Modell für F . Prof. Dr. Dietmar Seipel 198 Logik für Informatiker Wintersemester 2012/13 2. Annahme: F ist erfüllbar mit einer passenden Struktur A, d.h. A(F ) = 1. Wir können annehmen, daß IA auf keinen anderen als den in F vorkommenden Funktionssymbolen, Prädikatensymbolen und freien Variablen definiert ist. Dann gilt: ∀u1 , . . . , un ∈ UA : ∃u ∈ UA : A[X1 |u1 ]...[Xn |un ][X|u] (G) = 1. Wir erweitern nun die Struktur A zu einer neuen Struktur A′ durch A′ Definition einer Funktion f mit f A′ (u1 , . . . , un ) = u durch Verwendung des Auswahlaxioms. Es gilt UA′ = UA . Prof. Dr. Dietmar Seipel 199 Logik für Informatiker Wintersemester 2012/13 Daraus folgt ∀u1 , . . . , un ∈ UA′ : A′[X |u ]...[X |u ][X|f A′ (u 1 1 n n 1 ,... ,un )] (G) = 1. Daraus folgt ∀u1 , . . . , un ∈ UA′ : A′[X1 |u1 ]...[Xn |un ] (G[X|f (X1 , . . . , Xn )]) = 1. Daraus folgt A′ (∀X1 . . . ∀Xn G[X|f (X1 , . . . , Xn )]) = 1. Also ist A’ ein Modell für F . Prof. Dr. Dietmar Seipel 200 Logik für Informatiker Wintersemester 2012/13 Zusammenfassung (BPF, Skolemform) 1. Für jede Formel F gibt es eine äquivalente Formel G in BPF. 2. F und G haben genau dieselben Modelle. 3. Für jede Formel F gibt es eine Formel H in Skolemform. • F und H müssen nicht dieselben Modelle haben. • Insbesondere unterscheiden sich die Modelle in der Regel aufgrund der Skolemfunktionen in H. • Die Skolemform H wird durch Elimination der Existenzquantoren aus der BPF G konstruiert. 4. Eine Formel F ist genau dann erfüllbar, wenn ihre Skolemform H erfüllbar ist. Prof. Dr. Dietmar Seipel 201 Logik für Informatiker Wintersemester 2012/13 Klauselform Aus einer Formel F kann man über die Skolemform eine Klauselmenge M gewinnen. Eine Klausel ist eine Disjunktion prädikatenlogischer Literale. 1. Durch systematisches Umbenennen der gebundenen Variablen in F bilden wir eine neue, bereinigte Formel F1 , die zu F äquivalent ist. 2. Seien Y1 , . . . , Yn die in F1 vorkommenden freien Variablen. Dann enthält F2 = ∃Y1 . . . ∃Yn F1 keine ungebundenen Variablen mehr, und F2 ist erfüllbarkeitsäquivalent zu F1 . 3. Sei F3 = ∀X1 . . . ∀Xm G3 eine Skolemform zu F2 mit der (quantorenfreien) Matrix G3 . Dann sind alle Variablen in F3 universell quantifiziert, und F3 ist erfüllbarkeitsäquivalent zu F2 . 4. Man kann die Matrix G3 in eine KNF G4 = ∧ki=1 βi mit Klauseln βi umformen. Dann ist F4 = ∀X1 . . . ∀Xm G4 zu F3 äquivalent. Prof. Dr. Dietmar Seipel 202 Logik für Informatiker Wintersemester 2012/13 Insgesamt gilt: • F4 ist erfüllbarkeitsäquivalent zu F , und • alle Variablen in F4 sind universell quantifiziert. Die Klauselmenge M = { β1 , . . . , βk } spielt später bei Inferenzmethoden eine entscheidente Rolle. Man kann mittels der Resolutionsmethode genau dann die leere Klausel aus M ableiten, wenn F unerfüllbar ist. Beispiel (Klauselmenge) Die Formel G = ∀Y p(X, Y, Y ) ∧ ∀Y ∃Z p(Z, Y, X) wird zur Klauselmenge M = { p(e, Y, Y ), p(i(Y ), Y, e) }. Prof. Dr. Dietmar Seipel 203 Logik für Informatiker 2.3 Wintersemester 2012/13 Unentscheidbarkeit Es gibt prädikatenlogische Formeln F , die zwar erfüllbar sind, jedoch nur unendliche Modelle A = (UA , IA ) besitzen, also solche mit unendlicher Grundmenge UA : F = ∀X p(X, f (X)) ∧ ∀Y ¬p(Y, Y ) ∧ ∀U ∀V ∀W ( (p(U, V ) ∧ p(V, W )) → p(U, W ) ) Dann gibt es das folgende unendliche Modell A = (UA , IA ) : UA = IN0 = { 0, 1, 2, . . . }, pA = { (m, n) ∈ IN02 | m < n }, f A (n) = n + 1. Die Formel F besitzt jedoch kein endliches Modell. Prof. Dr. Dietmar Seipel 204 Logik für Informatiker Wintersemester 2012/13 Angenommen B = (UB , IB ) ist ein Modell mit endlicher Grundmenge UB . Für ein beliebiges Element m0 ∈ UB betrachten wir die Folge m0 , m1 , m2 , . . . ∈ UB , mit mi+1 = f B (mi ). Wegen des ersten Konjunktionsgliedes von F gilt (m0 , m1 ), (m1 , m2 ), . . . , (mi , mi+1 ) ∈ pB , für alle i ∈ IN0 . Wegen des dritten Konjunktionsgliedes von F ist pB transitiv, d.h. (mi , mj ) ∈ pB , für alle i, j ∈ IN0 mit i < j. Da UB endlich ist, muß es zwei Indizes i und j mit i < j geben, mit mi = mj = m. Also gibt es (m, m) ∈ pB , im Widerspruch zum zweiten Konjunktionsglied von F (Irreflexivität). Prof. Dr. Dietmar Seipel 205 Logik für Informatiker Wintersemester 2012/13 Obiges Beispiel zeigt, daß sich die Wahrheitstafelmethode nicht in die Prädikatenlogik übertragen läßt. Entscheidbarkeit Ein (ja/nein–) Problem heißt entscheidbar oder rekursiv, falls es ein Rechenverfahren gibt (z.B. formuliert als Programm in C++), das für alle Eingaben immer nach endlicher Zeit stoppt, und dann korrekt “ja” oder “nein” ausgibt. Anderenfalls heißt ein Problem unentscheidbar. Gültigkeitsproblem der Prädikatenlogik: Gegeben eine prädikatenlogische Formel F . Frage: Ist F eine gültige Formel ? Prof. Dr. Dietmar Seipel 206 Logik für Informatiker Wintersemester 2012/13 Satz (Church) Das Gültigkeitsproblem der Prädikatenlogik ist unentscheidbar. Beweis durch Zurückführung auf das unentscheidbare Postsche Korrespondenzproblem: • Gegeben eine endliche Folge (x1 , y1 ), . . . , (xn , yn ) von Paaren xi , yi ∈ {0, 1}+ von nicht–leeren Strings über {0, 1}. • Frage: Gibt es eine Folge von Indizes i1 , . . . , im ∈ { 1, . . . , n }, mit m ≥ 1, so daß die Konkatenationen der entsprechenden Strings übereinstimmen ? xi1 xi2 . . . xim = yi1 yi2 . . . yim . Prof. Dr. Dietmar Seipel 207 Logik für Informatiker Wintersemester 2012/13 Beispiel (Postsches Korrespondenzproblem) Sei K = ((x1 , y1 ), (x2 , y2 ), (x3 , y3 )) mit x1 = 1 und y1 = 101, x2 = 10 und y2 = 00, x3 = 011 und y3 = 11. Lösung: i1 = 1, i2 = 3, i3 = 2, i4 = 3 x3 x2 x3 x1 z}|{ z }| { z}|{ z }| { x1 x3 x2 x3 = 1 0 1 1 1 0 0 1 1 = y1 y3 y2 y3 . | {z } |{z} |{z} |{z} y1 y3 y2 y3 Folgerung (Erfüllbarkeitsproblem) Das Erfüllbarkeitsproblem der Prädikatenlogik Ist eine gegebene prädikatenlogische Formel F erfüllbar ? ist ebenfalls unentscheidbar. Prof. Dr. Dietmar Seipel 208 Logik für Informatiker 2.4 Wintersemester 2012/13 Herbrand–Theorie Jacques Herbrand, Kurt Gödel, Thoralf Skolem Definition (Herbrand–Universum) Das Herbrand–Universum HUF einer Formel F ist die Menge aller variablenfreien Terme, die aus Bestandteilen von F gebildet werden können. Falls F keine Konstante (d.h., kein 0–stelliges Funktionssymbol) enthält, so nehmen wir eine beliebige Konstante a und zur Konstruktion von HUF hinzu. Das Herbrand–Universum HUF ist meist unendlich groß, aber man kann es systematisch konstruieren. Prof. Dr. Dietmar Seipel 209 Logik für Informatiker Wintersemester 2012/13 Induktive Konstruktion: 1. Alle in F vorkommenden Konstanten sind in HUF . 2. Falls F keine Konstanten enthält, so nimmt man eine beliebige Konstante a zu HUF hinzu. 3. Für jedes in F vorkommende • n–stellige Funktionssymbol f und • Terme t1 , . . . , tn ∈ HUF ist auch der Term f (t1 , . . . , tn ) in HUF . Für ein 1–stelliges Funktionssymbol f und eine Konstante a setzen wir • f 0 (a) = a und • f k+1 (a) = f (f k (a)), für alle k ∈ IN0 . Z.B. entsteht f 2 (a) = f (f (a)) durch 2–malige Anwendung von f auf a. Prof. Dr. Dietmar Seipel 210 Logik für Informatiker Wintersemester 2012/13 Beispiel (Herbrand–Universum) Die Formel F = p(f (a), g(b)) enthält zwei Konstanten (0–stellige Funktionssymbole) a und b und zwei einstellige Funktionssymbole f und g. Daraus setzen sich die Terme des Herbrand–Universums zusammen. 1. a und b sind in HUF . Da F bereits Konstanten enthält, ist keine zusätzliche Konstante erforderlich. 2. Mit den Funktionssymbolen f und g kann man weitere Terme bilden. Die Tatsache, daß a in F nur als Argument von f vorkommt und b nur als Argument von g ist dabei unerheblich. Auch die “gekreuzten” Terme f (b) und g(a) sind in HUF . 3. Falls h1 , . . . , hn eine beliebige Folge von Funktionssymbolen ist, mit hi ∈ {f, g}, so sind auch h1 (. . . (hn (a))) und h1 (. . . (hn (b))) in HUF . 4. HUF = { a, b, f (a), f (b), g(a), g(b), f (f (a)), f (g(a)), . . . }. Prof. Dr. Dietmar Seipel 211 Logik für Informatiker Wintersemester 2012/13 HUF ist genau dann unendlich groß, wenn F ein n–stelliges Funktionssymbol mit n ≥ 1 enthält. Für ein 1–stelliges Funktionssymbol f in F und eine Konstante a ∈ HUF sind z.B. auch alle Terme f k (a) in HUF . Beispiel (Herbrand–Universum) Die Formel F in BPF enthält ein einstelliges Funktionssymbol f : F = ∃X p(f (X)), HUF = { a, f (a), f (f (a)), . . . } = { f k (a) | k ∈ IN0 }. Da F keine Konstanten enthält, nehmen wir die Konstante a zu HUF hinzu. Dasselbe Herbrand–Universum würden wir auch für die variablenfreie Formel F ′ = p(f (a)) erhalten. Prof. Dr. Dietmar Seipel 212 Logik für Informatiker Wintersemester 2012/13 Man kann das Herbrand–Universum HUF wie folgt systematisch als unendliche Vereinigung endlicher Mengen konstruieren: 1. HU1 sei die Menge aller in F vorkommenden Konstanten, bzw. HU1 = { a }, falls F keine Konstanten enthält. ′ 2. HUk+1 sei die Menge aller Terme f (t1 , . . . , tn ) aus einem in F vorkommenden n–stelligen Funktionssymbol f und Termen ′ t1 , . . . , tn ∈ HUk , und HUk+1 = HUk ∪ HUk+1 . 3. Dann sind alle Mengen HUk endlich, die Folge (HUk )k∈IN+ ist aufsteigend, und HUF = ∪∞ k=1 HUk . Also ist das Herbrand–Universum HUF abzählbar. Man erhält per Induktion eine injektive Abbildung HUF → IN, indem man sukzessive die endlichen Mengen HUk+1 \ HUk fortlaufend durchnummeriert. Prof. Dr. Dietmar Seipel 213 Logik für Informatiker Wintersemester 2012/13 Beispiel (Herbrand–Universum) Die folgende Formel F enthält vier Funktionssymbole: F = ∀X ∀Y p(a, f (X), g(Y, b)). a und b sind 0–stellig, und somit Konstanten. f ist 1–stellig, g ist 2–stellig. HU1 = { a, b }, HU2 = HU1 ∪ { f (a), f (b), g(a, a), g(a, b), g(b, a), g(b, b) }, HUk+1 = HUk ∪ { f (t) | t ∈ HUk } ∪ { g(t1 , t2 ) | t1 , t2 ∈ HUk }. Sobald eine Formel F mindestens ein n–stelliges Funktionssymbol f , mit n ≥ 1, enthält, ist das Herbrand–Universum HUF unendlich groß: HUF enthält immer eine Konstante, und man kann aus jedem Term t ∈ HUk+1 \ HUk einen neuen Term f (t, . . . , t) ∈ HUk+2 \ HUk+1 bilden. Prof. Dr. Dietmar Seipel 214 Logik für Informatiker Wintersemester 2012/13 Definition (Herbrand–Strukturen) Sei F eine Formel und A = (UA , IA ) eine zu F passende Struktur. Dann heißt A eine Herbrand–Struktur für F , falls gilt: 1. Die Grundmenge von A ist UA = HUF . 2. Für alle Terme f (t1 , . . . , tn ) ∈ HUF : A(f (t1 , . . . , tn )) = f A (A(t1 ), . . . , A(tn )) = f (t1 , . . . , tn ). Terme werden also von Herbrand–Strukturen durch sich selbst interpretiert. Herbrand–Strukturen für geschlossene Formeln sind vollständig durch die Interpretation pA der Prädikatensymbole charakterisiert. Man nennt die entsprechende Menge I eine Herbrand–Interpretation: I = { p(t1 , . . . , tn ) | t1 , . . . , tn ∈ HUF ∧ (t1 , . . . , tn ) ∈ pA } Eine Herbrand–Struktur, welche ein Modell für eine Formel F ist, heißt Herbrand–Modell für F . Prof. Dr. Dietmar Seipel 215 Logik für Informatiker Wintersemester 2012/13 Beispiel (3–Färbbarkeit) Gesucht ist eine Färbung der Knoten eines Graphen G = h V, E i mit drei Farben (rot, grün, blau), so daß adjazente Knoten unterschiedliche Farben haben: b a d e c Wir repräsentieren die Knoten und Kanten des Graphen als Fakten: f1 = node(a), f2 = node(b), . . . , f5 = node(e), e1 = edge(a, b), e2 = edge(a, c), . . . , e6 = edge(d , e). Prof. Dr. Dietmar Seipel 216 Logik für Informatiker Wintersemester 2012/13 g = ,color (X , red ) ∨ color (X , green) ∨ color (X , blue) ← node(X ) c0 = ← edge(X , Y ) ∧ color (X , C ) ∧ color (Y , C ), c1 = ← color (X , red ) ∧ color (X , green), c2 = ← color (X , red ) ∧ color (X , blue), c3 = ← color (X , green) ∧ color (X , blue). Die disjunktive Regel g wählt für jeden Knoten eine Farbe aus. Die Integritätsbedingung c0 verhindert, daß adjazente Knoten die gleiche Farbe bekommen. Die Integritätsbedingungen c1 , c2 , c3 verhindern, daß ein Knoten zwei Farben bekommt. Nebenbemerkung: Jeder planare Graph ist 4–färbbar. Für allgemeine Graphen ist der Test auf 3–Färbbarkeit N P–vollständig. Prof. Dr. Dietmar Seipel 217 Logik für Informatiker Wintersemester 2012/13 Wir betrachten dann die Formel F = f1 ∧ . . . ∧ f5 ∧ e1 ∧ . . . ∧ e6 ∧ ∀Xg ∧ ∀X∀Y ∀C c0 ∧ ∀Xc1 ∧ . . . ∧ ∀Xc3 . F ist äquivalent zur folgenden Formel F ′ in Skolemform: F ′ = ∀X ∀ Y ∀ C (f1 ∧ . . . ∧ f5 ∧ e1 ∧ . . . ∧ e6 ∧ g ∧ c0 ∧ . . . ∧ c3 ). Das Herbrand–Universum ist HUF = { a, b, c, d, e, red, green, blue }. Prof. Dr. Dietmar Seipel 218 Logik für Informatiker Wintersemester 2012/13 b a d e c Die folgende Herbrand–Interpretation I repräsentiert ein Herbrand–Modell für die Formel F : I = { node(a), . . . , node(e), edge(a, b), . . . , edge(d , e), color (a, red ), color (b, green), color (c, blue), color (d , red ), color (e, green) }. Prof. Dr. Dietmar Seipel 219 Logik für Informatiker Wintersemester 2012/13 Die zugehörigen Interpretationen pA der Prädikatensymbole sind folgende: node A = { (a), . . . , (e) }, edge A = { (a, b), . . . , (d, e) }, color A = { (a, red), (b, green), (c, blue), (d, red), (e, green) }. Die Herbrand–Interpretation I faßt diese Mengen pA zu einer einzigen Menge zusammen. Damit man die Tupel (t1 , . . . , tn ) ∈ pA korrekt zuordnen kann, werden sie in I als Atome p(t1 , . . . , tn ) mit Prädikatensymbol notiert: I = { p(t1 , . . . , tn ) | t1 , . . . , tn ∈ HUF ∧ (t1 , . . . , tn ) ∈ pA }. Würde man einfach die Vereinigung der Mengen pA benutzen, so könnte man z.B. nicht wissen, ob ein Paar (t1 , t2 ) zu edge A oder zu color A gehört. Prof. Dr. Dietmar Seipel 220 Logik für Informatiker Wintersemester 2012/13 Satz (Herbrand–Modell) Eine Aussage F in Skolemform ist genau dann erfüllbar, wenn F ein Herbrand–Modell besitzt. Beweis: 1. ⇐: Klar. 2. ⇒: Sei A = (UA , IA ) ein beliebiges Modell für F . Falls F keine Konstanten enthält und a als zusätzliche Konstante gewählt wurde, so setzen wir aA = a′ , für ein beliebiges Element a′ ∈ UA . A ist danach immer noch ein Modell für F . Wir konstruieren nun aus A eine Herbrand–Struktur B = (UB , IB ) für F , d.h. mit der Grundmenge UB = HUF . Dazu müssen wir die Prädikatensymbole p aus F interpretieren. Prof. Dr. Dietmar Seipel 221 Logik für Informatiker Wintersemester 2012/13 Sei p ein n–stelliges Prädikatensymbol, und seien t1 , . . . , tn ∈ HUF : (t1 , . . . , tn ) ∈ pB g.d.w. (A(t1 ), . . . , A(tn )) ∈ pA Wir zeigen nun, daß B ein Modell für F ist. Mehr noch: Für jede Aussage G in Skolemform, die aus den Bestandteilen von F aufgebaut ist, gilt: A |= G ⇒ B |= G. Wir führen eine Induktion über die Anzahl n der Allquantoren von G. n = 0: G enthält keine Quantoren. Dann haben alle Atome von G unter A und B denselben Wahrheitswert, und deshalb gilt A(G) = B(G). n → n + 1: Sei G eine Formel mit n + 1 Allquantoren, und zwar von der Form G = ∀X H, wobei H nur n Allquantoren enthält. Prof. Dr. Dietmar Seipel 222 Logik für Informatiker Wintersemester 2012/13 Wegen A |= G gilt: ∀ u ∈ UA : A[X|u] (H) = 1. Insbesondere gilt für alle u = A(t) ∈ UA mit t ∈ HUG : A[X|A(t)] (H) = 1. Deshalb gilt: ∀ t ∈ HUG : A(H[X|t]) = A[X|A(t)] (H) = 1. Nach Induktionsvoraussetzung gilt nun: ∀ t ∈ HUG : B(H[X|t]) = 1. Deshalb gilt: ∀ t ∈ HUG : B[X|B(t)] (H) = B(H[X|t]) = 1. Also gilt B(G) = B(∀X H) = 1. Prof. Dr. Dietmar Seipel 223 Logik für Informatiker Wintersemester 2012/13 Der obige Satz über Herbrand–Modelle wäre falsch, wenn wir nicht eine frische Konstante a zu HUF hinzunehmen würden, falls F keine Konstanten enthält – denn dann wäre die Grundmenge HUF = ∅. Beispiel (Herbrand–Modell) Für die Formel F = ∃X p(X) ist das Herbrand–Universum HUF = { a }, und das einzige Herbrand–Modell A ist gegeben durch pA = { (a) }. Ohne die frische Konstante a könnte man kein Herbrand–Modell bilden, da F fordert, daß pA mindestens ein Tupel (t), mit t ∈ HUF , enthalten muß. Prof. Dr. Dietmar Seipel 224 Logik für Informatiker Wintersemester 2012/13 Satz (Löwenheim und Skolem) Jede erfüllbare Formel F der Prädikatenlogik besitzt ein abzählbares Modell B = (UB , IB ), d.h. mit einer abzählbaren Grundmenge UB . Man kann für B ein Herbrand–Modell der Skolemform von F wählen. Definition (Herbrand–Expansion) Sei F = ∀X1 ∀X2 . . . ∀Xn G eine Formel in Skolemform mit der (quantorenfreien) Matrix G. Dann ist die Herbrand–Expansion von F definiert als E(F ) = { G[X1 |t1 ] . . . [Xn |tn ] | t1 , . . . , tn ∈ HUF }. Prof. Dr. Dietmar Seipel 225 Logik für Informatiker Wintersemester 2012/13 Beispiel (Herbrand–Expansion) Für die folgende Formel F in Skolemform F = ∀X (f ∧ r), f = married (a, b), r = student(X ) → person(X ), ist HUF = { a, b }, und die Herbrand–Expansion E(F ) = { married (a, b) ∧ (student(a) → person(a)), married (a, b) ∧ (student(b) → person(b)) } hat 2 Elemente, da man das Variablensymbol X mit den zwei Konstanten aus HUF belegen kann. Prof. Dr. Dietmar Seipel 226 Logik für Informatiker Wintersemester 2012/13 Beispiel (Herbrand–Expansion) Für die Formel F = ∀X1 ∀X2 ∀X3 G, mit G = F1 ∧ F2 ∧ F3 ∧ F4 ∧ F5 und F1 = ancestor(X1 , X2 ) ← parent(X1 , X2 ), F1 = ancestor(X1 , X2 ) ← parent(X1 , X3 ) ∧ ancestor(X3 , X2 ), F3 = parent(a, b), F4 = parent(b, c), F5 = parent(c, d), git HUF = { a, b, c, d }, und E(F ) hat 43 = 64 Elemente. Eines davon ist z.B. Gθ = F1 θ ∧ F2 θ ∧ F3 ∧ F4 ∧ F5 , für θ = [X1 |a] [X2 |c] [X3 |b]: F1 θ = ancestor(a, c) ← parent(a, c), F2 θ = ancestor(a, c) ← parent(a, b) ∧ ancestor(b, c). Prof. Dr. Dietmar Seipel 227 Logik für Informatiker Wintersemester 2012/13 Falls F Variablensymbole und Funktionssymbole der Stelligkeit n ≥ 1 enthält, so sind HUF und E(F ) unendlich groß. Beispiel (Herbrand–Expansion) Für die Formel F = ∀X1 ∀X2 p(X1 , f (X2 ), g(X1 , X2 )) in Skolemform erhalten wir die folgende Herbrand–Expansion: HUF = { a, f (a), g(a, a), f (f (a)), f (g(a, a)), g(a, f (a)), g(a, g(a, a)), g(f (a), a), g(f (a), f (a)), g(f (a), g(a, a)), g(g(a, a), a), g(g(a, a), f (a)), g(g(a, a), g(a, a)), . . . }, E(F ) = { p(t1 , f (t2 ), g(t1 , t2 )) | t1 , t2 ∈ HUF }. Da F keine Konstante enthält, wurde a zu HUF hinzugenommen. Prof. Dr. Dietmar Seipel 228 Logik für Informatiker Wintersemester 2012/13 Im Grunde genommen kann E(F ) als eine – meist unendliche – aussagenlogische Formelmenge angesehen werden, wenn man die in E(F ) vorkommenden Grundatome als atomare Formeln der Aussagenlogik auffaßt. Satz (Gödel, Herbrand und Skolem) Eine Aussage F in Skolemform ist genau dann unerfüllbar, wenn es eine endliche Teilmenge von E(F ) gibt, die (im aussagenlogischen Sinne) unerfüllbar ist. Beweis: Mittels des Satzes von Gödel, Herbrand und Skolem und des Endlichkeitssatzes der Aussagenlogik. Prof. Dr. Dietmar Seipel 229 Logik für Informatiker Wintersemester 2012/13 Semi–Entscheidungsverfahren für die Prädikatenlogik Gilmore: Für jede prädikatenlogische Formel F ist die Herbrand–Expansion E(G) = { G1 , G2 , . . . } der Skolemform G von F abzählbar, da auch das Herbrand–Universum HUF abzählbar ist. F ist genau dann erfüllbar, wenn alle Konjunktionen G1 ∧ G2 ∧ . . . ∧ Gn , mit n ∈ IN+ = { 1, 2, . . . }, erfüllbar sind. Durch sukzessives Testen dieser Konjunktionen auf Unerfüllbarkeit erhält man also ein Verfahren, welches für unerfüllbare Formeln F nach endlicher Zeit stoppt. Prof. Dr. Dietmar Seipel 230 Logik für Informatiker Wintersemester 2012/13 Für erfüllbare Formeln F terminiert das Verfahren offensichtlich nicht. → Semi–Entscheidbarkeit des Unerfüllbarkeitsproblems. Durch Anwendung des Testverfahrens auf ¬F kann man auf Gültigkeit testen. → Semi–Entscheidbarkeit des Gültigkeitsproblems. Prof. Dr. Dietmar Seipel 231 Logik für Informatiker 2.5 Wintersemester 2012/13 Resolution Wir betrachten eine prädikatenlogische Formel F = ∀X1 ∀X2 . . . ∀Xm G in Skolemform ohne freie Variablen und mit der Matrix G in KNF. • Die Matrix G ist quantorenfrei und von der Form G = ∧ki=1 βi . • Wir untersuchen nun die zugehörige Klauselmenge M = { β1 , . . . , βk }. Eine Struktur A heißt Modell für M , falls A ein Modell für F ist. Wir betrachten eine Klauselmenge M also wie eine KNF zusammen mit Allquantoren für alle vorkommenden Variablen. Eine Klausel β = L1 ∨ . . . ∨ Ln wird auch oft als Menge { L1 , . . . , Ln } von Literalen repräsentiert. Prof. Dr. Dietmar Seipel 232 Logik für Informatiker Wintersemester 2012/13 Definition (Resolutionsableitung) Sei M eine Klauselmenge. Eine Folge K1 , K2 , . . . , Kn von Klauseln nennt man Resolutionsableitung, falls für alle 1 ≤ i ≤ n gilt: 1. Ki ist eine Grundinstanz einer Klausel K ∈ M , d.h. Ki = K[X1 |t1 ] . . . [Xk |tk ], mit t1 , . . . , tk ∈ HUF , oder 2. Ki ist eine (aussagenlogische) Resolvente zweier Klauseln Ka und Kb mit 1 ≤ a, b ≤ i − 1. M ist genau dann unerfüllbar, wenn es eine Resolutionsableitung der leeren Klausel Kn = 2 gibt. Dasselbe gilt für die entsprechende prädikatenlogische Formel F . Prof. Dr. Dietmar Seipel 233 Logik für Informatiker Wintersemester 2012/13 Beispiel (Resolution) Wir betrachten die Klauselmenge M = { F1 , F2 , F3 } mit F1 = ¬p(X) ∨ ¬p(f (a)) ∨ q(Y ), F2 = p(Y ), F3 = ¬p(g(b, X)) ∨ ¬q(b). Dann kann man • F1 [X|f (a)] [Y |b] und F2 [Y |f (a)] zu K = { q(b) } resolvieren, und • F2 [Y |g(b, a)] und F3 [X|a] zu K ′ = { ¬q(b) }. Aus K und K ′ erhält man schließlich die leere Klausel 2. Also sind die Klauselmenge M und die zugehörige Formel F unerfüllbar: F = ∀X ∀ Y (F1 ∧ F2 ∧ F3 ). Prof. Dr. Dietmar Seipel 234 Logik für Informatiker Wintersemester 2012/13 Baumdarstellung: { ¬p(X), ¬p(f (a)), q(Y ) } [X|f (a)] [Y |b] { p(Y ) } [Y |f (a)] ? { ¬p(f (a)), q(b) } { ¬p(g(b, X)), ¬q(b) } [Y |g(b, a)] R { p(f (a)) } { p(g(b, a)) } ? { ¬p(g(b, a)), ¬q(b) } U U { q(b) } { ¬q(b) } s [X|a] + 2 Die Klausel { p(Y ) } wurde in der Resolutionsableitung zweimal benutzt. Prof. Dr. Dietmar Seipel 235 Logik für Informatiker Wintersemester 2012/13 { ¬p(X), ¬p(f (a)), q(Y ) } [X|f (a)] [Y |b] { p(Y ) } { ¬p(g(b, X)), ¬q(b) } [Y |f (a)] ? K1 = { ¬A, B } [Y |g(b, a)] R K2 = { A } K3 = { C } [X|a] ? K4 = { ¬C, ¬B } U U K5 = { B } K6 = { ¬B } s + K7 = 2 Durch die vollständige Grundinstanziierung auf A = p(f (a)), B = q(b), C = p(g(b, a)), wird das Problem auf die Aussagenlogik reduziert. Prof. Dr. Dietmar Seipel 236 Logik für Informatiker Wintersemester 2012/13 Aus Effizienzgründen versucht man Substitutionen aber nur auszuführen, wenn es für den direkt nachfolgenden Resolutionsschritt erforderlich ist. { ¬p(X), ¬p(f (a)), q(Y ) } [X|f (a)] { p(Y ) } [Y |f (a)] ? [Y |g(b, X)] { ¬p(f (a)), q(Y ) } { ¬p(g(b, X)), ¬q(b) } R { p(f (a)) } ? { p(g(b, X)) } { ¬p(g(b, X)), ¬q(b) } U U { q(Y ) } { ¬q(b) } [Y |b] ? ? { q(b) } { ¬q(b) } s + 2 Prof. Dr. Dietmar Seipel 237 Logik für Informatiker Wintersemester 2012/13 Definition (Unifikator, allgemeinster Unifikator) Sei θ = [X1 |t1 ] . . . [Xn |tn ] eine Substitution. 1. Für eine endliche Literalmenge L = { L1 , . . . , Lk } setzen wir Lθ = { L1 θ, . . . , Lk θ }. 2. θ ist ein Unifikator von L, falls L1 θ = L2 θ = . . . = Lk θ. θ R θ′ ? γ 3. Ein Unifikator θ von L heißt allgemeinster Unifikator von L, falls für jeden Unifikator θ ′ von L eine Substitution γ existiert mit θ ′ = θγ, d.h. F θ ′ = (F θ)γ für alle Formeln F . Prof. Dr. Dietmar Seipel 238 Logik für Informatiker Wintersemester 2012/13 Beispiel (Allgemeinster Unifikator) 1. θ ist ein allgemeinster Unifikator für die Literalmenge L = { p(X), p(f (a)) }. θ ′ ist ein weiterer Unifikator, und es gilt θ ′ = θγ. θ = [X|f (a)] R θ ′ = [X|f (a)] [Y |b] γ = [Y |b] ? Prof. Dr. Dietmar Seipel 239 Logik für Informatiker Wintersemester 2012/13 2. θ ist ein allgemeinster Unifikator für die Literalmenge L = { p(Y ), p(g(b, X)) }. θ ′ ist ein weiterer Unifikator, und es gilt θ ′ = θγ. θ = [Y |g(b, X)] R θ ′ = [X|a] [Y |g(b, a)] γ = [X|a] ? Prof. Dr. Dietmar Seipel 240 Logik für Informatiker Wintersemester 2012/13 Allgemeinste Unifikatoren sind i.a. nicht eindeutig: L = { p(X), p(Y ) } hat z.B. die beiden folgenden allgemeinsten Unifikatoren: θ1 = [X|Y ], θ2 = [Y |X]. Es gilt θ1 θ2 = θ2 und θ2 θ1 = θ1 . Der folgende weitere Unifikator θ3 = [X|Z][Y |Z] ist allerdings kein allgemeinster Unifikator. Es gilt θ1 [Y |Z] = θ3 und θ2 [X|Z] = θ3 . Prof. Dr. Dietmar Seipel 241 Logik für Informatiker Wintersemester 2012/13 Die Substitutionen bilden keine Gruppe. Es gibt ein neutrales Element [ ]. Aber für θ3 = [X|Z][Y |Z] gibt es z.B. kein Rechts–Inverses γ3 mit θ3 γ3 = [ ]. Man kann die Anwendung von θ3 nicht rückgängig machen, da man für ein Z nicht weiß, ob es von einem X oder einem Y herrührt. Ebenso gibt es für θ4 = [X|a] kein Rechts–Inverses, da man die Konstante a nicht auf eine Variable X abbilden kann. Auch für θ1 und θ2 gibt es keine Rechts–Inverse. Deswegen sind θ1 θ2 = θ2 und θ2 θ1 = θ1 möglich. Interessanterweise gilt außerdem θ1 θ1 = θ1 und θ2 θ2 = θ2 (Idempotenz). Prof. Dr. Dietmar Seipel 242 Logik für Informatiker Wintersemester 2012/13 Unifikationssatz (J.A. Robinson) Jede unifizierbare Menge von Literalen besitzt auch einen allgemeinsten Unifikator. Wir interessieren uns hauptsächlich für denjenigen allgemeinsten Unifikator, der durch den folgenden Algorithmus bestimmt wird. Unifikationsalgorithmus Eingabe: eine endliche, nicht–leere Literalmenge (Literalfolge) L θ = [ ]; ([ ] ist die leere Substitution, d.h. die identische Abbildung) while |Lθ| > 1 do begin durchsuche die Literale in Lθ von links nach rechts, bis die erste Position gefunden ist, wo sich mindestens zwei Literale L1 und L2 unterscheiden (Prädikaten– oder Argument–Position); Prof. Dr. Dietmar Seipel 243 Logik für Informatiker Wintersemester 2012/13 if keines der beiden Zeichen an den gefundenen Positionen ist eine Variable then stoppe mit der Ausgabe “nicht unifizierbar” else begin sei X die an der einen Position gefundene Variable und t der Term an der anderen Position; if X kommt in t vor (“Occurs Check”) then stoppe mit der Ausgabe “nicht unifizierbar” else θ = θ [X|t]; end; end; Ausgabe: θ ist ein allgemeinster Unifikator von L Prof. Dr. Dietmar Seipel 244 Logik für Informatiker Wintersemester 2012/13 Beispiel (Unifikationsalgorithmus) 1. Für die Literalmenge L = { p(X), p(f (a)), p(Y ) } sind die Prädikatenpositionen alle gleich p. ? ? ? L = { p(|{z} X ), p(f (a)), p(|{z} Y )} |{z} 6 6 6 Die ersten Unterschiede liegen in den Argumenten. Also setzen wir θ1 = [X|f (a)] und erhalten Lθ1 = { p(f (a)), p(Y ) }, da die ersten beiden Atome zusammenfallen. Mittels θ2 = [Y |f (a)] erhalten wir θ = θ1 θ2 = [X|f (a)][Y |f (a)] und Lθ = { p(f (a)) }. Wegen |Lθ| = 1 ist θ ein allgemeinster Unifikator. Prof. Dr. Dietmar Seipel 245 Logik für Informatiker Wintersemester 2012/13 2. Für die Literalmenge L = { L1 , L2 }, mit L1 = p(f (Z, g(a, Y )), h(Z)), L2 = p(f (f (U, V ), W ), h(f (a, b))), sind die ersten unterschiedlichen Positionen X = Z und t = f (U, V ). Somit erhalten wir θ1 = [Z|f (U, V )]. Für Lθ1 = { L1 θ1 , L2 θ1 }, mit L1 θ1 = p(f (f (U, V ), g(a, Y )), h(f (U, V ))), L2 θ1 = L2 , sind die ersten unterschiedlichen Positionen X = W und t = g(a, Y ). Somit erhalten wir θ2 = [W |g(a, Y )]. Prof. Dr. Dietmar Seipel 246 Logik für Informatiker Wintersemester 2012/13 Für Lθ1 θ2 = { L1 θ1 θ2 , L2 θ1 θ2 }, mit L1 θ1 θ2 = p(f (f (U, V ), g(a, Y )), h(f (U, V ))) und L2 θ1 θ2 = p(f (f (U, V ), g(a, Y )), h(f (a, b))) sind die ersten unterschiedlichen Positionen X = U und t = a. Somit erhalten wir θ3 = [U |a]. Abschließend erhalten wir noch θ4 = [V |b]. Insgesamt erhalten wir die Substitution θ = θ1 θ2 θ3 θ4 = [Z|f (U, V )][W |g(a, Y )][U |a][V |b] = [Z|f (a, b)][W |g(a, Y )][U |a][V |b], und L1 θ = p(f (f (a, b), g(a, Y )), h(f (a, b))) = L2 θ. Prof. Dr. Dietmar Seipel 247 Logik für Informatiker Wintersemester 2012/13 3. Die Literalmenge L = { p, q } ist nicht unifizierbar, da die Prädikatensymbole nicht übereinstimmen. 4. Die Literalmenge L = { p(a), p(b) } ist nicht unifizierbar, da die Argumente unterschiedliche Konstanten sind. 5. Die Literalmenge L = { p(f (X)), p(g(X)) } ist nicht unifizierbar, da die Funktionssymbole f und g nicht übereinstimmen. 6. Die Literalmenge L = { p(X), p(f (X)) } ist ebenfalls nicht unifizierbar, denn der Occurs Check stellt fest, daß der Term t = f (X) die Variable X enthält. Wenn man X mittels θ = [X|t′ ] durch einen Term t′ ersetzt, etwa durch t′ = t = f (X), dann enthält p(X)θ = p(t′ ) immer ein Auftreten des Funktionssymbols f weniger als p(f (X))θ = p(f (t′ )). Prof. Dr. Dietmar Seipel 248 Logik für Informatiker Wintersemester 2012/13 Occurs Check In P ROLOG wird der Occurs Check aus Effizienzgründen meist weggelassen, da der auf X zu testende Term t sehr groß sein kann. ?- X = f(X). X = f(**). • Das Ergebnis der Unifikation von X und f (X) ist in S WI–P ROLOG die Substitution [X|f (**)] – aber ohne die sonst übliche Ausgabe true. • Wie bei Dauerschleifen in herkömmlichen Programmiersprachen wie JAVA, geht man aber davon aus, daß ein Programmierer in der Praxis diese fehlerhaften Unifikationen vermeidet. • Aus rein theoretischer Sicht könnte man über unendlichen Termstrukturen als Ergebnis die Substitution [X|f (f (f (...)))] angeben, die X durch einen unendlich tief verschachtelten Term ersetzt. Prof. Dr. Dietmar Seipel 249 Logik für Informatiker Wintersemester 2012/13 Definition (Prädikatenlogische Resolution) Seien K1 und K2 prädikatenlogische Klauseln. 1. Seien θ1 und θ2 Substitutionen, welche die Variablen von K1 und K2 so umbenennen, daß K1 θ1 und K2 θ2 keine gemeinsamen Variablen mehr enthalten – wir nennen sie dann variablendisjunkt. 2. Für ein Atom A setzen wir A = ¬A und ¬A = A. 3. Es gebe nun Literale L1 , . . . , Lm ∈ K1 θ1 und L′1 , . . . , L′n ∈ K2 θ2 , mit m ≥ 1 und n ≥ 1, so daß K1 K2 L = { L , . . . , L , L′ , . . . , L′ } 1 m 1 n unifizierbar ist mit einem allgemeinsten Unifikator θ. 4. Dann ist die folgende prädikatenlogische Klausel K eine prädikatenlogische Resolvente von K1 und K2 : U K K = ((K1 θ1 \{ L1 , . . . , Lm }) ∪ (K2 θ2 \{ L′1 , . . . , L′m }))θ. Prof. Dr. Dietmar Seipel 250 Logik für Informatiker Wintersemester 2012/13 Alternative, abstraktere Formulierung • 1. und 2. wie oben. • Für eine Literalmenge L setzen wird L = { L | L ∈ L }. • Es gebe nun nicht–leere Literalmengen L1 ⊆ K1 θ1 , L2 ⊆ K2 θ2 , so daß L1 ∪ L2 unifizierbar ist mit einem allgemeinsten Unifikator θ. • Dann ist die prädikatenlogische Klausel K = ((K1 θ1 \ L1 ) ∪ (K2 θ2 \ L2 ))θ eine prädikatenlogische Resolvente von K1 und K2 . Prof. Dr. Dietmar Seipel K1 K2 U K 251 Logik für Informatiker Wintersemester 2012/13 Beispiel (Prädikatenlogische Resolution) Da die Klauselmenge { K1 , K2 } für die Formel ∀X (p(X) ∧ ¬p(f (X))) ≡ (∀X p(X)) ∧ (∀X ¬p(f (X))) steht, können wir K1 und K2 variablendisjunkt machen. K1 = { p(X) } K1′ ? = { p(X) } K2 = { ¬p(f (X)) } K2′ ? = { ¬p(f (U )) } j K=2 Wir setzen K1′ = K1 , d.h. θ1 = [ ], und K2′ = K2 θ2 , mit θ2 = [X|U ]. Dann ist θ = [X|f (U )] ein allgemeinster Unifikator für L = { p(X), p(f (U )) }, und wir erhalten die Resolvente K = 2 = ∅. Prof. Dr. Dietmar Seipel 252 Logik für Informatiker Wintersemester 2012/13 Beispiel (Prädikatenlogische Resolution) K1 = { p(f (X)), ¬q(Z), p(Z) } K2 = { ¬p(X), r(g(X), a) } ^ K = { ¬q(f (X)), r(g(f (X)), a) } Wir setzen θ1 = [ ], θ2 = [X|U ], θ = [U |f (X)] [Z|f (X)]. θ ist ein allgemeinster Unifikator für L = { p(f (X)), p(Z), p(U ) }. Prof. Dr. Dietmar Seipel 253 Logik für Informatiker Wintersemester 2012/13 Die Resolutionsmengen werden analog zur Aussagenlogik definiert. Definition (Resolutionsmengen) Sei M eine prädikatenlogische Klauselmenge. Res(M ) = M ∪ { K | K ist eine prädikatenlogische Resolvente zweier Klauseln K1 , K2 ∈ M }. Ferner definieren wir: Res 0 (M ) = M, Res n+1 (M ) = Res(Res n (M )), für n ≥ 0, S ∗ Res (M ) = n≥0 Res n (M ). Es gibt meist sehr viele Resolventen, die wir nicht alle aufzählen können. Außerdem ist das Variablendisjunkt–Machen nicht eindeutig. Prof. Dr. Dietmar Seipel 254 Logik für Informatiker Wintersemester 2012/13 Beispiel (Resolutionsmengen) Für die Klauselmenge M = { F1 , F2 , F3 } mit F1 = ¬p(X) ∨ ¬p(f (a)) ∨ q(Y ), F2 = p(Y ), F3 = ¬p(g(b, X)) ∨ ¬q(b), zur Formel F = ∀X ∀ Y (F1 ∧ F2 ∧ F3 ) erhalten wir folgendes: • Je nachdem ob wir bei der Resolution von F1 und F2 beide p–Literale aus F1 gegen F2 = p(Y ) resolvieren oder jeweils nur eines, erhalten wir drei unterschiedliche Resolventen: q(Y ), ¬p(f (a)) ∨ q(Y ), ¬p(X) ∨ q(Y ). • Die Resolution von F2 und F3 über die p–Literale ergibt ¬q(b). Prof. Dr. Dietmar Seipel 255 Logik für Informatiker Wintersemester 2012/13 • Die Resolution von F1 und F3 über die q–Literale ergibt ¬p(X) ∨ ¬p(f (a)) ∨ ¬p(g(b, X ′ )). Um die Klauseln variablendisjunkt zu machen, haben X in F3 durch X ′ ersetzt. Diese Substitution ist natürlich nicht eindeutig. Wir erhalten also die folgenden Resolutionsmengen: Res 0 (M ) = M, Res 1 (M ) = M ∪ { ¬p(f (a)) ∨ q(Y ), ¬p(X) ∨ q(Y ), q(Y ), ¬q(b), ¬p(X) ∨ ¬p(f (a)) ∨ ¬p(g(b, X ′ )) }, Res 2 (M ) = Res 1 (M ) ∪ { 2, . . . }. Res 2 (M ) enthält hier – neben der leeren Klausel 2 – weitere Resolventen, die wir nicht alle aufzählen wollen. Prof. Dr. Dietmar Seipel 256 Logik für Informatiker Wintersemester 2012/13 Resolutionssatz der Prädikatenlogik Sei F eine prädikatenlogische Formel in Skolemform ohne freie Variablen und mit (quantorenfreier) Matrix in KNF, und sei M die zugehörige Klauselmenge. F ist genau dann unerfüllbar, wenn 2 ∈ Res ∗ (M ). Eine Resolutionsableitung verwendet immer nur endlich viele Klauseln. Deswegen ist der Kompaktheitssatz entscheident, der besagt, daß eine unerfüllbare Formelmenge bereits eine endliche unerfüllbare Teilmenge haben muß. Der Beweis des Resolutionssatzes erfolgt durch Lifting des aussagenlogischen Satzes. Prof. Dr. Dietmar Seipel 257 Logik für Informatiker Wintersemester 2012/13 Lifting–Lemma Seien K1 und K2 zwei prädikatenlogische Klauseln, und seien K1′ und K2′ beliebige Grundinstanzen von K1 bzw. K2 . • Sei K ′ eine Resolvente von K1′ und K2′ im aussagenlogischen Sinn. • Dann gibt es eine prädikatenlogische Resolvente K von K1 und K2 , so daß K ′ eine Grundinstanz von K ist. K1 K2 j ? K1′ Prof. Dr. Dietmar Seipel K j ? ′ K ? K2′ 258 Logik für Informatiker Wintersemester 2012/13 Beispiel (Lifting–Lemma) { p(f (X)), ¬q(Z), p(Z) } { ¬p(X), r(g(X), a) } j θ1 = [X|b] [Z|f (b)] θ2 = [X|f (b)] { ¬q(f (X)), r(g(f (X)), a) ? ? { p(f (b)), ¬q(f (b)), p(f (b)) } { ¬p(f (b)), r(g(f (b)), a) } j ? { ¬q(f (b)), r(g(f (b)), a) Prof. Dr. Dietmar Seipel 259 Logik für Informatiker Wintersemester 2012/13 Beispiel (Resolution mit Gruppenaxiomen) Wir schreiben p(X, Y, Z) anstelle von X ◦ Y = Z (Produkt). (1) Abgeschlossenheit: ∀X∀Y ∃Z p(X, Y, Z). (2) Assoziativität: ∀U ∀V ∀W ∀X∀Y ∀Z ( p(X, Y, U ) ∧ p(Y, Z, V ) → (p(X, V, W ) ↔ p(U, Z, W ) ). äquivalent: ∀ . . . ( X ◦ (Y ◦ Z) = W ↔ (X ◦ Y ) ◦ Z = W ). (3) Existenz eines links–neutralen Elements (X) und Existenz von Links–Inversen (Z): ∃X ∀Y (p(X, Y, Y ) ∧ ∃Z p(Z, Y, X)). äquivalent: ∃X ∀Y ((X ◦ Y = Y ) ∧ ∃Z (Z ◦ Y = X)). Prof. Dr. Dietmar Seipel 260 Logik für Informatiker Wintersemester 2012/13 (4) Existenz von Rechts–Inversen: ∃X ∀Y (p(X, Y, Y ) ∧ ∃Z p(Y, Z, X)). äquivalent: ∃X ∀Y ((X ◦ Y = Y ) ∧ ∃Z (Y ◦ Z = X)). Es stellt sich heraus, daß man die Existenz von Rechts–Inversen nicht separat in einem Axiom fordern muß, da sie bereits aus den anderen Gruppenaxiomen (1), (2) und (3) folgt. Um dies zu zeigen, betrachten wir die Negation von (4). Diese ist äquivalent zur BPF ∀X ∃Y ∀Z (¬p(X, Y, Y ) ∨ ¬p(Y, Z, X)). • Da Z nicht in der Teilformel p(X, Y, Y ) vorkommt, kann man in (4) den Existenzquantor ∃Z nach vorne ziehen. • Die Negation vertauscht All– und Existenzquantoren, und sie verwandelt nach De Morgan eine Konjunktion in eine Disjunktion. Prof. Dr. Dietmar Seipel 261 Logik für Informatiker Wintersemester 2012/13 Die Formel zur Assoziativität wird z.B. schematisch wie folgt umgeformt: ∀... ∀... ∀... ∀... ( α → (A ↔ B) ) ≡ ( α → ((A ∧ B) ∨ (¬A ∧ ¬B)) ) ≡ ( α → ((A ∨ ¬B) ∧ (¬A ∨ B)) ) ≡ ( (α ∧ B → A) ∧ (α ∧ A → B) ). Es wurde zweimal verwendet, daß ein negiertes Literal ¬B im Kopf einer Regel als B in den Rumpf verschoben werden kann: ∀ . . . ( A1 ∧ A2 → (A ∨ ¬B) ) ≡ ∀ . . . ( ¬A1 ∨ ¬A2 ∨ A ∨ ¬B ) ≡ ∀ . . . ( A1 ∧ A2 ∧ B → A ). Wir erhalten also aus (2) zwei Implikationen. Die Folgerung { (1), (2), (3) } |= (4) gilt genau dann, wenn { (1), (2), (3), ¬(4) } unerfüllbar ist. Prof. Dr. Dietmar Seipel 262 Logik für Informatiker Wintersemester 2012/13 Klauselform von (1) ∧ (2) ∧ (3) ∧ ¬(4) mit Skolemfunktionen m, e, i, j: (1) Abgeschlossenheit: (a) { p(X, Y, m(X, Y )) }. (2) Assoziativität: (b) { ¬p(X, Y, U ), ¬p(Y, Z, V ), ¬p(X, V, W ), p(U, Z, W ) }, (c) { ¬p(X, Y, U ), ¬p(Y, Z, V ), ¬p(U, Z, W ), p(X, V, W ) }. (3) Existenz eines links–neutralen Elements e und Existenz von Links–Inversen i(Y ) für Gruppenelemente Y : (d) { p(e, Y, Y ) }, (e) { p(i(Y ), Y, e) }. (4) Negation der Existenz von Rechts–Inversen: (f) { ¬p(X, j(X), j(X)), ¬p(j(X), Z, X) }. Prof. Dr. Dietmar Seipel 263 Logik für Informatiker Wintersemester 2012/13 Resolutionsherleitung der leeren Klausel (f ) { ¬p(X, j(X), j(X)), ¬p(j(X), Z, X) } | (d) { p(e, Y, Y ) } ↓ ւ { ¬p(j(e), Z, e) } | (b) { ¬p(X, Y, U ), ¬p(Y, Z, V ), ¬p(X, V, W ), p(U, Z, W ) } ↓ ւ { ¬p(X, Y, j(e)), ¬p(Y, Z, V ), ¬p(X, V, e) } | (e) { p(i(Y ), Y, e) } ↓ ւ { ¬p(i(V ), W, j(e)), ¬p(W, Z, V ) } | (d) { p(e, Y, Y ) } ↓ ւ { ¬p(i(V ), e, j(e)) } Prof. Dr. Dietmar Seipel 264 Logik für Informatiker Wintersemester 2012/13 | (c) { ¬p(X, Y, U ), ¬p(Y, Z, V ), ¬p(U, Z, W ), p(X, V, W ) } ↓ ւ { ¬p(i(V ), Y, U ), ¬p(Y, Z, e), ¬p(U, Z, j(e)) } | (d) { p(e, Y, Y ) } ↓ ւ { ¬p(i(V ), Y, e), ¬p(Y, j(e), e) } | (e) { p(i(Y ), Y, e) } ↓ ւ { ¬p(i(V ), i(j(e)), e) } | (e) { p(i(Y ), Y, e) } ↓ ւ 2 Also folgt das vierte Gruppenaxiom aus den ersten dreien: (1) ∧ (2) ∧ (3) |= (4). Prof. Dr. Dietmar Seipel 265 Logik für Informatiker Wintersemester 2012/13 Da wir in diesem Beispiel ausschließlich Horn–Klauseln vorliegen haben, können wir die Resolutionsherleitung auch in Implikationsnotation schreiben: (f ) ← p(X, j(X), j(X)) ∧ p(j(X), Z, X) | (d) p(e, Y, Y ) ↓ ւ ← p(j(e), Z, e) | (b) p(U, Z, W ) ← p(X, Y, U ) ∧ p(Y, Z, V ) ∧ p(X, V, W ) ↓ ւ ← p(X, Y, j(e)) ∧ p(Y, Z, V ) ∧ p(X, V, e) | (e) p(i(Y ), Y, e) ↓ ւ ← p(i(V ), W, j(e)) ∧ p(W, Z, V ) | (d) p(e, Y, Y ) ↓ ւ ← p(i(V ), e, j(e)) Prof. Dr. Dietmar Seipel 266 Logik für Informatiker Wintersemester 2012/13 | (c) p(X, V, W ) ← p(X, Y, U ) ∧ p(Y, Z, V ) ∧ p(U, Z, W ) ↓ ւ ← p(i(V ), Y, U ) ∧ p(Y, Z, e) ∧ p(U, Z, j(e)) | (d) p(e, Y, Y ) ↓ ւ ← p(i(V ), Y, e) ∧ p(Y, j(e), e) | (e) p(i(Y ), Y, e) ↓ ւ ← p(i(V ), i(j(e)), e) | (e) p(i(Y ), Y, e) ↓ ւ 2 Es handelt sich um eine lineare Herleitung von Goals. Bis auf den ersten Schritt wird immer zuerst das rechteste Atom des Goal–Rumpfes resolviert. Wenn man zuerst mit (b) und dann mit (d) resolvieren würde, dann wäre dies – wie bei der SLD–Resolution in Kapitel 3 – immer der Fall. Prof. Dr. Dietmar Seipel 267 Logik für Informatiker Wintersemester 2012/13 Prädikatenlogik der zweiten Stufe (PL2) Die Prädikatenlogik ist zwar ausdrucksstärker als die Aussagenlogik. Aber trotzdem kann auch im Rahmen der Prädikatenlogik nicht jede mathematische Aussage formuliert werden. Wir erhalten eine noch größere Ausdrucksstärke, wenn wir zusätzlich Quantifizierungen über • Prädikaten– und • Funktionssymbolen erlauben. Beispiel (PL2) F = ∀p ∃f ∀X p(f (X)). Prof. Dr. Dietmar Seipel 268 Logik für Informatiker Wintersemester 2012/13 Exkurs: Induktionsaxiom der natürlichen Zahlen in PL2 Das Induktionsaxiom wurde ursprünglich in der PL2 formuliert: ∀p ( p(0) ∧ ∀N (N ∈ IN0 ∧ p(N ) → p(s(N ))) → ∀N (N ∈ IN0 → p(N )) ). Es verwendet ein 1–stelliges Funktionssymbol s zur Bezeichnung des Nachfolgers einer natürlichen Zahl, und es quantifiziert über ein 1–stelliges Prädikatensymbol p. Das Axiom besagt, daß jede induktive Teilmenge von IN0 – beschrieben durch das Prädikat p – gleich IN0 sein muß: • Falls p für die Zahl 0 gilt, und • falls für alle N ∈ IN0 aus p(N ) auch p(s(N )) folgt, d.h., wenn p für N gilt, dann gilt p auch für N + 1, • dann gilt p für alle N ∈ IN0 . Prof. Dr. Dietmar Seipel 269 Logik für Informatiker Wintersemester 2012/13 Peano–Axiome der natürlichen Zahlen (P1) ∀N ¬ (s(N ) ≡ 0), (P2) ∀N ∀M (s(N ) ≡ s(M ) → N ≡ M ), (P3) ∀p ( p(0) ∧ ∀N (p(N ) → p(s(N ))) → ∀N p(N ) ). (P3) ist eine verkürzte Version des Induktionsaxioms in der PL2. Zusätzlich muß das Gleichheitsprädikat ≡ geeignet axiomatisiert werden. Dann sind alle Modelle A der Gesamtformelmenge F isomorph. Z.B. gibt es das (eindeutige) Herbrand–Modell mit der Grundmenge HUF = { 0, s(0), s(s(0)), . . . } = { sn (0) | n ∈ IN0 }. Das Herbrand–Modell repräsentiert eine natürliche Zahl n ∈ IN als einen Term sn (0) mit n Auftreten des Funktionssymbols s. Wir setzen dazu s0 (0) = 0 und sn+1 (0) = s(sn (0)), für n ∈ IN0 . Prof. Dr. Dietmar Seipel 270 Logik für Informatiker Wintersemester 2012/13 Ein anderes Modell A, das von John von Neumann vorgeschlagen wurde, repräsentiert eine natürliche Zahl n ∈ IN als eine Menge. Dazu werden die Terme sn (0) aus HUF folgendermaßen interpretiert: 0A = ∅, s(t)A = tA ∪ {tA }. Wenn wir (sn (0))A = sn schreiben, dann erhalten wir: s0 = ∅, s1 = s0 ∪ { s0 } = ∅ ∪ { ∅ } = { ∅ } = { s0 }, s2 = s1 ∪ { s1 } = { ∅, { ∅ } } = { s0 , s1 }, sn+1 = sn ∪ { sn } = { s0 , s1 , . . . , sn }. Man kann dagegen zeigen, daß jede Axiomatisierung der natürlichen Zahlen als Peano–Struktur im Rahmen der PL1 Nicht–Standardmodelle aller unendlichen Kardinalitäten zuläßt. Prof. Dr. Dietmar Seipel 271 Logik für Informatiker Wintersemester 2012/13 Mathematische Theorien Eine Theorie ist eine Menge T von Formeln (möglicherweise beschränkt auf solche Formeln, die nur aus bestimmten vorgegebenen Bestandteilen – z.B. bestimmten Prädikaten– und Funktionssymbolen – aufgebaut ist), die gegenüber Folgerbarkeit abgeschlossen ist. D.h., falls { F1 , . . . , Fn } ⊆ T gilt und F eine Folgerung aus { F1 , . . . , Fn } ist, dann gilt auch F ∈T Die Formeln F ∈ T heißen auch Sätze der Theorie. Prof. Dr. Dietmar Seipel 272 Logik für Informatiker Prof. Dr. Dietmar Seipel Wintersemester 2012/13 273 Logik für Informatiker 2.6 Wintersemester 2012/13 Hyperresolution für Hornformeln Eine prädikatenlogische Klausel K = L1 ∨ . . . ∨ Ln ist eine Hornklausel, falls maximal ein Literal Li positiv ist – wie in der Aussagenlogik. Es gibt auch wieder drei interessante Spezialfälle; im folgenden seien A und B1 , . . . , Bm prädikatenlogische Atome: • Eine (definite) Regel ist ein Hornklausel K = A ∨ ¬B1 ∨ . . . ∨ ¬Bm mit genau einem positiven Literal. • Ein (definites) Fakt ist einen Regel K = A ohne negative Literale (m = 0). • Eine Goal (Ziel, Anfrage) ist eine Hornklausel K = ¬B1 ∨ . . . ∨ ¬Bm ohne positives Literal. Prof. Dr. Dietmar Seipel 274 Logik für Informatiker Wintersemester 2012/13 In der Logikprogrammierung verwendet man – aufgrund der Regeln von De Morgan – für Hornklauseln folgende Implikations–Notation: Fakt: A, Regel: A ← B1 ∧ . . . ∧ Bm , m ≥ 0, Goal: ← B1 ∧ . . . ∧ Bm , m ≥ 0. Regeln und Fakten: • Das Atom A heißt Kopf einer Regel r = A ← β. • Die Konjunktion β = B1 ∧ . . . ∧ Bm ist der Rumpf der Regel r. Die Atome Bi , mit 1 ≤ i ≤ m, heißen Rumpfatome. • Falls m = 0 ist, so wird die Regel mit dem Fakt A gleichgesetzt. Goals werden bei der SLD–Resolution (Kapitel 3) für Anfragen benutzt; in diesem Abschnitt zur Hyperresolution verwenden wir keine Goals. Prof. Dr. Dietmar Seipel 275 Logik für Informatiker Wintersemester 2012/13 DATALOG–Programme: verwendet in Deduktiven Datenbanken In der Aussagenlogik enthalten Hornformeln keine Variablensymbole. Als Erweiterung betrachten wir nun in der Prädikatenlogik Hornformeln, bei denen alle Variablensymbole in mindestens einem Rumpfatom vorkommen. Solche Hornformeln nennen wir bereichsbeschränkt. Eine Menge von bereichsbeschränkten Hornformeln in Implikationsnotation nennen wir DATALOG–Programm. • Im strengen Sinne können DATALOG–Programme P auch keine Funktionssymbole enthalten. Dann ist das Herbrand–Universum HUP endlich, und es können nur endlich viele Atome abgeleitet werden. • In praktischen Anwendungen verwendet man aber oft die Erweiterung um Funktionssymbole namens DATALOGfun . Dann liegt es am Programmierer, Dauerschleifen bei der Ableitung zu vermeiden. Prof. Dr. Dietmar Seipel 276 Logik für Informatiker Wintersemester 2012/13 Beispiel (DATALOG–Programm) Die folgenden Regeln bilden ein DATALOG–Programm P zur Berechnung der Vorfahren (ancestor ) aufgrund der Eltern–Relation (parent): ancestor(X, Y ) ← parent(X, Y ), ancestor(X, Y ) ← parent(X, Z) ∧ ancestor(Z, Y ). Zugehörige Eltern–Fakten: parent(a, b), parent(b, c), parent(c, d). Jeder Elternteil ist ein Vorfahre (Regel 1), und jeder Vorfahre der Eltern ist ebenfalls ein Vorfahre (Regel 2). In P ROLOG sind auch Regeln sinnvoll, bei denen Variablensymbole nur im Kopf vorkommen – wie z.B. das Fakt zu hres_iteration/3 am Ende dieses Abschnittes. Prof. Dr. Dietmar Seipel 277 Logik für Informatiker Wintersemester 2012/13 Hyperresolution Die sukzessive, n–fache Anwendung der binären Resolution auf eine Regel A ← B1 ∧ . . . ∧ Bn und geeignete Fakten Ai nennt man Hyperresolution. Die Rumpfatome Bi werden sukzessive mit den Fakten Ai resolviert. A ∨ ¬B1 ∨ ¬B2 ∨ . . . ∨ ¬Bn θ1 A1 ?9 (A ∨ ¬B2 ∨ . . . ∨ ¬Bn ) θ1 θ2 ..?9 . A2 .. . ?9 (A ∨ ¬Bn ) θ1 . . . θn−1 θn An ?9 A θ1 . . . θn Wir nennen das berechnete Fakt A θ1 . . . θn eine Hyperresolvente. Prof. Dr. Dietmar Seipel 278 Logik für Informatiker Wintersemester 2012/13 DATALOG–Fakten enthalten keine Variablensymbole. Deswegen muß man die Fakten Ai und die zwischendurch erhaltenen Regeln nicht variablendisjunkt machen. Es genügt Substitutionen θi zu finden, so daß (Bi θ1 . . . θi−1 ) θi = Ai . Wir bezeichen θ = θ1 . . . θn als die berechnete Substitution. Die berechnete Hyperresolvente Aθ ist dann automatisch auch ein Fakt ohne Variablensymbole, da ja alle Variablensymbole aus dem Regelkopf A in den Rumpfatomen Bi enthalten sind und somit von θ grundinstanziiert werden. Prof. Dr. Dietmar Seipel 279 Logik für Informatiker Wintersemester 2012/13 Beispiel (Hyperresolution) Für das DATALOG–Programm P mit den Regeln anc(X, Y ) ← par(X, Y ), anc(X, Y ) ← par(X, Z) ∧ anc(Z, Y ), und den Eltern–Fakten par(a, b), par(b, c), par(c, d), erhalten wir folgendes: 1. Die Fakten aus P werden mittels einer Hyperresolution durch n = 0 Anwendungen der binären Resolution abgeleitet. Prof. Dr. Dietmar Seipel 280 Logik für Informatiker Wintersemester 2012/13 2. Dann kann aus dem Fakt par (b, c) und der ersten Regel ein Fakt anc(b, c) abgeleitet werden: anc(X, Y ) ← par (X, Y ) θ1 = [X|b] [Y |c] par (b, c) ?) anc(b, c) Die berechnete Substitution ist θ = θ1 = [X|b] [Y |c], und es wird anc(X, Y )θ = anc(b, c) abgeleitet. Ebenso werden die Fakten anc(a, b) und anc(c, d) abgeleitet. Prof. Dr. Dietmar Seipel 281 Logik für Informatiker Wintersemester 2012/13 3. Danach kann aus den Fakten par (a, b) und anc(b, c) und der zweiten Regel das Fakt anc(a, c) abgeleitet werden: anc(X, Y ) ← par (X, Z) ∧ anc(Z, Y ) θ1 = [X|a] [Z|b] ?9 anc(a, Y ) ← anc(b, Y ) θ1 = [Y |c] par (a, b) anc(b, c) ?9 anc(a, c) Die berechnete Substitution ist θ = θ1 θ2 = [X|a] [Z|b] [Y |c], und es wird anc(X, Y )θ = anc(a, c) abgeleitet. Prof. Dr. Dietmar Seipel 282 Logik für Informatiker Wintersemester 2012/13 Ebenso kann das Fakt anc(b, d) abgeleitet werden. 4. Zuletzt kann aus dem Fakt anc(b, d) das Fakt anc(a, d) abgeleitet werden: anc(X, Y ) ← par (X, Z) ∧ anc(Z, Y ) θ1 = [X|a] [Z|b] ?9 anc(a, Y ) ← anc(b, Y ) θ1 = [Y |d] par (a, b) anc(b, d) ?9 anc(a, d) Insgesamt haben wir also die folgenden anc–Fakten abgeleitet: anc(a, b), anc(b, c), anc(c, d), anc(a, c), anc(b, d), anc(a, d). Prof. Dr. Dietmar Seipel 283 Logik für Informatiker Wintersemester 2012/13 In Iteration n ≥ 2 werden also die anc–Fakten zu den Pfaden der Länge n − 1 in der Vorfahrenhierarchie abgeleitet: dY 6 c I 6 b 6 a Die durchgezogenen Linien zeigen die par –Fakten und die entsprechenden anc–Fakten zu den Pfaden der Länge 1. Die gestrichelten Linien zeigen die anc–Fakten zu den Pfaden der Länge 2 und 3. Das Fakt anc(a, d ) zur Länge 3 wird in Iteration 4 aus par (a, b) und anc(b, d ) abgeleitet. Prof. Dr. Dietmar Seipel 284 Logik für Informatiker Wintersemester 2012/13 Hyperresolutionsmengen Sei P ein DATALOG–Programm und I eine Herbrand–Interpretation. 1. Hres(P, I) ist die Menge aller Hyperresolventen, die man aus einer Regel aus P und geeigneten Fakten aus I herleiten kann: 2. Also besteht Hres(P, I) aus allen Grundatomen Aθ, so daß es eine Regel A ← B1 ∧ . . . ∧ Bn ∈ P gibt, mit Bi θ ∈ I, für alle 1 ≤ i ≤ n. 3. Man könnte auch sagen: Hres(P, I) besteht aus allen Grundatomen A, so daß es eine Grundinstanz A ← B1 ∧ . . . ∧ Bn einer Regel aus P gibt, mit Bi ∈ I, für alle 1 ≤ i ≤ n. 4. Wenn gnd (P ) die Menge dieser Grundinstanzen ist, dann gilt: Hres(P, I) = { A | A ← β ∈ gnd (P ) ∧ I |= β }. Für ein festes P , schreibt man anstelle von Hres(P, I) oft auch Hres P (I). Prof. Dr. Dietmar Seipel 285 Logik für Informatiker Wintersemester 2012/13 Man kann auch wieder Potenzen Hres n (P ) bilden: Hres 0 (P ) = ∅, Hres n+1 (P ) = Hres(P, Hres n (P )), S ∗ Hres (P ) = n∈IN+ Hres n (P ). Offensichtlich gilt auch hier die Monotonie–Eigenschaft: P ⊆ P ′ ∧ I ⊆ I ′ ⇒ Hres(P, I) ⊆ Hres(P ′ , I ′ ). Also kann man wieder durch vollständige Induktion folgendes zeigen: Hres n (P ) ⊆ Hres n+1 (P ). Wir schreiben Fakten in den Hyperresolutionsmengen als Atome. Prof. Dr. Dietmar Seipel 286 Logik für Informatiker Wintersemester 2012/13 Beispiel (Hyperresolutionsmengen) Für das DATALOG–Programm P mit den Regeln anc(X, Y ) ← par(X, Y ), anc(X, Y ) ← par(X, Z) ∧ anc(Z, Y ), und den Eltern–Fakten par(a, b), par(b, c), par(c, d), erhalten wir folgendes: Hres 0 (P ) = ∅, Hres 1 (P ) = { par (a, b), par (b, c), par(c, d) }, Hres 2 (P ) = Hres 1 (P ) ∪ { anc(a, b), anc(b, c), anc(c, d) }, Hres 3 (P ) = Hres 2 (P ) ∪ { anc(a, c), anc(b, d) }, Hres 4 (P ) = Hres 3 (P ) ∪ { anc(a, d) }. Prof. Dr. Dietmar Seipel 287 Logik für Informatiker Wintersemester 2012/13 Exkurs: Hyperresolution in P ROLOG Wir kodieren eine DATALOG–Regel A ← B1 ∧ . . . ∧ Bn als eine Paar–Struktur [A]-[B1 ,...,Bn ]. Die Liste [A] enthält das Kopfatom, die Liste [B1 ,...,Bn ] die Rumpfatome. Ein Fakt, d.h., eine Regel ohne Rumpfatome (n = 0), kann auch kurz als [A] kodiert werden. parse_rule(Head-Body, Head-Body) :!. parse_rule(Head, Head-[]). parse_rule/2 zerlegt eine DATALOG–Regel in Kopf und Rumpf. Dann wird aus einem Fakt [A] eine Paar–Struktur [A]-[] mit einem leeren Rumpf. Prof. Dr. Dietmar Seipel 288 Logik für Informatiker Wintersemester 2012/13 Das Prädikat hres/3 generiert zu einem DATALOG–Programm Program und einer Herbrand–Interpretation Int_1 eine neue Herbrand–Interpretation Int_2 bestehend aus den Hyperresolventen. % hres(+Program, +Int_1, -Int_2) <hres(Program, Int_1, Int_2) :findall( A, ( member(Rule, Program), parse_rule(Rule, [A]-Body), members(Body, Int_1) ), Int_2 ). Der Aufruf findall(A,Goal,Int_2) sammelt über Backtracking alle Hyperresolventen A in einer Liste Int_2. Das D DK erlaubt sogar folgende Mengenschreibweise: Int_2 <= {A|Goal}. Prof. Dr. Dietmar Seipel 289 Logik für Informatiker Wintersemester 2012/13 Der Aufruf member(B, Int_1) für ein Atom B und eine Herbrand–Interpretation Int_1 findet geeignete Grundinstanzen von B, die in Int_1 liegen. ?- Int_1 = [ par(a, b), par(b, c), par(c, d), anc(b, c), anc(b, d), anc(c, d) ], B = par(X, Z), member(B, Int_1). B = par(a, b), X = a, Z = b ; B = par(b, c), X = b, Z = c ; B = par(c, d), X = c, Z = d ; No ?- Prof. Dr. Dietmar Seipel 290 Logik für Informatiker Wintersemester 2012/13 Der Aufruf members(Body, Int_1) in hres/3 kann wie folgt implementiert werden: Variante 1 (foreach–do–Schleife): members(Xs, Ys) :foreach(X, Xs) do member(X, Ys). Variante 2 (Listen–Rekursion): members([X|Xs], Ys) :member(X, Ys), members(Xs, Ys). members([], _). Prof. Dr. Dietmar Seipel 291 Logik für Informatiker Wintersemester 2012/13 Wenn man in der rekursiven Implementierung X=B1 und Xs=[B2,...,Bn] setzt, so ergibt sich wegen [B1,B2,...,Bn]=[B1|[B2,...,Bn]] folgendes: aus dem Aufruf members([B1,B2,...,Bn],Ys) wird ein Aufruf member(B1,Ys) und ein rekursiver Unteraufruf members([B2,...,Bn],Ys) erzeugt. Per Induktion kann man zeigen, daß daraus wiederum die Aufrufe member(B2,Ys), . . . , member(Bn,Ys) erzeugt werden. Für feste Listenlänge n könnte man members/2 also wie folgt implementieren: members([B1,...,Bn], Ys) :member(B1, Ys), ..., member(Bn, Ys). Die foreach–do–Schleife hat denselben Effekt. Prof. Dr. Dietmar Seipel 292 Logik für Informatiker Wintersemester 2012/13 Innerhalb des findall/3 wird jede Regel Rule aus Program zunächst mittels parse_rule/2 in Kopf und Rumpf zerlegt, und dann wird Body so instanziiert, daß alle instanziierten Rumpfatome in Int_1 liegen. ?- Rule = [anc(X,Y)]-[par(X,Z),anc(Z,Y)], parse_rule(Rule, [A]-Body), Int_1 = [ par(a,b), par(b,c), par(c,d), anc(b,c), anc(b,d), anc(c,d) ], members(Body, Int_1). X=a, Y=c, Z=b, A=anc(a,c), Body=[par(a,b),anc(b,c)] ; X=a, Y=d, Z=b, A=anc(a,d), Body=[par(a,b),anc(b,d)] ; X=b, Y=d, Z=c, A=anc(b,d), Body=[par(b,c),anc(c,d)] Nach dem Aufruf von parse_rule/2 ist Body=[par(X,Z),anc(Z,Y)] . Erst durch den Aufruf von members/2 wird Body weiter gebunden. Prof. Dr. Dietmar Seipel 293 Logik für Informatiker Wintersemester 2012/13 Dies instanziiert auch den Kopf A der Regel zu einer Hyperresolvente. Über Backtracking werden für alle Regeln alle Hyperresolventen gefunden. hres/3 berechnet durch Kombination der par–Fakten und der anc–Fakten aus der Interpretation Int_1 eine neue Interpretation Int_2: ?- Program = [ [anc(X, Y)]-[par(X, Z), anc(Z, Y)] ], Int_1 = [ par(a, b), par(b, c), par(c, d), anc(b, c), anc(b, d), anc(c, d) ], hres(Program, Int_1, Int_2). Int_2 = [ anc(a, c), anc(a, d), anc(b, d) ] Prof. Dr. Dietmar Seipel 294 Logik für Informatiker Wintersemester 2012/13 Theorem 2.1 (Charakterisierung von Herbrand–Modellen) Sei P ein DATALOG–Programm und I eine Herbrand–Interpretation von P . I ist ein Herbrand–Modell von P , g.d.w. gilt Hres(P, I) ⊆ I. Beweis: “⇐” Sei I eine Herbrand–Interpretation von P mit Hres(P, I) ⊆ I. Sei A ← β eine Grundinstanz einer Regel aus P mit I |= β. Dann gilt A ∈ Hres(P, I), und wegen Hres(P, I) ⊆ I folgt A ∈ I. Also ist I ein Herbrand–Modell von P . “⇒” Sei I ein Herbrand–Modell von P . Für jedes A ∈ Hres(P, I) gibt es eine Grundinstanz einer Regel A ← β aus P mit I |= β. Da I ein Herbrand–Modell von P ist, folgt sofort A ∈ I. Also gilt Hres(P, I) ⊆ I. Prof. Dr. Dietmar Seipel 295 Logik für Informatiker Wintersemester 2012/13 Minimales Herbrand–Modell Für ein DATALOG–Programm P kann man folgendes zeigen: 1. Jedes Herbrand–Modell muß Hres ∗ (P ) enthalten. 2. Hres ∗ (P ) ist ein Herbrand–Modell: Hres(P, Hres ∗ (P )) ⊆ Hres ∗ (P ). Also ist Hres ∗ (P ) das eindeutige minimale Herbrand–Modell von P . Wir bezeichnen es mit MP . Eine definite Regel A ← B1 ∧ . . . ∧ Bm besteht aus Atomen A und B1 , . . . , Bm , mit m ∈ IN0 . Im Vergleich zu DATALOG gibt es keine Bedingung für die Vorkommen der Variablensymbole. Auch beliebige definite Logikprogramme P (Mengen definiter Regeln) haben ein eindeutiges minimales Herbrand–Modell MP . Prof. Dr. Dietmar Seipel 296 Logik für Informatiker Wintersemester 2012/13 Exkurs Für DATALOG kann das minimale Herbrand–Modell MP = Hres ∗ (P ) durch Iteration von hres/3 berechnet werden: % hres_iteration(+Program, -Interpretation) <hres_iteration(Program, Interpretation) :hres_iteration(Program, [], Interpretation). hres_iteration(Program, Int_1, Int_2) :writeln(Int_1), hres(Program, Int_1, Int_3), sort(Int_3, Int_4), Int_4 \= Int_1, !, hres_iteration(Program, Int_4, Int_2). hres_iteration(Program, Int, Int). Prof. Dr. Dietmar Seipel 297