Logik für Informatiker 3. Prädikatenlogik Teil 3 12.06.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: [email protected] 1 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. ” ” 2 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. 3 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 4 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 ∈ Ω 5 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 6 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 )) 7 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 8 Wahrheitswert einer Formel in A bzgl. β Die Menge der Wahrheitswerte sei {0, 1}. A(β) : ForΣ → {0, 1} wird induktiv über Aufbau von F wie folgt definiert: A(β)(⊥) = 0 A(β)(⊤) = 1 9 Wahrheitswert einer Formel in A bzgl. β A(β)(p(s1 , . . . , sn )) = 1 g.d.w. (A(β)(s1 ), . . . , A(β)(sn )) ∈ pA A(β)(s ≈ t) = 1 g.d.w. A(β)(s) = A(β)(t) 10 Wahrheitswert einer Formel in A bzgl. β A(β)(¬F ) = 1 g.d.w. A(β)(F ) = 0 A(β)(F ρG ) = Bρ (A(β)(F ), A(β)(G )) mit Bρ die ρ zugeordnete Boolesche Funktion 11 Wahrheitswert einer Formel in A bzgl. β A A(β)( xF ) = min{A(β[x → a])(F )} = a∈U E A(β)( xF ) = max{A(β[x → a])(F )} = a∈U ( 1 falls A(β[x 7→ a])(F ) = 1 für alle a ∈ U 0 sonst 8 > > < 1 > > : 0 falls A(β[x 7→ a])(F ) = 1 für mindestens ein a ∈ U sonst Für x ∈ X und a ∈ U bezeichne β[x → a] : X → U die Belegung, mit 8 <a falls x = y β[x → a](y ) := :β(y ) sonst 12 Beispiel UN = {0, 1, 2, . . .} 0N = 0 ∈ UN sN : UN → UN , sN (n) = n + 1 +N : UN2 → UN , +N (n, m) = n + m ∗N : UN2 → UN , ∗N (n, m) = n ∗ m ≤N = “kleiner-gleich” ⊆ UN2 <N = “kleiner” ⊆ UN2 Mit β(x) = 1, β(y ) = 3 ergibt sich beispielsweise: N(β)(s(x) + s(0)) = 3 N(β)(x + y ≈ s(y )) = 1 A = 1 N(β)( z z ≤ y ) A = 0 E A = 1 N(β)( x, y (x + y ≈ y + x)) N(β)( x y x < y ) 13 Modelle, Gültigkeit, Erfüllbarkeit 14 Gültigkeit und Erfüllbarkeit Definition. F gilt in A unter β: A, β |= F g.d.w. A(β)(F ) = 1 Definition. F gilt in A (A ist Modell von F ): A |= F g.d.w. A, β |= F , für alle β : X → UA Definition. F ist (allgemein-) gültig: |= F g.d.w. A |= F , für alle A ∈ Σ-Str F heißt erfüllbar gdw. es A und β gibt, so daß A, β |= F . Sonst heißt F unerfüllbar. 15 Folgerung und Äquivalenz Definition. F impliziert G (oder G folgt aus F ), i.Z. F |= G gdw. für alle A ∈ Σ-Str und β : X → UA gilt: Falls A, β |= F , so A, β |= G . Definition. F und G sind äquivalent gdw. für alle A ∈ Σ-Str und β : X → UA gilt: A, β |= F genau dann, wenn A, β |= G . Satz. F impliziert G gdw. (F → G ) ist gültig Satz. F und G sind äquivalent gdw. (F ↔ G ) ist gültig. Erweiterung auf Formelmengen N in natürlicher Weise, z.B.: N |= G gdw. für alle A ∈ Σ-Str und β : X → UA : falls A, β |= F , für alle F ∈ N, so A, β |= G . 16 Gültigkeit und Unerfüllbarkeit Nachweis von Gültigkeit (und damit Folgerung oder Äquivalenz) durch Unerfüllbarkeitstest: F gültig genau dann, wenn ¬F unerfüllbar 17 Universelle Quantifizierung Intuition A xF entspricht in etwa der (unendlichen) Konjunktion aller Instanzen von F 18 Universelle Quantifizierung Intuition A xF entspricht in etwa der (unendlichen) Konjunktion aller Instanzen von F Beispiel: A x(studiertIn(x, koblenz) → schlau(x)) entspricht: (studiertIn(student1, koblenz) → schlau(student1)) ∧ (studiertIn(student2, koblenz) → schlau(student2)) ∧ ... ∧ (studiertIn(koblenz, koblenz) → schlau(koblenz)) 19 Universelle Quantifizierung Faustregel A → ist der logische (Top-level-)Operator mit 20 Universelle Quantifizierung Faustregel A → ist der logische (Top-level-)Operator mit Häufiger Fehler A Verwendung von ∧ mit 21 Universelle Quantifizierung Faustregel A → ist der logische (Top-level-)Operator mit Häufiger Fehler A Verwendung von ∧ mit Beispiel “Alle, die in Koblenz studieren, sind schlau” x(studiertIn(x, koblenz) → schlau(x)) A Falsch: A Richtig: x(studiertIn(x, koblenz) ∧ schlau(x)) “Alle studieren in Koblenz und sind schlau” 22 Universelle Quantifizierung Faustregel A → ist der logische (Top-level-)Operator mit Häufiger Fehler A Verwendung von ∧ mit Beispiel “Alle, die in Koblenz studieren, sind schlau” x(studiertIn(x, koblenz) → schlau(x)) A Falsch: A Richtig: x(studiertIn(x, koblenz) ∧ schlau(x)) “Alle studieren in Koblenz und sind schlau”, d.h. “Alle studieren in Koblenz und alle sind schlau” 23 Existenzielle Quantifizierung Intuition. E xF entspricht in etwa der (unendlichen) Disjunktion aller Instanzen von F . 24 Existenzielle Quantifizierung Intuition. E xF entspricht in etwa der (unendlichen) Disjunktion aller Instanzen von F . Beispiel: E x(studiertIn(x, landau) ∧ schlau(x)) entspricht (studiertIn(student1, landau) ∧ schlau(student1)) ∨ (studiertIn(student2, landau) ∧ schlau(student2)) ∨ ... ∨ (studiertIn(landau, landau) ∧ schlau(landau)) 25 Universelle Quantifizierung Faustregel E ∧ ist der logische (Top-level-)Operator mit 26 Universelle Quantifizierung Faustregel E ∧ ist der logische (Top-level-)Operator mit Häufiger Fehler E Verwendung von → mit 27 Universelle Quantifizierung Faustregel E ∧ ist der logische (Top-level-)Operator mit Häufiger Fehler E Verwendung von → mit Beispiel “Es gibt jemand, der in Landau studiert und schlau ist” x(studiertIn(x, landau) ∧ schlau(x)) E Falsch: E Richtig: x(studiertIn(x, landau) → schlau(x)) “Es gibt jemanden, der, falls er/sie in Landau studiert, schlau ist” Trivial wahr, wenn es irgendjemanden gibt, der nicht in Landau studiert 28 Eigenschaften von Quantoren Quantoren gleicher Art kommutieren A A A A E E E E x y ist das gleiche wie y x x y ist das gleiche wie y x 29 Eigenschaften von Quantoren Verschiedene Quantoren kommutieren NICHT 30 Eigenschaften von Quantoren Verschiedene Quantoren kommutieren NICHT Beispiel: E A x y Mutter (x, y ) Jeder hat eine Mutter (richtig) 31 Eigenschaften von Quantoren Verschiedene Quantoren kommutieren NICHT Beispiel: E A x y Mutter (y , x) Jeder hat eine Mutter (richtig) A E y x Mutter (y , x) Es gibt eine Person, die die Mutter von jedem ist (falsch) 32 Eigenschaften von Quantoren Dualität der Quantoren A E E A x... ist das gleiche wie ¬ x¬... x... ist das gleiche wie ¬ x¬... 33 Eigenschaften von Quantoren Dualität der Quantoren A E E A x... ist das gleiche wie ¬ x¬... x... ist das gleiche wie ¬ x¬... Beispiel: A E E A x mag(x, eiskrem) ist das gleiche wie ¬ x ¬mag(x, eiskrem) x mag(x, broccoli) ist das gleiche wie ¬ x ¬mag(x, broccoli) 34