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