Logik für Informatiker 3. Prädikatenlogik Teil 2 11.06.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: [email protected] 1 Prädikatenlogik Reichere Struktur • Objekte (Elemente) Leute, Häuser, Zahlen, Theorien, Farben, Jahre, ... • Relationen (Eigenschaften) rot, rund, prim, mehrstöckig, ... ist Bruder von, ist größer als, ist Teil von, hat Farbe, besitzt, .. =, ≥, ... • Funktionen +, Mitte von, Vater von, Anfang von, ... 2 Syntax der Prädikatenlogik: Logische Zeichen Wie in der Aussagenlogik ⊤ Symbol für die Formel “wahr” (Formel, die immer wahr ist) ⊥ Symbol für die Formel “falsch” (Formel, die immer falsch ist) ¬ Negationssymbol (“nicht”) ∧ Konjunktionssymbol (“und”) ∨ Disjunktionssymbol (“oder”) → Implikationssymbol (“wenn . . . dann”) ↔ Symbol für Äquivalenz (“genau dann, wenn”) ( ) die beiden Klammern Quantoren Allquantor (“für alle”) Existenzquantor (“es gibt”) 3 E A Syntax der Prädikatenlogik: Vokabular Definition Prädikatenlogische Signatur: Paar Σ = (Ω, Π) wobei: • Ω eine Menge von Funktionssymbolen f mit Stelligkeit n ≥ 0, geschrieben f /n, z.B. 2/0, koblenz/0, c/0, sqrt/1, leftLegOf/1, +/2, -/2 • Π Menge von Prädikatensymbolen p mit Stelligkeit m ≥ 0, geschrieben p/m z.B. bruderVon/1, > /2, ≈ /2, . . . Bemerkung: Das Gleichheitsprädikat ≈ kann (muss aber nicht) enthalten sein. Es wird infix notiert. 4 Syntax der Prädikatenlogik: Vokabular Definition. Funktionssymbole mit Stelligkeit n = 0 heißen Konstante z.B. 2, koblenz, c Definition. Prädikatensymbole mit Stelligkeit n = 0 heißen Aussagenvariablen Variablen Wir nehmen an, dass X eine vorgegebene Menge von abzählbar unendlich vielen Symbolen ist, die wir für (die Bezeichnung von) Variablen verwenden. 5 Terme Terme über Σ (bzw. Σ-Terme) werden nach folgenden syntaktischen Regeln gebildet: s, t, u, v ::= | x ,x ∈X (Variable) f (s1 , ..., sn ) , f /n ∈ Ω (F-Terme) Mit TΣ (X ) bezeichnen wir die Menge der Σ-Terme Menge TΣ (X ) der Σ-Terme: Die kleinste Menge mit: X ⊆ TΣ (X ) Wenn • f ∈ Ω, • n ist die Stelligkeit von f • t1 , . . . , tn ∈ TΣ (X ) dann f (t1 , . . . , tn ) ∈ TΣ (X ) 6 Atome Atome (Atomare Formeln) über Σ genügen dieser Syntax: A, B h ::= | p(s1 , ..., sm ) , p/m ∈ Π (s ≈ t) (Gleichung) i Ist m = 0, so handelt es sich bei p um eine Aussagenvariable. Wir verwenden insbesondere die Buchstaben P, Q, R, S, um Aussagenvariablen zu bezeichnen Literale: L ::= | Klauseln: C, D A (positives Literal) ¬A (negatives Literal) ::= | ⊥ L1 ∨ . . . ∨ Lk , k ≥ 1 (leere Klausel) (nichtleere Klausel) 7 Formeln Formeln über Σ: ::= ⊥ (Falsum) | ⊤ (Verum) | A (atomare Formel) | ¬F | (F ∧ G ) (Konjunktion) | (F ∨ G ) (Disjunktion) | (F → G ) (Implikation) | (F ↔ G ) (Äquivalenz) | | (Negation) A xF (Allquantifizierung) E F, G, H xF (Existenzquantifizierung) 8 Formeln Menge ForΣ der Formeln über Σ: Die kleinste Menge, die • Alle atomare Formeln enthält, • ⊤ ∈ ForΣ , ⊥ ∈ ForΣ , • Wenn F , G ∈ ForΣ , dann auch ¬F , F ∧ G , F ∨ G , F → G , F ↔ G ∈ ForΣ , • Wenn F ∈ ForΣ und x ∈ X , dann E A xF ∈ ForΣ , xF ∈ ForΣ 9 Gebundene und freie Variablen A E In QxF , Q ∈ { , }, heißt F der Bindungsbereich des Quantors Qx. Ein Auftreten einer Variablen x heißt gebunden, wenn es zum Bindungsbereich eines Quantors Qx gehört. Alle anderen Auftreten von Variablen heißen frei. Formeln ohne freie Variablen heißen Satzformen. Variablenfreie Formeln heißen Grundformeln. 10 Beispiel Bindungsbereich y Bind. z }| { ( x p(x) A z }| { → q( x , y )) |{z} frei 11 A Beispiel E A p(z) → x (q(x, z) ∧ z r (y , z)) 12 Beispiel E A p(z) → x (q(x, z) ∧ z r (y , z)) • x gebunden • y frei • z frei und gebunden 13 Substitution eines Termes für eine Variable Mit F [s/x] bezeichnen wir das Resultat der Substitution aller freien Auftreten von x in F durch den Term s. F [s/x] sei durch strukturelle Induktion über den Aufbau von F wie folgt definiert: x[s/x] ′ x [s/x] f (s1 , . . . , sn )[s/x] ⊥[s/x] ⊤[s/x] p(s1 , . . . , sn )[s/x] (u ≈ v )[s/x] ¬F [s/x] (F ρG )[s/x] (QxF )[s/x] (QyF )[s/x] = = = = = = = = = = = s ′ ′ x ; falls x 6= x f (s1 [s/x], . . . , sn [s/x]) ⊥ ⊤ p(s1 [s/x], . . . , sn [s/x]) (u[s/x] ≈ v [s/x]) ¬(F [s/x]) (F [s/x]ρG [s/x]) ; für alle binären Junktoren ρ ∈ {∧, ∨, →, ↔} QxF Qz((F [z/y ])[s/x]) ; falls y 6= x, z neue Variable 14 Problematik Der Grund für die Umbenennung der gebundenen Variablen y in eine neue unbenutzte“ Variable z ist die Vermeidung des Einfangens freier Variablen ” in s. Sollte y in s auftreten, wären sonst diese Auftreten nach erfolgter Substitution gebunden. 15 Beispiel Σ = (Ω, Π), mit Ω = {f /1, g /2, a/0}, Π = {p/2, ≈ /2} E A ( x(p(x, g (f (x), y ))) ∧ z(x ≈ g (y , z)))[g (y , z)/x] A = A E = A E = A E x(p(x, g (f (x), y )))[g (y , z)/x] ∧ x(p(x, g (f (x), y ))) ∧ x(p(x, g (f (x), y ))) ∧ x(p(x, g (f (x), y ))) ∧ E = z(x ≈ g (y , z))[g (y , z)/x] u(((x ≈ g (y , z))[u/z])[g (y , z)/x]) u((x ≈ g (y , u))[g (y , z)/x]) u(g (y , z) ≈ g (y , u)) 16 Substitution allgemein Definition. Substitutionen sind Abbildungen σ : X → TΣ (X ), so dass der Bereich von σ, d.h. die Menge dom(σ) = {x ∈ X | σ(x) 6= x}, endlich ist. Die Menge der eingeführten Variablen, d.h. der Variablen die in einem der Terme σ(x), für x ∈ dom(σ), auftreten, wird mit codom(σ) bezeichnet. Substitutionen schreiben wir auch als [s1 /x1 , . . . , sn /xn ], xi pw. verschieden, und meinen dann die Abbildung [s1 /x1 , . . . , sn /xn ](y ) = ( si , falls y = xi y, sonst Ab jetzt schreiben wir für die Applikation σ(x) von Substitutionen xσ. 17 Anwendung einer Substitution Homomorphe“ Fortsetzung von σ auf Terme und Formeln: ” f (s1 , . . . , sn )σ = f (s1 σ, . . . , sn σ) ⊥σ = ⊥ ⊤σ = ⊤ p(s1 , . . . , sn )σ = p(s1 σ, . . . , sn σ) (u ≈ v )σ = (uσ ≈ v σ) ¬F σ = ¬(F σ) (F ρG )σ = (F σρG σ) ; für alle binären Junktoren ρ (QxF )σ = Qz((F [z/x])σ); wobei z neue“ Variable ” Abänderung einer Substitution σ an x zu t: ( t, σ[x → t](y ) = σ(y ), falls y = x sonst 18 Beispiel Σ = (Ω, Π), mit Ω = {f /1, g /2, a/0}, Π = {p/2, ≈ /2} E A ( x(p(x, g (f (x), y ))) ∧ z(x ≈ g (y , z)))[g (y , z)/x, f (x)/y , a/z] = E A = A = A E = A E x(p(x, g (f (x), y )))[g (y , z)/x, f (x)/y , a/z] ∧ z(x ≈ g (y , z))[g (y , z)/x, f (x)/y , a/z] E u(p(u, g (f (u), f (x)))) ∧ u(p(u, g (f (u), f (x)))) ∧ u(p(u, g (f (u), f (x)))) ∧ v (((x ≈ g (y , z))[v /z])[g (y , z)/x, f (x)/y , a/z]) v ((x ≈ g (y , v ))[g (y , z)/x, f (x)/y , a/z]) v (g (y , z) ≈ g (f (x), u)) 19 Semantik Semantik geben bedeutet für logische Systeme, einen Begriff von Wahrheit für Formeln zu definieren. Das hier für die Prädikatenlogik zu definierende Konzept geht auf Tarski zurück. In der klassischen Logik (zurückgehend auf Aristoteles) gibt es nur“ die ” zwei Wahrheitswerte wahr“ und falsch“, die wir mit 1 und 0 bezeichnen. ” ” 20 Strukturen Definition. Eine Σ-Struktur (bzw. Σ-Interpretation bzw. Σ-Modell) ist ein Tripel A = (U, (fA : U n → U)f /n∈Ω , (pA ⊆ U m )p/m∈Π ) wobei U 6= ∅ eine Menge, genannt Universum von A. Oft identifizieren wir U mit A, wenn die Interpretation der Funktions- und Prädikatensymbole eindeutig aus dem Kontext hervorgeht. Mit Σ-Str bezeichnen wir die Menge aller Σ-Strukturen. 21 Valuationen Variablen für sich haben keine Bedeutung. Hierfür müssen Wertebelegungen (Valuationen) explizit oder implizit aus dem Kontext zur Verfügung stehen. Definition. Unter einer (Variablen-) Belegung oder einer Valuation (über einer Σ-Struktur A) versteht man eine Abbildung β:X →U 22 Wert eines Terms in A bzgl. β Durch strukturelle Induktion definieren wir: A(β)(x) = β(x), x ∈X A(β)(f (s1 , . . . , sn )) = fA (A(β)(s1 ), . . . , A(β)(sn )), f /n ∈ Ω 23 Wert eines Terms in A bzgl. β Wert eines Terms in A bzgl. β, A(β)(t): • Falls t = x ∈ X : A(β)(t) = β(x) • Falls t = c eine Konstante: A(β)(t) = cA 24 Wert eines Terms in A bzgl. β Wert eines Terms in A bzgl. β, A(β)(t): • Falls t = x ∈ X : A(β)(t) = β(x) • Falls t = c eine Konstante: A(β)(t) = cA • Falls t = f (t1 , . . . , tn ): A(β)(t) = fA (A(β)(t1 ), . . . , A(β)(tn )) 25 Wert eines Terms in A bzgl. β Wert eines Terms in A bzgl. β, A(β)(t): • Falls t = x ∈ X : A(β)(t) = β(x) • Falls t = c eine Konstante: A(β)(t) = cA • Falls t = f (t1 , . . . , tn ): A(β)(t) = fA (A(β)(t1 ), . . . , A(β)(tn )) Beispiel: Σ = ({+/2, 0/0}, {≤, ≈}) N = (N, {0N , +N : N × N → N}, {≤N ⊆ N × N, ≈N }) 0N = 0 ∈ N, +N (n1 , n1 ) = n1 + n2 ∈ N β : {x, y , z} → N mit β(x) = 5, β(y ) = 10, β(z) = 3 N (β)((x + (y + z)) + (z + 0)) = = (β(x) +N (β(y ) +N β(z))) +N (β(z) +N 0N ) = = (5 + (10 + 3)) + (3 + 0) = 21 26