Sitzung war ich deutlich langsamer als der Plan. Das heißt,
dass ich heute noch ein kleines Stück von dem Normalfunk-Kapitel nachholen muss.
Und hinterher muss ich dann auch nochmal ein bisschen Gas geben,
um zu dem Thema zu kommen,
was auch für die Übung erforderlich ist.
Dafür habe ich dann an einer Stelle auch einen entsprechenden Block rausgeschnitten,
den ich dann etwas später bringen werde.
Ich werde dann an der entsprechenden Stelle darauf aufmerksam machen,
wenn ich sozusagen
einen Sprung mache
Aber wir hatten das Thema Normalform gestern und haben da zunächst mal uns angeguckt,
was man an Äquivalenzen feststellen kann in Bezug auf das,
was jetzt die Prädikatenlogik uns neu bereitstellt.
Und waren dann dazu gekommen, naja, man kann sogenannte bereinigte Pränexformen herstellen.
Das heißt, Formen, wo die Quantoren alle maximalen Skopus
haben und wo auch jeder Quantor seine eigene Variable, seinen eigenen Variablennamen hat.
Aber wir können freie Variablen nicht loswerden und wir können auch Existenz,
oder wir haben es dann mit beiden Arten von Quantoren zu tun, Existenzkontoren, Quantoren, die gemischt vorkommen können.
Und dann haben wir den Begriff der Erfüllbarkeitsäquivalenz kennengelernt,
einen schwächeren Äquivalenzbegriff, der ja nicht in jedem Kontext erlaubt,
dass man übergeht von einer Formel zu einer Erfüllbarkeitsäquivalenten,
aber immer in den Situationen,
wo wir uns eben nur noch um Erfüllbarkeit kümmern wollen,
da kann man dann eben auch entsprechende ja, Übergänge vornehmen und sagen,
jetzt betrachte ich nicht mehr die Formel, sondern eine Erfüllbarkeitsäquivalente,
ungewisse Tests zu machen.
Und auch dazu hatten wir dann kennengelernt,
verschiedene Bedingungen, insbesondere das freie Variablen, sich,
oder wenn eine freie Variable in einer Formel vorkommt,
dann kann man ein Existenzkonto davor setzen und die Formel,
die man erhält,
ist zwar nicht äquivalent,
aber eben wenigstens erfüllbarkeitsäquivalent
Und der zweite Punkt, den wir kennengelernt haben,
und das ist der, wo ich jetzt wieder einsteige,
ist die Skolimisierung. Das ist der Weg,
wie wir Existenzquantoren loswerden können mit dem Effekt,
dass wir hinterher eben nur noch Al-Quantoren haben.
Auch das ist wieder ein Übergang auf Erfüllbarkeitsäquivalenz beruht.
Hier jetzt eingebettet in einen einfachen Algorithmus,
der aus einer Formel eine Erfüllbarkeitsäquivalente Formel herstellen soll,
die keinen Existenzkonto mehr enthält
Hier sieht man auch diesen Schritt der Polemisierung, wie er genannt wird.
Dort wird für einen Existenzkonto her, hier steht,
ja, Existenzquanto mit der variablen Z. Dort wird ein Übergang
gemacht zu einer Formel, wo kein Existenzquanto mehr steht.
Und in dem Skurpus dieses ehemaligen Quantos die entsprechende Variable Z auch verschwindet.
Sie wird ersetzt durch einen Tern und dieser Term
ist gebildet durch ein Funktionssymbol Und dieses Funktionssymbol, da vorher
noch gar nicht verwendet worden sein muss, also ein ganz Neues sein
. Und die Ständigkeit entspricht der Anzahl von Allquantoren, die davor stehen.
Und die tauchen hier wieder als Argumente auf. Ich habe ganz am Anfang,
als ich die Prändikaten-Logik eingeführt habe, mal gesagt, naja,
Funktionssymbole, die sind eigentlich mehr aus technischen Gründen hier im Inventar drin,
wenn man von natürlicher Sprache übersetzt,
in Prädikaten-Logik,
dann kann man da
mehr Fehler mitmachen als Gutes
mit anrichten
Dieses ist genau dieser technische Schritt, den ich gemeint habe,
dass man die Existenzkontoren halt loswerden kann, wenn man grundsätzlich Funktionssymbole zur Verfügung hat.
Ja, und das ist der Grund, genau dieser Schritt ist der Grund,
warum wir es überhaupt in unserer Sprache von vornherein vorbereitet haben,
dass wir sie haben. Ja,
wenn man so eine Formel hat, für alle Y1,
für alle Y2, für alle YK, gibt es ein Set,
dann kann man ja da auch schon mitverstehen,
naja,
die Wahl von Z könnte in irgendeiner Weise abhängen davon,
welchen Wert
unsere Ys gerade haben
Und diese mögliche Abhängigkeit in der Wahl von Z,
die wird hier eben in der Skulemisierung kodiert, dadurch,
dass wir die Funktion eben genau abhängig machen, genau von denselben Variablen,
die eben in diesen Prayfix vor dem Existenzkonto auftauchen.
Okay, das ist der eine Schritt der Skulemisierung. Wichtig ist,
dass eben der erste Existenzkonto ersetzt wird, den man trifft,
wenn man von außen reinkommt in die Formel und Wenn man jetzt alle Existenzquantoren eliminieren will,
dann muss man das entsprechend teilend iterieren und entsprechend haben wir es hier in eine Schleife eingebunden,
die einfach durch die Formel durchläuft und die Existenzquantoren von außen gesehen ersetzt,
durch die entsprechenden Therme gebildet, immer wieder mit neuen Funktionssymbolen.
Naja, und das kann man halt so oft machen,
wie man Existenzkontoren vorgefunden hat in der Formel und was rauskommt,
ist eine Formel,
die keinen Existenzquantor mehr enthält und bei der sichergestellt ist,
dass sie erfüllbar ist,
genau dann,
wenn die ursprüngliche Eingangsformel erfüllbar war
So, wir hatten verschiedene Umformungsschritte kennengelernt. Hier habe ich
sie nochmal aufgelistet, jeweils mit der Klassifikation. Ist das
eigentlich eine Äquivalenzerunforderung oder ist es nur die einfache Erfüllbarkeitsäquivalenz?
Also wenn wir eine beliebige Formel haben, dann kann man
die gebundenen Variablen umbenennen und das ist eine Äquivalenzumformung.
Damit kann man erreichen, dass keine Formel sowohl Ja,
gebunden, als auch frei irgendwo in der Formel vorkommt.
Und auch, dass verschiedene Quantoren auch grundsätzlich verschiedene Variablen benutzen.
Ja, das ist die gebundene Umbenennung,
die kann man nutzen, um eine bereinigte Formel zu erreichen.
Wenn dann freie Variablen noch vorkommen, kann man sie mit Existenzkontroll,
mit maximalen Skopus binden. Das ist allerdings eine Umformung,
die Erfüllbarkeitsäquivalenz allein erhält oder auf Erfüllbarkeitsäquivalenz beruht und was man erhält,
ist dann auf jeden Fall eine geschlossene Formel
Die kann man dann umformen, intern,
sodass alle Quantoren maximalen Skopus bekommen, also nach außen gehen.
Und dann erhalten wir eine sogenannte Prenex-Form. Das allerdings ist wieder
eine Erfüllung, eine Äquivalenzumformung, die wir da machen.
Und schließlich können wir durch die Bildung der Skolem-Form oder,
ja, Skolemisierung dann alle Existenzvantoren eliminieren oder,
ja,
Das allerdings wieder ist eine Umformung, die nur auf Erfüllbarkeitsäquivalenz beruht.
Gut, und dann können wir noch die Matrix,
also deren Teil der Formel, der gar kein Quanto mehr enthält,
in konjunktive Normalformen bringen.
Und das Resultat, was wir dann erhalten, das ist die sogenannte Klausel-Normalform.
Das ist wiederum eine Äquivalenzumformung. Ja,
und wenn man von einer Formel losgegangen ist und all diese Schritte gemacht hat,
dann erhält man zum Schluss eine Formel,
die Erfüllbarkeitsäquivalent ist zu der Originalformel
Ja, das heißt, ja, wenn man an dieser
Formel F5 dann feststellt, ist erfüllbar oder nicht erfüllbar,
dann kann man das Resultat eben auf F übertragen.
Andere Dinge nicht. Also wenn ich feststelle, F5 ist eine Tautologie,
dann weiß ich hinterher nur, F ist erfüllbar.
Ja, weil die implizite Erfüllbarkeit, die überträgt sich halt,
aber nicht, dass er F5 eine Tautologie ist.
Ja, Klauselnormal vom sehen so aus, dass sie Zunächst mal
ein Prayfix- und Allquanturen haben und dann eine konjunktive Normalform.
Ups. Okay. Ja, die sehen so aus
wie hier oben. Prayfix von Allquanturen. Dann haben wir
eine Konjunktion von einer Desjunktion von Viteralen.
Wir haben keine Existenzkonturen. Wir haben keine freien Variablen.
Und kein Alquantur ist einem Jungtor untergeordnet.
Das ist die Form,
die wir erreichen
So, jetzt nochmal zu dieser Form mit Folie zurück.
Die habe ich aus einer anderen Stelle hierher gezogen,
einfach weil das mal ein Beispiel ist, dass wir später wieder aufgreifen werden,
wo wir mal aus einer gegebenen Formel so eine Klausel-Normalform erzeugen,
mit den verschiedenen Schritten.
Ja, unsere ursprüngliche Formel SH, das ist,
es existiert kein Y,
sodass für alle Z-Geld Pilz seit Y genau dann,
wenn kein Ex existiert,
das in der Relation P zu Z steht und zu
dem Z auch in der Relation P steht
So, und wenn wir jetzt prüfen wollen,
ist das eigentlich eine erfüllbare Formel oder nicht,
dann können wir ja zunächst mal die Klausel-Normalform erstellen und
dann in späteren Schritten diese Klausel-Normalform im Endeffekt prüfen.
Gut, was müssen wir tun, um sie entsprechend umzuformen?
Nun, Nein, Entschuldigung, ich will da nicht prüfen,
ob diese Formwelt erfüllbar ist, ich will prüfen, ob sie gültig ist.
Also ich will prüfen, ob es eine Tautologie ist. Ja,
wenn ich prüfen will, ob die Formel H eine Tautologie ist,
dann kann ich das tun, indem ich sie erstmal negiere,
dann die Umformungen mache und dann diese, das Resultat auf Erfüllbarkeit prüfe.
Ja, wenn ich das mache, was ich zunächst gesagt habe,
ich gehe direkt mit Haarlos und forme das um und kriege dann hinterher raus,
das ist eine Tautologie, dann ist das wunderbar,
es hilft mir aber gar nichts,
weil ich ja Schritte mache unterwegs,
die keine Äquivalenzumformungen machen
Also ich will Haar prüfen, ob es gültig ist.
Dazu negiere ich es und prüfe, ob nicht, Haar erfüllbar ist.
Ja, wenn nicht Haar erfüllbar ist, dann heißt es,
es gibt eine Möglichkeit, Haar falsch zu machen.
Und dann ist Haar keine Tautologie. Gut,
also erster Schritt, wie hier angedeutet,
wir haben hier eine Bi-Implikation, wie Implikation,
sind deshalb so ein bisschen ärgerlich in diesem Kontext,
weil Wir ja gar keine Regel haben,
wie wir die Quantoren bewegen können, wenn eine Bi-Implikation da ist.
Das heißt, der erste Schritt muss erst mal sein,
diese Bi-Implikation loszuwerden. Dafür benutzen wir hier diese Umformung,
die sagt, wie Implikation B,
genau dann, wenn nicht A oder B und A
oder nicht
Und an dieser Stelle sieht man auch, ja,
warum diese, die Implikation hier mit den Quantoren,
warum ist da keine einfache Regel gibt, um die Quantoren rauszuziehen.
Denn bei dieser Elimitation des Alb, des der Bi-Implikation,
verdoppeln wir den Quantor. Hier haben wir das existierten X
und so weiter und hier taucht das nochmal auf.
Es gibt verschiedene Regeln, wie man diese Bi-Implikation loswerden kann,
bei allen diesen Regeln gibt es diese Verdoppelung.
Und das ist dann eben auch gleich eine Quelle davon,
dass wir jetzt dieses X doppelt haben,
was wir ja eigentlich nicht haben wollen
Gut. Also nach der Auflösung der Bi-Implikation
wird hier zunächst mal die Negation nach innen gebracht.
Und wie man die Situalität, der entsprechende Quantor dreht sich um.
Und im nächsten Schritt wollen wir diese Doppelverwendung der Variablen X loswerden.
Und das machen wir, indem wir hier in der zweiten Position des X entsprechend ersetzen durch W.
Das ist eine Variable, die hatten wir noch nicht gebraucht.
Die können wir hier gut einsetzen. So,
da haben wir dann also Eine bereinigte Form, keine Variable, taucht mehrfach auf.
Und im nächsten Schritt können wir jetzt die Kantoren nach außen bringen,
in diese Prefix-Position, da wir dabei keinen Negationszeichen mehr überwinden müssen und auch keine Implikation involviert ist,
können wir die einfach nach vorne schreiben.
Hier sind nur Dysunktionen und Konjunktionen,
da können wir einfach die Quantoren nach außen bringen,
vorausgesetzt, dass die Variable, die Quantoren-Variable eben nicht vorkommt,
in dem anderen Teil der Formel,
die jetzt neu in den Skopus hineinkommt.
Und an dieser Stelle, an dieser Stelle ist es auch egal,
ob wir den Existenzkonto oder den Alquan-Tor zunächst nach vorne bewegen.
Ja, da gibt es keine festen Reihenfolgen. Gut,
das Resultat ist, dass hier die Quantoren alle
vorne stehen und wir dann die Matrix haben,
den Teil der Formel ohne Quantoren
Und jetzt kommt die Skulolimisierung, die es uns erlaubt, Existenzquantoren loszuwerden.
Hier vorne steht gleich als erstes ein Existenzquantor. Das heißt,
es steht kein All-Kantur davor und das ist halt ein Fall,
wo wir einfach eine neue Konstante einführen können.
Ja, es gibt ein Y,
das das und das erfüllt, dann geben wir,
dann geben wir diesem Y einfach
einen Namen,
nämlich A. Gut
Ja, an jeder Stelle, wo Y hier vorkommt,
in der ursprünglichen Formel, wird jetzt A. eingesetzt.
Meine Ohren funktionieren auch, wenn ich nicht hingucke.
Ich fühle mich gestört, wenn da permanent geredet wird.
Gut. Jetzt haben wir aber auch in dieser Formel noch
ein Existenzquanto. Hier existierten W. Da haben wir ein All-Cuanto-Vorstehen
. Und entsprechend können wir nicht einfach eine Konstante nehmen.
Wir müssen diese mögliche Abhängigkeit der Wahl von
On-Z hineinkodieren und das tun wir eben, indem wir ein einstelliges Funktionssymbol wählen,
F und dann den Term F&Z für das W einsetzen.
Hier ist der Existenzquantur verschwunden und wir haben dort,
wo W-Stand jetzt F&Z stehen. So,
und der letzte Schritt ist,
dass wir dann noch die Matrix in konjunktive Normalform bringen,
da haben wir hier noch einmal eine Position,
wo wir das Distributivgesetz anwenden müssen,
um die Konjunktion über die Disziplin
zu uns zu bewegen und hier unten steht dann
das Resultat
Wie gesagt, die grundsätzliche Form sieht so aus,
dass wir volle Altquantoren, dann eben die Konjunktion,
dann die Desjunktionen haben, Negation, nur an den Literalen.
Nun gilt ja auch in Bezug auf die Quantoren,
gelten gewisse Distributivgesetze und insbesondere hier für die Konjunktion und den Altquantor
gilt die Äquivalenz für alle XG und für alle XH,
genau dann,
wenn für alle XG und
Und das bedeutet, dass wir hier oben in der Klausel-Normalform,
wo wir ja erst die Altquanturen, dann die Konjunktionen haben,
dass das eigentlich gar nicht so wichtig ist,
dass man genauso gut sagen könnte,
wir können ja auch diese Quantoren alle hineinziehen.
Ja, also unsere Formel hier oben,
die ist Äquivalent zu dieser Form,
wo wir die Altquantoren sozusagen unter die Konjunktion gezogen haben
Ja, das wird später noch mal interessant,
wenn man sich fragt, naja,
was ist eigentlich jetzt der Gültigkeitsbereich, dieser Namen der Variablen,
dass man sagen kann, es ist eigentlich egal,
ob man sie alle mit dem ganz weiten Skurpus hat oder ob man es auf die Klauseln beschränkt.
Wir hatten dann ja auch schon kennengelernt,
dass wir auch Mengen von Formeln bilden können und dann sagen,
okay, implizit, nehmen wir an,
die sind konjunktiv verknüpft.
Also insofern brauchen wir dann die Konjunktion auch nicht mehr
zu schreiben
Und haben dann so eine Mengendarstellung für unsere Klauseln-Normalform,
dass wir einfach hier die Allquantifizierten klauseln,
in einer Menge aufsammeln und sie gar nicht mehr explizit miteinander verknüpfen.
Das können wir halt machen, weil wir sowieso wissen,
dass Assoziativität und Kommutativität und Idem-Potenz gelten,
also all die Gesetze, die halt es möglich machen,
dass man sagt, es kommt nur darauf an,
welche Formeln da sind,
die Reihenfolge ist egal,
es ist egal,
wie oft etwas vorkommt und so
Ja, jetzt ist die Frage,
kann man es nicht noch weiter einfach machen?
Bei der konjunktiven Normalform, hatten wir ja gesagt,
wir können dann auch diese Disjunktion als Mengen schreiben.
Aber hier haben wir noch die Al-Quantoren. Und naja,
aber was ist das hier mit dem Quantoren-Prefix,
dass wir jetzt an den Klauseln haben?
Zunächst gilt, auch hier ist die Reihenfolge der Quantoren egal.
Also solange ich gleiche Kantoren habe,
darf ich die auch immer vertauschen.
Das ist eine Äquivalenzumformung
Die Reihenfolge ist egal. So, dann könnte es sein,
dass wir so eine Quantifikation haben dabei, einen Alquantor mit einer Variable
und diese Variable taucht aber in G gar nicht auf.
In dem Fall hatten wir auch schon festgestellt, ist diese Allquantifikation, Schall und Rauch.
Ja, das ist völlig egal, ob die dasteht oder nicht.
In dem Fall ist G-Äquivalent zu für alle XG. Ja,
wenn G nichts über X sagt, dann braucht man den Quantor auch nicht. So,
und das heißt,
dass wenn wir Beispielsweise hier ist so eine Klausel haben und da tauchen dann irgendwelche Variablen auf,
dann wissen wir erstens,
da ist eine geschlossene Formel ist und wir sowieso nur Alphantoren haben,
wenn hier eine Variable auftaucht, dann muss auch entsprechender Alquantor davor stehen.
Aber die Reihenfolge ist egal, in der sie stehen.
Und das heißt, dieses Präfix, das ist völlig redundant,
alle Informationen, die hier drin steht und die interessant ist,
Die steckt auch schon in den Klauseln selber drin.
Alleine was zählt ist, kommt eine Variable hier in der Klausel vor oder nicht,
wenn sie vorkommt, dann muss da vorne auch ein Alpfantor stehen,
aber in welcher Reihenfolge er steht, ist egal.
Ja, und damit können wir sagen, okay,
wenn das eben komplett redundant ist, die Information über die Allquanturen,
dann können wir sie auch wieder weglassen. Mit dem Resultat,
dass wir so eine Klausel Normalform wieder repräsentieren können,
zunächst mal als eine Menge von Klauseln, Ja,
und dann können wir eben auch diese Klauseln, ja,
die ja einfach nur eine Sequenz von Literalen ist, die Desjunktiv verknüpft ist.
Auch die können wir wieder als Mengen schreiben,
sodass wir im Endeffekt bei einer Mengendarstellung landen für die Klauselnormalform,
die genauso aussieht eigentlich,
wie unsere Mengendarstellung für die konjunktive Normalform in der Aussagenlogik,
mit dem einzigen Unterschied,
dass unsere Literale jetzt halt Prädikaten,
logische Literale sind und eben auch Variablen enthalten dürfen
Und mit der Hintergrundinformation, wenn, da wird Variablen drin vorkommen,
dann sind die eben implizit allquantifiziert zu verstehen.
Ja. Hier ist noch nicht Pause,
wieso man dann like one oder kurz, Einfluss setzen kann,
wenn er in der Rundenform nicht da war.
Diese Stelle. Ja. Weil wir gesagt haben,
wir gehen davon aus, unser F ist eine Klausel-Normalform.
Und das heißt, sie ist geschlossen.
Da taucht keine freie Variable auf.
Also insofern sind eben alle, wenn wir eine Variable vorkommt,
muss sie unter diesen Dingern hier sein.
Ja. Also eben, das sind wieder starke Voraussetzungen.
Wir können das nicht mit x-beliebigen Formeln machen,
sondern wir müssen sie eben erst in diese Klausel-Normalform bringen.
Und dann können wir auch wieder diese Mengendarstellung wählen. Ja,
und wie gesagt, ich hatte ja gesagt, eigentlich ist es egal,
ob diese Quantoren ganz weiten Skopus haben oder Klauselskopus,
das heißt, wenn wir diese ja,
Formel hier betrachten und dann rekonstruieren wollen,
wie sieht eigentlich die ursprüngliche Formel aus,
dann dürfen wir uns auch einzelne Klauseln rausnehmen und da die Kantoren vorsetzen und sagen,
okay, die ist da drin enthalten.
Gut. Okay, damit haben wir die Mengendarstellung und die Mengendarstellung,
die werden wir, das werden mit weniger überraschen, brauchen,
wenn wir nachher auch in der Prädikatenlogik der Resolution verwenden wollen.
Ja, also Mengendarstellung der Klausel-Normalform, wir haben keine
freien Variablen, wir haben keine Existenzquanturen in der Klausel-Normalform.
Alle Altquanturen stehen im Prefix, die Reihenfolge der Alphantoren im Prefix ist irrelevant.
Ja, Semantik spielt das keine Rolle. Und ja,
insofern können wir sie eben immer so behandeln, ja,
die Variablen immer behandeln als allquantifiziert mit maximalem Skopus
Ja, wir können dann für diese Mengendarstellung natürlich auch sagen,
wie berechnet sich der Wahrheitswert und bei den Klauseln, ja,
die sind, das sind ja implizit disjunktiv verknüpfte, literale,
entsprechend bilden wir da das Maximum für die Interpretation oder für das Maximum der Werte,
der Literale, die wir unter der Interpretation bekommen und für die gesamte Klauselnormalform,
ja, da haben wir ja eine Allquantifikation und eine Konjunktion,
die noch dazukommen und da, das können wir erreichen,
indem wir das Minimum der Werte wählen für die einzelnen Klauseln,
wobei wir nicht nur diese ursprüngliche Interpretation verwenden,
sondern auch alle Varianten,
die wir durch Variationen der Variablen bekommen
Gut. Ja, wir sind jetzt wieder in dem gesamten Setting,
dass wir Logik, jetzt eine Prädikaten logische Sprache verwendet haben,
um einen Weltausschnitt zu modellieren. Und wir wollen jetzt wissen,
was gilt jetzt zusätzlich an Aussagen über unseren Weltausschnitt.
Das heißt, wir wollen irgendwie Folgerungen bestimmen.
Implizit kodierte Informationen aus dem, was wir Hier dargestellt haben.
Und dafür brauchen wir jetzt irgendwelche Verarbeitungsschritte,
auf die wir uns verlassen können, die korrekt sind,
also nur Informationen generieren, die tatsächlich implizit enthalten ist und möglichst auch welche,
die uns alle Informationen rausziehen können, die wir hier oben drinnen stehen haben.
In der Aussagenlogik war das möglich, da gibt es Verfahren,
die korrekt und vollständig sind.
Und jetzt geht es eben darum zu sehen,
ist das in der Prädikatenlogik genauso
Wenn man sich anguckt, was heißt Folgerung, Folgerung heißt ja unter allen Interpretationen,
die unsere Informationsmenge wahrmacht, gilt auch die Folgerung.
In der Aussagenlogik kann man dieses, unter allen Interpretationen,
dadurch ausprobieren, dass man einfach die Wahrheitstafel aufschreibt,
das gibt nur endlich viele Möglichkeiten,
wenn ich nur endlich viele Aussagensymbole habe und auch wenn es lange dauert,
es ist garantiert nach einer gewissen Zeit
bin ich fertig
In der Prädikaten-Logik hatten wir jetzt sehr viel komplexere Interpretationen und
insbesondere gibt es halt den Punkt, dass wir sagen,
wir haben eine Domäne, über die wir das Ganze interpretieren.
Und ja, für diese Domäne gibt es keine Einschränkung.
Und entsprechend gibt es auch keine Möglichkeit,
jetzt in einer endlichen Art und Weise
all diese möglichen Strukturen aufzuschreiben und denen wir zu bestimmen
Das heißt, dieses Verfahren mit den Wahrheitstafeln ist aus Prinzip,
in der Prädikatenlogik kein Verfahren, mit dem wir vollständig sein können.
Wir können es verwenden, um Einzelfälle zu überprüfen, ja,
um Werte auszurechnen, aber wir werden damit nie ein vollständiges Verfahren kriegen.
Das heißt, wir brauchen grundsätzlich andere Techniken. Und eigentlich alle funktionsfähigen Techniken und alle,
die heutzutage in entsprechenden Beweisverfahren implementiert sind, sind welche,
die sogenannte Widerlegungsverfahren sind, Das heißt,
es sind Verfahren, die eigentlich nur prüfen können,
ist diese Informationsmenge erfüllbar oder nicht erfüllbar.
Und wenn man diese Verfahren nutzen will, dann muss man halt
die ursprüngliche Fragestellung, die man hat, entsprechend umformen.
Ja, und da hatten wir ja gesehen, dass eigentlich
alle semantischen Fragestellungen, die wir haben, auch entsprechend unformbar sind.
Also, wenn ich wissen will,
ist F eine Tautologie oder ist F gültig,
dann kann ich halt prüfen,
ist die Negation von F unerfüllbar
Und dann so ein Widerlegungsverfahren darauf ansetzen. Und auch Folgerung,
also folgt aus FG. Das kann man auch in eine entsprechende Erfüllbarkeitsprüfung überführen,
indem ich F konjugiere mit der Negation von G. Also ist es möglich,
dass F und Nicht-G gleichzeitig der Fall ist,
wenn das unmöglich ist, dann folgt eben G aus F.
Dann ist eben, geh immer wahr,
wenn auch F wahr ist
Gut, also eigentlich alle Verfahren sind Widerlegungsverfahren.
Und aus diesem Grund ist eben auch der Punkt,
wir machen ab einer gewissen Stelle nur noch Umformungen,
die Erfüllbarkeit erhält, auch ein sinnvolles Verfahren auf diesem Weg.
Eben nachdem man es in eine entsprechende Fragestellung umgeformt hat.
In der Aussagenlogik hat mir ja das schon kennengelernt mit der Resolution.
Und zwar dahingehend, dass wir dort gesagt haben,
wir bringen unsere Formel in konjunktive Normalform,
in der Mengendarstellung
Und der Resolutionsschritt besteht darin, dass wir zwei Klauseln nehmen,
K1 und K2, die ja folgendes Muster aufweisen,
in dem einen K1 gibt es ein Literal L und
dazu passend in K2 das komplementäre Literal.
El Balken. Ja,
also werden L ein positives Literal ist,
dann ist El Balken dasselbe wie Negation von L. Wenn L
ein negatives Literal ist,
dann ist El Balken das,
wenn man
die Negation widerstreicht
Wenn wir so ein Muster haben, zwei Klauseln dieser Art,
dann erreichen wir dir Resolvente dadurch,
dass wir aus dem K1 der SL wegnehmen,
aus dem K2, das komplementäre Literalzuell.
Und das, was übrig bleibt,
vereinigen und damit eine neue Klausel bilden.
Das ist ein korrekter Inferenzregel, die hierhinter steckt.
Und wenn wir auf diesem Weg die leere Klausel ableiten,
dann steht das dafür,
dass die ursprüngliche Menge unerfüllbar ist
So, der Algorithmus sah dann entsprechend so aus,
dass man eine Ursprungsformel in dieser Mengendarstellung der KNF hatte und dann einfach alle Resolventen,
die man in einem Schritt bilden kann, bildet, nachguckt,
ist da die leere Klausel drin oder habe ich nichts Neues gemacht und ja,
sozusagen so lange weitermacht,
bis eins von beiden erfüllt ist,
entweder man hat die leere Klausel,
dann ist man fertig oder man stellt fest,
es ist nichts Neues dazugekommen in diesem Resolutionsschritt,
dann ist man auch fertig
Und wenn eben die leere Klausel rauskommt, dann kann man sagen,
das ist unerfüllbar und wenn sie nicht da ist,
aber man auch nichts Neues mehr gekriegt hat,
dann weiß man es, ist erfüllbar.
Und in diesem Schritt ist halt diese Prüfung,
ist F das gleiche WG,
also habe ich durch die Resolventenbildung nichts Neues dazubekommen,
das ist sozusagen meine Prüfung,
die es mir erlaubt abzubrechen,
obwohl ich denen
keinen Widerspruch gefunden habe
Und in der Aussagenlogik,
da funktioniert dieser auch Abbruch auch garantiert,
denn man kann feststellen, wenn ich beispielsweise N-Aussagensymbole habe,
in meiner ursprünglichen Formel, dann gibt es maximal vier Hochendklauseln,
die man aus dem Material bilden kann, das wir haben.
In jeder Klausel kann jedes Aussagensymbol positiv vorkommen oder auch nicht,
negativ vorkommen oder auch nicht.
Insgesamt vier Möglichkeiten und wenn ich N ein Stück habe,
dann kriege ich halt
höchstens vier Hochend
Das heißt, irgendwann sind alle Klauseln,
die prinzipiell bildbar sind, erreicht oder auch nicht.
Und es kommt nichts mehr dazu. So,
in der Prädikatenlogik werden wir sehen, dass dieser Schritt eben problematisch ist,
weil wir da nicht mit endlichen Mitteln arbeiten,
sondern grundsätzlich mit beliebig komplexen auch schon atomaren Formeln.
Ihre Komplexität dann in den Thermen haben,
und das werden wir sehen,
ist dann gegebenenfalls
ein Problem
Gut. Also, es geht jetzt, oder der Weg
soll jetzt sein, zur Prädikaten logischen Resolution zu kommen.
Auch ein Widerlegungsverfahren für die Prädikatenlogik. Und was wir schon
an Vorbereitung haben, ist, dass wir wissen,
wie wir Aufgabenstellungen in so eine Untersuchung von Erfüllbarkeit überführen können.
Und dass wir auch die Klausel Normalform auch schon in Mengendarstellungen
vorbereitet haben
Und jetzt gibt es sozusagen zwei Varianten, sich dem Thema zu nähern. Das eine ist zu sagen,
wir wollen uns möglichst lange an dem Modell der Aussagenlogik festhalten,
das ist die sogenannte Grundpräsolution, die werde ich kurz ansprechen,
aber dann werde ich ein Stück überspringen, weil das,
wo ich auf jeden Fall heute hin muss,
ist die Unifikation,
die brauchen wir für den zweiten Typ von Prädikaten,
logischer Resolventenbildung und das ist sozusagen die eigentlich einschlägige,
die es dann wieder erlaubt,
eine bessere Kontrolle auszuüben über diesen Prozess der Resolution
Gut. Also, gucken wir uns nochmal an,
wie das mit der Resolution in Bezug auf der Aussagenlogik,
auf die Aussagenlogik ist und wie man das dann gegebenenfalls auf die Prädikatenlogik übertragen kann.
Auch in der Prädikatenlogik kann das ja vorkommen,
dass wir Formeln haben, in denen gar keine Quantoren auftauchen.
Ja, also ich kann,
diese Aussage Harry Potter 7 ist auf Englisch erschienen,
auch Prädikaten logisch formulieren mit dem Prädikat
auf Englisch erschienen und eben der Konstanten Harry Potter
Entsprechend High Potter 7 ist auf Deutsch erschienen mit dem Prädikat,
auf Deutsch erschienen. Angewendet auf die Konstante Harry Potter 7.
Und dann die Aussage, wenn Harry Potter 7 auf Deutsch
erschienen ist, dann ist es auch auf Englisch erschienen.
Wenn ich dann die Informationen habe, Harry Potter 7 ist
auf Deutsch erschienen und wenn es auf Deutsch erschienen ist,
dann ist es auch auf Englisch erschienen.
Dann kann ich daraus folgern, dass Harry Potter 7
auch auf Englisch erschienen ist.
Das ist eine einfache Folgerung
Ja, man kann auch feststellen, die kann man eben
auch durch Anwendung des Modus Pohnens beispielsweise aus dieser Formelmenge erzeugen.
Oder auch durch Resolution vorausgesetzt. Also diese Implikation ist dann
als Klausel dargestellt. Und die entsprechende Resolutionsableitung kann man dann natürlich
auch entsprechend darstellen, dass wir hier komplementäre Literale finden und
dann auch einen entsprechenden Resolutionsschritt machen
Und wenn ich jetzt die Folgerungsprüfung über eine Erfüllbarkeitsprüfung machen will,
dann nehme ich eben diese Ursprungsaussage. Also Harry Potter ist auf,
Harry Potter 7 ist auf Deutsch erschienen,
die Implikation umgeformt als Klausel,
Harry Potter 7 ist nicht auf Deutsch erschienen oder es ist
auf Englisch erschienen und ich will prüfen,
ob das kompatibel ist mit der Aussage Harry Potter
7 ist nicht auf Englisch erschienen
Und dann erhalte ich insgesamt die Möglichkeit dieser Resolutionsableitung,
wo ich einmal hier das Niteral Harry Potter 7 ist
auf Deutsch erschienen, nutze zur Resolution als Resultat erhalte.
Harry Potter 7 ist auf Englisch erschienen und das mit der
gewissermaßen Anfrage hier kombiniere und damit die leere Klausel erreiche.
Und dann weiß ich halt,
die Formel F1 zusammen mit der Negation meiner Anfrage hier ist widersprüchlich,
also ist Terraporter 7 auf Englisch erschienen
So, jetzt ist es aber so,
dass wir in der Prädikatenlogik halt noch ganz andere Formeln haben,
nämlich solche mit Allquantoren. Und es könnte ja sein,
dass diese Regel, die ich hatte,
gar nicht in Bezug auf Harry Potter 7 formuliert ist,
in meiner Informationsbasis, sondern viel allgemeiner.
Alles, was auf Deutsch erschienen ist, ist auch auf Englisch erschienen.
Ja. Auch dann gilt ja, wenn ich weiß,
Harry Potter ist auf Harry Potter 7 ist auf Deutsch erschienen.
Und alles, was auf Deutsch erschienen ist,
ist auch auf Englisch erschienen.
Auch dann kann ich folgern, dann muss Theraporter 7
auch auf Englisch erschienen sein
Wenn ich jetzt aber frage,
könnte ich das mit dem Modus Pohnen beispielsweise erreichen,
dann stellt man fest, naja, nicht direkt, weil hier die Implikation,
die ist ja jetzt noch eingebettet hier mit dem Allquantor und diese Teilformel auf Deutsch erschienen,
X ist halt, sieht halt ein bisschen anders aus,
als auf Deutsch erschienen, Harry Potter 7.
Was man bräuchte, wäre noch ein Weg von dieser Regel,
diese Allquantifikats altquantifizierten Regel, alles,
was auf Deutsch erschienen ist, ist auch auf Englisch erschienen,
überzugehen, zu sagen, naja,
wenn das für alles gilt,
dann gilt es
auch für Harry Potter
Und wenn ich sozusagen diese Form habe der Regel,
dann könnte ich auch wieder mit Harry Potter,
mit dem Modus Ponens die entsprechende Ableitung machen.
Ja, wie sieht es mit Resolution aus? Letztlich genauso die bisherigen Regeln erlauben es uns nicht,
da direkt den Schritt zu machen, sondern wir brauchen noch etwas,
was eben mit diesen Variablen umgeht. Und wie gesagt,
auch bei der Resolution wäre eine Möglichkeit zu sagen,
wir gehen von dem Allsatz aus und bilden mal Instanzen,
also setzen für das X jetzt verschiedene Therme ein,
probieren aus sozusagen, welche Therme sind es,
die uns dann zu so einem Ergebnis bringen.
Also wenn wir einen Schritt haben,
um von so einem allquantifizierten Satz zu einem Satz zu kommen,
wo eben keine Variable mehr vorkommt oder hier auch bei den Klauseln,
dann können wir hinterher eben das Resolutionsverfahren, das wohlbekannte Resolutionsverfahren anwenden,
um damit hier die leere Klausel abzuleiten und dann festzustellen,
aha, Informationsmenge, die hineingegeben wurde in das Verfahren,
ist widersprüchlich oder unerfüllbar.
So, das ist der Schnitt, ja,
jetzt springe ich, also dieses Verfahren,
das hier angedeutet ist, dass man sagt,
wir nehmen die allquantifizierten Formeln und bilden davon beliebige Instanzen.
Das ist die Grundidee der sogenannten Grundresolution,
die letztlich darauf hinausführt zu sagen,
wir bilden die Prädikatenlogik ab,
Aufmengen von Aussagen logischen Formen und arbeiten dann
wie gehabt
Dieses Verfahren ist aber, hat seine Schwierigkeiten und das
möchte ich jetzt mal an diesem Beispiel demonstrieren.
Ja, also das ist jetzt die Folie 15 aus 11,
ja, damit man dahin springen kann.
Ausgangspunkt ist jetzt eine Formel, das war die,
die wir vorhin durch Umformung erreicht haben.
Eine Klauselnormalform, die besteht aus drei Klauseln
Hier oben nochmal angeführt und wir wollen von dieser prüfen,
ob sie erfüllbar ist oder nicht. Und wir können jetzt
von diesen verschiedenen Klauseln verschiedene Instanzen bilden, dadurch,
dass wir jeweils die Variablen durch verschiedene Konstanten oder Therme ersetze.
Ja, also in C1 taucht Z und X
als Variablen auf und die kann ich ersetzen.
Hier ersetze ich beide durch A und dann erhalte ich
diese sogenannte Grundinstanz der Klausel, die hier steht.
Grund wird häufig verwendet für, es kommen keine Variablen mehr vor.
Grundinstanzen oder Grundsubstitutionen sind immer solche,
die sozusagen im Endeffekt bei der Substitution keine Variable übrig lassen
und bei den Instanzen keine Variablen mehr enthalten.
Wenn ich G1 als Menge darstelle, stellt man fest,
ach wie schön, wir haben dreimal dasselbe Literal,
brauchen wir nur noch einmal hinzuschreiben.
In C2 taucht nur Z auf als Variable. Wenn ich dafür
das A einsetze, Haben wir eben gar keine Variable mehr.
C3 haben wir auch nur Z. Das wird hier auch einmal
alle Sets durch A ersetzt und wir erhalten dieses G3. Naja,
aber das ist ja nur eine Möglichkeit, alles durch A ersetzen.
Ich könnte ja auch beliebig komplexe Therme bilden. Hier zum
Beispiel kann ich für das Z auch F&A einsetzen und das
habe ich hier eben nochmal in Bezug auf Klausel C1 gemacht.
X durch A ersetzen, Z durch F&A und dann
erhalte ich eine andere Grundklausel
Ja, und so könnte man natürlich jetzt beliebig weitermachen,
ja, für alle Variablen, die wir haben,
können wir beliebige Therme einsetzen.
Und da wir ein Funktionssymbol haben, können wir natürlich beliebig komplexe Therme bilden.
Nicht nur F&A, sondern auch F und F&A und F
und F und F&A und so weiter.
Und dann können wir anfangen, das alles durchzuprobieren. So,
und hier habe ich jetzt mal die Resolutionsableitung für die Gültigkeitsprüfung gemacht und nochmal hier oben ergänzt,
sozusagen, wo kommen diese Grundklauseln eigentlich her?
Und man sieht eben, C1 wurde zweimal verwendet,
um zwei verschiedene Grundklauseln zu generieren, G1 und G4.
Und in dieser Resolutionsableitung, die letztendlich zur leeren Klausel führt,
stellen wir fest, dass wir auch tatsächlich beide verwenden.
Das G4 verwenden wir und das G1 verwenden wir auf dem Weg,
um die leere Klausel zu generieren. Ansonsten haben wir eben Standardresolutionsschritte,
also hier oben sehen wir,
hier haben wir nicht P von A und A,
hier das Komplementäre P von A,
also können wir resolvieren und erhalten,
P von A,
F und
Entsprechend können wir hier zwischen G1 und G3 resolvieren,
erhalten, dieses Literal übrig und so weiter.
Ja, und der kritische Punkt ist halt,
dass wir Klauseln in solchen Beweisen durchaus mehrfach verwenden müssen,
dadurch, dass wir mehrere Instanzen bilden,
um zum Ziel zu kommen.
Und rauszufinden, welches die richtigen Instanzen sind,
die man bilden muss, um einen Beweis zu führen.
Das ist halt die neue Herausforderung, die wir haben,
bei der Resolution in der Prädikatenlogik
Und ein Weg, damit umzugehen, ist eben zu sagen,
wir möchten das Schema, was wir hier angedeutet haben,
nicht beibehalten. Also das Schema, was wir hatten,
war ja zu sagen, wir haben Klauseln.
Davon bilden wir Instanzen, die Grundklauseln oder Grundinstanzen.
Und dann resolvieren wir irgendwie. Und das heißt,
dass wir unter Umständen hier oben,
wenn wir bei den Klauseln losarbeiten, ziemlich raten müssen.
Was könnte denn eigentlich die richtige Instanz sein,
die mir
das Problem löst
Und wir müssen deshalb raten, weil es unendlich
viele Möglichkeiten gibt. Also wir können nicht einfach sagen,
nehmen wir doch alle und dann machen wir los.
Wenn wir ein Verfahren haben, das wir auch implementieren wollen,
dann geht das eben nicht.
Also es gibt unendlich viele Grundinstanzen und das heißt,
man muss sich irgendwie fokussieren auf etwas Geeignetes.
Und die Frage ist, wie kriegen wir denn raus,
was die Geeigneten sind?
Ja, und hier kommen wir dann eben zum Thema Unifikation
Die kann man überspringen, das ist eigentlich nur das, was schon mal gesagt war.
Also die Idee bei der Unifikation ist zu sagen,
wir trennen der Resolution nicht von der Instanzenbildung,
sondern gucken uns an, wo wollen wir denn, oder soll wir,
wo sehen wir das Potenzial zu resolvieren und versuchen dann geeignet Instanzen zu bilden,
die das ermöglichen.
Also wenn wir hier so ein Beispiel haben,
wir haben eine Klausel,
das ist nicht P von
Nichts weiter. Und dann haben wir eine Klausel,
die sagt P von X, Komma, also oder Nicht-Kuh-G von X.
Die haben ein gewisses Potenzial für die Resolution, dahingehend,
dass schon mal erfüllt ist, dass wir hier übereinstimmende Prädikatensymbole
haben und dass einmal die Negationen auftaucht und beim anderen nicht.
Das heißt, wenn wir es schaffen, dieses X,
was hier drin steht,
mit dem F von Y aus dem anderen irgendwie gleichzusetzen,
Dann haben wir das Muster, was wir brauchen, um zu resolvieren.
Und dieses Gleichsetzen, das ist genau das, was durch die Unifikation passiert.
Dass man sagt, okay, wir haben hier eine Formel,
da sind Variablen drin, die sind ja implizit allquantifiziert.
Also dürfen wir Instanzen bilden und diese Instanzen,
die können wir auch bilden,
indem wir so einen Therm einsetzen wie F von Y. Ja,
über Y wissen wir dann immer noch nicht viel.
Das ist immer noch eine Variable,
die wir auch implizit allquantifiziert ansehen,
wie ihr oben
Aber wenn wir die einsetzen, dann kriegen wir halt das Muster hin,
was wir brauchen, um den Resolutionsschritt auszuführen.
Und der Seiteneffekt von dem Ganzen ist,
dass auch andere vorkommen von dem X,
die wir hier in der ursprünglichen Klausel haben, entsprechend spezifiziert sind.
Ja, auch in dieser Position taucht jetzt das F von Y auf.
Und in der Resolvente taucht halt auch dieses F von Y
weiter auf
So, das ist sozusagen der Resolutionsschritt basierend auf Unifikation,
der es erlaubt, zielgerichteter, die Ersetzung von Variablen vorzunehmen,
als das bei der Grundresolution der Fall wäre und wo man
eben noch eine gewisse Allgemeinheit hier im Resultat hat dahingehend,
dass diese Variable Y eben auch noch nicht weiter spezifiziert ist.
So, und der wesentliche Punkt für heute ist noch
das Verfahren kennenzulernen, mit dem man eben berechnet,
wie sieht so eine Unifikation
geeignet aus
Zunächst mal, was ist eigentlich Unifikation? Unifikation ist eigentlich nichts anderes als Variablen Ersetzung.
Also Variablensubstitutionen. Wobei sozusagen die Randbedingungen erfüllt werden soll,
dass wir für eine Menge von Formeln,
die wir haben, durch diese Variablen Ersetzung erreichen,
dass die Formeln sozusagen nach der Ersetzung auf dieselbe Formel abgebildet werden.
Also sozusagen im Normalfall, aber nicht unbedingt,
haben wir zwei Formeln und wir wollen die Variablen so ersetzen,
dass hinterher ja beide Formeln auf dieselbe Formel abgebildet werden.
Im allgemeinen Fall dürfen es auch ruhig mehrere sein,
aber der Normalfall ist halt, wir haben zwei Formeln.
Und insbesondere haben wir in der Regel auch
nur zwei Literale und gar nicht komplexere Formeln
Ja, auch Therme kann man natürlich unifizieren,
also gegeben Therme, Gesuch,
eine Substitution, die die Variablen so ersetzt,
dass die verschiedenen Therme alle auf denselben Thermen abgebildet werden.
Das ist in einer gewissen Weise sozusagen auch ein Teil dieses Prozesses,
denn bei der Unifikation von Formeln sind natürlich Therme als Teilausdrücke
auch wieder involviert
Gut. Die Frage ist jetzt,
wie findet man so eine Substitution, die das leistet?
Und können wir das zielgerichtet machen? Und die Antwort ist
natürlich, ja, das können wir zielgerichtet machen.
Ja, genau. Eine Menge von Ausdrücken heißt unifizierbar,
wenn es einen Unifikator gibt. Natürlich gibt es auch Situationen,
wo keine Unifikation möglich ist. Insbesondere schon dann,
wenn wir verschiedene Prädikatensymbole haben, dann ist es aussichtslos.
Weil Unifikation ja immer nur Variablen betrifft und niemals die Prädikatensymbole
Denn nochmal zur Erinnerungssubstitution, das hatten wir ja gestern auch schon,
Substitutionen sind zunächst mal Variablenersetzungen, die eben sagen müssen,
auf was werden die Variablen abgebildet?
Und dann werden diese eben rekursiv fortgesetzt auf Formeln und Therme
beliebiger Komplexität. Und naja, das Schöne,
wenn man sich mit Unifikationen von Literalen, insbesondere beschäftigt,
ist, dass man sich um diese Schwierigkeiten mit den Quantoren
gar nicht mehr scheren muss,
weil sowieso
keine Quantoren mehr vorkommen
Ja, Substitutionen sind Funktionen,
die insbesondere Therme auf Therme abbilden, Variablen auf Therme abbilden.
Und wir hatten ja auch schon gesehen, dass man
Substitutionen hintereinander ausführen kann. Und insbesondere bedeutet das,
dass man auch verschiedene Substitutionen kombinieren kann durch Kompositionen,
also gewissermaßen durch hintereinander Ausführung
Ja, und man kann den Raum der möglichen Funktionen
betrachten und darin die Operation der Komposition,
die also verschiedene Substitutionen kombiniert zu einer neuen.
Also die Komposition von zwei Substitutionen ist wieder eine Substitution,
sodass Geld, dass die neue Substitution dasselbe tut,
als hätte ich die ursprünglichen hintereinander ausgeführt
Und dieser Begriff der Komposition von Substitutionen erlaubt es uns dann
auch im Bereich der Substitutionen eine Ordnung zu definieren,
dahingehend dass Substitutionen allgemeiner oder spezieller sein können.
Ja, hier habe ich nochmal Beispiele für solche Kompositionen angeführt.
Wir haben hier Ja, zunächst mal die Substitution.
X wird durch A substituiert und dann ersetzen wir hinterher,
dass Y durch B und sozusagen die Komposition dieser beiden Substitutionen
macht das gewissermaßen parallel oder auch gleichzeitig.
Was ist das für ein, wo kommt diese Rückkopplung?
Okay,
ich weiß es nicht
Gut. Durch diese, durch diese Möglichkeit der Komposition,
wie gesagt, können wir jetzt so etwas wie eine Ordnung hinsichtlich der Frage,
wie speziell sind unsere Substitutionen eigentlich aufbauen.
Nämlich dahingehend, dass wir sagen, eine Substitution,
Sigmar 2 ist allgemeiner als eine Substitution Sigmar 1. Wenn folgendes gilt,
dass wir eine Substitutionen, Tau, definieren können,
so das gilt, dass Sigma 1, die speziellere,
genau dasselbe tut, wie die hintereinander Ausführung von Sigma 2 und Tau.
Ja, also Sigma 1 macht alles das,
was Sigma 2 und Tau machen und ist insofern spezieller als Sigma 2,
welches eben Tau noch nicht gemacht hat, gewissermaßen.
Ja, also wenn wir beispielsweise hier Sigma 2 haben,
sie sagt, X wird auf F von,
geh von XY abgebildet, Y wird auf GVZB abgebildet.
Und Tau sagt, X wird auf A abgebildet,
Y wird auf GWY und Z auf H.W. abgebildet.
Dann ist die Hintereinanderausführung von diesen beiden Substitutionen,
ist eine neue Substitution,
die halt spezieller ist als dieses Sigma 2. Beziehungsweise Sigma 2
ist allgemeiner als Sigma
Und diese Ordnung zwischen Substitution benötigen wir jetzt bei der Unifikation.
Dahingehend, dass wir eben nicht beliebige Ersetzungen vornehmen wollen,
sondern wir wollen möglichst zurückhaltend ersetzen.
Das heißt, wir wollen Substitutionen definieren, die möglichst allgemein sind.
Das heißt, wenn wir eine Menge von Ausdrücken haben,
Und die können wir durch Substitutionen auf verschiedene Mengen von Ausdrücken abbilden,
entweder eben auf M. Sigma oder auf M. Sigma Strich.
Dann wollen wir die Substitution definieren, die uns eine möglichst allgemein,
oder die möglichst allgemein ist und möglichst wenig vorwegnimmt,
an Festlegungen,
die wir vielleicht in der Zukunft
erst treffen wollen
Und der Unifikationsalgorithmus, der soll eben so sein,
dass er eben möglichst die allgemeinsten Unifikatoren bestimmt. Nämlich solche,
so das gilt,
wann immer wir oder welche Menge wir auch immer erreichen können durch Unifikation,
die können wir dadurch erreichen,
dass wir erstmal zu dem Allgemeinsten gehen mit einer allgemeinen Substitution
und dann gegebenenfalls weiter spezifizieren
Ja, es kann natürlich auch sein,
dass dieses Tau gar nichts mehr zu tun hat.
Wenn also Sigma und Sigma Strich das Gleiche sind,
dann wäre Tau einfach die identische Substitution, die nichts verändert.
Der allgemeinste Unifikator soll eben immer zu so einer
möglichst geringen Festlegung führen. Natürlich gibt es auch Situationen,
in denen oder auch diese allgemeinsten Unifikatoren sind nicht unbedingt eindeutig bestimmt,
Insbesondere kann es sein, dass sozusagen die Variablen Benennung variiert.
Ja, also das, was die eine,
wo die eine immer X benutzt,
benutzt die andere immer Y. Und dann kann man halt durch eine Umbenennung,
tau, dass einfach X und Y vertauscht,
jeweils den anderen erzeugen.
Aber abgesehen davon, dass die Variablen Benennung unter Umständen
nicht eindeutig ist, ist es tatsächlich möglich,
immer ein allgemeinsten Unifikator zu bestimmen
So, der Unifikationssatz sagt nun tatsächlich, wenn wir überhaupt
eine unifizierbare Menge von Literalen haben. Das heißt,
es gibt überhaupt eine Möglichkeit,
durch Substitution eine Menge von Literalen auf eine einer Menge zu reduzieren oder abzubilden,
dann gibt es auch einen allgemeinsten Unifikator,
also einen,
der das in einer maximal zurückhaltenden Weise tut und
möglichst wenig Festlegungen macht
Und das tun wir, oder kann man dadurch machen,
dass man eben einen Algorithmus angibt, der sagt,
wie wird diese Unifikation vollzogen?
Und das wird dann sozusagen sukzessive gemacht,
indem man sich Positionen für Position in dem Ausdruck anguckt und sagt,
muss ich hier was tun?
Was kann ich tun, wenn ich was machen muss?
Und dann eine entsprechende Festlegung macht. Okay,
gucken wir uns den Algorithmus mal an.
Wir haben eine Wir haben eine Menge von Literalen,
die sollen natürlich nicht leer sein und sie sollen auch endlich sein.
Ist halt bei Algorithmen immer praktisch, wenn man eine endliche Eingabe hat.
Wir fangen an mit der leeren Substitution, die tut gar nichts.
Man kann auch sagen, jede Variable wird auf sich selber abgebildet.
Und jetzt bilden wir sukzessive Substitution, Sigmai,
wenden die auf unsere Literalmenge an und gucken,
Wie viele Literale sind nach Substitutionen noch da?
Und solange es mehr als eins ist, müssen wir noch
was tun. Gut. Nehmen wir an,
wir haben noch mehrere Literale und jetzt müssen wir gucken,
ja, was müssen wir tun, um die Unifikation vorzunehmen?
Und dazu geht man von links nach rechts.
Man könnte auch von rechts nach links gehen,
aber wir gehen halt von links nach rechts durch diese Literale
und suchen nach der ersten Position,
wo wir überhaupt einen Unterschied finden
Jetzt kann es sein, dass der Unterschied dadurch hervorgerufen wird,
dass wir irgendwie ein Jungtor haben oder so.
Und da wir an Jungtoren oder auch an Prädikatensymbolen nichts ausrichten können,
müssen wir dann sagen, also wenn der Unterschied an der Stelle liegt,
wo wir nichts tun können, dann können wir aufhören und sagen,
nein, wir haben keine Chance, das Ganze zu unifizieren.
Wenn aber Ja, und dann kam das der nächste Punkt sein,
dass wir eben die Unterschiede in Thermen finden.
Und auch da gibt es zwei Fälle, entweder wir haben
eine Variable, die beteiligt ist an einem Unterschied.
Das ist der gute Fall, denn dann können wir was tun.
Die Substitution kann der Variablen auf anderes abbilden.
Wenn aber keiner der Therme eine Variable ist, dann,
und trotzdem nicht den Unterschied vor,
dann kann Substitution wieder nichts erreichen und man kann wieder sagen,
nein, wir müssen abbrechen,
das Ganze ist nicht unifizierbar
So, und jetzt kommen wir zu dem wirklich konstruktiven Schritt,
wo wir sagen, okay, wir haben einen Unterschied gefunden,
und zwar haben wir eine Variable und einen Term, ja,
an der einen Position in deinem einen Miteral steht eine Variable,
in deinem anderen Literal steht an der entsprechenden Position ein Term,
wir wollen eine Unifikation machen, und sozusagen schwierig ist es wiederum,
wenn diese Variable in dem Term selber wieder vorkommt,
dann haben wir auch ein Problem und müssen sagen,
das geht nicht, aber im Allgemeinen,
wenn dass X nicht in Tee vorkommt,
dann können wir etwas machen, nämlich die nächste Substitution definieren,
indem wir X durch Tee ersetzen und diesen Schritt anhängen,
an, die vorher bestehende Substitution.
Und dann sozusagen den Zyklus wieder aufnehmen und gucken,
haben wir jetzt alle Unterschiede beseitigt.
Wenn nicht, dann suchen wir wieder nach Möglichkeiten,
Variablen zu ersetzen, durch Therme,
um größere Übereinstimmung herzustellen
Wenn wir am Ende hier nur noch ein Literal überhaben,
weil die Substitutionen alle Unterschiede beseitigt hat,
dann können wir diesen auch als Ergebnis ausgeben und tatsächlich wird
es ein allgemeinster Unifikator sein.
Gucken wir uns das mal an, ein Beispiel an.
Wir haben hier eine Menge von Literalen, zwei Literale.
Beide haben das Puh als Predigtartensymbolkuh, ist in beiden Fällen
zweistellig verwendet. Also da haben wir schon mal keinen Unterschied
und das ist auch
gut so
Der erste Unterschied, wenn wir von links nach rechts gehen,
besteht in dem ersten Argument von Q,
da steht einmal X und einmal B. Und naja,
es wäre vielleicht gut gewesen, nochmal drüber zu schreiben,
dass wir hier die Konventionen folgen,
X sind variabel, ist eine Variable,
Y ist eine Variable, A und B sind Konstanten.
Gut. Wir haben also eine Variable und hier einen anderen Term.
Und jetzt können wir das nutzen, um eine neue Substitution
zu definieren. Sigma 1, die sagt,
er setzte mir X durch
Entsprechend dem, was wir hier an Thermen gefunden haben.
Wenn wir diese Substitution anwenden auf unsere Menge oder auf unsere Literale,
also einmal hier auf L1,
dann haben wir hier halt das Literalkuh von B, Komma FA.
Wenn wir es auf L2 anwenden,
erhalten wir Kuh von B,
Y. Das heißt, wir haben jetzt erreicht,
das Ziel über Einstimmung ist in der ersten Position von
der Formel
Aber wir haben immer noch einen Unterschied in der zweiten Position.
Einmal steht da FLA und einmal steht da Y. Und das
heißt halt, dass wir eine weitere Substitution definieren müssen,
die sagt, also ersetzen wir das Y durch F&A.
Wenn wir jetzt dieses Sigma 2 anwenden,
das sagt also X durch B ersetzen,
Y durch F&A ersetzen, das auf L1 anwenden,
dann kriegen wir heraus Kuh von B,
F&A und hier erhalten wir für L2
auch Kuh von B,
Das heißt,
wir haben nur noch ein Element in dieser Menge,
die wir halten,
wenn wir die Substitution auf alle literale anwenden und haben damit erfolgreich unifiziert und herausgefunden,
der allgemeinste Unifikator bildet X auf B ab und Y auf F&A und ist damit auch,
ja,
hinterlässt keine Variable mehr,
aber sozusagen,
wir wissen dann auch,
es gibt keinen allgemeineren Fall
Gucken wir, das ist zum zweiten Fall an. Wir wollen hier Unifikation machen,
QX, F&A und P, B,
Y. Der Unterschied liegt in dem Predikatensymbol,
Q und P, da können wir nichts machen,
wenn man auf so eine Situation trifft,
kann man gleich sagen, nee, das ist nicht unifizierbar,
der Unterschied liegt an einer Position,
die man durch Unifikation nicht verändern kann.
Also Abbruch nicht unifizierbar
Dritter Fall. Wir haben Q von X,
F&A und Q von B, F von X.
Die Kurs stimmen überein, also prinzipiell spricht nichts gegen Unifizierbarkeit.
Im ersten Schritt stellen wir feste Unterschiede nicht darin,
dass wir das X haben an einer Stelle,
wo wir im zweiten Literal das B haben.
Also sollten wir das X doch am besten durch B ersetzen.
Wenn wir das tun, erhalten wir einmal Kuh von B,
F und A und einmal Kuh von B,
F von
Jetzt stellen wir fest, unterschiedlich darin,
dass wir hier ein A haben, hier ein B haben,
da A und B, beides konstanten sind,
haben wir hier wieder keine Chance zur Unifikation.
Die Literalmenge ist nicht unifizierbar. So,
und jetzt sozusagen die letzte Demo zum Fall, nicht unifizierbar.
Wir haben hier zwei literale QXXXXX und QY
F und
Im ersten Unifikationsschritt haben wir zwei Variablen, X und Y,
in dem Fall können wir uns aussuchen,
welche wir durch welche ersetzen. Hier wählen wir aus,
wir ersetzen das X durch Y. Andersrum könnte man es auch machen,
wird kein Unterschied im Resultat liefern.
Dann erhalten wir hier das Literal Q von Y und Y
und Q von Y F von Y.
Und der Unterschied liegt in der zweiten Position,
da haben wir einmal das Y und einmal das F von
Und in dem Fall muss man feststellen,
Y kommt in F und Y vor.
Das können wir nicht miteinander unifizieren und können abbrechen und sagen,
nein, diese Literalmenge ist nicht unifizierbar.
Gut, also wie gesagt, es gibt verschiedene Möglichkeiten,
wie man rauskommt. Im ersten Fall hatten wir eine erfolgreiche
Unifikation gemacht und hatten als Resultat eben eine entsprechende Substitution definiert.
Und dann hatten wir drei Fälle, wo eine Unifikation vorlag,
einerseits hier, weil unterschiedliche Prädikatensymbole auftauchten. Im zweiten Fall,
weil wir feststellten, wir müssen hier verschiedene Therme gleichsetzen,
von denen aber keine, eine Variable ist.
Das geht auch nicht. Und im dritten Fall haben wir
die Bedingung verletzt, dass bei der Substitution keine Variable
ersetzt werden kann durch einen Therm,
in dem
die Variable wieder vorkommt
Gut, das sind die drei wesentlichen Abbruchbedingungen. Der Unifikationsalgorithmus arbeitet sich
durch die Literale durch. Und wenn wir davon ausgehen,
wie gesagt, dass wir nun endlich viele Literale haben,
heißt das auch, dass wir im Ursprungsmaterial nur endlich viele Variablen haben und wie man feststellen kann,
wird in jedem Schritt, in dem die Substitution weiter aufgebaut wird,
irgendwie eine Variable gewissermaßen vernichtet.
Das wird für eine Variable angegeben, durch welchen Therm sie ersetzt werden soll.
Und in diesem Therm, der ersetzt wird,
kommen keine neuen Variablen vor und sie kommt auch selber nicht vor.
Das heißt, in diesem Schritt wird die Anzahl der Variablen
um eins reduziert. Das heißt, die Anzahl der Schleifendurchläufe
ist durch die Gesamtzahl der Auftrittenden
Variablen beschränkt
Und dadurch können wir eben sicher sein,
dass dieses Verfahren auch irgendwann zum Ende kommt und man nicht irgendwie immer komplexere Formeln aufbaut oder Therme aufbaut,
sondern ja, man kommt zum Schluss.
Und tatsächlich kann man auch zeigen, dass die,
oder was in der Bedingung hier oben, Moment,
Ja, schon drinnen steht, ist,
dass die Schleife nur dann erfolgreich verlassen wird,
wenn es zur Unifikation gekommen ist.
Das heißt, wenn man die Menge der Literale
auf eine einer Menge abgebildet hat durch die Substitution.
Alle anderen Abbruchbedingungen sind Bedingungen, wo man feststellen musste,
nein, es gibt keine Möglichkeit der Unifikation.
Also, wenn ein erfolgreiches Verlassen vorliegt der Schleife,
dann hat man auch tatsächlich einen Unifikator gefunden
Was natürlich noch nicht offensichtlich ist, ist,
dass dann tatsächlich dieser Unifikator ein allgemeinster Unifikator ist und dass tatsächlich jeder,
jeder mögliche Erfolgsfall auch tatsächlich erfolgreich verlassen wird.
Also, dass man nicht rausspringt mit einer Aussage,
ist nicht unifizierbar,
obwohl es
tatsächlich unifizierbar gewesen wäre
Ja, die nochmal sozusagen als Zwischenfazit,
was wir mit dem Unifikationsalgorithmus haben, ist jetzt ein Verfahren,
das in so einer Konstellation, wo wir eine Klausel haben,
in der hier beispielsweise P von X vorkommt und noch anderes.
Und wir haben eine andere Klausel,
Nicht-P von F und Y. Jetzt können wir mit dem Unifikationsverfahren tatsächlich feststellen,
welche Substitution ist geeignet, dieses P von X und das Ja,
P von Y, auf dasselbe Literal abzubilden.
Und diese Unifikation, die man dabei erreicht, ist sozusagen eine Information,
die man gewonnen hat, um dann zu sagen,
welche Klausel oder welche Instanz der ursprünglichen Klausel ist eigentlich für den nächsten Resolutionsschritt interessant.
Und es gibt einem eben zusätzliche Informationen hier über den Rest
der Klausel dahingehend, dass das X entsprechend spezifiziert sein muss
Dieser Unifikationsschritt, das ist auch eine der entscheidenden Verarbeitungsschritte in Prolock,
wo man Regeln hat,
die man formuliert im Sinne von, wenn dann,
Bedingungen und wo man dann die Anwendbarkeit so einer Regel dadurch feststellen kann,
dass man sagt, hier habe ich ein Ziel,
hier habe ich eine Regel,
wie passen Regeln und Ziel zusammen und das erfolgt dann eben genau durch Unifikation,
dass man sagt, okay,
wir müssen die Regel dem Ziel anpassen und bekommen dann zusätzliche Informationen über Die weiteren Komponenten der Regel,
also nicht nur den Regelkopf,
sondern auch die damit dann verbundenen Teilziele.
Und das ist genau dieser Algorithmus, wie vorgestellt,
den man dort verwendet.
Also Unifikatoren sind leicht bestimmbar, wenn wir unifizierbare Literalmenge haben.
Und das Schöne ist, dass die Unifikatoren auch bis auf
die Variablen
Benennung eindeutig sind
Wir hatten ja hier an einer Stelle mal so einen Schritt gesehen.
Hier haben wir X und Y unifizieren sollen.
Und wir haben gesagt, okay, wir ersetzen X durch Y.
Da hätten wir uns natürlich auch anders entscheiden können und
sagen können, wir ersetzen Y durch X. Und solche,
solche Punkte sind es, an denen es tatsächlich passieren kann,
dass Varianten von Unifikatoren entstehen. Aber die sind nicht schlimm,
weil das ja einfach nur Varianten in Varianten,
in Bezug auf Variablen, Benennung sind.
Ansonsten sind die Unifikatoren
eindeutig bestimmt
Und da haben wir jetzt einen großen Fortschritt gemacht,
dahingehend, dass wir gesagt haben,
wenn wir eine Allquantifizierte Klausel haben und wir wollen alle Grundinstanzen dieser Klausel haben,
dann haben wir gleich unendlich viele Möglichkeiten.
Mit der Unifikation sind wir deutlich besser.
Wir sagen, außer Variablenbenennung ist alles eigentlich eindeutig bestimmt.
Und damit bewegen wir uns wieder im Raum von
endlich vielen Möglichkeiten und können entsprechend zielgerichteter im weiteren Vorgehen
Gut, und damit können wir jetzt eben auch die Prädikaten,
logische Resolutionen definieren und da den Stellenwert der Unifikation nochmal deutlich machen.
Gehen wir davon aus, dass wir zwei Klauseln,
Karls und K2-Prädikaten, logische Klauseln, Innenmengendarstellung vorliegen habe.
Und in diesen Klauseln gibt es literale, im Allgemeinen,
Im Normalfall hat man hier jeweils einen Veteral,
aber im Allgemeinen kann es auch eben mehrere geben.
Also wir haben K1, L1 bis LM, das sind Klauseln,
die in K1 oder durch K1 bereitgestellt werden und wir haben L1,
sprich bis LN-Strich, die durch K2 bereitgestellt werden.
Und dieses bereitgestellt werden nun, es kann ja sein,
dass in den Klauseln so,
wie sie eben dort stehen, gemeinsame Variablen vorkommen,
Aber die sollen dieses Unifikat, diese Unifikation nicht stören.
Und deshalb ist es erlaubt, zunächst mal Substitutionen auszuführen,
die die Variablen Mengen, die verwendet werden, trennen.
Also, wir haben zwei Substitutionssubstitution 1 und Substitution 2,
die einfach dafür sorgen,
dass K1 und K2 hinterher auf getrennten Variablen Mengen definiert sind.
Dann haben wir eben,
bilden wir die Klauseln K1,
Substitution 1,
So,
und aus diesen nehmen wir Literalmengen einmal aus K1 und einmal aus K2,
sodass folgende Menge von literalen unifizierbar sind,
von der einen hier diejenigen, die von K1 bereitgestellt werden,
nehmen wir jeweils die komplementären Literale und von den anderen nehmen wir die literale,
wie wir sie hier vorfinden.
Wie gesagt, im Normalfall sind M&M gleich eins.
Also wir haben sozusagen ein Literal aus dem einen,
ein Literal aus dem anderen und ja, bilden einmal das Komplementäre,
damit die Unifikation nicht schon deshalb scheitert,
weil das eine negiert ist und das andere nicht, ja.
Und dann suchen wir einen Unifikator, der feststellt,
dass diese Menge sich reduzieren lässt auf eine, einer Menge eines Literals.
Und diesen Unifikator verwenden wir dann bei der Resolventenbildung,
die darin besteht, dass wir aus K1, Sigma 1,
die Literale L1 bis LM auslöschen,
bei K2 Signal 2 löschen wir L-Strich 1 bis L-Strich N raus.
Das Ganze vereinigen wir dann und wenden diese Substitution an auf
das Resultat. Und das ist dann die Resolvente,
die wir erhalten in der Prädikaten, logischen Resolution.
Also, wenn wir von einer Klausel ausgehen,
oder von zwei Klauseln ausgehen, dann müssen wir erst mal dafür sorgen,
dass die getrennte Variablen verwenden.
Hier haben wir das
Hier haben wir auch X, also wird einmal das X
einfach durch ein U ersetzt, dann haben wir da keine Scherereien mehr.
Jetzt haben wir hier zweimal Literale mit P,
einmal mit Nicht-P, wenn wir jetzt den Unifikator bilden,
der Z auf F&X abbildet und U auch auf X,
F&X abbildet,
dann unifizieren wir einerseits schon mal diese beiden hier und andererseits
bekommen wir auf dieser Seite halt das komplementäre Literal
Und dann können wir in dem Resolutionsschritt wie gewohnt auch aus
der Aussagen logischen Resolution die entsprechenden literale hier vernichten.
Okay, somit sozusagen erster Eindruck, wie die Prädikaten logische Resolution funktioniert.
Sie verwendet ganz entscheidend die Unifikation und naja,
die wird es dann auch zu üben gelten in den Übungen.
Und wir sehen uns nächste Woche irgendwann wieder