Programmieren mit Prolog
Programmieren mit Prolog
Programmieren mit Prolog
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Übersicht• Syntax der Prädikatenlogik• Semantik der Prädikatenlogik• Strukturen• Modelle• Folgerung• Beweisen durch Widerlegen• Normierung der Syntax: Gentzenformeln• Schnittregel / Resolutionskalkül• Substitutionen und Unifikation• Einschränkungen des Suchraums• Spezielle Ableitungen / Regeln / FormelnHochschule Darmstadt, Januar 2009 – p.2/54
Logelei“Wer von euch Halunken hat den Ball in mein Fenstergeworfen?”schreit der Mann voller Zorn.Zitternd stehen die Kinder da.• Anne sagt:“Emil war es.”• Emil sagt:“Gustav hat es getan.”• Fritz sagt:“Ich war’s nicht.”• Gustav sagt:“Emil lügt.”• Ein Passant, der den Wurf beobachtet hat, sagt:“Eins der Kinder war es, aber Vorsicht:Nur eins der Kinder sagt die Wahrheit.”Wer hat den Ball geworfen?(Quelle: D. Siefkes: Formalisieren und Beweisen. Vieweg, 1990)Hochschule Darmstadt, Januar 2009 – p.4/54
Logelei: Eine FormalisierungA(x) für“x ist aufrichtig”/ B(x) für“x hat den Ball geworfen”• A(a) ↔ B(e)• A(e) ↔ B(g)• A(f) ↔ ¬B(f)• A(g) ↔ ¬A(e)• A(a) → ¬A(e) ∧ ¬A(f) ∧ ¬A(g)A(e) → ¬A(a) ∧ ¬A(f) ∧ ¬A(g)A(f) → ¬A(a) ∧ ¬A(e) ∧ ¬A(g)A(g) → ¬A(a) ∧ ¬A(e) ∧ ¬A(f)A(a) ∨ A(e) ∨ A(f) ∨ A(g)• B(a) ↔ ¬B(e) ∧ ¬B(f) ∧ ¬B(g)B(e) ↔ ¬B(a) ∧ ¬B(f) ∧ ¬B(g)B(f) ↔ ¬B(a) ∧ ¬B(e) ∧ ¬B(g)B(g) ↔ ¬B(a) ∧ ¬B(e) ∧ ¬B(f)Anne sagt:“Emil war es.”Emil sagt:“Gustav hat es getan.”Fritz sagt:“Ich war’s nicht.”Gustav sagt:“Emil lügt.”Nur eins der Kindersagt die Wahrheit.Eins der Kinder war es.Hochschule Darmstadt, Januar 2009 – p.5/54
Syntax der Prädikatenlogik• Funktionssymbole (oder: Operationssymbole) beliebigerStelligkeit. Beispiele:• 0-stellige Funktionssymbole (Konstanten) a (“Anne”)und n (“Null”).• 1-stelliges Funktionssymbol m (“Mutter von”)• 2-stelliges Funktionssymbol add (“Addition”)• Prädikatensymbole beliebiger Stelligkeit. Beispiele:• 1-stellige Prädikatensymbole B (“hat Ball geworfen”)und G (“ist gerade Zahl”).• 2-stelliges Prädikatensymbol M (“ist Mutter von”)Namenskonvention: Kleinschreibung für Funktions-,Großschreibung für Prädikatensymbole.Erweiterung: Mehrsortige PrädikatenlogikHochschule Darmstadt, Januar 2009 – p.6/54
Semantik der PrädikatenlogikDie Syntax wird durch Angabe von Funktions- undPrädikatensymbolen definiert (Signatur).Semantisch werden diese Symbole in einer Strukturinterpretiert:• Angabe einer nicht leeren (Daten-)Menge D(in der mehrsortigen Prädikatenlogik je eine Menge pro Sorte)• Angabe einer n-stelligen Funktion auf D für jedesn-stellige Funktionssymbol• Angabe eines n-stelligen Prädikats (d. h. einer Relation)auf D für jedes n-stellige PrädikatensymbolHochschule Darmstadt, Januar 2009 – p.9/54
Semantik: Noch mehr BeispieleStruktur Z <strong>mit</strong> der Datenmenge Z (die ganzen Zahlen)• Die Konstante 0 als Interpretation von n,die Funktion n ↦→ n + 1 als Interpretation von s,die Funktion n, m ↦→ n + m als Interpretation von add• Die Relation {2n | n ∈ Z} als Interpretation von G,die Relation {2n + 1 | n ∈ Z} als Interpretation von U,die Relation {(n, m) | n < m} als Interpretation von KStruktur S <strong>mit</strong> der Datenmenge {0} (eine einelementige Menge)• Die Konstante 0 als Interpretation von n,die Funktion n ↦→ 0 als Interpretation von s,die Funktion n, m ↦→ 0 als Interpretation von add• Die Relation {0} als Interpretation von G,die Relation {} als Interpretation von U,die Relation {(0, 0)} als Interpretation von KHochschule Darmstadt, Januar 2009 – p.11/54
Terme und Formeln auswertenTerme und Formeln zu einer gegebenen Signaturlassen sich in jeder passenden Struktur M auswerten.Notation: Stets sei f M bzw. P M die Interpretationder Symbole f bzw. P in M.Auswerten von innen nach außenwert M (f(t 1 ,...,t n )) = f M (wert M (t 1 ),...,wert M (t n ))Beispiele• wert N (add(n,s(add(s(n),n)))) = 2• wert Z (add(n,s(add(s(n),n)))) = 2• wert S (add(n,s(add(s(n),n)))) = 0Hochschule Darmstadt, Januar 2009 – p.12/54
Terme und Formeln auswerten (Forts.)Für Terme und Formeln <strong>mit</strong> Variablen aus einer Menge Vwird zusätzlich eine Zuweisung z : V → D benötigt:wert z M (v) = z(v)wert z M (f(t 1,...,t n )) = f M (wert z M (t 1),...,wert z M (t n))Beispiele• Für z(x) = 3 ist wert z Z (add(x,s(add(s(n),x)))) = 8• Für z(x) = −3 ist wert z Z(add(x,s(add(s(n),x)))) = −4Hochschule Darmstadt, Januar 2009 – p.13/54
Formeln auswerten (Forts.)Analog ordnen wir Formeln einenBooleschen Wert aus {w,f} zu:wert z M (W) = wwert z M (F) = fwert z M (P(t 1,...,t n )) = P M (wert z M (t 1),...,wert z M (t n))Hier fassen wir Prädikate als Funktionen nach {w,f} auf.Beispiele• Für z(x) = 3 ist wert z Z (G(add(x,s(add(s(n),x))))) = w• Für z(x) = −1 ist wert z Z (K(s(x),add(s(x),x))) = fHochschule Darmstadt, Januar 2009 – p.14/54
Formeln auswerten (Forts.)Die Bedeutung der Junktoren:wert z M (¬A) = w gdw wertz M (A) = fwert z M (A ∧ B) = w gdw wertz M (A) = w und wertz M (B) = wwert z M (A ∨ B) = w gdw wertz M (A) = w oder wertz M (B) = wwert z M (A → B) = w gdw wertz M (A) = f oder wertz M (B) = wwert z M (A ↔ B) = w gdw wertz M (A) = wertz M (B)Hochschule Darmstadt, Januar 2009 – p.15/54
Formeln auswerten (Forts.)Die Bedeutung der Quantoren:wert z M (∀x.A) = w gdw für alle Zuweisungen z′ ,die sich höchstens in x von z unterscheidengilt wert z′ M (A) = wwert z M (∃x.A) = w gdw es gibt eine Zuweisung z′ ,die sich höchstens in x von z unterscheidet<strong>mit</strong> wert z′ M (A) = w Hochschule Darmstadt, Januar 2009 – p.16/54
Formeln auswerten (Forts.)• Der Wert einer geschlossenen Formel hängt nicht voneiner Variablenzuweisung ab.• Der Wert einer Formel <strong>mit</strong> freien Variablen sei der ihresAllabschlusses.• Eine Formel A gilt in einer Struktur M, wenn sie dortden Wert w hat. Dann heißt M Modell von A .• Die Struktur M ist Modell einer Formelmenge,wenn M Modell aller ihrer Formeln ist.Aufgabe: Sind N, Z bzw. S Modelle der Formeln (<strong>mit</strong> Variablen x, y, z)• G(add(x, x))• U(add(x, x))• G(x) → U(s(x))• U(x) → U(s(x))• K(x, y) → K(y, x)• K(x, y) ∧ K(y, z) → K(x, z)• ∃x.∀y.K(x, y)• ∀y.∃x.K(x, y)Hochschule Darmstadt, Januar 2009 – p.17/54
Erfüllbarkeit und AllgemeingültigkeitEine Formel (oder Formelmenge) heißt• erfüllbar, wenn sie ein Modell besitzt,sonst unerfüllbar (oder: widersprüchlich).• allgemeingültig (oder: Tautologie),wenn jede passende Struktur Modell von ihr ist.Zwei Formeln (oder Formelmengen) heißen• erfüllbarkeitsgleich, wenn sie beide erfüllbaroder beide unerfüllbar sind.Beispiele• U(n) ∧ ¬U(n) ist unerfüllbar• ∀x.G(x) ist erfüllbar, aber nicht allgemeingültig• U(n) ∨ ¬U(n) ist allgemeingültig• ∃x.U(x) und U(n) sind erfüllbarkeitsgleichHochschule Darmstadt, Januar 2009 – p.18/54
Logische FolgerungSeien A und B Formeln oder Formelmengen.• Aus A folgt (logisch) B,wenn jedes Modell von A auch Modell von B ist.A B• Folgen A und B wechselseitig auseinander,so sind sie äquivalent.Aufgaben: Man zeige• U(n) → G(n) und ¬U(n) ∨ G(n) sind äquivalent• Aus ∃x.∀y.K(x,y) folgt ∀y.∃x.K(x,y)• Aus ∀y.∃x.K(x,y) folgt nicht ∃x.∀y.K(x,y)• ∃x.∃y.K(x,y) und ∃y.∃x.K(x,y) sind äquivalentHochschule Darmstadt, Januar 2009 – p.19/54
Beispiel: Euklidische Geometriex ‖ y lies: x ist parallel zu y,x ⊥ y lies: x ist senkrecht zu y.Axiomenmenge X:(1) ∀x∃y : x ‖ y(2) ∀x∃y : x ⊥ y(3) x ‖ y → y ‖ x(4) x ⊥ y → y ⊥ xFrage: Folgt aus X die Formel(5) x ‖ y ∧ x ⊥ z → y ⊥ z(6) x ⊥ y ∧ x ⊥ z → y ‖ z∀x∀y∀z : ( (x ‖ y ∧ x ⊥ z) → ∃w : (w ⊥ y ∧ w ‖ z) )Hochschule Darmstadt, Januar 2009 – p.20/54
Beweisen durch WiderlegenFür eine Formelmenge X und eine geschlossene Formel A giltX A gdw X ∪ {¬A} □Aus X folgt A genau dann, wennX zusammen <strong>mit</strong> ¬A widersprüchlich ist.• □ als syntaktische Repräsentation des Widerspruchs.Gilt in keinem Modell. Alternativ: W → F oder FNormierung des FolgernsAufgabe: Warum muss A eine geschlossene Formel sein?Hochschule Darmstadt, Januar 2009 – p.21/54
Regelsysteme (Kalküle)Mit syntaktischen Ableitungsregeln entstehenaus bereits vorhandenen Formeln neue Formeln.Solche Regeln notieren wir in der FormP 1 ... P nKDabei sind P i die Prämissen und K die Konklusion der Regel.BeispieleA ¬AFAA → BBA ∧ BBA ∧ AAHochschule Darmstadt, Januar 2009 – p.22/54
Regelsysteme (Kalküle)Sei R ein Regelsystem,X eine Formelmenge und A eine Formel.X ⊢ R A Aus X ist A <strong>mit</strong> Regeln aus R ableitbar.• R ist korrekt, falls für alle X und A giltwenn X ⊢ R A dann X A• R ist vollständig, falls für alle X und A giltwenn X A dann X ⊢ R AHochschule Darmstadt, Januar 2009 – p.23/54
Vollständige RegelsystemeX A gdw X ∪ {¬A} □Also braucht man kein vollständiges Regelsystem Rwenn X A dann X ⊢ R Asondern nur ein widerlegungsvollständigeswenn X □ dann X ⊢ R □wenn man das Folgern automatisieren will.• X ⊢ R A: Aus X ist A <strong>mit</strong> Regeln aus R ableitbar.Hochschule Darmstadt, Januar 2009 – p.24/54
Normierung der SyntaxGesucht: Eine möglichst stark eingeschränkte Formelklasse,so dass sich zu jeder Formelmenge X eine erfüllbarkeitsgleicheMenge Y der eingeschränkten Form konstruieren lässt:X □ gdw Y □Für Prädikatenlogik erster Stufe reichen Gentzenformeln:P 1 ∧ P 2 ∧ · · · ∧ P n → Q 1 ∨ Q 2 ∨ · · · ∨ Q m<strong>mit</strong> Atomen P i und Q j . Notationelle Variante: Klausel{¬P 1 , ¬P 2 ,...,¬P n ,Q 1 ,Q 2 ,...,Q m }(Gerhard Gentzen 1909–45, deutscher Logiker)Hochschule Darmstadt, Januar 2009 – p.25/54
GentzenformelnSpezialfälle:P 1 ∧ P 2 ∧ · · · ∧ P n → Q 1 ∨ Q 2 ∨ · · · ∨ Q m• n = 0: leere KonjunktionW → Q 1 ∨ Q 2 ∨ · · · ∨ Q m• m = 0: leere DisjunktionP 1 ∧ P 2 ∧ · · · ∧ P n → F• n = m = 0: W → F (oder □)• m ≤ 1: HornformelnP 1 ∧ P 2 ∧ · · · ∧ P n → Q 1P 1 ∧ P 2 ∧ · · · ∧ P n → FHochschule Darmstadt, Januar 2009 – p.26/54
Ein widerlegungsvollständiger Kalkülfür Gentzenformeln ist Schnittregel plus Substitutionsregel:A → B ∨ P P ∧ C → DA ∧ C → B ∨ D• A, C Konjunktionen; B, D Disjunktionen; P ein Atom• Kommutativität, Assoziativität, Idempotenz von ∧ und ∨ benutzen wir implizitXXσ• X Gentzenformel, σ (beliebige) SubstitutionHochschule Darmstadt, Januar 2009 – p.27/54
Schnitt- plus SubstitutionsregelDer Kalkül ist korrektwenn X ⊢ A dann X Aund widerlegungsvollständigwenn X □ dann X ⊢ □aber nicht vollständigwenn X A dann X ⊢ AGegenbeispiel: X = {C → F } und A = (C → D)Hochschule Darmstadt, Januar 2009 – p.28/54
Beispiel: LogeleiZunächst werden die Originalformeln in eine äquivalenteMenge X von Gentzenformeln umgeformt (Übung).Wir überführen Fritz:Statt X B(f) zeigen wir X ∪ {B(f) → F } ⊢ R □wobei das Regelsystem R nur die Schnittregel enthält.W → A(f) ∨ B(f) B(f) → FW → A(f)(∗) A(f) ∧ A(e) → FW → A(g) ∨ A(e)A(e) → FW → A(g)A(g) ∧ A(f) → F(∗)A(f) → FW → FHochschule Darmstadt, Januar 2009 – p.29/54
Geometriebeispiel (Forts.)• Formel A negieren und zu X hinzufügen• Pränexe Normalform herstellen: Quantoren nach vorn• Quantoren eliminieren durch Skolemisieren• Gentzenformeln herstellenliefert die Axiomenmenge X ′ :(1’) W → x ‖ p(x)(2’) W → x ⊥ s(x)(3) – (6) unverändert(7) W → g ‖ h(8) W → g ⊥ k(9) w ⊥ h ∧ w ‖ k → FDabei sind g, h, k neue Konstanten (nullstellige Funktionssymbole)und p, s einstellige Funktionssymbole, die durch Skolemisieren entstehen.(Albert Thoralf Skolem, 1887–1963, norwegischer Mathematiker)Hochschule Darmstadt, Januar 2009 – p.30/54
Geometriebeispiel (Forts.)Da<strong>mit</strong> giltX AX ∪ {¬A} □X ′ □X ′ ⊢ R □gdwgdwgdwfür einen beliebigen widerlegungsvollständigen Kalkül R,etwa Schnitt- plus Substitutionsregel.Bemerkung: X ∪ {¬A} ist nicht äquivalent zu X ′ ,sondern nur erfüllbarkeitsgleich.Hochschule Darmstadt, Januar 2009 – p.31/54
Resolution(sregel)Nachteil der Substitutionsregel:Extremer Grad an NichtdeterminismusLösung: Substitution in die Schnittregel einbauen:Resolution (John Alan Robinson 1965)A → B ∨ P P ′ ∧ C → D(A ∧ C → B ∨ D)σ• wobei σ allgemeinster Unifikator von P und P ′ ist• PS. Prämissen erst durch Variablenumbenennungvariablendisjunkt machenHochschule Darmstadt, Januar 2009 – p.32/54
SubstitutionenEine Abbildung von Variablen auf Terme heißt Substitution.• Statt σ(x) wird oft die Postfixnotation xσ verwendet.• Schreibweise: σ = {x ↦→ a,y ↦→ f(a,z)} stattσ = {(x,a), (y,f(a,z))}.• Substitutionen werden von Variablen auf Terme <strong>mit</strong>Variablen fortgesetzt (analog auf Atome und Formeln).Für jede Substitution σ heißt der Term tσ Instanz von t.Beispiel: f(f(x,b),f(y,x))σ = f(f(a,b),f(f(a,z),a)).• Die Komposition στ zweier Substitutionen σ und τ istdefiniert durch (“erst σ, dann τ”)t(στ) = (tσ)τ = τ(σ(t))Hochschule Darmstadt, Januar 2009 – p.33/54
UnifikationEin Unifikator zweier Terme s und t (analog für Atome)ist eine Substitution σ, die diese Terme syntaktisch gleichmacht:sσ = tσEine Substitution σ ist allgemeiner als eine Substitution τ(geschrieben σ ≤ τ), falls es eine Substitution ρ gibt <strong>mit</strong>σρ = τEin Unifikator σ von s und t heißt allgemeinster Unifikator(most general unifier: mgu), falls für alle Unifikatoren τvon s und t giltσ ≤ τHochschule Darmstadt, Januar 2009 – p.34/54
Unifikation: BeispieleKonvention: x, y, . . . sind Variablen und a, b, . . . Konstanten.• f(x,a) und f(g(y),y)• f(b,a) und f(g(y),y)• f(x,x) und f(g(y),y)• f(x,y) und f(y,x)Hochschule Darmstadt, Januar 2009 – p.35/54
Unifikation: BeispieleKonvention: x, y, . . . sind Variablen und a, b, . . . Konstanten.• f(x,a) und f(g(y),y) besitzen den einzigen Unifikator{x ↦→ g(a),y ↦→ a}, der da<strong>mit</strong> auch mgu ist.• f(b,a) und f(g(y),y) besitzen keinen Unifikator.• f(x,x) und f(g(y),y) besitzen ebenfalls keinenUnifikator, weil y und g(y) nicht unifizierbar sind.• f(x,y) und f(y,x) besitzen unendlich vieleUnifikatoren: {x ↦→ a,y ↦→ a}, {x ↦→ g(a),y ↦→ g(a)},{x ↦→ x,y ↦→ x}, {x ↦→ z,y ↦→ z}, . . .Mgu sind {x ↦→ x,y ↦→ x} oder {x ↦→ y,y ↦→ y},nicht aber {x ↦→ z,y ↦→ z}, denn{x ↦→ z,y ↦→ z,z ↦→ z} ≰ {x ↦→ x,y ↦→ x,z ↦→ z}.Hochschule Darmstadt, Januar 2009 – p.35/54
Unifikation (Forts.)Satz: Allgemeinste Unifikatoren sind bis aufVariablenumbenennung eindeutig bestimmt.Fakt: Es gibt effiziente Algorithmen zur Berechnungvon allgemeinsten Unifikatoren (Martelli & Montanari,Paterson & Wegman, Corbin & Bidoit).Hochschule Darmstadt, Januar 2009 – p.36/54
Resolution: Zwei BeispieleWieder sind x, y und z Variablen.Q(x) → P(x,a) P(f(y),y) → R(y)Q(f(a)) → R(a)<strong>mit</strong> mgu {x ↦→ f(a), y ↦→ a}.(Hier gibt es nur einen Unifikator.)Q(x) → P(x,a) P(f(z),y) → R(y)Q(f(z)) → R(a)<strong>mit</strong> mgu {x ↦→ f(z), y ↦→ a}.(Hier gibt es unendlich viele Unifikatoren.)Hochschule Darmstadt, Januar 2009 – p.37/54
Resolution (Forts.)Satz: Der Resolutionskalkül(Resolutions- und Faktorisierungsregel)ist korrekt und widerlegungsvollständig.Die Faktorisierungsregel benötigt man, um <strong>mit</strong> unifizierbarenAtomen innerhalb einer Gentzenformel umgehen zu können:A → B ∨ P 1 ∨ · · · ∨ P n(A → B ∨ P 1 )σ• wobei σ mgu von {P 1 ,...,P n } ist.(Analog für Konjunktionen.)• Beispiel: {W → P(x) ∨ P(y),P(u) ∧ P(v) → F } istwidersprüchlich, <strong>mit</strong> Resolution alleine sind aber nurFormeln <strong>mit</strong> genau zwei Atomen ableitbar.Hochschule Darmstadt, Januar 2009 – p.38/54
Geometriebeispiel (Forts.)Eine Widerlegung der Formelmenge X ′ :(8) (6)(2 ′ ) g ⊥ y → y ‖ kW → s(g) ‖ k(7) (5)(2 ′ ) g ⊥ z → h ⊥ zW → h ⊥ s(g) (4)W → s(g) ⊥ h (9)s(g) ‖ k → FW → F(∗)• Beim Schnitt (∗) wird durch den Unifikator {w ↦→ s(g)}eine“Lösung”der ursprünglichen Existenzfrage bestimmt.• Es existieren auch andere Widerlegungen <strong>mit</strong> denLösungen {w ↦→ s(h)} bzw. {w ↦→ p(k)} (→ Skizze).Hochschule Darmstadt, Januar 2009 – p.39/54
Wie findet man Widerlegungen?Ableitungen (speziellWiderlegungen) sindBäume (genauer DAGs:directed acyclic graphs)• • • • • •• • ••• •□Einschränkungen des Suchraums(d.h. des Nichtdeterminismus)durch speziellere Ableitungen:Beispiel lineare Ableitungen• •• •• •• •□Hochschule Darmstadt, Januar 2009 – p.40/54
Spezielle Regeln oder Formeln• Positiver Schnitt (für Gentzenformeln)W → B ∨ P P ∧ C → DC → B ∨ D• PROLOG-Regel (für Hornformeln)A → PP ∧ C → FA ∧ C → F• Schneide nie, wenn der Schnitt eine Tautologie liefert.• Schneide nur über das in einer Prämisse am weitestenlinks stehende Atom.• Spezielle Formeltypen: HornformelnHochschule Darmstadt, Januar 2009 – p.41/54
Welche Restriktionen sind echt?d.h. bedeuten den Verlust der (Widerlegungs-)Vollständigkeitoder eine Einschränkung der Ausdruckskraft der Sprache?• Lineare Resolution bleibt widerlegungsvollständig.• Positiver Schnitt bleibt widerlegungsvollständig.• PROLOG-Regel bleibt widerlegungsvollständig fürHorn-Formeln.• Ableitungen <strong>mit</strong> der PROLOG-Regel sind immer linear.(Warum? Wie sehen hier Widerlegungen aus?)Hochschule Darmstadt, Januar 2009 – p.42/54
Lineare Resolution für Hornformeln... ∧ P ∧ ... → F ... → P... ∧ Q ∧ ... → F ... → QTerminologie:... ∧ R ∧ ... → F ... → R... → F.□• Formeln der Form ... ∧ ... → F heißen center clauses.• Die center clause oben links heißt start center clause.• Die Formeln der Form ... → Q heißen side clauses.Hochschule Darmstadt, Januar 2009 – p.43/54
Logisches <strong>Programmieren</strong>• Logisches Programm:Menge positiver Hornformeln(side clauses in Widerlegungen)• Anfrage/Goal:Eine negative Hornformel(start center clause)• •• •• •• •□Widerlegungen beweisen Existenzfragen :X ∪ {Q 1 ∧ · · · ∧ Q n → F } ⊢ □ gdwX ∪ {∀ −→ x : ¬(Q 1 ∧ · · · ∧ Q n )} □ gdw“Antworten”sind konstruktiv:Extrahierte AntwortsubstitutionenX ∃ −→ x : Q 1 ∧ · · · ∧ Q nHochschule Darmstadt, Januar 2009 – p.44/54
Antwortextraktion: BeispielFür die Formelmenge (das“Programm”) P <strong>mit</strong> den FormelnW → plus(0,y,y) (1)plus(x,y,z) → plus(s(x),y,s(z)) (2)giltP plus(s k (0),s m (0),s n (0))gdw k + m = nwobei s ein einstelliges Funktionssymbol ist (“successor”)und s k (0) der Term s(s(· · · s(0))) <strong>mit</strong> k-maligem s.Hochschule Darmstadt, Januar 2009 – p.45/54
Antwortextraktion: Beispiel 1Frage:“Gibt es einen Term, der das Ergebnis der Addition von2 und 1 repräsentiert?” P ∃z : plus(ss0,s0,z) ?Hier eine Widerlegung der Anfrage plus(ss0,s0,z) → F:plus(ss0,s0,z) → F (2)σ 1plus(s0,s0,z 1 ) → F (2)plus(0,s0,z 2 ) → F□σ 2(1)σ 3<strong>mit</strong> σ 1 = {z ↦→ sz 1 }, σ 2 = {z 1 ↦→ sz 2 }, σ 3 = {z 2 ↦→ s0}.Die extrahierte Antwortsubstitution σ entsteht alsKomposition der einzelnen mgus von oben nach unten:zσ = zσ 1 σ 2 σ 3 = sss0Hochschule Darmstadt, Januar 2009 – p.46/54
Antwortextraktion: Beispiel 2Das Programm kann auch“Subtrahieren”:P ∃z : plus(ss0,z,sss0) ?Die Widerlegungplus(ss0,z,sss0) → F (2)σ 1plus(s0,z 1 ,ss0) → F (2)plus(0,z 2 ,s0) → F□σ 2(1)σ 3<strong>mit</strong> σ 1 = {z ↦→ z 1 }, σ 2 = {z 1 ↦→ z 2 }, σ 3 = {z 2 ↦→ s0} liefertzσ = zσ 1 σ 2 σ 3 = s0Hochschule Darmstadt, Januar 2009 – p.47/54
Antwortextraktion: Beispiel 3Man bekommt nicht immer nur Grundantworten,also variablenfreie Terme:P ∃y∃z : plus(s0,sy,z) ?Die Widerlegungplus(s0,sy,z) → F (2)plus(0,sy,z 1 ) → F□σ 1(1)σ 2<strong>mit</strong> σ 1 = {y ↦→ y,z ↦→ sz 1 }, σ 2 = {y ↦→ y,z 1 ↦→ sy} liefertyσ = yσ 1 σ 2 = y und zσ = zσ 1 σ 2 = ssyHochschule Darmstadt, Januar 2009 – p.48/54
Antwortextraktion: KorrektheitFür die aus einer Widerlegung der AnfrageQ 1 ∧ · · · ∧ Q n → F<strong>mit</strong> dem logischen Programm P extrahierte Antwort σ giltP (Q 1 ∧ · · · ∧ Q n )σUmgekehrt: Welche Antworten kann man erwarten?Hochschule Darmstadt, Januar 2009 – p.49/54
Antwortextraktion: VollständigkeitSeien τ eine Substitution, P ein logisches Programmund Q 1 , . . . , Q n Atome <strong>mit</strong>P (Q 1 ∧ · · · ∧ Q n )τDann existiert eine lineare Widerlegung der AnfrageQ 1 ∧ · · · ∧ Q n → F<strong>mit</strong> P, so dass für die daraus extrahierte Antwort σ giltσ ≤ τIn Worten: Zu jeder potentiellen Antwort τgibt es eine mindestens so allgemeine Antwort σ,die per Antwortextraktion aus einer Widerlegung stammt.Hochschule Darmstadt, Januar 2009 – p.50/54
Keine“eingebaute Induktion”P ∃z : plus(z, 0,z) ?Alle Antworten der Form {z ↦→ 0}, {z ↦→ s0}, {z ↦→ ss0}, . . .können durch Widerlegungen gefunden werden:plus(z,0, z) → F (1)□liefert zσ = zσ 1 = 0σ 1plus(z,0, z) → F (2)σ 1plus(z 1 ,0, z 1 ) → F (1)□liefert zσ = zσ 1 σ 2 = s0σ 2ETC“Die”Antwort {z ↦→ z} fehlt!?!Hochschule Darmstadt, Januar 2009 – p.51/54
Keine“eingebaute Induktion”(Forts.)Die Antwort {z ↦→ z} fehlt tatsächlich.Wegen {z ↦→ z} < {z ↦→ s k (0)} für alle k ∈ Nfolgt aus der Vollständigkeit der AntwortextraktionP ∀z : plus(z, 0,z)Für ExpertInnen: ∀z : plus(z, 0,z) folgt zwar nicht aus P, istaber im kleinsten Herbrandmodell (= initialen Modell) wahr.(Beweis der Formel <strong>mit</strong> einem geeigneten Induktionsschema.)(Jacques Herbrand 1908–31, französischer Logiker)Hochschule Darmstadt, Januar 2009 – p.52/54
PROLOG• Syntax:P ← Q 1 ,...,Q n . statt Q 1 ∧ · · · ∧ Q n → P? ← Q 1 ,...,Q n . statt Q 1 ∧ · · · ∧ Q n → FKonkret so: P :- Q1,...,Qn. und Q.im Programm und ?- Q1,...,Qn. als Goal.• Auswertungsstrategie depth first:• im Programm von oben nach unten,• im Goal von links nach rechts.• “Eingebaute”Prädikate:• Arithmetik etc.• Seiteneffekte: ?- read(x), P(x,y), write(y).Hochschule Darmstadt, Januar 2009 – p.53/54
PROLOG (Forts.)Cut (syntaktisch: !) beeinflusst das Backtracking:• Bewusstes Umgehen nichtterminierender Äste.• Abbruch der Suche nach der ersten gefundenen Antwort.• “Simulation”der Negation: Negation by (finite) failure.not X ← X, !, fail.not X.• fail als stets scheiterndes Prädikat• meta-variable facilityHochschule Darmstadt, Januar 2009 – p.54/54