Grundlagen der Programmierung (Vorlesung 8) Ralf Möller, FH-Wedel z Vorige Vorlesung y Motivation der Prädikatenlogik y Syntax der Prädikatenlogik z Inhalt dieser Vorlesung y Semantik der Prädikatenlogik y Prädikatenlogische Entscheidungsprobleme Struktur, passende Strukturen Eine Struktur ist ein Paar A = (UA ; IA ) wobei UA eine beliebige aber nicht leere Menge ist, die die Grundmenge von A (oder der Grundbereich, der Individuenbereich, das Universum) genannt wird. Ferner ist IA eine Abbildung, die jedem k–stelligen Prädikatensymbol P (das im Definitionsbereich von IA liegt) ein k–stelliges Prädikat über UA zuordnet, jedem k–stelligen Funktionssymbol f (das im Definitionsbereich von IA liegt) eine k–stellige Funktion auf UA zuordnet, jeder Variablen x (sofern IA auf x definiert ist) ein Element der Grundmenge UA zuordnet. Sei F eine Formel und A = (UA ; IA ) eine Struktur. A heißt zu F passend, falls IA für alle in F vorkommenden Prädikatsymbole, Funktionssymbole und freien Variablen definiert ist. 45 Mit anderen Worten, der Definitionsbereich von I A ist eine Teilmenge von fPik ; fik; xi ji = 1; 2; 3; : : : und k = 0; 1; 2:; : : : g, und der Wertebereich von IA ist eine Teilmenge aller Prädikate und Funktionen auf UA , sowie der Elemente von UA . Wir schreiben abkürzend statt IA (P) einfach PA , statt IA ( f ) einfach f A und statt IA (x) einfach xA . 46 Werte von Termen und Formeln in einer Struktur Sei F eine Formel und A eine zu F passende Struktur. Für jeden Term t, den man aus den Bestandteilen von F bilden kann (also aus den Variablen und Funktionssymbolen), definieren wir nun den Wert von t in der Struktur A , den wir mit A (t ) bezeichnen. Die Definition ist wieder induktiv. 1. Falls t eine Variable ist (also t = x), so ist A (t ) = x A . 2. Falls t die Form hat t = f (t 1; : : : ; tk ) wobei t1 ; : : : ; tk Terme und f ein k–stelliges Funktionssymbol ist, so ist A (t ) = f A (A (t1 ); : : : ; A (tk )). Der Fall 2 schließt auch die Möglichkeit ein, daß f nullstellig ist, als t die Form hat t = a. In diesem Fall ist also A (t ) = a A . 47 Auf analoge Weise definieren wir (induktiv) den (Wahrheits–) Wert der Formeln F unter der Struktur A , wobei wir ebenfalls die Bezeichnung A (F ) verwenden. Falls F die Form hat F = P(t 1 ; : : : ; tk ) mit den Termen t1 ; : : : ; tk und k–stelligem Prädikatsymbol P, so ist 8 <1 A (F ) = :0 ; ; Falls F die Form F = f alls (A (t1 ); : : : ; A (tk )) 2 PA sonst :G hat, so ist 8 <1 A (F ) = :0 Falls F die Form F = (G 8 <1 A (F ) = :0 ; f alls A (G) = 0 ; sonst ^ H ) hat, so ist ; f alls A (G) = 1 und A (H ) = 1 ; sonst 48 Falls F die Form F = (G 8 <1 A (F ) = :0 Falls F die Form F 8 <1 A (F ) = :0 ; ; ; ; ; f alls A (G) = 1 oder A (H ) = 1 ; sonst = 8xG hat, so ist f alls f ür alle d 2 UA gilt : A[x=d ] (G) = 1 sonst Falls F die Form F 8 <1 A (F ) = :0 _ H ) hat, so ist = 9xG hat, so ist f alls es ein d 2 UA gibt mit : A[x=d ] (G) = 1 sonst 0 Hierbei bedeutet A[x=d ] diejenige Struktur A , die überall mit A 0 identisch ist, bis auf die Definition von x A . Es sei nämlich xA = d, wobei d UA = UA — unabhängig davon, ob IA auf x 0 2 0 definiert ist oder nicht. 49 Beispiel Es sei P ein zweistelliges Prädikatensymbol, Q ein einstelliges Prädikatensymbol, a eine Konstante, f ein einstelliges Funktionssymbol, und es seien x, y, z Variablen. Eine Struktur, die diesen Symbolen Werte zuordnet, ist gegeben durch A = (UA, IA) mit UA = {7, 8, 9}. Die Interpretationsfunktion IA ist wie folgt definiert: aA = 7 xA = 8 yA = 9 QA = {7, 9} PA = {(7, 8), (7, 9), (8, 9)} fA = {(7, 8), (8, 9), (9, 7)} Beispiel (2) z Zu bestimmen ist der Wahrheitswert der folgenden Formeln bezüglich A: x 1. (Q(a) Ÿ P(a, x)) Æ (Q(f(a)) ⁄ P(a, y)) x 2. P(a, y) Ÿ $z P(z, a) x 3. "z (Q(z) ⁄ ÿP(a, z)) Modell, Gültigkeit, Erfüllbarkeit Falls für eine Formel F und eine zu F passende Struktur A gilt A (F ) = 1, so schreiben wir wieder A j= F. Sprechweise: F gilt in A oder A ist Modell für F. Falls jede zu F passende Struktur ein Modell für F ist, so schreiben wir j= F, andernfalls 6j= F. Sprechweise: F ist (allgemein–)gültig). Falls es mindestens ein Modell für die Formel F gibt, so heißt F erfüllbar, andernfalls unerfüllbar. 50 Aufgabe G: Gültig E: Erfüllbar, aber nicht gültig U: Unerfüllbar G E 8xP(a) 9x(:P(x) _ P(a)) P(a) ! 9xP(x) P(x) ! 9xP(x) 8xP(x) ! 9xP(x) 8xP(x) ^:8yP(y) 8x(P(x x) ! 9x8yP(x y)) 8x8y(x = y ! f (x) = f (y)) 8x8y( f (x) = f (y) ! x = y 9x9y9z( f (x) = y ^ f (x) = z ^ y 6= z) ; ; 51 U Zusammenfassung, Kernpunkte ❚ Prädikatenlogik ❙ Syntax, Formeln ❙ Semantik, Belegung, Modell ❙ Entscheidungsprobleme ❙ Äquivalente Transformation von Formeln Was kommt beim nächsten Mal? ❚ Logik und die systematische Entwicklung von Programmen ❚ Spezifikation und Programmverifikation