10.07.2015 Aufrufe

Programmieren mit Prolog

Programmieren mit Prolog

Programmieren mit Prolog

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!