• Keine Ergebnisse gefunden

Übersetzung modallogischer in prädikatenlogische Formeln

Sei At eine Menge unstrukturierter Atome wie in Kapitel 6 und 7, X = {x1,x2, . . .} eine abzählbare Menge von Variablen für Zustände undΣeine Signatur, die das zweistellige Prädikattransund jedes Atom von Atals einstelliges Prädikat enthält.

Die im Folgenden induktiv definierte Funktion

ml2pl:TML(At)×X→TPL(AtΣ(X))

übersetzt jede modallogische Formel über Atin eine prädikatenlogischeΣ-Formel über Xstate: Für alle p ∈ At,

8.4 Übersetzung modallogischer in prädikatenlogische Formeln 113

⊗ ∈ {∨,∧,⇒},ϕ,ψ∈TML(At),x∈Xundi∈N, ml2pl(p,x) = p(x), ml2pl(⊥,x) = ⊥, ml2pl(>,x) = >,

ml2pl(¬ϕ,x) = ¬ml2pl(ϕ,x),

ml2pl(ϕψ,x) = ml2pl(ϕ,x)⊗ml2pl(ψ,x),

ml2pl(2ϕ,xi) = ∀xi+1(trans(xi,xi+1)⇒ml2pl(ϕ,xi+1)), ml2pl(3ϕ,xi) = ∃xi+1(trans(xi,xi+1)∧ml2pl(ϕ,xi+1)).

Aufgabe Zeigen Sie, dass für alleϕ∈TML(At)undx∈X xdie einzige freie Variable vonml2pl(ϕ,x)ist. o Im Gegensatz zum Übersetzer von Zustandsformeln in aussagenlogische Formeln (siehe Kapitel 7) istml2plnicht von einer Kripke-Struktur

K = hδ,βi:State→(P(State)× P(At))

abhängig.Kbestimmt jedoch dieInterpretationvontransundAtin einerΣ-Struktur: SeiΣ0 = Σ\ {trans} ∪At undAeineΣ0-Struktur mit TrägermengeState. Dann bezeichnetAKdieΣ-Struktur mit

transAK = χ−1(δ) ={(s,s0)∈State2|s0δ(s)}, pAK = {s∈State|p∈β(s)}

für allep∈ At.

Satz 8.15(Korrektheit vonml2pl)

Für alle Kripke-StrukturenKmit ZustandsmengeState,Σ0-Strukturen Amit Trägermenge State, ϕ ∈ TML(At), h∈StateXundx∈Xgilt:

K |=h(x) ϕ ⇔ AK |=hml2pl(ϕ,x). (1) Beweis. Nach Definition der modal- bzw. prädikatenlogischen Erfüllbarkeitsrelation ist (1) äquivalent zu:

h(x)∈ gK(ϕ) ⇔ h∈gAK(ml2pl(ϕ,x)). (2) Wir zeigen (2) durch Induktion überTML(At).

Für allep∈Atundx ∈X,

h(x)∈gK(p) =gK(p) ⇔ p∈β(h(x)) ⇔ h(x) =h(x)∈ pAK

⇔ h∈gAK(ml2pl(p,x)) =gA

K(p(x)),

h(x)∈gK(⊥) = ⇔ h∈=gAK(⊥) =gAK(ml2pl(⊥))

h(x)∈gK(>) =State ⇔ h∈StateX=gAK(>) =gAK(ml2pl(>)).

Für alleϕ,ψ∈TML(At)undx∈ X,

h(x)∈gKϕ) =State\gK(ϕ)

ind.hyp.

⇔ h∈StateX\gAK(ml2pl(ϕ,x)) =gAK(¬(ml2pl(ϕ,x)))

=gAK(ml2pl(¬ϕ,x)),

114 8 Prädikatenlogik (predicate logic, first-order logic)

Eine modallogische Formel ϕheißt bisimulationsinvariant, wenn für alle Kripke-StrukturenK ∼K zum Kern vongK(ϕ)gehört. Demnach sind laut Satz 7.9 alle modallogischen Formeln bisimulationsinvariant.

Analog nennen wir eine prädikatenlogischeΣ-Formelϕbisimulationsinvariant, wenn für alle Kripke-Strukturen Kmit ZustandsmengeState,Σ0-StrukturenA∼Kzum Kern vongAK(ϕ)gehört.

Satz 8.15([4], Theorem 4.18) Eine prädikatenlogische Formel ist genau dann bisimulationsinvariant, wenn sie

zum Bild vonml2plgehört. o

8.5 Highlights

Signaturder Prädikatenlogik:PL=AL∪ {Qx: 1→1|Q∈ {∀,∃}, x∈X}

SeiΣeine Signatur der in prädikatenlogischen Formeln vorkommenden Operationen f : n → 1undPrädikate p:n.

8.5 Highlights 115

Σ-Atome:

AtΣ(X)={pt|p:n∈Σ, t∈TΣ(X)n}. Semantikder Prädikatenlogik:

Σ-StrukturA: Interpretation der Operationen und Prädikate vonΣ

TermstrukturA:Σ-Struktur mit der Trägermenge und den Operationen vonTΣ(X)oderTΣ PL-AlgebraPow(A)mit TrägermengeP(AX): Für alleS,S0 ⊆AX,

Pow(A) = ∅,

>Pow(A) = AX,

¬Pow(A)(S) = AX\S,

Pow(A)(S,S0) = S∩S0,

Pow(A)(S,S0) = S∪S0,

Pow(A)(S,S0) = (AX\S)∪S0,

(∀x)Pow(A)(S) = {h∈AX| ∀a∈ A:h[a/x]∈S}, (∃x)Pow(A)(S) = {h∈AX| ∃a∈ A:h[a/x]∈S}. Ainduziert folgende BelegunggA :AtΣ(X)→ P(AX)der Atome:

Für allept∈ AtΣ(X),

gA(pt) =def {h∈AX|h(t)∈pA}. Seiϕ,ψ∈TPL(AtΣ(X))undh:X→A.

(A,h) erfüllt ϕoder ist ein Modellvon ϕ, geschrieben: A |=h ϕ, wenn h zu gA(ϕ)gehört.h heißt dann auch Lösung vonϕinA.

Aerfülltϕoder ist einModellvonϕ, geschrieben:A|= ϕ, wenngA(ϕ) =AXgilt.

Wir schreibenϕAh ψ, falls(A,h)genau dannϕerfüllt, wenn(A,h)ψerfüllt, undϕA ψ, falls Agenau dann ϕerfüllt, wennAψerfüllt.

Termmodellvonϕ: Termstruktur, dieϕerfüllt.

Lemma 8.1: Jede erfüllbare quantorenfreieΣ-Formel hat ein Termmodell.

Seiσ : X → TΣ(X). Die Erweiterungσ:TPL(AtΣ(X))→TPL(AtΣ(X)) von σauf prädikatenlogische Formeln verlangt eine spezielle Behandlung der Quantoren:

• Für alle f :n→1∈Σundt∈TΣ(X)n,σ(f t) = fσ(t).

• Für allep:n∈Σundt∈TΣ(X)n,σ(pt) =pσ(t).

• Für alle f :n→1∈ALundϕ∈TPL(AtΣ(X))n,σ(f t) = fσ(ϕ).

• Für alleQ∈ {∃,∀},x∈Xundϕ∈TPL(AtΣ(X)),

σ(Qxϕ) =

( Qx0σ[x0/x](ϕ) fallsx∈Vϕ,σ,x=def Svar(σ(free(ϕ)\ {x})), Qxσ[x/x](ϕ) sonst.

Substitutionslemma(Lemma 8.3):

Für alleΣ-StrukturenA,h:X→A,σ:X→TΣ(X)undϕ∈TPL(AtΣ(X))gilt A|=hϕσ ⇔ A|=h◦σ ϕ.

116 8 Prädikatenlogik (predicate logic, first-order logic)

Pow(A)erfüllt alle in der Bitalgebra gültigenAL-Gleichungen sowie die folgendenPL-Gleichungen:

¬∃xϕ≡ ∀x¬ϕ ¬∀xϕ≡ ∃x¬ϕ

∃x(ϕψ)≡ ∃xϕ∨ ∃xψ ∀x(ϕψ)≡ ∀xϕ∧ ∀xψ SeienΣ,Σ0Signaturen mitΣ⊆Σ0undAeineΣ0-Struktur.

EineΣ-Formelϕund eineΣ0-Formelψheißenerfüllbarkeitsäquivalent bzgl.Σ, geschrieben:ϕΣψ, wenn es für alleΣ-Strukturen Aundh ∈ AX eineΣ0-StrukturBgibt, derenΣ-Redukt mitAübereinstimmt und die folgende Äquivalenz erfüllt:

A|=h ϕ ⇔ B|=hψ.

Eine prädikatenlogische Formel∀x1. . .∀xnϕheißtSkolemnormalform (SNF), wennϕeine implikative Normal-form überAtΣ(X)ist (siehe Kapitel 6).

Satz 8.7: Jede prädikatenlogische Formel hat eine erfüllbarkeitsäquivalente Skolemnormalform.

Derprädikatenlogische SchnittkalkülPSKbesteht aus den in Abschnitt 8.2 angegebenen vier Regeln zur Trans-formation prädikatenlogischer Gentzenformeln. Die Gentzenformel des Sukzedenten der Schnittregel heißt Re-solvente.

EinePSK-Widerlegungeiner MengeΦvon Gentzenformeln ist einePSK-Ableitung vonΦ` ⊥.

Satz 8.11: Die Vollständigkeit von ASK-Widerlegungen gilt auch für unendliche Gentzenformelmengen Φmit höchstens abzählbar vielen Atomen.

Korrektheit und Vollständigkeit vonPSK-Ableitungen bzw. -Widerlegungen(Sätze 8.8 und 8.12): Für endliche MengenΦprädikatenlogischer Gentzenformeln gilt:

AusΦ`PSKψfolgtΦ|=ψ.

Φ`PSK⊥gilt genau dann, wennΦunerfüllbar ist.

Gleichheitsstruktur:Σ-Struktur A, die dasGleichheitsprädikat≡: 2 durch∆A und dasUnleichheitsprädikat 6≡: 2 durchA2\Ainterpretiert.

Gleichheitsmodell vonϕ: Gleichheitsstruktur, dieϕerfüllt.

Sei∼A=A2\6≡A. Für alleΣ-StrukturenAsindA/≡AundA/∼AGleichheitsstrukturen und genau dann Modelle vonϕ, wennAein Modell vonϕVcongΣbzw.ϕVdisgΣist.

Satz 8.13 (iii): Eine implikative Normalform ϕüber AtΣ(X) hat genau dann kein Gleichheitsmodell, wenn ϕ∧ VcongΣoderϕVdisgΣunerfüllbar ist.

Korrektheit und Vollständigkeit vonPSK-Widerlegungen in Gleichheitsmodellen: Für endliche MengenΦ prä-dikatenlogischer Gentzenformeln gilt:

Φ∪congΣ`PSK⊥ ⇔ Φhat kein Gleichheitsmodell ⇔ Φ∪disgΣ`PSK⊥.

9 Logische Programmierung 117

9 Logische Programmierung

Im weitesten Sinne ist einlogisches Programmeine MengeLPprädikatenlogischer Formeln. Seine Eingabe ist eine –Anfragegenannte – weitere prädikatenlogische Formel. Es berechnet eine Menge vonLösungender Anfrage in einem Modell vonLP.

Funktionale oder objektorientierte Programme repräsentieren Funktionen, logische Programme sollen Relationen repräsentieren. Das schließt schon mal alle unerfüllbaren Formeln von ihrer Verwendung als logische Programme aus.

Seifeine Operation vonΣ. EineΣ-Gleichung überX(siehe Abschnitt 5.3) der Formϕ⇒ f t≡uheißtHornformel fürf.

Seipeine Prädikat vonΣ, das weder Gleichheits- noch Ungleichheitsprädikat ist (siehe Abschnitt 8.3). Eine Gent-zenformel der Formϕ⇒ptheißtHornformel fürp.

Damit die durch eine Hornformel “definierte” Funktion bzw. das durch sie “definierte” Prädikat am Anfang der Formel steht, schreiben wirf t≡u⇐ϕbzw.pt⇐ϕan Stelle vonϕ⇒ f t≡ubzw.ϕ⇒pt.

Eine Gentzenformelpt⇒ϕmitpt∈ AtΣ(X)heißtCohornformel fürp.

Eine endliche MengeLPvon Horn- bzw. Cohornformeln für eine TeilmengePvonΣheißtlogischesbzw. cologi-schesΣ-Programm fürP.

9.1 Beispiele logischer Programme

Beispiel 9.1

Die SignaturΣ bestehe aus den nullstelligen Operationen zeround nil (leere Liste), der unären Operationsucc (successor, Nachfolger), den binären Operationen+,:,++und\, den unären PrädikatenNat,sortedundunsorted und den binären Prädikaten≤,>,∈undperm.

Seix,y,s,s0 ∈X. Die folgenden (Co)Hornformeln bilden (co)logische Programme für einzelne Elemente vonΣ:

(nat) Nat(zero)

Nat(succ(x))⇐Nat(x) (less) zero≤x⇐Nat(x)

succ(x)≤succ(y)⇐x ≤y (greater) zero>x⇒ ⊥

succ(x)>succ(y)⇒x >y (plus) zero+x≡x⇐Nat(x)

succ(x)+y≡succ(x+y)⇐Nat(x)∧Nat(y) (sorted) sorted(nil)

sorted(x :nil))⇐Nat(x)

sorted(x :(y:s))⇐x≤y∧sorted(y:s) (unsorted) unsorted(nil)⇒ ⊥

unsorted(x:nil)⇒ ⊥

unsorted(x:(y:s))⇒x >y∨unsorted(y:s) unsorted(x:(y:s))⇒Nat(x)

unsorted(x:(y:s))⇒Nat(y) (concat) nil++s≡s

(x:s)++s0≡x:(s++s0)⇐Nat(x)

118 9 Logische Programmierung Die MengeNwird mit folgender Interpretation vonΣzurΣ-StrukturA:

Für allev,w∈Nunda1, . . . ,anN,

nScheiben sind von 1 nach 3 zu transportieren, wobei ein 2 als Zwischenlager dient. Die Scheiben dürfen nur mit nach oben abnehmender Größe gestapelt werden. Jeder während des Transports erreichte Zustand ist ein Tripel von Listen der bei 1, 2 bzw. 3 gelagerten Scheiben. Z.B. lässt sich die Folge der Zustände, die beim Transport von fünf Scheiben von 1 nach 2 durchlaufen werden, wie folgt graphisch darstellen:

Das logische Programm soll keine Zustandsfolge, sondern die Folge der Ortswechsel, die erforderlich sind, um nScheiben von Position 1 zu Position 3 zu transportieren. Wir modellieren die Aufgabe mit Hilfe einer Signatur Σ, die aus den Operationen von Beispiel 9.1 und dem fünfstelligen Prädikat actionsbesteht. Deren intendierte Bedeutung ist unten alsΣ-Struktur beschrieben.

9.1 Beispiele logischer Programme 119

Sein,x,y,z,act,acts,acts0∈X.

Die folgenden Hornformeln bilden ein logisches ProgrammLPfüractions:

actions(zero,x,y,z,nil) (1)

actions(succ(n),x,y,z,acts++((x,z):acts0)

⇐ actions(n,x,z,y,acts)∧actions(n,y,x,z,acts0) (2)

(2) drückt aus, dassn+1 Scheiben von Turmxüber Turmynach Turmzgetragen werden können, indem zunächst nScheiben vonxüberznachy, dann eine Scheibe vonxnachzund schließlichnScheiben vonyüberxnachz transportiert werden. Das Paar(x,z)steht für “Transportiere die oberste Scheibe vonxnachz”.

Das Bild auf der vorigen Seite visualisiert die Zustandsfolge, die von der (einzigen) Aktionsfolgeacts00erzeugt wird, dieactions(5, 1, 2, 3,acts00)erfüllt. Wegen (2) gibt es Aktionsfolgenactsundacts0, die das Goal

actions(4, 1, 3, 2,acts)∧actions(4, 2, 1, 3,acts0)∧acts++((1, 3):acts0)≡acts00

erfüllen. Im Bild führenactsvom Zustand links oben zum Zustand links unten, die Aktion(1,3)vom Zustand links unten zum Zustand rechts oben undacts0vom Zustand rechts oben zum Zustand rechts unten.

120 9 Logische Programmierung

SeiA=N×N3×(N2). Eine SchrittfunktionF:P(A)→ P(A)sei wie folgt definiert: Für alleT⊆A,

F(T) = {(0,a,b,c,e)|a,b,c∈N} ∪

{(n+1,a,b,c,conc(v,cons(a,c)(w))|(n,a,c,b,v),(n,b,a,c,w)∈T}.

Wir wählenAals Trägermenge einerΣ-AlgebraB, interpretieren dortactionsdurch den kleinsten Fixpunkt von F(siehe Kapitel 4) undzero,succ,nil, : und++wie in Beispiel 9.1.

Aufgabe Zeigen SieB |=VLP. o

Beispiel 9.3+Damenproblem

n Damen auf einem(n×n)-Schachbrett sollen so platziert werden, dass sie sich nach den Schachregeln nicht schlagen können, also keine zwei Damen auf derselben Diagonalen, Horizontalen oder Vertikalen stehen. Z.B.

gibt es für fünf Damen auf einem 5×5-Schachbrett genau zehn sichere Platzierungen:

Die Platzierung einer Dame in jeder Zeile eines (n×n)-Schachbrettes wird als Permutation (k1, . . . ,kn) von (1, 2, . . . ,n)dargestellt:kiist die Spaltenposition der Dame in deri-ten Zeile. Der Brettbelegung links oben ent-spricht z.B. die Permutation(4, 2, 5, 3, 1).

Wir modellieren die Aufgabe mit Hilfe einer SignaturΣ, die neben Operationen und Prädikaten von Beispiel 9.1 die unäre Operationenumund die binären Prädikatequeens,boardundsafebesteht. Deren intendierte Bedeutung ist unten alsΣ-StrukturCbeschrieben, die folgende Bedingungen erfüllt:

((1, . . . ,n),(k1, . . . ,kn))gehört genau dann zuboardC, wenn(k1, . . . ,kn)eine sichere Platzierung vonn Damen repräsentiert, also eine, bei der sich keine zwei Damen schlagen können.

(1,(k,k1, . . . ,kn−1)) gehört genau dann zusafeC, wenn unter der Voraussetzung, dass(k1, . . . ,kn−1)eine sichere Damenplatzierung auf den unterenn−1 Zeilen repräsentiert,(k,k1, . . . ,kn−1)eine sichere Damenplatzierung auf dem gesamten(n×n)-Brett darstellt.

Sein,x,y,s,s0,val∈X. Die folgenden Hornformeln bilden ein logisches ProgrammLPfür die Prädikate vonΣ:

(queens) queens(n,val) ⇐ board(enum(n),nil,val) (board) board(nil,val,val)

board(s,val,val0)

⇐ x∈s∧safe(succ(zero),x:val)∧board(s\x,x :val,val0)