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