Prolog und Prädikatenlogik I

Werbung
Prolog und Prädikatenlogik I
Prolog Grundkurs WS 99/00
Christof Rumpf
[email protected]
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
1
Logikprogrammierung
Prolog wurde um 1970 von Alain
Colmerauer und seinen Mitarbeitern in
Marseille mit dem Ziel entwickelt, die
Programmierung von Computern mit den
Mitteln „der Logik“ zu ermöglichen.
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
2
Pure Prolog
Das sogenannte Pure Prolog oder DatabaseProlog entspricht einer Teilmenge der
Sprachdefinition eines praktischen PrologEntwicklungssystems und enthält keine extraoder metalogischen Komponenten wie:
– Cut, Type-Checking
– Arithmetische Operationen
– Datenbasismanipulation zur Laufzeit
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
3
Prolog und Logik
Pure Prolog-Programme entsprechen den
Ausdrücken der Hornklausellogik, die eine
Teilmenge der Prädikatenlogik 1. Stufe ist.
Das Beweisverfahren Resolution ermöglicht
Inferenzen aufgrund von PrologProgrammen oder Hornklauseln.
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
4
Prädikatenlogik ⇒ Prolog
Prädikatenlogik 1. Stufe
KNF
Hornklauseln
Prolog
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
5
Prädikatenlogik 1. Stufe
Inventar der Syntax:
– Individuenkonstanten a, b, c, ...
Terme
– Individuenvariablen x, y, z, ...
– Prädikate P(Arg1,...,Argn), Argi ∈ TERM
– Quantoren ∀, ∃
– Junktoren ¬, ∨, ∧, →, ↔
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
6
Formeln der PL1
– Wenn P ein n-stelliges Prädikat ist und t1,...,tn
Terme sind, dann ist P(t1,...,tn) ein Literal.
Literal
– Literale sind Formeln.
Formeln
– Wenn ϕ und ψ Formeln sind, dann sind auch ¬ϕ,
ϕ ∨ ψ, ϕ ∧ ψ, ϕ → ψ, ϕ ↔ ψ Formeln.
Formeln
– Wenn ϕ eine Formel ist und x eine IndividuenIndividuen
variable,
variable dann sind auch (∀x) ϕ, (∃x) ϕ Formeln.
Formeln
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
7
Klauseln
– Wenn P ein n-stelliges Prädikat ist und t1,...,tn
Terme sind, dann ist P(t1,...,tn) ein Literal.
Literal
– Literale sind Klauseln.
Klauseln
– Wenn ϕ ein Literal ist, dann ist auch ¬ϕ eine
Klausel.
Klausel
– Wenn ϕ und ψ Klauseln sind, dann ist auch
ϕ ∨ ψ eine Klausel.
Klausel
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
8
Hornklauseln
Hornklauseln sind Klauseln, die genau ein
nicht-negiertes Literal und beliebig viele
negierte Literale enthalten.
Vater(x,y) ∨ ¬ Elternteil(x,y) ∨ ¬ Männlich(x)
Sterblich(sokrates)
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
9
Konjunktive Normalform
Eine Formel ist in konjunktiver Normal-form,
Normal-form
wenn sie eine Konjunktion von Klauseln
repräsentiert.
K1 ∧ ... ∧ Kn,
Ki ∈KLAUSEL
Formeln der Prädikatenlogik können durch
Anwendung logischer Äquivalenzregeln in die
konjunktive Normalform gebracht werden.
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
10
Logische Äquivalenzregeln
– Kommutativgesetz
– Assoziativgesetz
– Distributivgesetz
– Konditional- und Bikonditionalgesetz
– De Morgan
– Komplementarität
– Idempotenz
– Identität
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
11
Kommutativität
P∧Q
P∨Q
07.02.00
⇔
⇔
Q∧P
Q∨P
GK Prolog: Prolog und Prädikatenlogik I
12
Assoziativität
(P ∧ Q) ∧ R ⇔
(P ∨ Q) ∨ R ⇔
07.02.00
P ∧ (Q ∧ R)
P ∨ (Q ∨ R)
GK Prolog: Prolog und Prädikatenlogik I
13
Distributivität
P ∨ (Q ∧ R) ⇔
P ∧ (Q ∨ R) ⇔
07.02.00
(P ∨ Q) ∧ (P ∨ R)
(P ∧ Q) ∨ (P ∧ R)
GK Prolog: Prolog und Prädikatenlogik I
14
Konditional- & Bikonditionalgesetz
P→Q
P↔Q
07.02.00
⇔
⇔
¬P ∨ Q
(P → Q) ∧ (Q → P)
GK Prolog: Prolog und Prädikatenlogik I
15
De Morgan
¬(P ∨ Q)
¬(P ∧ Q)
07.02.00
⇔
⇔
¬P ∧ ¬Q
¬P ∨ ¬Q
GK Prolog: Prolog und Prädikatenlogik I
16
Komplementarität
P ∨ ¬P ⇔ 1 (Tautologie, allgemeingültig)
P ∧ ¬P ⇔ 0 (Kontradiktion, Inkonsistenz)
¬¬P ⇔ P (Doppelte Negation)
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
17
Idempotenz, Identität
P∨P⇔P
P∧P⇔P
07.02.00
P∨0⇔P
P∨1⇔1
P∧0⇔0
P∧1⇔P
GK Prolog: Prolog und Prädikatenlogik I
18
Quantorengesetze
– Negation
– Distribution
– Dependenz
– Bewegung
– Prenex Normalform
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
19
Quantoren-Negation
¬∀x φ ⇔
∃x ¬φ
∀x φ ⇔ ¬∃x ¬φ
¬∀x ¬φ ⇔
∃x φ
∀x ¬φ ⇔ ¬∃x φ
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
20
Quantoren-Distribution
∀x (φ ∧ ψ)
∃x (φ ∨ ψ)
∀x φ ∨ ∀x ψ
∃x (φ ∧ ψ)
07.02.00
⇔
⇔
⇒
⇒
∀x φ ∧ ∀x ψ
∃x φ ∨ ∃x ψ
∀x (φ ∨ ψ)
∃x φ ∧ ∃x ψ
GK Prolog: Prolog und Prädikatenlogik I
21
Quantoren-Dependenz
∀x ∀y φ
∃x ∃y φ
∃x ∀y φ
07.02.00
⇔ ∀y ∀x φ
⇔ ∃y ∃x φ
⇒ ∀y ∃x φ
GK Prolog: Prolog und Prädikatenlogik I
22
Quantoren-Bewegung
φ → ∀x ψ
φ → ∃x ψ
(∀x φ) → ψ
(∃x φ) → ψ
⇔
⇔
⇔
⇔
∀x (φ → ψ)
∃x (φ → ψ)
∃x (φ → ψ)
∀x (φ →ψ)
Hier wird vorausgesetzt, daß die quantifizierte Variable nicht frei in der
Formel vorkommt, die jeweils außerhalb des Quantorenskopus
erscheint.
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
23
Prenex-Normalform
Eine PL1-Formel befindet sich in PrenexNormalform, wenn alle Quantoren am
Anfang der Formel stehen.
(∃x F(x)) → (∀y G(y))
Quantorenbewegung, 1.+ 4. Gesetz
∀y ∀x (F(x) → G(y))
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
24
Skolemisierung
Existenzquantoren können eleminiert werden,
indem existenzquantifizierte Variablen durch
Skolemkonstanten substituiert werden.
Liegt ein Existenzquantor im Skopus von
Allquantoren, werden die Skolemkonstanten mit
den jeweiligen allquantifizierten Variablen durch
Parametrisierung in Abhängigkeit gebracht.
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
25
Skolemisierung: Beispiele
∃y ∀x ((man(x) ∧ (woman(y)) → loves(x,y))
∀x ((man(x) ∧ woman(G)) → loves(x,G))
∀x (man(x) → ∃y (woman(y) ∧ loves(x,y)))
∀x (man(x) → (woman(G(x)) ∧ loves(x,G(x))))
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
26
Ausblick
Nächste Woche werden wir ein PrologProgramm behandeln, das PL1-Formeln in
Prolog-Programme übersetzt.
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
27
Herunterladen