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:g∗B(ϕn)⊆g∗B(ϕ1)
genügt es zu zeigen, dass für alleB∈StructΣ,A,LPund 1≤i<nFolgendes gilt:
g∗B(ϕi+1)⊆g∗B(ϕ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∈ g∗B(ϕi+1), also
h ∈ g∗B(ϑσ)∩g∗B(ϕσ)∩T{gB(x≡xσ)|x∈supp(σ)}
=g∗B(ϑσ)∩g∗B(ϕσ)∩T{{h∈ AX|h(x) =h∗(xσ)} |x∈supp(σ)}. (2) Wegenϑσ=ϑ0σfolgt
h∗◦σ∈g∗B(ϑ)∩g∗B(ϑ0)∩g∗B(ϕ) (3) aus (2) und Lemma 8.3.
(2) impliziert außerdemh(x) =h∗(xσ)für allex∈supp(σ), alsoh=h∗◦σ. Deshalb folgt h∈g∗B(ϑ)∩g∗B(ϑ0)∩g∗B(ϕ) =g∗B(ϑ∧ϑ0∧ϕ) =g∗B(ϕ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∈ g∗B(ϕi+1), also
h ∈ g∗B(ϕσ)∩g∗B(ψσ)∩T{gB(x≡xσ)|x ∈supp(σ)}
=g∗B(ϕσ)∩g∗B(ψσ)∩T{{h∈AX|h(x) =h∗(xσ)} |x ∈supp(σ)}. (4) nach Lemma 8.3 folgth∗◦σ∈g∗B(ϕ)∩g∗B(ψ)aus (4), also
h∗◦σ∈g∗B(ϑ0)∩g∗B(ψ) (5) wegenA|=ϑ⇐ϕundϑσ=ϑ0σ.
(4) impliziert außerdemh(x) =h∗(xσ)für allex∈supp(σ), alsoh=h∗◦σ. Deshalb folgt h∈g∗B(ϑ0)∩g∗B(ψ) =g∗B(ϑ0∧ψ) =g∗B(ϕi)
aus (5).
Beweis von(ii). Daϕngelöst ist, gilt g∗B(ϕnσ) =g∗B(ψσ∧
k
^
i=1
xiσ≡tiσ) =g∗B(ψσ∧
k
^
i=1
ti≡ti) =g∗B(ψσ). (6)
9.4 Lösungskalküle für logische Programme 133
Sei h ∈ g∗B(ψσ). (6) impliziert h ∈ g∗B(ϕnσ), also h∗◦σ ∈ g∗B(ϕn)
(i)
⊆ g∗B(ϕ1) nach Lemma 8.3. Daraus folgt h∈g∗B(ϕ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:g∗B(ϕ1)⊆g∗B(ϕn) genügt es zu zeigen, dass für alleB∈StructΣ,A,LPund 1≤i<n
g∗B(ϕi)⊆g∗B(ϕ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∈ g∗B(ϕi), also
h∈g∗B(ϑ)∪g∗B(ϑ0)∪g∗B(ϕ). (8) Fall 1.1: h=h∗◦σ. Dann gilth∗◦σ∈ g∗B(ϑ)∪g∗B(ϑ0)∪g∗B(ϕ)wegen (8), also
h∈g∗B(ϑσ)∪g∗B(ϕσ) (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(σ)}=g∗B(W{x6≡xσ|x ∈supp(σ)}). (10) In beiden Fällen folgt
h ∈ g∗B(ϑσ∨ϕσ)∪g∗B(W{x6≡xσ|x∈supp(σ)}) g∗B(ϑσ∨ϕσ∨W{x6≡xσ|x∈supp(σ)}) =g∗B(ϕ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∈ g∗B(ϕi), also
h∈g∗B(ϑ0)∪g∗B(ψ). (11)
Fall 2.1: h=h∗◦σ. Dann gilth∗◦σ∈ g∗B(ϑ0)∪g∗B(ϕ)wegen (11), also h∗◦σ∈g∗B(ϕ)∪g∗B(ψ) wegenϑ0σ=ϑσundA|=ϑ⇒ϕ. Daraus folgt
h∈ g∗B(ϕσ)∪g∗B(ψσ) (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