• Keine Ergebnisse gefunden

Lösungskalküle für logische Programme

9.4 Lösungskalküle für logische Programme

Wir erweitern die Sukzedenten der Regeln des(co)SLD-Kalküls um eine Konjunktion von Gleichungen x ≡ xσ bzw. eine Disjunktion von Ungleichungenx6≡xσ, wobeiσder mgu der jeweiligen Regelanwendung ist.

SeiAeine erreichbareΣ0-Struktur mit Komplementen (siehe Abschnitt 5.1),LPein (co)logischesΣ-Programm und LP0die Menge aller (Co)Hornformelnϕ0, für die esϕ∈ LPund eine Variablenumbenennungτmitϕτ=ϕ0gibt.

Σ0enthalte≡und6≡.

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

Faktorregel

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

Summandregel

Haben alle in einer(co)SLDL-Ableitung angewendeten (Co)Hornformeln vonLP0paarweise disjunkte Variablen-mengen, dann sind die aus dem jeweiligen mgu gebildeten Konjunktionen von Gleichungen bzw. Disjunktionen von Ungleichungen gelöst.

Satz 9.8(Korrektheit von(co)SLDL-Ableitungen)

SeiLPein logischesΣ-Programm mit Basisprädikaten und(LP`ϕ1, . . . ,LP`ϕn)eineSLDL-Ableitung.

(i)LP|=A ϕnϕ1.

(ii)SeiψeinΣ0-Goal,ϕn =ψVki=1xi ≡tigelöst undσ={t1/x1, . . . ,tk/xk}. Dann giltLP|=Aψσϕ1σ.

132 9 Logische Programmierung

SeiLPein cologischesΣ-Programm mit Basisprädikaten und(LP`ϕ1, . . . ,LP`ϕn)einecoSLDL-Ableitung.

(iii)LP|=A ϕnϕ1.

(iv)SeiψeinΣ0-Cogoal,ϕn =ψWki=1xi 6≡tigelöst undσ={t1/x1, . . . ,tk/xk}. Dann giltLP|=A ϕ1σψσ.

Beweis von(i). Wegen

LP|=A ϕnϕ1 ⇔ ∀B∈StructΣ,A,LP:B|=ϕnϕ1

⇔ ∀B∈StructΣ,A,LP:gB(ϕn)⊆gB(ϕ1)

genügt es zu zeigen, dass für alleB∈StructΣ,A,LPund 1≤i<nFolgendes gilt:

gB(ϕi+1)⊆gB(ϕi). (1)

Fall 1: Der Ableitungsschritt vonLP`ϕinachLP`ϕi+1ist eine Anwendung der Faktorregel, d.h.

ϕi =ϑϑ0ϕ und ϕi+1=ϑσϕσ^{x ≡xσ|x∈supp(σ)}, wobeiϑ,ϑ0,ϕ,σdie Anwendbarkeitsbedingungen der Faktorregel erfüllen.

Beweis von (1).Seih∈ gB(ϕi+1), also

h ∈ gB(ϑσ)∩gB(ϕσ)∩T{gB(x≡xσ)|x∈supp(σ)}

=gB(ϑσ)∩gB(ϕσ)∩T{{h∈ AX|h(x) =h(xσ)} |x∈supp(σ)}. (2) Wegenϑσ=ϑ0σfolgt

hσ∈gB(ϑ)∩gB(ϑ0)∩gB(ϕ) (3) aus (2) und Lemma 8.3.

(2) impliziert außerdemh(x) =h(xσ)für allex∈supp(σ), alsoh=hσ. Deshalb folgt h∈gB(ϑ)∩gB(ϑ0)∩gB(ϕ) =gB(ϑϑ0ϕ) =gB(ϕi) aus (3).

Fall 2: Der Ableitungsschritt vonLP`ϕinachLP`ϕi+1ist eine Anwendung der Resolutionsregel, d.h.

ϕi=ϑ0ψ und ϕi+1= ϕσψσ^{x≡xσ|x∈supp(σ)}, wobeiϑ,ϑ0,ϕ,ψ,σdie Anwendbarkeitsbedingungen der Resolutionsregel erfüllen.

Beweis von (1).Seih∈ gB(ϕi+1), also

h ∈ gB(ϕσ)∩gB(ψσ)∩T{gB(x≡xσ)|x ∈supp(σ)}

=gB(ϕσ)∩gB(ψσ)∩T{{h∈AX|h(x) =h(xσ)} |x ∈supp(σ)}. (4) nach Lemma 8.3 folgthσ∈gB(ϕ)∩gB(ψ)aus (4), also

hσ∈gB(ϑ0)∩gB(ψ) (5) wegenA|=ϑϕundϑσ=ϑ0σ.

(4) impliziert außerdemh(x) =h(xσ)für allex∈supp(σ), alsoh=hσ. Deshalb folgt h∈gB(ϑ0)∩gB(ψ) =gB(ϑ0ψ) =gB(ϕi)

aus (5).

Beweis von(ii). Daϕngelöst ist, gilt gB(ϕnσ) =gB(ψσ

k

^

i=1

xiσ≡tiσ) =gB(ψσ

k

^

i=1

ti≡ti) =gB(ψσ). (6)

9.4 Lösungskalküle für logische Programme 133

Sei h ∈ gB(ψσ). (6) impliziert h ∈ gB(ϕnσ), also hσ ∈ gB(ϕn)

(i)

⊆ gB(ϕ1) nach Lemma 8.3. Daraus folgt h∈gB(ϕ1σ), wieder nach Lemma 8.3.

Beweis von(iii). Wegen

LP|=A ϕ1ϕn ⇔ ∀B∈StructΣ,A,LP:B|=ϕ1ϕn

⇔ ∀B∈StructΣ,A,LP:gB(ϕ1)⊆gB(ϕn) genügt es zu zeigen, dass für alleB∈StructΣ,A,LPund 1≤i<n

gB(ϕi)⊆gB(ϕi+1) (7)

gilt.

Fall 1: Der Ableitungsschritt vonLP`ϕinachLP`ϕi+1ist eine Anwendung der Summandregel, d.h.

ϕi =ϑϑ0ϕ und ϕi+1=ϑσϕσ_{x6≡ xσ|x∈supp(σ)}, wobeiϑ,ϑ0,ϕ,σdie Anwendbarkeitsbedingungen der Summandregel erfüllen.

Beweis von (7).Seih∈ gB(ϕi), also

h∈gB(ϑ)∪gB(ϑ0)∪gB(ϕ). (8) Fall 1.1: h=hσ. Dann gilthσ∈ gB(ϑ)∪gB(ϑ0)∪gB(ϕ)wegen (8), also

h∈gB(ϑσ)∪gB(ϕσ) (9)

wegen Lemma 8.3 undϑσ=ϑ0σ.

Fall 1.2: Es gibtx∈supp(σ)mith(x) =h(xσ). Also gilt

h ∈ S{{h∈AX|h(x)6=h(xσ)} |x∈supp(σ)}

=S{gB(x6≡ xσ)|x∈supp(σ)}=gB(W{x6≡xσ|x ∈supp(σ)}). (10) In beiden Fällen folgt

h ∈ gB(ϑσϕσ)∪gB(W{x6≡xσ|x∈supp(σ)}) gB(ϑσϕσW{x6≡xσ|x∈supp(σ)}) =gB(ϕi+1) aus (9) bzw. (10).

Fall 2: Der Ableitungsschritt vonLP`ϕinachLP`ϕi+1ist eine Anwendung der Coresolutionsregel, d.h.

ϕi = (ϑ0ψ) und ϕi+1=ϕσψσ_{x6≡xσ|x ∈supp(σ)}, wobeiϑ,ϑ0,ϕ,ψ,σdie Anwendbarkeitsbedingungen der Summandregel erfüllen.

Beweis von (7).Seih∈ gB(ϕi), also

h∈gB(ϑ0)∪gB(ψ). (11)

Fall 2.1: h=hσ. Dann gilthσ∈ gB(ϑ0)∪gB(ϕ)wegen (11), also hσ∈gB(ϕ)∪gB(ψ) wegenϑ0σ=ϑσundA|=ϑϕ. Daraus folgt

h∈ gB(ϕσ)∪gB(ψσ) (12)

nach Lemma 8.3.

Fall 2.2: Es gibtx∈supp(σ)mith(x) =h(xσ). Also gilt (10) wie in Fall 1.2.

134 9 Logische Programmierung Satz 9.9(Lösungsvollständigkeit von(co)SLDL-Ableitungen)

(i)SeiLPein logischesΣ-Programm,ϕeinΣ-Goal undσ:X→TΣmitLP|=A ϕσ. Dann gibt es eine Substitution

(i) und (ii) lassen sich analog zu Satz 9.5 (ii) bzw. (iv) beweisen, indem man die dortigen Beweisschritte auf (co)SLDL-Ableitungen überträgt und berücksichtigt, dass eine(co)SLD-Ableitungabl = (LP`ϕ1,LP`ϕ2, . . . ,LP`

Die Spezifikation+log4gibt die logischen Programme von Abschnitt 9.1 so wieder, dass der Beweiseditor+ Ex-pander2den Lösungskalkül auf sie anwenden kann.

Das jeweils ausgewählte Atom eines (Co)Goals wird vollständigexpandiert, d.h. gleichzeitig mit allen (Co)Hornformeln – auch mittels Paramodulation – geschnitten, deren Konklusion (Prämisse) mit ihm unifizierbar ist. Folglich be-steht das jeweilige Redukt aus der Disjunktion (Konjunktion) der Prämissen (Konklusionen) aller angewendeten (Co)Hornformeln. Variablen, die nur im Redukt vorkommen, werden dort existenz- bzw. allquantifiziert.True steht dort für>,Falsefür⊥,&für∧,|für∨,Anyfür∃,Allfür∀,=für≡,=/=für6≡,0fürzero,1fürsucc(zero), n+1fürsucc(n),[]fürnil,‘in‘für∈,-für\und[1..n]fürenum(n).

Programme für diese Operationen bzw. Prädikate sind in+Expander2eingebaut und tauchen deshalb in+log4 nicht auf. Stattdessen folgen auf jede Expansion Simplifikationsschritte, die Teilausdrücke durch äquivalente Tei-lausdrücke ersetzen und so das jeweilige Redukt soweit wie möglich vereinfachen.

Beweis von+sorted[1,3,4] (siehe Beispiel 9.1)

Widerlegung von+unsorted[1,3,4] (siehe Beispiel 9.1)

9.5 Highlights 135

Berechnung der Lösungen von+perm([1,3,4],s) (siehe Beispiel 9.1)

Berechnung der Lösungen von+actions(3,A,B,C,acts) (siehe Beispiel 9.2)

Berechnung der Lösungen von+queens(5,val) (siehe Beispiel 9.3)

9.5 Highlights

Hornformel:ϕ⇒pt Cohornformel:pt⇒ψ

Ein(co)logisches ProgrammLPbesteht aus (Co)Hornformeln.

Goal:p1t1∧ · · · ∧pntn Cogoal:p1t1∨ · · · ∨pntn

SeiΣ0eine Teilsignatur vonΣ, die alle Operationen vonΣenthält. Die Prädikate vonΣ0nennen wir Basisprädi-kate. Zu jedemp:n∈Σ0gehöre auch dasKomplementprädikatp:nzuΣ0. Im Fall≡ ∈Σ0sei≡=6≡.

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

Sei Aeine erreichbare komplementabgeschlossene Σ0-Gleichheitsstruktur, d.h. für alle p : n ∈ Σ0 gilt pB = An\pB.

Der (analytische)(co)SLD-Kalkül für(LP,A)besteht aus den in Abschnitt 9.2 angebenen Regeln zur Transfor-mation eines (Co)Goals nachLP` >bzw.LP` ⊥.

Korrektheit und Vollständigkeit des (co)SLD-Kalküls:

SeiLPein logischesΣ-Programm mit Basisprädikaten undϕeinΣ-Goal.

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

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

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

Modelle

StructΣ,A= Klasse allerΣ-StrukturenBmitB|Σ0= A Für alleB,C∈StructΣ,A,

B≤C ⇔def für alle Prädikatep∈Σ\Σ0giltpB ⊆pC.

SeiLPein (co)logischesΣ-Programm mit Basisprädikaten undExt(A,LP)dieΣ-Struktur, diep :n∈Σwie folgt interpretiert:

pExt(A,LP) =

( {foldA(t)|t∈ TΣn, LP`SLD,A pt} fallsLPlogisch ist, {foldA(t)|t∈ TΣn, LP6`SLD,A pt} fallsLPcologisch ist.

Ext(A,LP)ist das bzgl.≤kleinste bzw. größte Modell vonLP, das zuStructΣ,Agehört.

Komplemente

SeiLPein (co)logisches Programm fürP=Σ\Σ0undP={p:n|p:n∈P}.

136 9 Logische Programmierung

Das (co)logische Programm

LP =









{p(t)⇒p1t1∨ · · · ∨pntn| pt⇐p1t1∧ · · · ∧pntn∈LP} ∪ {p(t)⇒ ⊥ |pt⇐ > ∈LP} fallsLPlogisch ist, {p(t)⇐p1t1∧ · · · ∧pntn| pt⇒p1t1∨ · · · ∨pntn∈LP} ∪ {p(t)⇐ > |pt⇒ ⊥ ∈LP} fallsLPcologisch ist, nennen wirKontrapositionvonLP.

SeiB=Ext(A,LP)undB=Ext(A,LP). Für allep∈Σgilt pB= An\pB.

Lösungen

Goals der FormϕVni=1xi≡tiund Cogoals der FormϕWi=1n xi 6≡tiheißengelöst, wennϕeinΣ0-(Co)Goal ist undx1, . . . ,xnpaarweise verschiedene Variablen sind, die int1, . . . ,tnnicht vorkommen.

Der (analytische)(co)SLDL-Kalkül für(LP,A)besteht aus den in Abschnitt 9.4 angebenen Regeln zur Transfor-mation eines (Co)Goals in seine – als Gleichungen bzw. Ungleichungen – dargestellten Lösungen.

Korrektheit und Vollständigkeit des (co)SLDL-Kalküls:

SeiLP ein logischesΣ-Programm mit Basisprädikaten,(LP ` ϕ1, . . . ,LP ` ϕn)eineSLDL-Ableitung, ψeinΣ0 -Goal undϕn =ψVki=1xi≡tigelöst. Dann gilt

LP |=A ψ{t1/x1, . . . ,tk/xk} ⇒ϕ1{t1/x1, . . . ,tk/xk}.

Gilt umgekehrtLP|=A ϕσfür einσ:X→TΣ, dann gibt es eine Substitutionτσund eineSLDL-Ableitung (LP`ϕ, . . . ,LP`ψτ^

x∈supp(τ)

x≡xτ).

SeiLPein cologischesΣ-Programm mit Basisprädikaten und(LP ` ϕ1, . . . ,LP ` ϕn)einecoSLDL-Ableitung,ψ einΣ0-Cogoal undϕn=ψWki=1xi6≡tigelöst. Dann gilt

LP |=A ϕ1{t1/x1, . . . ,tk/xk} ⇒ψ{t1/x1, . . . ,tk/xk}.

Gilt umgekehrtLP|=A¬ϕσ, dann gibt es eine Substitutionτσund eineSLDL-Ableitung (LP`ϕ, . . . ,LP`ψτ_

x∈supp(τ)

x6≡xτ).

LITERATUR 137

Literatur

[1] Pierre Basieux, Die Architektur der Mathematik: Denken in Strukturen, rororo science 2000

[2] Christoph Beierle, Gabriele Kern-Isberner, Methoden wissensbasierter Systeme, Vieweg+Teubner 2008 [3] Mordechai Ben-Ari, Mathematical Logic for Computer Science, Springer 2001

[4] Johan van Benthem, Exploring Logical Dynamics, CSLI Publications, Stanford University 1996 [5] Jürgen Dassow, Logik für Informatiker, Lehrbuch, Teubner 2005

[6] Hartmut Ehrig et al., Mathematisch-strukturelle Grundlagen der Informatik, Springer 2001 [7] Melvin Fitting, First-Order Logic and Automated Theorem Proving, Springer 1996

[8] Erich Grädel,Mathematische Logik, Vorlesungsskript, RWTH Aachen, Sommersemester 2009

[9] Heinz Peter Gumm,Universelle Coalgebra, in: Th. Ihringer, Allgemeine Algebra, Heldermann Verlag 2003

[10] Dieter Hofbauer, Ralf-Detlef Kutsche, Grundlagen des maschinellen Beweisens, Vieweg 1991 [11] Michael Huth, Mark Ryan, Logic in Computer Science, Cambridge University Press 2004

[12] Bart Jacobs, Jan Rutten,A Tutorial on (Co)Algebras and (Co)Induction, EATCS Bulletin 62 (1997) 222-259 [13] Uwe Kastens und Hans Kleine Büning, Modellierung: Grundlagen und formale Methoden, Hanser 2018 [14] Martin Kreuzer, Stefan Kühling, Logik für Informatiker, Pearson 2006

[15] Klaus Kriegel,Mathematik für Informatiker II: Analysis, FU Berlin 2009 [16] Alexander Kurz,Coalgebras and Modal Logic, Kurs am CWI Amsterdam, 2001 [17] Zohar Manna, Mathematical Theory of Computation, McGraw-Hill 1974

[18] Christoph Meinel, Martin Mundhenk, Mathematische Grundlagen der Informatik - Mathematisches Den-ken und Beweisen, Vieweg+Teubner 2011

[19] K. Meinke, J.V. Tucker,Universal Algebra, in: Handbook of Logic in Computer Science 1 (1992) 189 - 368 [20] Faron Moller, Georg Struth, Modelling Computing Systems - Mathematics for Computer Science,

Sprin-ger 2013

[21] Anil Nerode, Richard A. Shore, Logic for Applications, Springer 1997

[22] Peter Padawitz, Dirk Siefkes,Einführung in die Syntax und Semantik der Prädikatenlogik, Vorlesungs-skript, TU Berlin 1981

[23] Peter Padawitz, Computing in Horn Clause Theories, EATCS Monographs on Theoretical Computer Science 16, Springer 1988; Freiexemplare gibt es beim Autor.

[24] Peter Padawitz, Deduction and Declarative Programming, Cambridge Tracts in Theoretical Computer Science 28, Cambridge University Press 1992

[25] P. Padawitz, Swinging Types = Functions + Relations + Transition Systems, Theoretical Computer Science 243 (2000) 93-165

[26] Peter Padawitz,Formale Methoden des Systementwurfs, Vorlesungsskript, TU Dortmund 2006 [27] Peter Padawitz,From Modal Logic to (Co)Algebraic Reasoning, Folienskript, TU Dortmund [28] Peter Padawitz,Übersetzerbau, Folienskript, TU Dortmund 2019

138 LITERATUR

[29] Peter Padawitz,Übersetzerbau, Vorlesungsskript, TU Dortmund 2010

[30] Peter Padawitz,Fixpoints, Categories, and (Co)Algebraic Modeling, Folienskript, TU Dortmund [31] Michael Richter, Logikkalküle, Teubner 1978

[32] Jan Rutten, Universal Coalgebra: A Theory of Systems, Theoretical Computer Science 249 (2000) 3-80 [33] Uwe Schöning, Logik für Informatiker, Spektrum Akademischer Verlag 2000

[34] Thomas Schwentick, Logik für Informatiker, Vorlesungsfolien, TU Dortmund, Wintersemester 2012/13 [35] Bernhard Steffen, Oliver Rüthing, Malte Isberner, Grundlagen der höheren Informatik - Induktives

Vor-gehen, Springer 2014

[36] Walter Vogler,Logik für Informatiker, Vorlesungsskript, Universität Augsburg, Wintersemester 2011/12 [37] Hubert Wagner, Logische Systeme der Informatik, Vorlesungsskript, TU Dortmund, Wintersemester

2000/01

Index

140 INDEX

INDEX 141

142 INDEX