Cut-Ableiten Y hat genau dann kein Modell, wenn Y . Daraus ergibt sich Theoretische Informatik 1 1. H ∈ ag genau dann, wenn aus einer zu ¬H semantisch äquivalenten Klauselmenge cut-ableitbar ist 12. Dezember 2002 2. X fol H genau dann, wenn aus einer zu X { ¬H} sem. äquivalenten Klauselmenge cut-ableitbar ist 1 2 Logische Matrix Nichtableitbarkeit Eine logische Matrix ist eine Vorschrift zur Interpretation von Ausdrücken (lassen hier und weg): Zurück zu ab(X). µ = [M,M*,φ¬,φ ,φ ,φ ,φ ] Problem: Wann können wir sicher sein, daß H ∉ ab(X)? Belegung β: AV wertµ(pi,β) wertµ(¬H1,β) wertµ((H1 H2),β) wertµ((H1 H2),β) wertµ((H1 H2),β) wertµ((H1 H2),β) Einfacher Spezialfall: X ag, H ∉ag Jetzt: Verallgemeinerung dieses Spezialfall per Nichtstandardinterpretation Ziel: Nicht ableitbar sind genau die Ausdrücke, die in irgendeiner (vernünftigen) Semantik aus “ag” herausführen H*] ∈ agµ Abtrennungsregel: etwas komplizierter: z.B. für m = [{W,F},{W},non,et,vel,verum,aeq] (verum(x,y) = W) ist (p p) ∈ agµ, ((p p) p) ∈ agµ, aber p ∉agµ Eine logische Matrix heißt normal, falls φ mit der Abtrennungsregel verträglich ist, also falls gilt: Wenn x ∈ M* und φ (x,y) ∈ M* , so y ∈ M* Folgerung: in einer normalen logischen Matrix µ gilt: Wenn X agµ, so ab(X) agµ 4 Die “klassische logische Matrix: [{W,F},{W},non,et,vel,seq,aeq] Einsetzen und Abtrennen in µ M = β(pi) = φ¬(wertµ(H1,β)) = φ (wertµ(H1,β), wertµ(H2,β) ) = φ (wertµ(H1,β), wertµ(H2,β) ) = φ (wertµ(H1,β), wertµ(H2,β) ) = φ (wertµ(H1,β), wertµ(H2,β) ) agµ = {H | für alle Belegungen β: wertµ(H,β) ∈ M*} 3 Einsetzungsregel: Für alle µ: Falls H ∈ agµ, so H[pi Die Umkehrung Wenn H∉ab(X), so gibt es ein normales µ mit X und H ∉agµ agµ Satz von Lindenbaum: Zu jeder Ausdrucksmenge X gibt es eine normale logische Matrix µ mit einer abzählbaren Menge M derart, daß ab(X) = agµ Beweistrick: wir verwenden die Syntax selbst zur Definition der Semantik Also: Wenn es ein normales µ gibt mit X so H∉ab(X) agµ und H ∉agµ ,5 6 1 Beweis Beweis (Fortsetzung) M = ausd M* = ab(X) z.Z. ab(X) = agµ Sei H ∈ agµ. Also: wert(H,β) ∈ M* = ab(X) für all Belegungen β. Also auch für β* mit β*(pi) = pi für alle pi ∈ AV. Nun ist aber (offenbar) wert(H,β*) = H, also H ∈ ab(X) = ¬H1 φ¬(H1) φ (H1,H2) = (H1 H2) φ (H1,H2) = (H1 H2) φ (H1,H2) = (H1 H2) φ (H1,H2) = (H1 H2) µ ist normal, weil aus H1 ∈ ab(X) und H1 H2 ∈ ab(X) folgt: H2 ∈ ab(X) Sei H ∈ ab(X). Sei β Belegung, also β: AV ausd Dann ist offenbar wertµ(H,β) = H[p1 β(p1)]...[pn β(pn)] ∈ abe({H}) ab(X) = M*, also H ∈ agµ. w.z.b.w. ! " " # Zum Auseinanderhalten der Rollen: H – Syntax, H - Semantik 7 Fazit 8 Zusammenfassung Aussagenlogik H ist genau genau nicht aus X ableitbar, wenn es eine abzählbare logische Matrix µ gibt mit X agµ und H ∉ agµ. # Beispiel: X = {(p p),¬(p p)} $ Aussagen H=p $ µ = [{W,F},{W},id,et,vel,seq,aeq] “reale Welt” Semantik WW Syntax Belegung {W,F} Aussagenfunktionen - extensionale Wahrheitsfunktionen id(x) = x AV, , & wert ΦH ' ausd µ ist normal, weil φ = seq. % wertµ((p p),β) = W für alle β, wie in klassischer Matrix wertµ(¬(p p),β) = W für alle β, weil φ¬ = id also X agµ $ Homomorphismus Repräsentantentheorem $ # 9 10 mit β*(p) = F ist wert(p,β*) = F, also H ∉ agµ. Also H∉ab(X) Schaltalgebra Folgern und Ableiten Ausdruck = Struktur einer Schaltung Repräsentantentheorem: Zu jeder Wahrheitsfunktion gibt es eine zweistufige Schaltung Optimierung: 1. Implikanden Primimplikanden 2. unwesentliche Primimplikanden (einzeln) weglassen ( Zweistufige Schaltungen werden durch vorgefertigte Schaltkreise (PLA) industriell unterstützt fl(X) – alle Ausdrücke, die bei jedem Modell von X wahr sind Gemeinsamkeiten: ...(ag) = ag, Hülleneigenschaften (Einbettung, Monotonie, Abgeschlossenheit), Endlichkeitssatz,Ableitbarkeitstheorem (nur aba,ab) Unterschiede: fl(Ø) = ag Ded.-theorem gilt fl({p ¬p}) = ausd semantisch definiert ) 11 ab[a/e](X) – alle Ausdrücke, die per Einsetzungs- bzw. Abtrennungsregel entstehen ...(Ø) = Ø gilt nicht ab syntaktisch vollständig syntaktisch definiert 12 2 synt. Charakterisierung von fl fl(X) = aba(X = aba(X * * sem. Charakterisierung von ab H nicht ableitbar aus X genau dann, wenn es eine abzählbare normale logische Matrix µ gibt mit X agµ und H ∉ agµ. ab(axa)) abe(axa)) + (“Syntaktisch geht, was in allen Interpretationen der Syntax geht”) aba erfüllt schwaches Deduktionstheorem axa = 15 allgemeingültige Ausdrücke mit ab(axa) = ag 13 14 Cut-Ableiten Beweisen/Schließen Klauseln – eine gut handhabbare Einschränkung von ausd Jeder Ausdruck ist sem. äquivalent zu einer Klauselmenge Schlussregeln sind durch allgemeingültige Ausdrücke gerechtfertigt Schnittregelabschluss endlicher Mengen ist endlich H ∈ ag genau dann, wenn Kl({¬H}) X fol H genau dann, wenn Kl(X {¬H}) , * Beweisschritte entsprechen Schlussregeln, also ein Beweis ist eine Kette von Schlüssen, die aus den Voraussetzungen die Behauptung produzieren. - , Per Rechtfertigung können weitere Schlussregeln ergänzt werden - Grundlage für logische Programmiersprache PROLOG 15 Syntax und Semantik Syntax = Sprache + Zeichenkettenoperationen (Abtrennen, Einsetzen, Cut) Semantik = Werte, Belegungen, Modelle, .... 16 Typisch in syntaktischen Kalkülen: Semantische Begriffe (z.B. Folgern) können syntaktisch charakterisiert werden, syntaktische Begriffe aber auch semantisch (z.B. Ableiten) Induktion. Standardtricks: (1) Für Aussagen “Zur Syntax Bla gibt es eine Semantik S(Bla) mit ...” wähle als S(Bla) die Syntax Bla selbst induktiv definierte Abbildung syntaktisch . rechnergeeignet . rekursiv programmierbar siehe z.B. wert(H,β) Einsetzungsregel (2) syntaktisch geht, was in jeder sinnvollen Semantik geht (3) Semantik in Syntax “hineinkonstruieren” 17 18 3 Jenseits der Aussagenlogik Umgang mit Quantifizierungen: Kapitel 3 Es gibt Studenten. Alle Studenten sind Menschen Es gibt Menschen Prädikatenlogik p q r / Jeglicher Einblick in den Inhalt von Aussagen: Wenn x R y und y R z, so x R z p q r / 0 1 Aussageformen: 19 x>3 p / Von Aussagenlogik zu Prädikatenlogik 20 Klötzchenwelt Ein Beispiel für ein prädikatenlogisches Abbild einer “Welt” Aussagenlogik: Aussagen sind Widerspiegelungen von Sachverhalten. das kleine Einmaleins Prädikatenlogik: Aussagen sind Widerspiegelungen von Sachverhalten über Objekte und deren gegenseitige Beziehungen das große Einmaleins 21 c f b e h a d g Objekte: a,b,c,d,e,f,g,h Relationen: über = { [b,a],[c,a],[c,b],[e,d],[f,d],[f,e],[h,g]} rot = {b,d,g} blau = {a,e} gelb = {f} schwarz = {c,h} frei = {c,f,h} Abbildungen: b(asis) b(c)=b(b)=b(a)=a b(f)=b(e)=b(d)=d b(h)=b(g)=g t(op) analog Aussagen: z.B. Für alle x,y gilt: Wenn x über y, so ist b(x) nicht frei Für alle x: wenn x rot, so x nicht frei. 22 Es gibt ein x mit x ist gelb Namen in der Prädikatenlogik Quantifizierungen 1. für Objekte Individuenkonstanten Induviduenvariablen 2. Für Relationen Attributzeichen (ein Satz solcher Zeichen pro Stelligkeit) 3. Für Funktionen Funktionszeichen (ein Satz pro Stelligkeit) zum Vergleich: In der Aussagenlogik gab es Namen nur für (Wahrheitswerte von) Aussagen (pi) für alle x gilt.... es gibt ein x mit .... es gibt genau ein x mit ... es gibt mindestens 27 x mit es gibt genausoviele x mit ... wie y mit ... es gibt mehr x mit ... als y mit ..., aber weniger als z mit ... für genau ein Drittel aller x gilt .... ... gilt für diejenigen x, für die .... Aufnahme in unseren Kalkül finden nur es gibt ein 23 und für alle 24 4 Das Alphabet des Prädikatenkalküls 1. Stufe Prädikatenkalkül 1. Stufe Variablen und Quantifizierungen werden nur für Objekte bereitgestellt, nicht aber für Mengen, Relationen, Funktionen X={ *,| x, c, F, A, =, ¬, , , , , , ,,),( (2. Stufe: Auch Variablen+Quantifizierungen für Mengen 1. Stufe, Relationen ziwschen Objekten, ....) 2 3 4 5 , 6 7 Beispiel für eine Aussage 2. Stufe: Für jede Menge M gilt: Wenn 0 ∈ M und zu jedem x ∈ M auch nf(x) ∈ M, so enthält M alle natürlichen Zahlen Hilfszeichen zur Indizierung von Namen für Individuenvariablen für Individuenkonstanten für Funktionszeichen für Attributzeichen ein spezielles Zeichen für die Gleichheit das Erbe aus der Aussagenlogik Quantoren (für: für alle/es gibt ein) zur Strukturierung } 25 Syntax von Namen alternative Syntax von Namen 1. Individuenvariablen x *****....* kurz: xi i 2. Individuenkonstanten c *****....* kurz: ci i 3. Funktionszeichen F ||||||...|*****....* kurz: Fij i j 4. Attributzeichen A ||||||...|*****....* i j 26 um “sprechende” Namen in die Logik einzubringen, kann man Individuenkonstanten, Funktionszeichen und Attributzeichen auch durch eine Signatur bereitstellen, die für jede Art von Zeichen (und jede Stelligkeit) einen endl. oder unendlichen Satz von Namen bereitstellt. S = [C,F,A] C – Menge (der Individuenkonstanten) F – Abbildung von einer Menge (der Funktionszeichen) in N/{0} (deren Stelligkeit) A – Abbildung von einer Menge (der Attributzeichen) in N/{0} (deren Stelligkeit) kurz: Aij oberer Index (Striche) = Stelligkeit, immer > 0 unterer Index (Sterne) = laufende Nummer, ab 0 27 Beispiel: S = [{null,eins},{plus(2),mal(2),nf(1)}{kleiner(2),zwischen(3)}] 28 2 Sprachen Interpretation von Namen Zur Interpretation muss man zuerst eine nichtleere Menge von Objekten angeben – den Individuenbereich 8 1. Sprache: TERM dient zur Beschreibung von Objekten des Individuenbereichs Individuenvariablen werden interpretiert durch eine Belegung f: f(xi) ∈ Semantik eines Terms T definert durch element g(T,f) ∈ Die anderen Zeichen werden interpretiert durch eine Interpretation g: 2. Sprache: AUSD ; < 8 g(ci) ∈ g(Fij): g(Aij) : dient zur Beschreibung von Sachverhalten, also Aussageformen und Aussagen 8 i 9 8 8 i Semantik eines Ausdrucks H definiert durch wert g(H,f) ∈{W,F} 8 ; 29 30 5 Beispiele Die Sprache TERM Syntax Semantik A1) Jede Individuenkonstante ci ist ein Term element g(ci,f) = g(ci) A2) Jede Individuenvariable xi ist ein Term element g(xi,f) = f(xi) Sei = = S) Wenn T1, ..., Ti Terme sind, element g(Fij(T1,...,Ti),f) = so auch Fij(T1,...,Ti) g(Fij)(element g(T1,f),..., element g(Ti,f)) = = c f b e h a d g = {a,b,c,d,e,f,g,h} f(x0) = a, f(x1) = e f(x2) = e g(c0) = b g(c1) = e g(c2) = g 1 1 g(F 0) = basis g(F 1) = top g(F30) = “höchster, bei gleichhohen der am weitesten links” > Terme: x1 c0 F30(F11(F10(c2)),x2,F10(x2)) = 31 keine Terme:F30(c2) element g(x1,f) = e element g(c0,f) = b element g(F30(F11(F10(c2)),x2,F10(x2)),f) =e 32 x1c1 x1 c1 A12(c2) = = = ? 6