• Keine Ergebnisse gefunden

(safe) safe(n,x:nil)

safe(n,x:(y:s))⇐x 6≡y+n∧y6≡x+n∧safe(succ(n),x :s) (enum) enum(zero)≡nil

enum(succ(n))≡enum(n)++(succ(n):nil) Hornformeln für∈,6≡und++stehen in Beispiel 9.1.

Die im Programmblaubzw.rotgefärbte Liste von Zahlen besteht aus den noch nicht vergebenen bzw. vergebenen Spalten, in denen Damen sicher platziert werden können.

Cist wie folgt definiert: Für allen∈N,

enumC(n) =

( (1, . . . ,n) fallsn∈N,

e sonst,

safeC = {(i,(a,a1, . . . ,an))|i,a,a1, . . . ,anN:

∀i≤j≤n:aj−j6=a6=aj+j}, queensC = {(n,w)∈N×N|((1, . . . ,n),nil,w)∈boardC},

boardC = lfp(F), (siehe Kapitel 4)

wobei die SchrittfunktionF:P((N)3)→ P((N)3)wie folgt definiert ist:

Für alleT⊆(N)3,

F(T) = {(e,w,w)|w∈N} ∪

{(v,w,w0)| ∃a∈C v∧(1,aw)∈safeC∧(v\Ca,aw,w0)∈T}. zero,succ,+,nil, :,++,\,≡,6≡und∈werden inCwie inAinterpretiert (siehe Beispiel 9.1).

Aufgabe Zeigen SieC |=VLP. o

Aufgabe Überführen Sie LP in eine Kripke-Struktur mit Zustandsmenge N×N und Transitionsfunktion δ, so dass durch wiederholte Anwendung vonδ alle sicheren Platzierungen vonn Damen auf einem(n×n)

-Schachbrett berechnet werden können. o

9.2 SLD-Kalküle

Eine endliche Konjunktion oder Disjunktion vonΣ-Atomen überXheißtΣ-Goalbzw.Σ-CogoalüberX.>bzw.

⊥ist ein weiteres Goal bzw. Cogoal.

GΣ(X)undcoGΣ(X)bezeichnen die Mengen derΣ-Goals bzw.Σ-Cogoals überX.

Berechnungen auf der Basis eines logischen ProgrammsLPentsprechen Schnittwiderlegungen von Φ = LP∪ {ϕ}, wobeiϕein (Co)Goal ist. Wegen der speziellen Form vonLPbzw.ϕlässt sich der Schnittkalkül vereinfachen, ohne dass seine Vollständigkeit bzgl. Widerlegungen vonΦverlorengeht.

Dazu betrachten wir zunächst variablenfreiePSK-Ableitungen der FormΦ`ψmit einem Goalψ.

Jede solche Ableitungslässt sich schrittweise in eine Ableitung von Φ ` ψtransformieren, in der keine zwei Hornformelnϕ⇒ptundpt∧ϕ0 ⇒qugeschnitten werden.

Fall 1: Die Resolventeϕϕ0 ⇒queines solchen Schnittes wird insmit einem Goal – das die Formqu∧ϑ ⇒ ⊥ haben müsste – geschnitten. Dann kann sie aussentfernt werden, weil dieser Schnitt dieselbe Resolvente liefert wie der Schnitt der ersten Hornformel ϕ ⇒ pt mit der Resolvente pt∧ϕ0ϑ ⇒ ⊥ der zweiten Hornformel pt∧ϕ0 ⇒quund dem Goal:

122 9 Logische Programmierung

ϕ⇒pt pt∧ϕ0 ⇒qu

ϕϕ0 ⇒≺qu

qu∧ϑ⇒ ⊥

ϕϕ0ϑ≺⇒ ⊥ wird transformiert in:

pt∧ϕ0 ⇒qu qu∧ϑ⇒ ⊥

ϕ⇒pt pt∧ϕ0ϑ≺⇒ ⊥

ϕϕ0ϑ≺⇒ ⊥

Fall 2: Die Resolventeϕϕ0⇒quwird insmit keinem Goal geschnitten. Dann trägt sie zur Ableitung vonΦ`ψ nichts bei, kann also ebenfalls aussentfernt werden.

Demnach giltΦ`ASK ψgenau dann, wenn es eine Folge(ψ1, . . . ,ψn)von Goals gibt derart, dassψ1Φ,ψn =ψ und für alle 1< i ≤ n ψi die Resolvente vonψi−1und einer Hornformel vonΦist — und nicht die Resolvente zweierbeliebigerVorgänger vonψi.

Analog kann man alle Resolventen zweier Cohornformeln aus variablenfreien Schnittableitungen vonΦ= LP∪ {ϕ} `ψentfernen, wennLPeine cologisches Programm ist undϕ,ψCogoals sind, so dassΦ`PSKψgenau dann gilt, wenn es eine Folge(ψ1, . . . ,ψn)von Cogoals gibt derart, dassψ1Φ,ψn = ψund für alle 1<i ≤nψidie Resolvente vonψi−1und einer Cohornformel vonΦist.

Die Einschränkung des prädikatenlogischen Schnittkalküls auf solche Regelanwendungen führt zum (co)SLD-Kalkül, mit dem (Co)Goals gelöst werden sollen. SLD steht fürselective linear definite clause resolution.selectiveweist auf eine mögliche Strategie hin, nach der das Atom ausgewählt wird, das bei einem Schnitt entfernt wird.

linearbedeutet, dass sich jede Formel ϕeinerSLD-Ableitung nur aus ihrem jeweiligen direkten Vorgänger (und LP) ergibt, dass alsoϕ nicht wie beim Schnittkalkül auch von früheren Vorgängern abhängt (s.o.). Der Begriff clause(deutsch: Klausel) umfasst Hornformeln (definite clauses) und Goals.

Um sowohl Goals als auch Cogoals zu verarbeiten, benötigen wir einen hierarchischen Ansatz, in demLPauch Basisprädikateenthalten darf, die vonLPverwendet, aber nicht “definiert” werden.

Dazu wird von der gegebenen SignaturΣ eineBasissignaturΣ0 ⊆ Σabgespalten, die alle Operationen vonΣ enthält. Die Prädikate vonΣ0nennen wirBasisprädikate.

Zu jedemp:n∈Σ0gehöre auch dasKomplementprädikatp:nzuΣ0. Im Fall≡ ∈Σ0sei≡=6≡.

Stellen alle Operationen von Σ Konstruktoren dar, dann können Gleichheits- bzw. Ungleichheitsprädikate zu Σ\Σ0 gehören. Gemäß Abschnitt 8.3 spezifiziert man sie dann durch das (co)logische Programm congΣ bzw.

disgΣ, damit diese Prädikate im Fixpunktmodell als Gleichheit bzw. Ungleichheit interpretiert werden (siehe Ab-schnitt 9.3). Sollen jedoch einige Operationen durch Gleichungen (siehe AbAb-schnitt 5.3) spezifiziert werden, dann

9.2 SLD-Kalküle 123

gehört≡zuΣ0.

Ein (co)logischesΣ-ProgrammLPheißtProgramm mit Basisprädikaten, wenn für allept⇐ϕ ∈ LPbzw.pt⇒ ϕ∈LP pnicht zuΣ0gehört.

SeiAeine erreichbarekomplementabgeschlosseneΣ0-Gleichheitsstruktur (siehe Abschnitte 5.2 und 8.3), d.h. für allep:n∈Σ0giltpB=An\pB.

StructΣ,Abezeichnet die Klasse allerΣ-StrukturenB, derenΣ0-Redukt mitAübereinstimmt.StructΣ,A,LP=def {B∈ StructΣ,A|B|=LP}.

Die prädikatenlogische Folgerungsrelation fürStructΣ,Abezeichnen wir mit|=A: Für alleΦ⊆TPL(AtΣ(X))undψ∈TPL(AtΣ(X)),

Φ|=A ψdef ∀B∈StructΣ,A :B|=^Φ⇒B|=ψ.

ΦistA-erfüllbar, wenn esB∈StructΣ,AmitB|=VΦgibt.

SeiLPein (co)logischesΣ-Programm mit Basisprädikaten undLP0die Menge aller (Co)Hornformeln ϕ0, für die esϕ∈ LPund eine Variablenumbenennungτmitϕτ= ϕ0gibt.

SeiLPlogisch. DerSLD-Kalkül für(LP,A)ist analytisch und besteht aus vier Regeln:

Faktorregel

LP ` ϑϑ0ϕ

LP ` ϑσϕσ ϑ,ϑ0∈ AtΣ(X), ϕ∈GΣ(X), σ =unify(ϑ,ϑ0) Resolution überLP

LP ` ϑ0ψ LP ` ϕσψσ

ϑ0∈ AtΣ(X), ψ∈GΣ(X), ϑϕ∈LP0, σ=unify(ϑ,ϑ0), var(ϑϕ)kvar(ϑ0ψ) Basisregel

LP ` ϑϕ

ϕσ ϑ∈AtΣ0(X), ϕ∈GΣ(X), σ∈ TΣX, A|=ϑσ Stopregel

LP ` >

Analog zu Satz 8.8 (i) erhält man dieKorrektheit desSLD-Kalküls für(LP,A): Für alleSLD-Ableitungen(LP`ϕ1, . . . ,LP`ϕn)gilt

LP |=A ϕn⇒ ∃Zϕ1, (1)

wobeiZ=var(ϕ1)\var(ϕn). Im Fallϕn=>gilt demnachLP|=A any(ϕ1)(siehe Kapitel 8).

SeiLPcologisch. DercoSLD-Kalkül für(LP,A)ist analytisch und besteht aus vier Regeln:

Summandregel

LP ` ϑϑ0ϕ

LP ` ϑσϕσ ϑ,ϑ0∈ AtΣ(X), ϕ∈coGΣ(X), σ=unify(ϑ,ϑ0) Coresolution überLP

LP ` ϑ0ψ LP ` ϕσψσ

ϑ0∈ AtΣ(X), ψ∈coGΣ(X), ϑϕ∈ LP0, σ=unify(ϑ,ϑ0), var(ϑϕ)kvar(ϑ0ψ)

124 9 Logische Programmierung

Basisregel

LP ` ϑϕ

ϕσ ϑ∈AtΣ0(X), ϕ∈coGΣ(X), σ∈TΣX, A6|=ϑσ Stopregel

LP ` ⊥

Analog zu Satz 8.8 (i) erhält man dieKorrektheit descoSLD-Kalküls für(LP,A): Für allecoSLD-Ableitungen(LP`ϕ1, . . . ,LP`ϕn)gilt

LP|=A∀Zϕ1ϕn, (2)

wobeiZ=var(ϕ1)\var(ϕn). Im Fallϕn=⊥gilt demnachLP|=A any(¬ϕ1)(siehe Kapitel 8).

Aufgrund obiger Bemerkungen über variablenfreie PSK-Ableitungen und da diese ASK-Ableitungen entspre-chen, gilt Satz 8.11 auch für variablenfreieSLD-Ableitungen (die auch keine Faktor- bzw. Summandregelanwen-dungen enthalten):

Satz 9.4(Vollständigkeit variablenfreier(co)SLD-Ableitungen)

(i)SeiLPein variablenfreies logisches Programm mit Basisprädikaten undϕeinΣ-Goal überX. IstLP∪ {¬ϕ} A-unerfüllbar, dann giltLP`SLD,A >.

(ii)SeiLPein variablenfreies cologisches Programm mit Basisprädikaten undϕeinΣ-Cogoal überX. IstLP∪ {ϕ}

A-unerfüllbar, dann giltLP`SLD,A ⊥. o

Satz 9.5(Lifting und Vollständigkeit von(co)SLD-Ableitungen)

(i)SeiLPein logischesΣ-Programm mit Basisprädikaten,ϕeinΣ-Goal,σ:X→TΣund abl0= (Exp(LP)`ϕσ, . . . ,Exp(LP)`ψ0)

eine variablenfreieSLD-Ableitung. Dann gibt es eineSLD-Ableitung abl = (LP`ϕ, . . . ,LP`ψ)

undρ:X→TΣ(X)mitψρ=ψ0undγρ=σ, wobeiγdie Komposition der mgus vonablist.

(ii)AusLP|=Aany(ϕ)folgt die Existenz vonablmitψ=>.

(iii)SeiLPein cologischesΣ-Programm mit Basisprädikaten, ϕeinΣ-Cogoal,σ:X→TΣund abl0= (Exp(LP)`ϕσ, . . . ,Exp(LP)`ψ0)

eine variablenfreiecoSLD-Ableitung. Dann gibt es einecoSLD-Ableitung abl = (LP`ϕ, . . . ,LP`ψ)

undρ:X→TΣ(X)mitψρ=ψ0undγρ=σ, wobeiγdie Komposition der mgus vonablist.

(iv)AusLP|=Aany(¬ϕ)folgt die Existenz vonablmitψ=⊥. Beweis von(i)durch Induktion über die Länge n von abl0.

Fall 1:n=0. Dann istψ0 = ϕσ. Also ist(LP `ϕ)eineSLD-Ableitung, die die Bedingungen von (i) erfüllt, wenn manρ=σundγ=idXsetzt.

9.2 SLD-Kalküle 125

Fall 2:n > 0. Dann istψ0 die Resolvente einer HornformelθvonExp(LP)und eines Goalsψ10 und es gibt eine variablenfreieSLD-Ableitung

(Exp(LP)`ϕσ, . . . ,Exp(LP)`ψ01)

mit weniger alsnResolventen. Nach Induktionsvoraussetzung gibt es ein Goalψ1, eineSLD-Ableitung abl0 = (LP`ϕ, . . . ,LP`ψ1)

undρ0 :X→TΣ(X)mitψ1ρ0=ψ10 undγρ0 =σ, wobeiγdie Komposition der mgus vonabl0ist.

Wegenψ1ρ0 = ψ10 und daψ0 eine aussagenlogische Resolvente vonθundψ10 ist, liefert Lemma 8.10 ein Goalψ, eineSLD-Ableitung

abl00= (LP`ψ1, . . . ,LP`ψ)

undρ:X→TΣ(X)mitψρ=ψ0undγ0ρ=ρ0, wobeiγ0die Komposition der mgus vonabl00ist.

Setzt manabl0undabl00zusammen, erhält man eineSLD-Ableitungabl, die die Bedingungen von (i) erfüllt:ψρ= ψ0,γγ0ρ=γρ0=σundγ0γist die Komposition der mgus vonabl.

Beweis von(ii).

SeiLP |=A any(ϕ). Dann istLP∪ {¬any(ϕ)}, also auchLP∪ {¬ϕ}A-unerfüllbar. Nach Satz 8.9 ist daher auch die Termexpansion vonLP∪ {¬ϕ} A-unerfüllbar. Da diese abzählbar ist und mitExp(LP)∪ {¬ϕσ| σ ∈ TΣX} übereinstimmt, gibt esabl0mitψ0=>nach Satz 9.4 (i). Aus dem ersten Teil des Beweises folgt dann die Existenz vonabl.

Beweis von(iii).

Die Existenz einer einecoSLD-Ableitung

abl = (LP`ϕ, . . . ,LP`ψ)

mit den unter (ii) genannten Eigenschaften kann analog zu (i) gezeigt werden.

Beweis von(iv).

SeiLP|=A any(¬ϕ). Dann istLP∪ {any(ϕ)}, also auchLP∪ {ϕ}A-unerfüllbar. Nach Satz 8.9 ist daher auch die Termexpansion vonLP∪ {ϕ}A-unerfüllbar. Da diese abzählbar ist und mitExp(LP)∪ {ϕσ|σ ∈ TΣX} überein-stimmt, gibt esabl0nach Satz 9.4 (ii). Aus dem ersten Teil des Beweises folgt dann die Existenz vonabl. o

Zusammenfassend erhalten wir:

SeiAeine erreichbare komplementabgeschlosseneΣ0-Struktur und|=A,EQ = |=A∩ |=EQ. SeiLPein logischesΣ-Programm mit Basisprädikaten undϕeinΣ-Goal.

LP|=A any(ϕ) ⇔ LP`SLD,A>. (3)

EnthältΣ\Σ0die Gleichheitsprädikate vonΣ, dann folgt (4) aus (3) und Satz 8.13 (iii):

LP|=A,EQ any(ϕ) ⇔ LP∪congΣ`SLD,A >. (4)

SeiLPein cologischesΣ-Programm mit Basisprädikaten undϕeinΣ-Cogoal.

LP|=A any(¬ϕ) ⇔ LP`SLD,A ⊥. (5)

EnthältΣ\Σ0die Ungleichheitsprädikate vonΣ, dann folgt (6) aus (5) und Satz 8.13 (iii):

LP|=A,EQ any(¬ϕ) ⇔ LP∪disgΣ`SLD,A⊥. (6)

126 9 Logische Programmierung