CL2: Übungsaufgabe 6
Anmerkung zur Abgabe: die gesamte Hausaufgabe möglichst als EINE Datei abschicken. Für mich ist es außerdem eher einfacher, wenn die Lösungen direkt in die E-mail hineinkopiert werden, statt als Attachment verschickt zu werden.
Folgendes sei die Syntax eines Auschnittes der Prädikatenlogik:
- x, y sind Individuenvariablen.
- herschel, uranus sind Namen (Individuenkonstanten).
- astronom, planet sind einstellige Prädikate.
- entdecken, umkreisen sind zweistellige Prädikate.
- und, oder, imp sind Junktoren.
- ex, all sind Quantoren.
Es gelten folgende Bildungsregeln:
- Wenn A ein einstelliges Prädikat ist und B eine Individuenvariable oder ein Name, dann ist A(B) eine Formel (z.B. astronom(herschel)).
- Wenn A ein zweistelliges Prädikat ist und B und C Individuenvariablen oder Namen, dann ist A(B,C) eine Formel (z.B. entdecken(herschel,x)).
- Wenn A und B Formeln sind, und J ein Junktor, dann ist (A J B) eine Formel (z. B. (astronom(herschel) und entdecken(herschel,x))).
- Wenn A eine Formel ist, V eine Variable und Q ein Quantor, dann ist Q V A eine Formel (z.B. ex x (astronom(herschel) und entdecken(herschel,x))).
Aufgabe
Schreiben sie eine Prolog-Grammatik für diesen Ausschnitt aus der Prädikatenlogik (im DCG-Format) - also keine Grammatik für deutsche Sätze, die Übersetzungen dieses Logikfragments sind, sondern - viel einfacher - eine Grammatik, die genau die Formeln erzeugt, die durch obige Regeln beschreiben werden.