Prolog und Prädikatenlogik I Logikprogrammierung Pure Prolog

Werbung
Logikprogrammierung
Prolog und Prädikatenlogik I
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.
Prolog Grundkurs WS 99/00
Christof Rumpf
[email protected]
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
1
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
Pure Prolog
Prolog und Logik
Das sogenannte Pure Prolog oder DatabaseProlog entspricht einer Teilmenge der
Sprachdefinition eines praktischen PrologEntwicklungssystems und enthält keine extraoder metalogischen Komponenten wie:
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.
– Cut, Type-Checking
– Arithmetische Operationen
– Datenbasismanipulation zur Laufzeit
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
2
3
07.02.00
Prädikatenlogik ⇒ Prolog
GK Prolog: Prolog und Prädikatenlogik I
4
Prädikatenlogik 1. Stufe
Prädikatenlogik 1. Stufe
Inventar der Syntax:
KNF
– Individuenkonstanten a, b, c, ...
Terme
– Individuenvariablen x, y, z, ...
– Prädikate P(Arg1 ,...,Argn), Argi ∈ TERM
– Quantoren ∀, ∃
– Junktoren ¬, ∨, ∧, →, ↔
Hornklauseln
Prolog
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
5
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
6
1
Formeln der PL1
Klauseln
– Wenn P ein n-stelliges Prädikat ist und t1 ,...,t n
Terme sind, dann ist P(t 1 ,...,t n ) ein Literal
Literal.
– Wenn P ein n-stelliges Prädikat ist und t1 ,...,t n
Terme sind, dann ist P(t 1 ,...,t n ) ein Literal
Literal.
– Literale sind Formeln
Formeln.
– Literale sind Klauseln
Klauseln.
– Wenn ϕ und ψ Formeln sind, dann sind auch ¬ϕ,
– Wenn ϕ ein Literal ist, dann ist auch ¬ϕ eine
Klausel.
Klausel
ϕ ∨ ψ, ϕ ∧ ψ, ϕ → ψ, ϕ ↔ ψ Formeln
Formeln.
– Wenn ϕ eine Formel ist und x eine Individuen
Individuenvariable, dann sind auch (∀x) ϕ, (∃x) ϕ Formeln
variable
Formeln.
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
– Wenn ϕ und ψ Klauseln sind, dann ist auch
ϕ ∨ ψ eine Klausel
Klausel.
7
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
8
Hornklauseln
Konjunktive Normalform
Hornklauseln sind Klauseln, die genau ein
nicht-negiertes Literal und beliebig viele
negierte Literale enthalten.
Eine Formel ist in konjunktiver Normal-form
Normal-form,
wenn sie eine Konjunktion von Klauseln
repräsentiert.
K1 ∧ ... ∧ Kn,
Vater(x,y) ∨ ¬ Elternteil(x,y) ∨ ¬ Männlich(x)
Sterblich(sokrates)
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
Formeln der Prädikatenlogik können durch
Anwendung logischer Äquivalenzregeln in die
konjunktive Normalform gebracht werden.
9
07.02.00
Logische Äquivalenzregeln
GK Prolog: Prolog und Prädikatenlogik I
GK Prolog: Prolog und Prädikatenlogik I
10
Kommutativität
– Kommutativgesetz
– Assoziativgesetz
– Distributivgesetz
– Konditional- und Bikonditionalgesetz
– De Morgan
– Komplementarität
– Idempotenz
– Identität
07.02.00
Ki ∈KLAUSEL
P∧Q
P∨Q
11
07.02.00
⇔
⇔
Q∧P
Q∨P
GK Prolog: Prolog und Prädikatenlogik I
12
2
Assoziativität
(P ∧ Q) ∧ R ⇔
(P ∨ Q) ∨ R ⇔
07.02.00
Distributivität
P ∨ (Q ∧ R) ⇔ (P ∨ Q) ∧ (P ∨ R)
P ∧ (Q ∨ R) ⇔ (P ∧ Q) ∨ (P ∧ R)
P ∧ (Q ∧ R)
P ∨ (Q ∨ R)
GK Prolog: Prolog und Prädikatenlogik I
13
07.02.00
P↔Q
07.02.00
⇔
⇔
¬P ∨ Q
¬(P ∨ Q)
¬(P ∧ Q)
(P → Q) ∧ (Q → P)
GK Prolog: Prolog und Prädikatenlogik I
15
07.02.00
Komplementarität
¬P ∧ ¬Q
¬P ∨ ¬Q
GK Prolog: Prolog und Prädikatenlogik I
P∨P⇔P
P∧P⇔P
P ∧ ¬P ⇔ 0 (Kontradiktion, Inkonsistenz)
¬¬P ⇔ P (Doppelte Negation)
GK Prolog: Prolog und Prädikatenlogik I
⇔
⇔
16
Idempotenz, Identität
P ∨ ¬P ⇔ 1 (Tautologie, allgemeingültig)
07.02.00
14
De Morgan
Konditional- & Bikonditionalgesetz
P→Q
GK Prolog: Prolog und Prädikatenlogik I
17
07.02.00
P∨0⇔P
P∨1⇔1
P∧0⇔0
P∧1⇔P
GK Prolog: Prolog und Prädikatenlogik I
18
3
Quantorengesetze
Quantoren-Negation
¬∀x φ
∀x φ
¬∀x ¬φ
∀x ¬φ
– Negation
– Distribution
– Dependenz
– Bewegung
– Prenex Normalform
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
19
07.02.00
Quantoren-Distribution
∀x (φ ∧ ψ)
∃x (φ ∨ ψ)
∀x φ ∨ ∀x ψ
∃x (φ ∧ ψ)
07.02.00
⇔
⇔
⇒
⇒
∀x ∀y φ
∃x ∃y φ
∃x ∀y φ
21
07.02.00
Quantoren-Bewegung
φ → ∀x ψ
φ → ∃x ψ
(∀x φ) → ψ
(∃x φ) → ψ
⇔
⇔
⇔
⇔
∀x (φ → ψ)
∃x (φ → ψ)
∃x (φ → ψ)
∀x (φ →ψ)
GK Prolog: Prolog und Prädikatenlogik I
20
⇔ ∀y ∀x φ
⇔ ∃y ∃x φ
⇒ ∀y ∃x φ
GK Prolog: Prolog und Prädikatenlogik I
22
Prenex-Normalform
Eine PL1-Formel befindet sich in PrenexNormalform, wenn alle Quantoren am
Anfang der Formel stehen.
(∃x F(x)) → (∀y G(y))
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
Quantoren-Dependenz
∀x φ ∧ ∀x ψ
∃x φ ∨ ∃x ψ
∀x (φ ∨ ψ)
∃x φ ∧ ∃x ψ
GK Prolog: Prolog und Prädikatenlogik I
⇔
∃x ¬φ
⇔ ¬∃x ¬φ
⇔
∃x φ
⇔ ¬∃x φ
23
Quantorenbewegung, 1.+ 4. Gesetz
∀y ∀x (F(x) → G(y))
07.02.00
GK Prolog: Prolog und Prädikatenlogik I
24
4
Skolemisierung
Skolemisierung: Beispiele
∃y ∀x ((man(x) ∧ (woman(y)) → loves(x,y))
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
∀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))))
25
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
5
Herunterladen