Logik und Künstliche Intelligenz Vorlesung an der Hochschule Heilbronn (Stand: 25. Juli 2008) Prof. Dr. V. Stahl Copyright 2006 by Volker Stahl. All rights reserved. “Mathematics may be defined as the subject in which we never know what we are talking about, nor whether what we are saying is true.” Bertrand Russell 2 Inhaltsverzeichnis 1 Why? 5 2 Mengen 2.1 Der Begriff der Menge . . . . 2.2 Beziehungen zwischen Mengen 2.3 Comprehension Principle . . . 2.4 Russelsche Antinomie . . . . . 2.5 Operationen auf Mengen. . . . 2.6 Paare . . . . . . . . . . . . . . 2.7 Kartesische Produkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Relationen 3.1 Der Begriff der Relation . . . . . . . . . . . . . 3.2 Zerlegungen . . . . . . . . . . . . . . . . . . . . 3.3 Äquivalenzrelationen und erste Beweistechniken 3.4 Ordnungsrelationen . . . . . . . . . . . . . . . . 3.5 Umkehrrelation . . . . . . . . . . . . . . . . . . 4 Beweistechniken 4.1 Allgemein anwendbare Beweistechniken . . . . 4.2 Beweistechniken für aussagenlogische Symbole 4.3 Beweistechniken für Quantoren . . . . . . . . 4.4 Zusammenfassung . . . . . . . . . . . . . . . . 5 Funktionen 5.1 Rechtseindeutige Relationen . . . . . . 5.2 Partielle Funktionen . . . . . . . . . . 5.3 Definitionsbereich, Wertebereich . . . . 5.4 Totale Funktionen . . . . . . . . . . . . 5.5 Erweiterung . . . . . . . . . . . . . . . 5.6 Komposition von Funktionen . . . . . . 5.7 Surjektiv, injektiv, bijektiv . . . . . . . 5.8 Umkehrfunktion . . . . . . . . . . . . . 5.9 Funktionsterme für Umkehrfunktionen 5.10 Kommutativ, assoziativ, distributiv . . 5.11 Folgen . . . . . . . . . . . . . . . . . . 5.12 Abzählbarkeit . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 11 17 18 21 24 30 . . . . . 33 33 38 41 58 61 . . . . 63 63 64 66 69 . . . . . . . . . . . . 71 71 75 76 77 80 81 84 92 97 99 101 102 6 Aussagenlogik 6.1 Boolesche Funktionen . . . . . . . . . . . 6.2 Rechengesetze für Boolesche Funktionen 6.3 Formeln der Aussagenlogik . . . . . . . . 6.4 Semantik der Aussagenlogik . . . . . . . 6.5 Syntaktische Vereinfachungen . . . . . . 6.6 Konjunktive Normalform . . . . . . . . . 6.7 Tautologien . . . . . . . . . . . . . . . . 6.8 Logische Schlussfolgerungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Prädikatenlogik 7.1 Syntax der Prädikatenlogik . . . . . . . . . . . 7.1.1 Terme, atomare Formeln, Formeln . . . 7.1.2 Freie und gebundene Variablen. . . . . 7.1.3 Substitution . . . . . . . . . . . . . . . 7.1.4 Syntaktische Vereinfachungen. . . . . . 7.2 Semantik der Prädikatenlogik . . . . . . . . . 7.3 Rechenregeln für Formeln der Prädikatenlogik 7.3.1 Äquivalente Formeln . . . . . . . . . . 7.3.2 Regeln der Aussagenlogik . . . . . . . 7.3.3 Regeln für Quantoren . . . . . . . . . . 7.3.4 Gebundene Umbenennung . . . . . . . 7.3.5 Pränex Normalform . . . . . . . . . . . 7.4 Logische Folgerungen . . . . . . . . . . . . . . 7.4.1 Schlussfolgerungsregeln . . . . . . . . . 7.4.2 Konsistenz . . . . . . . . . . . . . . . . A Kardinalzahlen und Kontinuumshypothese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 107 109 111 112 115 116 119 119 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 . 123 . 123 . 125 . 127 . 128 . 129 . 134 . 134 . 135 . 137 . 138 . 139 . 140 . 141 . 142 144 B Axiomensysteme und Theorien 149 B.1 Modellbasierte Theorien . . . . . . . . . . . . . . . . . . . . . 149 B.2 Axiomatische Theorien . . . . . . . . . . . . . . . . . . . . . . 150 C Zermelo-Fraenkel Set Theory 152 C.1 Zorn’s Lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 C.2 Wohlordnungsprinzip . . . . . . . . . . . . . . . . . . . . . . . 159 D Neuman-Bernays-Gödel Set Theory 161 E Literaturverzeichnis 162 4 Logik und Künstliche Intelligenz V. Stahl 1 Seite 5 Why? Können Maschinen denken? Diese Frage wurde erstmals von Alan Turing im Jahr 1950 [21] gestellt, d.h. in einer Zeit als Computer in ihrer Entwicklung noch ganz am Anfang waren. Die Beantwortung dieser Frage scheiterte daran, dass wir zwar ein intuitives Verständnis der Begriffe “Denken” und “Intelligenz” haben, diese jedoch nicht exakt definieren, d.h. messbar machen können. Turing’s Ausweg bestand darin, sich ein Spiel zu überlegen, das nach unserer Intuition auf jeden Fall Intelligenz erfordert. Turing reduzierte seine Frage dann darauf, ob eine Maschine in der Lage ist, dieses Spiel so gut zu spielen wie ein Mensch. Auch heute sind Computer noch weit davon entfernt, in diesem Turing Test nur annähernd an die Leistungsfähigkeit des Menschen heranzukommen. Nach unserer Intuition setzt Intelligenz die Fähigkeit zu Denken voraus. Denken wiederum besteht im Wesentlichen aus einer Reihe von logischen Schlussfolgerungen, d.h. der Fähigkeit aus bekannten Fakten neues Wissen zu erschließen. Hiermit haben sich bereits die großen Griechischen Philosophen beschäftigt. Folgendes Beispiel geht auf Aristoteles zurück: Bekanntes Wissen • Jeder Mensch ist sterblich. • Sokrates ist ein Mensch. Erschlossenes Wissen • Sokrates ist sterblich. In der Tat ist auch eine Maschine in der Lage, solche Schlussfolgerungen zu ziehen. Sie versteht dabei allerdings nicht, was ein Mensch ist, oder was es bedeutet sterblich zu sein. Alles was eine Maschine kann ist Zeichenketten (Daten) nach bestimmten Regeln (Programmen) umzuformen. Damit logische Schlussfolgerungen maschinell durchgeführt werden können, sind somit zwei Schritte erforderlich: • Wissen muss durch Zeichenketten dargestellt werden (Wissensrepräsentation). • Es müssen Algorithmen zur Umformung dieser Zeichenketten gefunden werden, die logischen Schlussfolgerungen entsprechen (Wissensverarbeitung). Logik und Künstliche Intelligenz V. Stahl Seite 6 Die Schritte sind nicht voneinander unabhängig. Das Problem der Wissensrepräsentation könnte trivialerweise dadurch gelöst werden, dass man natürlichsprachlichen Text verwendet. Algorithmen, die Wissen in dieser Form verarbeiten können, sind allerdings äußerst komplex. Die derzeit erfolgreichsten Systeme verwenden die Sprache der Logik erster Ordnung zur Wissensrepräsentation und die Resolutionsmethode zur Wissensverarbeitung. In der Logik erster Ordnung würde das Beispiel von Aristoteles wie folgt aussehen: Bekanntes Wissen • ∀x Mensch(x) → Sterblich(x) . • Mensch(Sokrates). Erschlossenes Wissen • Sterblich(Sokrates). Ähnliche Mechanismen findet man auch in semantischen Netzen und objektorientierten Programmiersprachen. Hier würde man sagen, dass Menschen eine Spezialisierung (oder abgeleitete Klasse) der sterblichen Objekte sind, und dass Sokrates eine Instanz der Klasse Mensch ist. Um die Wissensverarbeitung zu vereinfachen ist es wichtig, bei der Wissensrepräsentation mit möglichst wenigen, allgemeinen Konzepten auszukommen. Eines dieser Konzepte sind Eigenschaften (Relationen). Im Beispiel sind Mensch und Sterblich Eigenschaften, die ein Objekt haben kann oder nicht. Sokrates ist ein konkretes Objekt (Konstante), auf welches diese Eigenschaften zutreffen. Um über Objekte im Allgemeinen zu sprechen, werden Variablen (im Beispiel x) verwendet. Logische Implikationen werden mit → bezeichnet. Das Symbol ∀ (Allquantor) bedeutet “für alle”. Der erste Satz besagt somit, dass für jedes Objekt x gilt, wenn x ein Mensch ist, dann ist x sterblich. Relationen können auch Eigenschaften beschreiben, die mehrere Objekte miteinander in Beziehung setzen, z.B. ÄlterAls(Sokrates, Aristoteles). Neben Relationen spielen Funktionen eine wichtige Rolle, um eindeutig Objekte identifizieren zu können, ohne ihnen einen konkreten Namen geben zu müssen, z.B. VaterVon(Sokrates). Relationen und Funktionen sowie deren Eigenschaften lassen sich sehr elegant durch Mengen beschreiben. Der Begriff der Menge ist übrigens für mathematische Verhältnisse relativ neu: Er wurde Ende des 19. Jahrhunderts V. Stahl Logik und Künstliche Intelligenz Seite 7 von Cantor eingeführt und gilt mittlerweile als Fundament für die gesamte Mathematik. In der Vorlesung werden wir uns zunächst ausgiebig mit Mengen, Relationen und Funktionen beschäftigen. Wir werden dabei die Sprache der Logik erster Ordnung bereits beispielhaft verwenden um die Notation zu vereinfachen. Als Vorläufer zur Logik erster Ordnung wird die Aussagenlogik behandelt, an der elementare Begriffe wie z.B. “logische Schlussfolgerungen” erklärt werden können. Anschließend wird die wesentlich ausdrucksstärkere Sprache der Logik erster Ordnung formal exakt definiert. Besonders wichtig ist hierbei die Unterscheidung zwischen Syntax (Zeichenketten und deren maschinelle Verarbeitung) und Semantik (Bedeutung der Zeichenketten). Maschinen arbeiten ausschließlich auf der syntaktischen Ebene, während sich der Mensch ausschließlich für die Bedeutung der Dinge interessiert, über die er nachdenkt. Gerade an dieser Grenze zwischen Syntax und Semantik tauchen viele Probleme auf, von denen bewiesen wurde, dass sie unlösbar sind. Zum Schluss wird die Resolutionsmethode vorgestellt. Dies ist ein Algorithmus, mit dem Zeichenketten der Logik erster Ordnung so verarbeitet werden können, dass das Resultat einer logischen Schlussfolgerung auf semantischer Ebene entspricht. In gewissen Grenzen ist es also tatsächlich möglich, denkende Maschinen zu konstruieren. V. Stahl 2 Logik und Künstliche Intelligenz Seite 8 Mengen Spätere Generationen werden die Mengenlehre als Krankheit betrachten, von der der Mensch genesen ist. Henri Poincaré . . . all mathematical theories may be regarded as extensions of the general theory of sets . . . . On these foundations I state that I can build up the whole of the mathematics of the present day. Nicolas Bourbaki, 1949 2.1 Der Begriff der Menge Der Begriff der Menge bildet den Ausgangspunkt für alle mathematischen Überlegungen. Sämtliche anderen mathematischen Objekte wie Relationen, Funktionen und sogar Zahlen kann man als spezielle Mengen definieren. Dieser Zugang zur Mathematik geht auf Cantor und Frege zurück und entstammt dem Wunsch zu verstehen, was der eigentliche “Kern” der Mathematik ist. Abgesehen davon, dass dadurch viele Dinge einfacher und klarer werden, kommt diese Vorgehensweise insbesondere auch dem Informatiker entgegen: Will man mathematische Objekte im Rechner verarbeiten, so genügt es im Prinzip eine geeignete Datenstruktur für Mengen zu implementieren. Es ist sehr wichtig, keine unbewiesenen Annahmen zu treffen, aber noch wichtiger ist es, keine Worte zu benutzen, hinter denen sich kein klarer Sinn verbirgt. W. K. Clifford Nun kann zwar die ganze Mathematik auf dem Begriff der Menge aufgebaut werden, das bedeutet aber, dass man bei der Definition des Begriffs Menge auf keine anderen Objekte der Mathematik zugreifen kann. Dies führte zu Anfang des 20. Jahrhunderts zu einer großen Verwirrung, was genau unter einer Menge zu verstehen ist. Die bis dahin allgemein akzeptierte intuitive Vorstellung einer Menge führt nämlich — wie 1901 von Russel gezeigt — zu Widersprüchen. Folgende Definition stammt von Cantor aus dem Jahr 1895: Definition 2.1 (Menge,Element) Eine Menge ist eine Zusammenfassung M von wohlunterschiedenen Objekten unserer Anschauung oder unseres Denkens, welche Elemente von M genannt werden, zu einem Ganzen. V. Stahl Logik und Künstliche Intelligenz Seite 9 Notation 2.2 (∈, 6∈) Um auszudrücken, dass ein Objekt x Element einer Menge M ist, schreibt man x ∈ M, ist x kein Element von M schreibt man x 6∈ M. Notation 2.3 Mengen kann man auf verschiedene Weisen schreiben. Die einfachste Möglichkeit ist die aufzählende Schreibweise in der man alle ihre Elemente hinschreibt. Hierzu verwendet man geschweifte Klammern, die Elemente werden durch Kommas getrennt. Beispiel 2.4 Die Menge M = {2, 3, 5} hat die Elemente 2, 3 und 5 und sonst keine weiteren Elemente. Es gilt also z.B. 5 ∈ M aber 7 6∈ M. Eine Menge ist einzig und allein dadurch definiert welche Objekte sie als Element enthält und welche nicht. Wenn zwei Mengen A und B genau die selben Elemente enthalten sind sie folglich gleich. Man schreibt dann A = B, andernfalls A 6= B. Notation 2.5 Die Reihenfolge, in der die Elemente einer Menge hingeschrieben werden, spielt keine Rolle. Eine Menge M kann ein Objekt x entweder als Element enthalten oder nicht, es gilt also entweder x ∈ M oder x 6∈ M. Insbesondere kann ein Objekt nicht “mehrmals” in einer Menge enthalten sein. Welche Menge ist also gemeint wenn man z.B. {3, 2, 2, 5, 5, 3, 5} schreibt? Eine Menge ist einzig dadurch definiert, welche Elemente sie enthält, in diesem Beispiel sind das die Zahlen 2,3 und 5 und sonst nichts. Es handelt sich also um eine Menge mit genau 3 Elementen, genauer gesagt um die Menge {2, 3, 5}, d.h. {2, 2, 3, 5, 5, 5} = {2, 3, 5}. Aus Gründen der einfacheren Lesbarkeit wird man natürlich wenn man eine Menge hinschreibt in aller Regel jedes Element nur einmal angeben. Eine spezielle Menge ist die Menge, die gar keine Elemente enthält. Diese Menge wird auch leere Menge genannt. Notation 2.6 Die leere Menge wird durch {} oder auch ∅ bezeichnet. V. Stahl Logik und Künstliche Intelligenz Seite 10 Für jedes beliebige Objekt x gilt also x 6∈ ∅. Mengen müssen ihre Elemente nicht notwendigerweise nur aus Zahlen rekrutieren. Laut Cantor können Mengen aus beliebigen Objekten unserer Anschauung oder unseres Denkens bestehen. Man kann also z.B. auch die Menge aller Häuser von Heilbronn definieren und wenn man Lust hat, zu dieser Menge noch die Zahl 23 dazunehmen. Es ist insbesondere also auch gar nicht nötig, dass die Elemente einer Menge in irgend einer Weise den selben Typ haben. In der Informatik findet man Mengen in Form von Datentypen. In Java oder C++ ist z.B. int = {−231 , . . . , 231 − 1} float = Menge der 32 Bit Gleitkomma Zahlen usw. Dadurch dass wir uns mit Mengen beschäftigen, werden Mengen ihrerseits wiederum zu Objekten unserer Anschauung oder unseres Denkens. Man kann daher auch Mengen von Mengen bilden, d.h. Mengen, deren Elemente ihrerseits wiederum Mengen sind. Beispiel 2.7 Die Menge {2, 3}, {5} hat zwei Elemente, nämlich die Menge {2, 3} und die Menge {5}, d.h. {2, 3} ∈ {2, 3}, {5} {5} ∈ {2, 3}, {5} Es ist wichtig den Unterschied zwischen der Zahl 5 und der Menge {5} festzuhalten. Insbesondere gilt im vorigen Beispiel 5 6∈ {2, 3}, {5} . Beispiel 2.8 Um die Verwirrung komplett zu machen wir betrachten nun im Gegensatz zum vorigen Beispiel die Menge {2, 3}, 5 . Diese Menge hat ebenfalls zwei Elemente, nämlich die Menge {2, 3} und die Zahl 5, d.h. {2, 3} ∈ {2, 3}, 5 5 ∈ {2, 3}, 5 aber {5} 6∈ {2, 3}, 5 V. Stahl Logik und Künstliche Intelligenz Seite 11 Man kann diesen Prozeß natürlich beliebig weitertreiben und z.B. Menge von Mengen von Mengen definieren und damit recht komplizierte Dinge aufbauen. Mengen mit endlich vielen Elementen bezeichnet man als endliche Mengen, Mengen mit unendlich vielen Elementen als unendliche Mengen. Bei unendlichen Mengen kann man natürlich nicht alle Elemente hinschreiben. Eine Möglichkeit besteht darin, einfach ein paar Elemente der Menge aufzuzählen und anzunehmen, dass der Leser sich schon denken kann welche Menge gemeint ist. Beispiel 2.9 {1, 2, 3, . . .} {0, 1, 2, 3, . . .} {. . . , −2, −1, 0, 1, 2, . . .} {2, 3, 5, 7, 11, . . .} Menge Menge Menge Menge der der der der natürlichen Zahlen, N natürlichen Zahlen mit Null, N0 ganzen Zahlen, Z Primzahlen Die Begriffe “endlich” und “unendlich” haben wir nicht exakt definiert und müssen uns daher zunächst auf unsere intuitive Vorstellung verlassen. Tatsächlich ist diese Angelegenheit manchmal recht verwirrend: So gibt es z.B. unendlich viele natürliche Zahlen, aber jede natürliche Zahl hat nur endlich viele Dezimalstellen. Die exakte Definition einer unendlichen Menge kommt in Anhang A. 2.2 Beziehungen zwischen Mengen Im Folgenden seien A und B Mengen. Definition 2.10 (Teilmenge ⊆) A ist eine Teilmenge von B, geschrieben A ⊆ B, wenn jedes Element von A auch Element von B ist. B A AB Abbildung 2.1: Teilmenge V. Stahl Logik und Künstliche Intelligenz Seite 12 Beispiel 2.11 {2, 3} N ∅ Z ⊆ ⊆ ⊆ ⊆ {2, 3, 5} Z N Z Beispiel 2.12 Dass jeder Mensch sterblich ist, lässt sich unter Verwendung von Mengen auch so ausdrücken: Die Menge aller Menschen ist eine Teilmenge der Menge aller sterblichen Dinge. Da Sokrates Element der Menge aller Menschen ist, ist Sokrates somit auch Element der Menge aller sterblichen Dinge, siehe Bild 2.2. Sterblich Mensch Sokrates Abbildung 2.2: Jeder Mensch ist Sterblich und Sokrates ist ein Mensch. In der Mathematik und allgemein bei logischen Überlegungen trifft man immer wieder auf die selben Formulierungen: wenn . . . dann . . . . . . genau dann wenn . . . . . . und . . . . . . oder . . . nicht . . . für alle . . . gilt . . . es gibt ein . . . so dass . . . . Um Zweideutigkeiten zu vermeiden, sollte man bei mathematischen Aussagen möglichst auf diese Formulierungen zurückgreifen. Die Teilmengendefinition lässt sich damit wie folgt schreiben: V. Stahl Logik und Künstliche Intelligenz Seite 13 A ist Teilmenge von B genau dann wenn für alle Objekte x gilt wenn x ∈ A dann x ∈ B. Hat man eine Aussage auf diese Form gebracht, kann man viel Schreibaufwand sparen, indem man Symbole für die häufig verwendeten Formulierungen verwendet: Symbol ... → ... ... ↔ ... ...∧... ...∨... ¬... ∀... ∃... Bedeutung wenn . . . dann . . . . . . genau dann wenn . . . . . . und . . . . . . oder . . . nicht . . . für alle . . . gilt . . . es gibt ein . . . so dass . . . Formulieren wir nun die Definition der Teilmengenbeziehung mit diesen Begriffen. A ist Teilmenge von B genau dann wenn für jedes Objekt x gilt: wenn x ∈ A ist, dann ist x ∈ B. Unter Verwendung der neuen Symbole kann man das sehr kompakt schreiben: A ⊆ B ↔ ∀x (x ∈ A → x ∈ B). Die Symbole ∀ und ∃ heißen Allquantor und Existenzquantor. In der Formel treten 3 Variablen auf: A, B und x, wobei sich der Allquantor auf x bezieht. Variablen, die einem Quantor zugeordnet sind, heißen gebundene Variablen, während A und B freie Variablen sind. Auf die Symbole →, ↔, ∧, ∨, ¬ werden wir in Kapitel 6 über Aussagenlogik genauer eingehen. Vorweg sei erwähnt, dass man mit diesen Symbolen Aussagen miteinander verknüpft. So werden z.B. die Aussagen x ∈ A und x ∈ B durch → verknüpft zu der Aussage x ∈ A → x ∈ B. Der Witz dabei ist, dass man aus den Wahrheitswerten der Teilaussagen sehr einfach auf den Wahrheitswert der Gesamtaussage schließen kann und zwar unter Logik und Künstliche Intelligenz V. Stahl X wahr wahr falsch falsch Y wahr falsch wahr falsch X ∧Y wahr falsch falsch falsch X ∨Y wahr wahr wahr falsch X→Y wahr falsch wahr wahr X ↔Y wahr falsch falsch wahr Seite 14 X wahr falsch ¬X falsch wahr Tabelle 2.1: Wahrheitstabllen der aussagenlogischen Symbole. Verwendung von Wahrheitstabellen. Weiß man z.B. dass x ∈ A wahr ist, und x ∈ B falsch ist, dann weiß man, dass die Aussage x ∈ A → x ∈ B falsch ist. In Tabelle 2.1 sind die Wahrheitstabellen der aussagenlogischen Symbole zusammengefasst. Große Verständnisprobleme bereiten oft die unsymmetrischen Wahrheitswerte von →. Wie man der Tabelle entnimmt, ist die Aussagen X → Y immer wahr, wenn X falsch ist — ganz egal ob Y dann wahr oder falsch ist. Die Aussage “wenn Bäume rot sind, dann können Elefanten fliegen” ist somit rein logisch gesehen wahr. Beispiel 2.13 √ √ • Die Aussage 2 ∈ Z → 2 ∈ N ist wahr. √ √ • Die Aussage 2 ∈ Z → 2 ∈ R ist wahr. √ √ • Die Aussage 2 ∈ R → 2 ∈ Z ist falsch. Statt A ⊆ B schreibt man auch B ⊇ A und sagt B ist eine Obermenge von A. In Kurzschreibweise liest sich diese Definition wie folgt: B ⊇ A ↔ ∀x (x ∈ A → x ∈ B). Ausdrücke dieser Form heißen Formeln der Prädikatenlogik. Abgesehen davon, dass man durch solche Formeln Aussagen sehr kompakt und unmissverständlich darstellen kann, haben sie noch einen weiteren Vorteil: Es gibt ein paar einfache Rechengesetze, nach denen diese Formeln umgeschrieben werden können, siehe Kapitel 7.3. Statt x∈A→x∈B kann man z.B. gleichbedeutend schreiben x 6∈ B → x 6∈ A oder x 6∈ A ∨ x ∈ B usw. Dass diese Ausdrücke tatsächlich äquivalent sind, kann man durch folgende Wahrheitstabelle verifizieren: Logik und Künstliche Intelligenz V. Stahl x∈A wahr wahr falsch falsch x∈B wahr falsch wahr falsch x∈A→x∈B wahr falsch wahr wahr x 6∈ B → x 6∈ A wahr falsch wahr wahr Seite 15 x 6∈ A ∨ x ∈ B wahr falsch wahr wahr Da es sich hierbei um Symbolmanipulation nach rein syntaktischen Regeln handelt, kann auch der Rechner solche Umformungen durchführen. Er muss hierbei nicht “verstehen” was die Formeln bedeutet, es genügt vollkommen wenn er die Rechengesetze kennt. Damit sind Maschinen in gewissen Grenzen in der Lage logische Schlussfolgerungen durchzuführen und Aussagen automatisch zu beweisen oder zu widerlegen. Mehr dazu in Kapitel ??. Definition 2.14 (Gleichheit von Mengen) A und B sind gleich, geschrieben A = B, genau dann wenn A ⊆ B und B ⊆ A. Oder kompakt: A = B ↔ (A ⊆ B ∧ B ⊆ A). Äquivalent kann man Mengengleichheit auch so definieren: A = B ↔ ∀x (x ∈ A ↔ x ∈ B). A und B sind also gleich, genau dann wenn sie die selben Elemente haben. Dies wird auch Extensionality Principle genannt. Nach unserer intuitiven Vorstellung einer Menge scheint das Extensionality Principle absolut selbstverständlich. Die Cantorschen Mengendefinition allein erzwingt jedoch nicht, dass es z.B. nur eine einzige Zusammenfassung der Zahlen 1, 2, 3 gibt. Man könnte sie z.B. einmal durch eine Plastiktüte zusammenfassen und ein anderes Mal in Geschenkpapier mit roter Schleife einwickeln. Dadurch würde man verschiedene Objekte erhalten, die aber die selben Elemente haben. Damit Mengen also tatsächlich dem entsprechen, was wir uns intuitiv unter ihnen vorstellen, muss das Extensionality Principle explizit gefordert werden. Man hätte es auch so formulieren können, dass es zu gegebenen Objekten nur eine einzige Menge gibt, die genau diese Objekte enthält. Aus dem Extensionality Principle folgt somit unter anderem, dass die Elemente einer Menge ungeordnet sind. Andernfalls ließen sich z.B. die Zahlen 1, 2, 3 zu unterschiedlichen Mengen zusammenfassen, die sich nur in der Reihenfolge der Elemente unterscheiden. Logik und Künstliche Intelligenz V. Stahl Seite 16 Definition 2.15 (Echte Teilmengen ⊂) A ist eine echte Teilmenge von B, geschrieben A ⊂ B, genau dann wenn A ⊆ B und A 6= B. Statt A ⊂ B schreibt man auch B ⊃ A und sagt B ist eine echte Obermenge von A. Die Formeln für A ⊂ B ist A ⊆ B ∧ A 6= B, die Formel für A ⊃ B ist A ⊇ B ∧ A 6= B. Alternativ kann man A ⊂ B auch so definieren, dass A ⊆ B ist und ausserdem B mindestens ein Element haben muss, das nicht in A ist. Die Formel hierfür ist A ⊆ B ∧ ∃x (x ∈ B ∧ x 6∈ A). Dass diese beiden Definitionen der echten Teilmenge äquivalent sind, kann von einer Maschine in wenigen Millisekunden bewiesen werden. Definition 2.16 (Disjunkte Mengen) A und B heißen disjunkt wenn sie keine gemeinsamen Elemente haben. A A; B B B A niht disjunkt A; B disjunkt Abbildung 2.3: Disjunkte Mengen Um zu einer Formel zu kommen, schreiben wir die Definition von disjunkten Mengen etwas um: A und B heißen disjunkt, wenn es kein Objekt x gibt, das (gleichzeitig) in A und in B ist. Damit erhält man ¬∃x (x ∈ A ∧ x ∈ B). Allgemein darf man in einer Formel ¬∃x . . . Logik und Künstliche Intelligenz V. Stahl Seite 17 ersetzen durch ∀x¬ . . . . Damit erhält man die alternative Definition ∀x¬(x ∈ A ∧ x ∈ B). Weiterhin darf man ¬(. . . ∧ . . .) ersetzen durch (¬ . . .) ∨ (¬ . . .). Damit erhält man ∀x (x 6∈ A ∨ x 6∈ B). Zurückübersetzt in natürliche Sprache besagt diese Formel, dass A und B disjunkt sind genau dann wenn jedes Objekt x entweder nicht in A oder nicht in B ist — was natürlich richtig ist. 2.3 Comprehension Principle Meistens beschäftigt man sich mit Mengen, deren Elemente durch eine Eigenschaft E beschrieben sind, z.B. die Menge der Objekte, die die Eigenschaft erfüllen, eine gerade natürliche Zahl zu sein. Notation 2.17 Die Menge, die aus genau den Objekten besteht, die eine Eigenschaft E erfüllen wird durch {x | x erfüllt E} bezeichnet. Man sagt dazu auch “die Menge aller x, die E erfüllen”. Beispiel 2.18 • {x | x ist Primzahl } Menge der Primzahlen. • {x | x ∈ N und x ist durch 3 teilbar } Menge der durch 3 teilbaren, natürlichen Zahlen. • {p/q | p ∈ Z, q ∈ N} Menge der rationalen Zahlen Q. V. Stahl Logik und Künstliche Intelligenz Seite 18 Im letzten Beispiel hätte man eigentlich schreiben müssen {x | es gibt ein p ∈ Z und ein q ∈ N so dass x = p/q}, aber solang klar ist was gemeint ist, sind Vereinfachungen in der Notation durchaus erlaubt. Dass es zu jeder Eigenschaft E eine Menge gibt, die aus genau den Objekten besteht, die die E erfüllen, heißt Comprehension Principle. Es bedeutet, dass Mengen und Eigenschaften im Prinzip das Selbe sind: Eine Eigenschaft ist definiert durch die Menge aller Objekte, die die Eigenschaft erfüllen, und diese Menge ist wiederum durch die Eigenschaft definiert. Die Eigenschaft “rot” kann man z.B. definieren als die Menge aller roten Objekte oder die Zahl drei als die Menge aller dreielementigen Objekte. Das Comprehension Principle ist ein sehr mächtiges Instrument um Mengen zu definieren. Da es kein Objekt x gibt, für das x 6= x gilt, lässt sich auch die leere Menge mit dem Comprehension Principle definieren: ∅ = {x | x 6= x}. 2.4 Russelsche Antinomie Seit man begonnen hat, die einfachsten Behauptungen zu beweisen, erweisen sich viele von ihnen als falsch. Bertrand Russel Das Comprehension Principle scheint offensichtlich richtig, es erwies sich jedoch zu Anfang des 20. JH als verheerender Irrtum und stellte die gesamte Welt der Mathematik in Frage. Der Irrtum beschränkt sich nicht nur auf die Mengenlehre oder die Mathematik sondern manifestiert sich in allen Bereichen des logischen Denkens. Insbesondere ist er auch verantwortlich für die vielen unentscheidbaren Problemen der Informatik wie z.B. dem Halteproblem. Prominentestes Opfer dieses Irrtums war Frege, der gerade ein Werk über die Grundlagen der Mathematik basierend auf Mengen und Logik vollendet hat, als er den berühmten Brief von Russel bekam . . . . Hierin wird eine Eigenschaft E definiert, zu der es keine Menge {x | x erfüllt E} gibt. Das Comprehension Principle erlaubt es, die Menge M aller Mengen zu definieren, d.h. M = {x | x ist eine Menge}. V. Stahl Logik und Künstliche Intelligenz Seite 19 Diese Menge enthält alle Objekte, die die Eigenschaft erfüllen eine Menge zu sein, also z.B. {2, 3, 5} ∈ M {2, 3}, 5 ∈ M ∅ ∈ M Interessanterweise ist M selbst aber auch ein Objekt, das die Eigenschaft erfüllt eine Menge zu sein, und somit gilt M ∈ M. Es ist zunächst kontraintuitiv, dass eine Menge sich selbst als Element enthalten kann. Nach dem Comprehension Principle ist das aber völlig legitim. M ist bei weitem nicht die einzige Menge, die sich selbst enthält. Auch die Menge G = {x | x ist kein Gänseblümchen } enthält sich selbst: G ist eine Menge und somit kein Gänseblümchen, daher ist G ∈ G. Da jede Menge die Eigenschaft hat, kein Gänseblümchen zu sein, gilt M ⊆ G. Andererseits ist M aber auch kein Gänseblümchen, somit gilt M ∈ G. Weiterhin ist G eine Menge und daher auch G ∈ M. Es gibt also Mengen, die sich nicht nur selbst enthalten sondern auch gegenseitig und außerdem kann eine noch Teilmenge der anderen sein. Das alles entspricht zwar nicht gerade unserer intuitiven Vorstellung von Mengen, ist aber eine zwingende Folge des Comprehension Principles. Ein erstes Beispiel einer Eigenschaft, aus der sich keine Menge konstruieren lässt, wurde von Russel im Jahr 1901 gefunden und ging als Russelsche Antinomie in die Geschichte ein. Wie wir gesehen haben, gibt es (zugegebenermaßen recht seltsame) Mengen, die sich selbst enthalten. Bezeichnen wir die Menge aller Mengen, die sich selbst enthalten mit S, d.h. S = {x | x ist eine Menge und x ∈ x}. Logik und Künstliche Intelligenz V. Stahl Seite 20 Da M eine Menge ist, die sich selbst enthält (d.h. M ∈ M), gilt M ∈ S. Außerdem ist jedes Element von S eine Menge und somit S ⊆ M. Schauen wir uns nun die anderen (normalen) Mengen an, d.h. Mengen wie {1, 2, 3}, Q, ∅, usw., die sich nicht selbst enthalten. Es geht also um die Eigenschaft, eine Menge zu sein, die sich nicht selbst als Element enthält, d.h. eine harmlose Eigenschaft, die eigentlich von fast allem erfüllt wird außer so exotischen Dingen wie z.B. der Menge M aller Mengen. Sei also R die Menge aller Mengen, die sich nicht selbst als Element enthalten, d.h. R = {x | x ist eine Menge und x 6∈ x}. Es gilt somit z.B. {1, 2, 3} ∈ R, Q ∈ R, ∅ ∈ R, M 6∈ R, G 6∈ R. Wir zeigen nun, dass R keine Menge ist, d.h. R 6∈ M. Offensichtlich ist jede Menge entweder in R oder in S. Wenn R eine Menge wäre, müsste gelten entweder R ∈ R oder R ∈ S. Beide Möglichkeiten führen jedoch zu einem Widerspruch: • Angenommen R ∈ R, dann wäre laut Definition R eine Menge, die sich nicht selbst als Element hat, d.h. R 6∈ R, was ein Widerspruch zur Annahme ist. • Angenommen R ∈ S. Dann wäre laut Definition R eine Menge, die sich selbst enthält, d.h. R ∈ R. Da aber R und S disjunkt sind, folgt R 6∈ S, was ein Widerspruch zur Annahme ist. Es gilt also weder R ∈ R noch R ∈ S. Da aber jede Menge entweder in R oder in S ist, ist R keine Menge. Es gibt also tatsächlich Eigenschaften, aus denen keine Menge konstruiert werden kann! Diese bittere Erkenntnis war ein Schock für die gesamte mathematische Welt zu Anfang des 20. Jahrhunderts. Viele Theorien, die bis dahin auf einer intuitiven Vorstellungen des Mengenbegriffs basierten, mussten neu durchdacht und formuliert werden. Berühmte Mathematiker, wie z.B. Ernst Zermelo, Abraham Fraenkel, John von Neumann, Paul Bernays und Kurt Gödel (siehe Anhang C und D) haben Logik und Künstliche Intelligenz V. Stahl Seite 21 sich daraufhin mit der Entwicklung einer widerspruchsfreien Mengentheorie beschäftigt und darauf die gesamte Mathematik aufgebaut. Eine ähnliche logische Überlegung, wie sie hinter der Russelschen Antinomie steckt, führte 1931 zu den Gödelschen Unvollständigkeitssätzen. Diese besagen (anschaulich ausgedrückt), dass man die Korrektheit der Mathematik nicht mit den Methoden der Mathematik beweisen kann. Genau dies war jedoch das Ziel des Hilbertschen Programms, das damit gescheitert war. Die Stimmung der Zeit drückt folgendes Zitat aus: Niemand soll uns aus dem Paradies vertreiben, das Cantor geschaffen hat. David Hilbert Aber das nur am Rande — die Eigenschaften mit denen wir uns beschäftigen werden, sind immer so, dass eine entsprechende Menge dazu existiert. Anders ausgedrückt: Das Comprehension Principle gilt nach wie vor in entsprechend eingeschränkter Form, siehe Anhang C. M G : Menge aller Mengen M S : \seltsame" Mengen, die sih selbst enthalten f1; 2; 3g ; Q R: \normale" Mengen, die sih niht selbst enthalten Abbildung 2.4: Russelsche Antinomie 2.5 Operationen auf Mengen. Definition 2.19 (Mächtigkeit endlicher Mengen) Ist A eine endliche Menge, so ist die Mächtigkeit von A, geschrieben |A|, definiert als die Anzahl der Elemente von A. Beispiel 2.20 |{2, 3, 5}| = 3 |∅| = 0 V. Stahl Logik und Künstliche Intelligenz Seite 22 Genaugenommen ist diese Definition der Mächtigkeit einer endlichen Menge nicht akzeptabel weil vorausgesetzt wird, was die “Anzahl” der Elemente einer Menge ist. Bisher haben wir ja noch nicht einmal definiert was Zahlen sind! Um es richtig zu machen, braucht man noch eine ganze Menge Theorie – die Lösung kommt in Anhang A. Definition 2.21 (Vereinigungsmenge) Die Vereinigungsmenge von A und B ist definiert als A ∪ B = {x | x ∈ A ∨ x ∈ B} Die Definition der Vereinigungsmenge zweier Mengen A und B beruht somit auf dem Comprehension Principle. Die zugrundeliegende Eigenschaft ist x ∈ A ∨ x ∈ B. Beispiel 2.22 {2, 3, 5} ∪ {3, 6, 9} = {2, 3, 5, 6, 9} N∪Z = Z Schauen wir uns den Ausdruck {x | x ∈ A ∨ x ∈ B} genauer an. Es sind hier die Variablen A, B und x im Spiel. Man kann für A und B Mengen einsetzen und erhält dadurch wiederum eine Menge, nämlich die Vereinigungsmenge von A und B. Somit sind A und B freie Variablen. Wenn man für x ebenfalls eine Menge einsetzen würde, würde ein sinnloser Ausdruck herauskommen. Es handelt sich daher bei x um eine gebundene Variable. Definition 2.23 (Schnittmenge) Die Schnittmenge von A und B ist definiert als A ∩ B = {x | x ∈ A ∧ x ∈ B} Die Definition der Schnittmenge zweier Mengen A und B beruht somit auf dem Comprehension Principle. Die zugrundeliegende Eigenschaft ist x ∈ A ∧ x ∈ B. Offensichtlich sind A und B disjunkt genau dann wenn die Schnittmenge von A und B leer ist, d.h. A ∩ B = ∅. Logik und Künstliche Intelligenz V. Stahl Seite 23 Beispiel 2.24 {−2, 5, 9} ∩ N = {5, 9} {x | x ∈ Q ∧ x > 5} ∩ {2, 3} = ∅ Definition 2.25 (Mengendifferenz) Die Mengendifferenz von A und B ist definiert als A \ B = {x | x ∈ A ∧ x 6∈ B} Auch die Definition der Mengendifferenz zweier Mengen A und B beruht auf dem Comprehension Principle. Die zugrundeliegende Eigenschaft ist x ∈ A ∧ x 6∈ B. Beispiel 2.26 {2, 3, 5} \ {2, 6} = {3, 5} Z \ N = {0, −1, −2, . . .} B A A[B B A A\B B A AnB Abbildung 2.5: Vereinigungsmenge, Schnittmenge, Mengendifferenz Definition 2.27 (Potenzmenge) Die Potenzmenge von A ist definiert als P(A) = {B | B ⊆ A}. Die Potenzmenge einer Menge A ist also die Menge aller Teilmengen von A. Auch hier findet man das Comprehension Principle wieder. Die zugrundeliegende Eigenschaft ist Teilmenge von A zu sein. Man beachte, dass die leere Menge ∅ immer Element der Potenzmenge von A ist, ganz egal was A ist. Logik und Künstliche Intelligenz V. Stahl Seite 24 Beispiel 2.28 P({1, 2, 3}) = ∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3} P(∅) = ∅ . Manchmal wird statt P(A) auch 2A geschrieben. Dies ist dadurch motiviert, dass für endliche Mengen A gilt |P(A)| = 2|A| . Dieser Sachverhalt lässt sich durch folgendes Diagramm veranschaulichen: P() | A −−−→ |y P(A) | | y |A| −−− → |P(A)| = 2|A| x 2 Die Potenzmengenoperation auf Mengen entspricht somit der 2x Operation auf ihren Kardinalitäten. 2.6 Paare Da das Rechnen mit “reinen” Mengen schnell langweilig wird, sollten wir uns zügig daran machen, neue Dinge mit Mengen zu konstruieren. In der Sprache des Informatikers sind Mengen Container für irgend welche Objekte. Eine charakteristische Eigenschaft ist, dass die Elemente einer Menge ungeordnet sind. Es macht also keinen Sinn vom “ersten” oder “zweiten” Element der Menge zu sprechen. Ausserdem kann ein Objekt nicht mehrmals in einer Menge drin sein — es gibt nur die Optionen in der Menge zu sein oder nicht in der Menge zu sein. Es wäre sicherlich nützlich, auch einen Container Typ zu haben, der konträre Eigenschaften mitbringt: • Die Objekte in dem Container sollen geordnet sein, d.h. es soll festgelegt sein, welches das erste, zweite, dritte, usw. Objekt in dem Container ist. • Ein und das selbe Objekt darf auch mehrmals (an unterschiedlicher Position) im Container sein. V. Stahl Logik und Künstliche Intelligenz Seite 25 Diese zweite Art von Containern heißt Tupel. Um Tupel von Mengen zu unterscheiden, werden runde Klammern statt der geschweiften Klammern verwendet. So ist z.B. (7, 7, −1) ein Tupel mit 3 Komponenten. Die erste Komponente ist 7, die zweite ist ebenfalls 7 ud die dritte ist −1. Bei Tupeln ist die Reihenfolge festgelegt, d.h. (7, 7, −1) 6= (7, −1, 7). Weiterhin kann ein Objekt mehr als einmal im Tupel vorkommen, d.h. Bei Mengen gilt hingegen (7, 7, −1) 6= (7, −1). {7, 7, −1} = {7, −1} = {7, −1, 7}. Wie versprochen kann man jedes Objekt in der Mathematik aus Mengen konstruieren — insbesondere auch Tupel. Dies scheint zunächst kontraintuitiv: • Den Mengen ist Ordnung völlig fremd, woher soll also die Ordnungsinformation in einem Tupel kommen? • Eine Menge würde aus zwei gleichen Objekten ohne zu zögern eines machen, wie lässt sich also das zweite in einem Tupel retten? Beginnen wir mit dem einfachsten Fall, einem Tupel welches nur zwei Objekte aufnehmen kann. Solche Minimaltupel werden auch Paare genannt. Zunächst wird gezeigt, wie man ein Paar unter ausschließlicher Verwendung von Mengen konstruieren kann. Dann wird gezeigt, dass ein Paar auch tatsächlich die geforderten Eigenschaften hat, nämlich • dass man aus zwei beliebigen Objekten ein Paar machen kann • und umgekehrt von jedem Paar eindeutig sagen kann, was die erste und was die zweite Komponente ist. Der Informatiker würde sagen, dass man einen Konstruktor und Zugriffsoperationen braucht. Definition 2.29 (Konstruktion eines Paars aus zwei Objekten) Das Paar bestehend aus der ersten Komponente a und der zweiten Komponente b ist die Menge (a, b) = {a}, {a, b} . V. Stahl Logik und Künstliche Intelligenz Seite 26 Beispiel 2.30 Das Paar bestehend aus der ersten Komponente 2 und der zweiten Komponente 5 ist die Menge (2, 5) = {2}, {2, 5} . Man beachte, dass {a, b} = {b, a} aber (a, b) 6= (b, a) falls a 6= b. Beispiel 2.31 Beispiel 2.32 (2, 5) = {2}, {2, 5} 6= {5}, {5, 2} = (5, 2). (2, 2) = {2}, {2, 2} = {2}, {2} = {2} . Definition 2.29 legt fest, wie man aus zwei Objekten ein Paar konstruiert. Ein Paar ist somit eine Menge mit speziellen Eigenschaften: Definition 2.33 (Paar) Eine Menge M ist ein Paar, wenn es zwei Objekte a und b gibt, so dass M = {a}, {a, b} . In der Sprache der Prädikatenlogik liest sich diese Definition wie folgt: Paar(M) ↔ ∃a ∃b M = {a}, {a, b} . Die freie Variable in dieser Formel ist M, während die Variablen a und b durch einen Existenzquantor gebunden sind. Beispiel 2.34 Die Menge {1}, {1, 2, 3} ist kein Paar. Andererseits ist die Menge {7, ∅}, {∅} V. Stahl Logik und Künstliche Intelligenz Seite 27 ein Paar, denn für a = ∅ und b = 7 gilt (∅, 7) = {∅}, {∅, 7} = {7, ∅}, {∅} . Auch die Menge {3} ist ein Paar, obwohl sie auf den ersten Blick gar nicht so aussieht: (3, 3) = {3}, {3, 3} = {3}, {3} = {3} . Hat man ein Paar {a}, {a, b} gegeben, so kann man eindeutig darauf zurückschließen, dass a die erste Komponente und b die zweite Komponente ist. Es gibt also keine Objekte a′ 6= a oder b′ 6= b mit {a}, {a, b} = {a′ }, {a′, b′ } . Theorem 2.35 Ist M ein Paar, dann gibt es genau ein Objekt a und genau ein Objekt b so dass M = {a}, {a, b} . In der Sprache der Prädikatenlogik liest sich dieses Theorem wie folgt: ∀M Paar(M) → ∃!a ∃!b M = {a}, {a, b} . Das neue Symbol ∃! bedeutet hierbei “es gibt genau ein”. Beweis. Angenommen {a}, {a, b} = {a′ }, {a′ , b′ } . Zu zeigen ist, dass dann zwingend folgt a = a′ und b = b′ . Setzt man die Definition der Mengengleichheit in die Annahme ein, erhält man {a}, {a, b} ⊆ {a′ }, {a′ , b′ } und {a}, {a, b} ⊇ {a′ }, {a′ , b′ } . Geht man auf die Definition von ⊆ zurück, erhält man aus der ersten Teilmengenbeziehung {a} ∈ {a′ }, {a′ , b′ } . Logik und Künstliche Intelligenz V. Stahl Seite 28 Hieraus folgt {a} = {a′ } oder {a} = {a′ , b′ }. In beiden Fällen folgt a = a′ . Setzt man a = a′ in die Annahme ein, erhält man {a}, {a, b} = {a}, {a, b′ } . Man betrachtet nun zwei Fälle: • Angenommen a = b. Dann ist {a}, {a, b} = {a} und somit {a} = {a}, {a, b′ } . Folglich muss b′ = a sein. Damit ist dann aber b′ = a = b und somit b′ = b. • Angenommen a 6= b. Dann muss {a, b} = {a, b′ } sein und somit Da a 6= b, folgt b = b′ . b ∈ {a, b′ } Damit lässt sich definieren, was man unter dem Begriff “erste Komponente” und “zweite Komponente” eines Paars versteht: Definition 2.36 (Erste und zweite Komponente eines Paars) Die erste bzw. zweite Komponente eines Paars M ist das eindeutig bestimmte Objekt a bzw. b so dass M = {a}, {a, b} . Die erste bzw. zweite Komponente eines Paars M wird oft mit π1 (M) bzw. π2 (M) bezeichnet. Bei π1 bzw. π2 handelt es sich um die sog. Projektionsfunktionen, die jedem Paar seine erste bzw. zweite Komponente zuordnen. Logik und Künstliche Intelligenz V. Stahl Seite 29 Der essentielle Unterschied zwischen dem Paar (a, b) und der Menge {a, b} liegt darin, dass man beim Paar (a, b) sagen kann, welches die erste Komponente und welches die zweite Komponente ist, bei der Menge {a, b} hingegen nicht. Ist nämlich {A, B} ein Paar, so gilt entweder A ⊆ B oder B ⊆ A. Im ersten Fall ist die erste Komponente das (einzige) Element von A, im zweiten Fall ist die erste Komponente das (einzige) Element von B. Es ist durchaus zulässig dass bei einem Paar beide Komponenten gleich sind. So ist z.B. (3, 3) das Paar mit erster und zweiter Komponente 3. Aufgrund von Definition 2.29 ist klar, wie man aus zwei Objekten ein Paar macht. Somit liegt auf der Hand, wie man aus drei Objekten ein Tripel konstruiert: Man macht aus den ersten zwei ein Paar und daraus und dem dritten wiederum ein Paar und nennt das Ergebnis Tripel. Beispiel 2.37 Das Tripel (4, 1, 9) ist nichts anderes als ein Paar, dessen erste Komponente (4, 1) und dessen zweite Komponente 9 ist, d.h. (4, 1, 9) = (4, 1), 9 = {(4, 1)}, {(4, 1), 9} n o = {{4}, {4, 1}} , {{4}, {4, 1}}, 9 Iteriert man diesen Prozess, erhält man n-Tupel: Definition 2.38 (n-Tupel) Ein n-Tupel (x1 , x2 , . . . , xn ) von Objekten x1 , x2 , . . . , xn ist definiert durch (x1 ) = x1 (x1 , x2 , . . . , xi+1 ) = ((x1 , x2 , . . . , xi ), xi+1 ), i = 1, . . . , n − 1. Bemerkung. Vorsicht: Nach unserer Definition ist (x1 , x2 , x3 ) = ((x1 , x2 ), x3 ) ein Tripel, aber (x1 , (x2 , x3 )) ist kein Tripel! Insbesondere ist ((x1 , x2 ), x3 ) 6= (x1 , (x2 , x3 )). Die erste Komponente vom ersten Term ist (x1 , x2 ), die erste Komponente vom zweiten Term ist x1 , was offensichtlich nicht das selbe ist. (Es ist recht instruktiv, die Definition eines Paars heranzuziehen und die beiden Ausdrücke als Mengen zu schreiben.) Logik und Künstliche Intelligenz V. Stahl 2.7 Seite 30 Kartesische Produkte Hat man zwei Mengen A und B, dann kann man Paare bilden, bei denen die erste Komponente aus A ist und die zweite aus B. Die Menge aller solcher Paare heißt das kartesische Produkt von A und B. Definition 2.39 (Kartesisches Produkt) Das kartesische Produkt von A und B ist definiert als A × B = {(a, b) | a ∈ A ∧ b ∈ B}. Beispiel 2.40 {0, 1} × {0, 1} = {(0, 0), (0, 1), (1, 0), (1, 1)} {1, 3, 5} × {2, 4} = {(1, 2), (1, 4), (3, 2), (3, 4), (5, 2), (5, 4)} Beispiel 2.41 Sei A = {rot, grün, blau} eine Menge von Farben und B = {Ford, BMW} eine Menge von Automarken. Im kartesischen Produkt trifft jede Farbe aus A auf jede Automarke aus B: A × B = {(rot, Ford), (rot, BMW), (grün, Ford), (grün, BMW) (blau, Ford), (blau, BMW)} Kartesische Produkte lassen sich als Punkte in einem Koordinatensystem darstellen, wobei die Achsen durch die beiden Mengen beschriftet sind, siehe Bild 2.6. Theorem 2.42 Für jede Menge A gilt A × ∅ = ∅ und ∅ × A = ∅. Beweis. Mit der Definition des kartesischen Produkts erhält man A × ∅ = {(a, b) | a ∈ A ∧ b ∈ ∅}. Da es kein b gibt, welches die Eigenschaft b ∈ ∅ erfüllt, existiert auch kein Paar (a, b) welches die Eigenschaft a ∈ A, b ∈ ∅ hat. Somit ist A × ∅ = ∅. Der Beweis von ∅ × A = ∅ ist analog. Logik und Künstliche Intelligenz V. Stahl BMW Seite 31 (rot; BMW) (gr un; BMW) (blau; BMW) (rot; Ford) (gr un; Ford) (blau; Ford) Ford rot gr un blau Abbildung 2.6: Darstellung eines kartesischen Produktes in einem Koordinatensystem. Die Bezeichung “Produkt” für A × B ist dadurch motiviert, dass für endliche Mengen A, B gilt |A × B| = |A| |B|. Wie im Fall der Potenzmengen lässt sich auch dieser Zusammenhang durch ein Diagramm veranschaulichen: A, B | |y |A|, |B| kartesisches Produkt −−−−−−−−−−−−−−−−→ −−−−−−−−−−−→ Multiplikation A×B | | y |A × B| = |A| |B| Das kartesische Produkt von Mengen entspricht somit der Multiplikation ihrer Kardinalitäten. Definition 2.43 (n-faches kartesisches Produkt) Für jedes n ∈ N ist das n-fache kartesische Produkt An von A definiert durch A1 = A Ai+1 = Ai × A, i = 1, . . . , n − 1. Die Elemente von An sind also genau die n-Tupel von Elementen von A. Logik und Künstliche Intelligenz V. Stahl Seite 32 Beispiel 2.44 {0, 1}3 = {0, 1}2 × {0, 1} = {(0, 0), (0, 1), (1, 0), (1, 1)} × {0, 1} = {((0, 0), 0), ((0, 0), 1), ((0, 1), 0), ((0, 1), 1), ((1, 0), 0), ((1, 0), 1), ((1, 1), 0), ((1, 1), 1)} = {(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)} 4 ∅ = ∅ N1 = N Ist A endlich, so gilt offensichtlich |An | = |A|n . Bemerkung. Die Schreibweise A × A × A verleitet zur Annahme, dass (A × A) × A und A × (A × A) das selbe ist. Dies ist jedoch nicht der Fall wie man sieht wenn man sich die Definition eines Paars vergegenwärtigt! Wie gesagt, ist bei jedem Paar eindeutig festgelegt, was die erste Komponenten ist. Ist x ∈ (A × A) × A, so ist die erste Komponenten von x ein Element von (A × A). Ist hingegen x ∈ A × (A × A), so ist die erste Komponente ein Element von A. Wir halten daher explizit fest, dass (A × B) × C 6= A × (B × C) für alle nichtleeren Mengen A, B, C. Logik und Künstliche Intelligenz V. Stahl 3 Seite 33 Relationen Beispiele von Relationen sind Ihnen sicher schon einige bekannt, z.B. die kleiner-gleich Relation auf den natürlichen oder ganzen Zahlen. In diesem Kapitel zeigen wir zunächst, dass auch Relationen nichts anderes sind als Mengen mit einer bestimmten Struktur und diskutieren dann ein Eigenschaften spezieller Relationen. 3.1 Der Begriff der Relation Definition 3.1 (Relation auf A und B) Eine Menge R heißt Relation auf A und B wenn R ⊆ A × B. Definition 3.2 (Relation) Eine Menge R heißt Relation, wenn es Mengen A und B gibt so dass R ⊆ A × B. Eine Relation ist also einfach eine Menge von Paaren. Beispiel 3.3 N ist keine Relation. Die Menge {(2, 3), (6, 11)} ist eine Relation. Andererseits ist {(2, 3), (6, 11), 27} keine Relation. Ist (a, b) ∈ R so schreibt man auch aRb und sagt a steht in Relation R zu b oder das Paar (a, b) erfüllt R. Ist A = B, d.h. R ⊆ A × A so sagt man auch R ist eine Relation auf A. V. Stahl Logik und Künstliche Intelligenz Seite 34 Beispiel 3.4 Die kleiner-gleich Relation auf den natürlichen Zahlen ist nichts anderes als die Menge aller Paare (a, b) ∈ N ×N, für die a kleiner oder gleich b ist: ≤N = { (1, 1), (1, 2), (1, 3), . . . , (2, 2), (2, 3), (2, 4), . . . , (3, 3), (3, 4), (3, 5), . . . , .. .. .. .. . . . . } Statt (3, 5) ∈ ≤N schreibt man üblicherweise auch 3 ≤N 5. Das ist zwar von der Notation her prägnanter, verschleiert aber völlig die Tatsache, das Relationen einfach Mengen von Paaren sind. Beispiel 3.5 Die kleiner Relation auf den natürlichen Zahlen <N ist definiert durch <N = {(a, b) | a ∈ N, b ∈ N, a ist kleiner b }. Offensichtlich gilt <N ⊂ ≤N : Wenn (a, b) ∈ <N ist, d.h. a <N b, dann gilt auch a ≤N b und somit (a, b) ∈ ≤N . Andererseits ist z.B. (3, 3) ∈ ≤N aber (3, 3) 6∈ <N . Beispiel 3.6 Die Gleichheitsrelation auf den natürlichen Zahlen =N ist definiert durch =N = {(a, b) | a ∈ N, b ∈ N, a ist gleich b } = {(a, a) | a ∈ N} = {(1, 1), (2, 2), (3, 3), . . .} Offensichtlich gilt <N ∪ =N = ≤N und <N ∩ =N = ∅. Beispiel 3.7 Die kleiner-gleich Relation auf den ganzen Zahlen ≤Z ist definiert durch ≤Z = {(a, b) | a ∈ Z, b ∈ Z, a ist kleiner oder gleich b }. Offensichtlich gilt ≤N ⊂ ≤Z da z.B. (−2, 4) ∈ ≤Z aber (−2, 4) 6∈ ≤N . Logik und Künstliche Intelligenz V. Stahl b 4 3 2 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . b Seite 35 4 3 2 1 a 1 2 3 4 1 2 3 4 a Abbildung 3.1: ≤N Relation (links) und <N Relation (rechts) b . . . . . . . . . . . . . . . . . . . . . ::: ::: ::: 1 2 3 ::: ::: ::: a 2 3 . . . Abbildung 3.2: ≤Z Relation Beispiel 3.8 Die Relation σ ⊆ N × N ist definiert durch σ = {(a, b) | a ∈ N, b ∈ N, b = a + 1} = {(1, 2), (2, 3), (3, 4), . . .}. Offensichtlich gilt σ ⊂ <N , da z.B. (2, 4) ∈<N aber (2, 4) 6∈ σ. Beispiel 3.9 Die Relation ≡3 ⊆ N0 × N0 ist definiert durch ≡3 = {(a, b) | a ∈ N0 , b ∈ N0 , a − b ist durch 3 teilbar } So ist z.B. (10, 4) ∈ ≡3 da 10 − 4 = 6 und 6 ist durch 3 teilbar. Wie üblich benutzt man auch die Notation 10 ≡3 4. Andererseits ist (5, 4) 6∈ ≡3 da 5 − 4 = 1 und 1 ist nicht durch 3 teilbar. Man schreibt auch 5 6≡3 4. Beispiel 3.10 dargestellt. In Bild 3.4 und 3.5 sind Beispiele von Relationen auf R Logik und Künstliche Intelligenz V. Stahl b . b . . . . . . . . . . . a . . . 7 6 5 4 3 2 1 . . . 7 6 5 4 3 2 1 1 2 3 4 5 6 7 Seite 36 1 2 3 4 5 6 7 a Abbildung 3.3: σ Relation (links) und ≡3 Relation (rechts). Beispiel 3.11 Einige Relationen sind uns schon im Kapitel 2 begegnet ohne dass wir diese explizit als Relationen bezeichnet haben. So ist z.B. ⊆ eine Relation auf der Menge aller Mengen. Zwei Mengen A und B stehen in Relation ⊆ wenn A Teilmenge von B ist. Statt A⊆B kann man somit auch schreiben (A, B) ∈ ⊆ . Ist M die Menge aller Mengen, so gilt ⊆⊆M ×M da ⊆ eine Relation auf M ist. Beispiel 3.12 Auch ∈ ist eine Relation. Sei O die Menge aller Objekte à la Cantor und M die Menge aller Mengen. Dann ist ∈ eine Relation auf O und M. Statt 5∈N kann man somit auch schreiben (5, N) ∈ ∈ . Es gilt also ∈ ⊆ O × M. Logik und Künstliche Intelligenz V. Stahl b Seite 37 b 3 2 3 2 6 5 4 3 2 1 a 2 3 2 3 3 2 1 f(a; b) j a 2 R; b 2 R; jaj = jbjg 1 2 3 a f(a; b) j a 2 R; b 2 R; b = a2 g Abbildung 3.4: Beschreibung von Geraden und Kurven durch Relationen auf R b b 3 3 3 3 a 3 3 3 f(a; b) j a 2 R; b 2 R; a 3 p a g 2 + b2 = 2 f( a; b) j 2R 2R a ;b ; p a 2 + b2 2g Abbildung 3.5: Beschreibung von Kreisen und ausgefüllte Kreisen durch Relationen auf R Logik und Künstliche Intelligenz V. Stahl Seite 38 ... σ 1 2 3 4 1 2 3 4 ... =N ... σ∪ =N 1 2 3 4 Abbildung 3.6: Darstellung von Relationen durch Graphen. Manchmal ist es hilfreich, eine Relation auf einer Menge A durch einen Graphen darzustellen. Man zeichnet hierbei die Elemente von A als Knoten (Punkte) und für alle Paare (a, b) ∈ A zeichnet man einen Pfeil von a nach b. Ein paar Beispiele sind hierzu in Bild 3.6 dargestellt. Da An = An−1 ×A ist jede Teilmenge von An eine Relation R ⊆ An−1 ×A. Solch eine Relation wird auch n-stellige Relation auf A genannt. In Erweiterung dieser Sprechweise nennt man Teilmengen von A auch einstellige Relationen auf A. 3.2 Zerlegungen Bevor’s mit Relationen weitergeht, beschäftigen wir uns mit dem Begriff der Zerlegung einer Menge. Eine Menge zu zerlegen heißt anschaulich, ihre Elemente in Gruppen einzuteilen, aus jeder Gruppe eine Menge zu bilden und die entstehenden Mengen wieder zu einer Menge zusammenzufassen. Aus einer Zerlegung einer Menge A kann man unmittelbar eine Relation auf A ableiten, indem man definiert dass genau die Elemente einer Gruppe zueinander in Relation stehen sollen. Relationen dieser Bauart haben ganz spezielle Eigenschaften und heißen Äquivalenzrelationen. Zerlegungen trifft man im Alltag immer dann an, wenn eine Menge in Gruppen aufgeteilt wird: Beispiel 3.13 Die Menge der Menschen lässt sich zerlegen in Männer und Frauen. Ist A die Menge aller Menschen, K1 die Menge der Männer und K2 die Menge der Frauen, so ist Z = {K1 , K2 } eine Zerlegung von A. Logik und Künstliche Intelligenz V. Stahl A Seite 39 A 2 1 4 3 4 1 5 2 3 5 Abbildung 3.7: Zerlegung der Menge {1, 2, 3, 4, 5}, siehe Beispiel 3.16. Beispiel 3.14 Eine andere Zerlegung der Menge aller Menschen erhält man z.B., wenn man sie in Kinder, Jugendliche und Erwachsene einteilt. Sei wieder A die Menge aller Menschen, K1 die Menge der Kinder (012 Jahre), K2 die Menge der Jugendlichen (13-17 Jahre) und K3 die Menge der Erwachsenen (älter als 18 Jahre). Dann ist Z = {K1 , K2 , K3 } ebenfalls eine Zerlegung von A. Beispiel 3.15 Die Menge Q der rationalen Zahlen kann man zerlegen in positive, negative und Null. Sei Q+ = {x | x ∈ Q ∧ x > 0}, Q− = {x | x ∈ Q ∧ x < 0}. Dann ist eine Zerlegung von Q. Beispiel 3.16 Z = {Q+ , Q− , {0}} Sei A = {1, 2, 3, 4, 5}. Dann ist Z = {1, 2}, {3}, {4, 5} eine Zerlegung von A. Eine andere Zerlegung ist z.B. Z = {1, 4}, {2, 3, 5} siehe Bild 3.7. Wie das letzte Beispiel zeigt, kann man sich eine Zerlegung einer Menge so vorstellen, dass Trennwände in die Menge eingezogen werden. Eine Zerlegung Z einer Menge A ist somit eine Menge von Teilmengen von A. Diese Teilmengen nennt man auch Klassen der Zerlegung. Wie aus den vorigen Beispielen ersichtlich, liegt jedes Element von A in genau einer Klasse. Um’s V. Stahl Logik und Künstliche Intelligenz Seite 40 nicht unnötig kompliziert zu machen, legt man dabei fest, dass keine Klasse leer sein soll. Und hier das Ganze nochmal richtig exakt: Definition 3.17 (Zerlegung) Eine Menge von Mengen Z heißt Zerlegung von A wenn • Jede Menge K ∈ Z ist eine nichtleere Teilmenge von A. ∀K K ∈ Z → (K ⊆ A ∧ K 6= ∅). • Die Elemente von Z sind paarweise disjunkt. ∀K ∀K ′ (K ∈ Z ∧ K ′ ∈ Z) → (K = K ′ ∨ K ∩ K ′ = ∅). • Jedes Element von A ist in einer Menge K ∈ Z. ∀a a ∈ A → (∃K K ∈ Z ∧ a ∈ K). Je nachdem ob Z endlich oder unendlich ist, spricht man von einer endlichen oder unendlichen Zerlegung von A. Wenn man die Definition einer Zerlegung umgangssprachlich formuliert, erhält man folgende Merkregel: Merkregel 3.18 Eine Menge Z von nichtleeren Teilmengen von A heißt Zerlegung von A wenn jedes Element von A in genau einer Menge K ∈ Z ist. Beispiel 3.19 Die feinste Zerlegung einer Menge A erhält man, wenn man jedes Element von A in eine separate Klasse sperrt. Für A = {1, 2, 3, 4, 5} ist die feinste Zerlegung Z = {1}, {2}, {3}, {4}, {5} . Die feinste Zerlegung von N ist Z = {1}, {2}, {3}, . . . . Vorsicht: Z 6= N, die Elemente von Z sind Mengen, die Elemente von N sind Zahlen! Logik und Künstliche Intelligenz V. Stahl Seite 41 Beispiel 3.20 Der andere Extremfall einer Zerlegung ist die gröbste Zerlegung. Hierbei packt man alle Elemente von A in eine einzige, große Klasse. Für A = {1, 2, 3, 4, 5} ist die gröbste Zerlegung Z = {1, 2, 3, 4, 5} = {A}. Die gröbste Zerlegung von N ist Z = {1, 2, 3, . . .} = {N}. Vorsicht: Z 6= N, die Menge Z enthält nur ein einziges Element während N unendlich groß ist! Beispiel 3.21 Sei ≡3 die aus Beispiel 3.9 bekannte Relation ≡3 = {(a, b) | a ∈ N0 , b ∈ N0 , a − b ist durch 3 teilbar } Unter Verwendung dieser Relation kann man die Menge N0 in drei Klassen zerlegen: K1 = {x ∈ N0 | x ≡3 0} = {0, 3, 6, 9, . . .} K2 = {x ∈ N0 | x ≡3 1} = {1, 4, 7, 10, . . .} K3 = {x ∈ N0 | x ≡3 2} = {2, 5, 8, 11, . . .} Wie man anhand von Definition 3.17 nachprüfen kann, ist somit Z = {K1 , K2 , K3 } eine Zerlegung von N0 . 3.3 Äquivalenzrelationen und erste Beweistechniken Hat man eine Zerlegung Z einer Menge A, dann kann man mit wenigen Handgriffen hieraus eine Relation auf A konstruieren: Man legt einfach fest, dass genau die Elemente von A zueinander in Relation stehen sollen, die in der selben Klasse von Z sind. In Anlehnung an Z bezeichnet man die entstehende Relation mit Äquivalenz bzgl. Z und bezeichnet sie mit ≡Z . Logik und Künstliche Intelligenz V. Stahl Beispiel 3.22 Seite 42 Eine Zerlegung von A = {1, 2, 3, 4, 5} ist z.B. Z = {1, 2}, {3}, {4, 5} . Somit stehen 1 und 2 in Relation aber nicht 1 und 3. Es gilt also z.B. 1 ≡Z 2, 2 ≡Z 1, 1 ≡Z 1, 3 ≡Z 3, 4 ≡Z 5, . . . und 1 6≡Z 3, 2 6≡Z 3, 3 6≡Z 1, . . . Als Menge geschrieben sieht ≡Z so aus: ≡Z = {(1, 1), (1, 2), (2, 1), (2, 2), (3, 3), (4, 4), (4, 5), (5, 4), (5, 5)} Definition 3.23 (Äquivalenz bzgl. einer Zerlegung) Sei Z eine Zerlegung von A. Dann ist die Relation ≡Z ⊆ A × A definiert durch a ≡Z b genau dann wenn a und b in der selben Klasse von Z sind. Formal ausgedrückt liest sich das so: ≡Z = {(a, b) | ∃K K ∈ Z ∧ a ∈ K ∧ b ∈ K}. Bemerkung. Ist Z = {K1 , K2 , K3 , . . .} eine Zerlegung von A, dann lässt sich die Äquivalenzrelation ≡Z auch definieren durch ≡Z = (K1 × K1 ) ∪ (K2 × K2 ) ∪ (K3 × K3 ) ∪ . . . Beispiel 3.24 Die Menge Q lässt sich zerlegen in die Menge der positiven und negativen rationalen Zahlen und {0}, d.h. Z = Q+ , Q− , {0} . Für die zugehörige Äquivalenz bzgl. Z gilt somit, dass alle positiven Zahlen miteinander in Relation stehen, alle negativen und Null nur mit sich sebst, z.B. 3 ≡Z 5, −1 ≡Z −3, 0 ≡Z 0, 2 ≡Z 2, . . . Logik und Künstliche Intelligenz V. Stahl Seite 43 und 2 6≡Z −3 − 1 6≡Z 4, 0 6≡Z 5, −3 6≡Z 0, . . . Man kann also sagen dass für alle a, b ∈ Q gilt a ≡Z b genau dann wenn a und b das gleiche Vorzeichen haben. Schauen wir uns an, welche Relation herauskommt wenn man von der feinsten bzw. gröbsten Zerlegung einer Menge ausgeht: Sei A = {1, 2, 3}. Die feinste Zerlegung von A ist Z = {1}, {2}, {3} . Beispiel 3.25 Somit steht jedes Element von A nur mit sich selbst in Relation ≡Z , d.h. 1 ≡Z 1, 2 ≡Z 2, 3 ≡Z 3 und sonst nichts: ≡Z = {(1, 1), (2, 2), (3, 3)}. Diese Relation ist nichts anderes als die Gleichheitsrelation auf A. Sei wieder A = {1, 2, 3}. Die gröbste Zerlegung von A ist Z = {1, 2, 3} . Beispiel 3.26 Somit steht jedes Element von A mit jedem in Relation ≡Z , d.h. 1 ≡Z 1, 1 ≡Z 2, 1 ≡Z 3, 2 ≡Z 1, 2 ≡Z 2, . . . und somit ist ≡Z = {(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)} Diese Relation ist nichts anderes als das kartesische Produkt von A mit sich selbst, d.h. ≡Z = A × A. Merkregel 3.27 Für jede Menge A gilt: • Ist Z die feinste Zerlegung von A, dann ist ≡Z die Gleichheitsrelation auf A, d.h. jedes Element von A steht nur zu sich selbst in Relation ≡Z . • Ist Z die gröbste Zerlegung von A, dann ist ≡Z = A × A, d.h. jedes Element von A steht zu jedem Element von A in Relation ≡Z . V. Stahl Logik und Künstliche Intelligenz Seite 44 Egal was für eine Zerlegung Z einer Menge A man anschaut, die die resultierende Relation ≡Z hat immer ein paar elementare Eigenschaften: • Jedes Element von A ist natürlich in der selben Klasse wie es selbst, daher ist a ≡Z a für alle a ∈ A bzw. ∀a a ∈ A → a ≡Z a. Eine Relation, die diese Eigenschaft hat, heißt reflexiv auf A. • Ist a in der selben Klasse wie b, dann ist natürlich auch b in der selben Klasse wie a. Somit gilt wenn a ≡Z b dann b ≡Z a bzw. ∀a ∀b a ≡Z b → b ≡Z a. Eine Relation, die diese Eigenschaft hat, heißt symmetrisch. • Ist a in der selben Klasse wie b und b in der selben Klasse wie c, dann ist natürlich auch a in der selbe Klasse wie c. Somit gilt wenn a ≡Z b und b ≡Z c dann a ≡Z c bzw. ∀a ∀b ∀c (a ≡Z b ∧ b ≡Z c) → a ≡Z c. Eine Relation, die diese Eigenschaft hat, heißt transitiv. Relationen auf einer Menge A, die alle drei Eigenschaften besutzen, heißen Äquivalenzrelationen auf A. Ist Z eine Zerlegung von A, so ist ≡Z eine Äquivalenzrelation auf A und hat somit sehr ähnliche Eigenschaften wie die Gleichheit. Anstatt zu fordern, dass zwei Elemente von A gleich sind, stellt man die schwächere Forderung, dass sie in der selben Klasse sind. Dies ist ein Prozess, den man in der wirklichen Welt sehr oft beobachtet und der u.a. die Grundlage aller Vorurteile ist. Sagt man z.B. “das erste Semester ist faul”, so ist diese Aussage zunächst einmal unsinnig, denn ein Semester ist eine Menge von Studenten und eine Menge kann weder die Eigenschaft faul oder fleißig besitzen. Was ist hier geschehen? Zunächst hat man die Menge A der Studenten in eine Menge Z von Semestern zerlegt. Dann hat man die Gleichheit auf der Menge Logik und Künstliche Intelligenz V. Stahl Seite 45 der Studenten =A durch ≡Z ersetzt. Jeder Student ist nur gleich sich selbst, d.h. wenn a und b unterschiedliche Studenten sind, gilt a 6=A b. Sind sie jedoch im selben Semester, gilt a ≡Z b. Ersetzt man nun (in unzulässiger Weise) =A durch ≡Z , sind plötzlich alle Studenten eines Semesters gleich und lassen sich bequem über einen Kamm scheren. Wenn Sie also wieder einmal Opfer eines solchen Vorurteils werden, wissen Sie nun wie man sich dagegen wehrt. Äquivalenzrelationen führen jedoch nicht nur zu sozialem Unfrieden sondern haben auch ein paar durchaus nützliche Anwendungen: Wenn man z.B. ein sehr komplexes Problem lösen muss, ist man oft gezwungen, dies zunächst zu vereinfachen indem man von Details abstrahiert. So können z.B. zwei Dinge “im Prinzip” gleich sein bis auf ein paar “unwichtige” Details. Diese Art der “im Prinzip Gleichheit” lässt sich mathematisch durch Äquivalenzrelationen beschreiben. Ersetzt man die exakte Gleichheit durch eine geeignete Äquivalenzrelation, bedeutet das nichts anderes als dass man die unwichtigen Details unter den Tisch fallen lässt und dadurch die “im Prinzip” gleichen Dinge tatsächlich gleich (äquivalent) setzt. Die wesentlichen Eigenschaften, die man beim täglichen Umgang mit der Gleichheit ganz selbstverständlich voraussetzt, gelten bei Äquivalenzrelationen auch. Diese Eigenschaften heißen Reflexivität, Symmetrie und Transitivität und werden nun noch einmal genauer untersucht. Im Folgenden sei A eine Menge und R ⊆ A × A eine Relation auf A. Definition 3.28 (Reflexiv) Eine Relation R heißt reflexiv auf einer Menge A, genau dann wenn für alle x ∈ A gilt xRx, d.h. ∀x x ∈ A → xRx. Beispiel 3.29 • ≤N ist reflexiv auf N, da für jedes x ∈ N gilt x ≤N x. Andererseits ist aber ≤N nicht reflexiv auf Z, da z.B. −1 ∈ Z aber (−2, −2) 6∈≤N . • ≤Z ist reflexiv auf Z aber nicht reflexiv auf R. Logik und Künstliche Intelligenz V. Stahl Seite 46 • ≡3 ist reflexiv auf N0 . • Die in Bild 3.4 links dargestellte Relation ist reflexiv auf R. • Die Relation <N ist nicht reflexiv auf N, da z.B 3 ∈ N aber 3 6< 3. • σ ist nicht reflexiv auf N. • Die in Bild 3.4 rechts und die in Bild 3.5 dargestellten Relationen sind nicht reflexiv auf R. • Die Relation R = {(2, 2)} ist nicht reflexiv auf N, da z.B. 3 ∈ N aber (3, 3) 6∈ R. Andererseits ist aber R reflexiv auf {2}, da für alle x ∈ {2} gilt xRx. Stellt man eine Relation wie in Bild 3.6 durch einen Graph dar, kann man sofort ablesen ob sie reflexiv auf A ist. Dies ist genau dann der Fall, wenn jeder Knoten aus A einen Pfeil auf sich selbst hat. Bemerkung. Wenn eine Relation R gegeben ist, so geht aus dem Kontext häufig auch eine Menge A hervor, wobei R Relation auf A ist. Sagt man in diesem Fall, dass R eine reflexive Relation ist, meint man genau genommen, dass R eine reflexive Relation auf A ist. Man liest z.B. häufig dass ≤N reflexiv ist und meint damit, dass ≤N reflexiv auf N ist. Natürlich ist ≤N nicht reflexiv auf Z, da z.B. (−1, −1) 6∈≤N . Wie entscheidet man von einer gegebenen Relation R ob sie reflexiv auf einer Menge A ist? • Zunächst sucht man sich ein paar Beispiele a ∈ A und prüft, ob aRa für alle Beispiele a. Findet man ein Beispiel, wo aRa nicht gilt, so ist R nicht reflexiv auf A. Bei der Wahl der Beispiele sollte man darauf achten, dass die Menge A hierdurch gut repräsentiert ist. Ist z.B. A = Z sollte man sowohl positive als auch negative Zahlen prüfen. Auch Spezialfälle wie z.B. 0 und besonders große oder kleine Zahlen sollten unter den Beispielen sein. • Wenn für alle Beispiele a gilt aRa, so besteht der Verdacht, dass R reflexiv auf A ist. Je mehr Beispiele geprüft wurden, desto begründeter ist dieser Verdacht. Ganz sicher kann man sich dabei aber nicht sein, außer wenn A endlich ist und die Beispielmenge ganz A umfaßt. Andernfalls geht man wie folgt vor: – Zu zeigen: ∀a a ∈ A → aRa. Logik und Künstliche Intelligenz V. Stahl Seite 47 – Die zu beweisende Formel beginnt mit einem Allquantor. Einen Allquantor kann man immer durch eine kleine Zauberformel loswerden und zwar: Sei a beliebig aber fest gewählt. Zu zeigen: a ∈ A → aRa. Was hier geschehen ist, ist dass aus der Variablen a eine Konstante wurde, d.h. a bezeichnet ab sofort ein konkretes Objekt, auf das man im weiteren Verlauf des Beweises Bezug nehmen darf. – Die zu beweisende Formel ist vom Typ . . . → . . ., d.h. eine wenn – dann Aussage. Der Trick wie man mit solchen Formeln umgeht ist, anzunehmen dass der wenn–Teil erfüllt ist. Zu zeigen ist dann nur noch der dann–Teil: Gegeben: a ∈ A zu zeigen: aRa. – Noch weiter lässt sich die Formel allgemein nicht vereinfachen. Jetzt muss man konkret hinschauen wie die Relation R definiert ist. Man setzt also die Definition von R in die Formel ein. Wie’s ab hier weitergeht hängt von R ab. Beispiel 3.30 Gegeben ist die Relation R = {(a, b) | a ∈ R, b ∈ R, |a| = |b|}. Es soll untersucht werden ob R reflexiv auf R ist. • Beispiele: (2, 2) ∈ R, (−100, −100) ∈ R, (0, 0) ∈ R, . . . . Da kein Gegenbeispiel gefunden wurde, lastet auf R der Verdacht reflexiv auf R zu sein. • Nun zum Beweis: – – – – Zu zeigen: ∀a a ∈ R → aRa. Sei a beliebig aber fest. Zu zeigen: a ∈ R → aRa. Gegeben: a ∈ R. Zu zeigen: aRa. Einsetzen der Definition von R. Zu zeigen: a ∈ R und |a| = |a|. Dass a ∈ R ist, folgt aus der Annahme im vorigen Schritt, dass |a| = |a| ist offensichtlich. An der graphischen Darstellung einer Relation auf R kann man sofort sehen, ob sie reflexiv auf R ist. Dies ist nämlich genau dann der Fall, wenn die Hauptdiagonale komplett eingezeichnet ist. Logik und Künstliche Intelligenz V. Stahl Seite 48 Definition 3.31 (Symmetrisch) Eine Relation R heißt symmetrisch, wenn für all a, b, für die aRb gilt, auch bRa gilt: ∀a ∀b aRb → bRa. Beispiel 3.32 • Die Relation ≡3 ist symmetrisch: Wenn a − b durch 3 teilbar ist, dann auch b − a. • Die in Bild 3.4 links und in Bild 3.5 dargestellten Relationen sind ebenfalls symmetrisch. • Die Relationen ≤N , <N , ≤Z und σ hingegen sind nicht symmetrisch. • Auch die in Bild 3.4 rechts dargestellte Relation ist nicht symmetrisch. Stellt man eine Relation wie in Bild 3.6 durch einen Graph dar, kann man sofort ablesen ob sie symmetrisch ist. Dies ist genau dann der Fall, wenn zu jedem Pfeil auch der umgekehrte Pfeil vorhanden ist, siehe Bild 3.8. Abbildung 3.8: Graph Darstellung einer symmetrischen Relation. Wie entscheidet man von einer gegebene Relation ob sie symmetrisch ist? • Wieder sucht man sich zunächst ein paar Beispiele a, b ∈ A für die aRb gilt. Wenn für eines dieser Beispiele bRa nicht gilt, so ist R nicht symmetrisch. Bei der Wahl der Beispiele sollte man wieder darauf achten, dass die Menge A gut repräsentiert ist. Dazu kann man so vorgehen, dass man zunächst repräsentative Elemente a ∈ A wählt und dann passende b sucht so dass aRb. Gilt für alle Beispiele auch bRa, so besteht der Verdacht, dass R symmetrisch ist. • Der Beweis, dass tatsächlich R symmetrisch ist, läuft nach dem selben Muster wie im Fall der Reflexivität: Logik und Künstliche Intelligenz V. Stahl Seite 49 – Zu zeigen: ∀a ∀b aRb → bRa. – Elimination der Allquantoren: Sei a und b beliebig aber fest gewählt. Zu zeigen: aRb → bRa. – Es liegt wieder eine wenn–dann Formel vor. Man nimmt an, dass der wenn–Teil erfüllt ist und muss dann nur noch den dann–Teil zeigen. Gegeben: aRb zu Zeigen: bRa. – Eine weitere Vereinfachung der zu beweisenden Formel ist nicht möglich. Man muss daher an dieser Stelle die Definition von R einsetzen. Hierbei können wiederum Quantoren und logische Symbole auftreten, die man nach dem selben Prinzip abarbeiten muss. Beispiel 3.33 Gegeben ist die kleiner gleich Relation ≤N auf N. Es soll untersucht werden, ob diese symmetrisch ist. Es ist leicht, ein Gegenbeispiel zu finden. So ist z.B. 2 ≤N 3 aber andererseits 3 6≤N 2. Somit ist ≤N nicht symmetrisch. Beispiel 3.34 Gegeben ist die Relation R = {(a, b) | a ∈ R, b ∈ R, √ a2 + b2 ≤ 2}. Es soll untersucht werden, ob R symmetrisch ist. • Zunächst ein paar Beispiele: p √ – 1R − 1, da (1)2 + (−1)2 = 2 ≤ 2. Andererseits ist aber auch −1R1. p √ – 0R2, da (0)2 + (2)2 = 4 ≤ 2. Andererseits ist aber auch 2R0. – ... • Nachdem kein Gegenbeispiel gefunden wurde, entsteht der Verdacht dass R symmetrisch ist. Um die letzten Zweifler zu überzeugen hier der Beweis nach dem oben beschriebenen Schema: – Zu zeigen: ∀a ∀b aRb → bRa. – Sei a und b beliebig aber fest gewählt. Zu zeigen: aRb → bRa. Logik und Künstliche Intelligenz V. Stahl Seite 50 – Gegeben: aRb. Zu zeigen: bRa. – Einsetzen der Definition√von R. Gegeben: a ∈ R, b ∈ R, √a2 + b2 ≤ 2. zu zeigen: b ∈ R, a ∈ R, b2 + a2 ≤ 2. Da b2 + a2 = a2 + b2 folgt √ b2 + a2 = √ a2 + b2 . Unter Verwendung der Annahme √ a2 + b2 ≤ 2 erhält man somit √ b2 + a2 ≤ 2. An der graphischen Darstellung einer Relation auf z.B. N, Z, Q oder R kann man sofort sehen, ob sie symmetrisch ist. Dies ist nämlich genau dann der Fall, wenn alle eingezeichneten Punkte spiegelbildlich zur Hauptdiagonalen liegen. Definition 3.35 (Transitiv) Eine Relation R heißt transitiv, wenn für alle a, b, c für die aRb und bRc gilt auch aRc gilt: ∀a ∀b ∀c (aRb ∧ bRc) → aRc. Beispiel 3.36 • Die Relationen ≤N , <N , ≤Z und ≡3 sind transitiv. • Die in Bild 3.4 links dargestellte Relation ist ebenfalls transitiv. • Die Relation σ hingegen ist nicht transitiv, da z.B 2σ3 und 3σ4 aber nicht 2σ4. • Auch die in Bild 3.4 rechts und in Bild 3.5 dargestellten Relationen sind nicht transitiv. So liegen z.B. die Punkte (2, 0) und (0, 2) auf dem Kreis, nicht aber (2, 2). Stellt man eine Relation wie in Bild 3.6 durch einen Graph dar, kann man leicht ablesen ob sie transitiv ist. Dies ist genau dann der Fall, wenn alle “Abkürzungen” eingezeichnet sind. Kommt man im Graph von einem Punkt Logik und Künstliche Intelligenz V. Stahl Seite 51 Abbildung 3.9: Graph Darstellung einer transitiven Relation. a über eine Zwischenstation b zu c, dann muss auch der direkte Pfeil von a nach c vorhanden sein. Im Eisenbahnerjargon nennt man das Transitstrecke. Die Relation in Bild 3.9 ist somit transitiv. Auf die Gefahr hin, dass es langweilig wird: Wie entscheidet man von einer gegebenen Relation R ob sie transitiv ist? • Wieder sucht man sich zunächst ein paar Beispiele a, b, c ∈ A, für die aRb und bRc gilt. Wenn für eines dieser Beispiele aRc nicht gilt, so ist R nicht transitiv. • Gilt für alle Beispiele auch aRc, so müssen wir R der Transitivität bezichtigen. Um Gewissheit zu bekommen, hilft nur ein Beweis: – Zu zeigen: ∀a ∀b ∀c (aRb ∧ bRc) → aRc. – Elimination der Allquantoren: Sei a, b, c beliebig aber fest. Zu zeigen: (aRb ∧ bRc) → aRc. – Es liegt wieder eine wenn–dann Formel vor, die nach bewährter Methode verarbeitet wird: Gegeben: aRb ∧ bRc Zu zeigen: aRc. – Das ∧ Symbol in der Annahme kann man noch eliminieren: Gegeben: aRb und bRc. – Hier ist wieder der Punkt erreicht, wo der weitere Weg von R abhängt. Man muss also nun die Definition von R in die Formeln einsetzen. Beispiel 3.37 Gegeben ist die Relation ≡3 = {(a, b) | a ∈ N0 , n ∈ N0 , a − b ist durch 3 teilbar }. Es soll untersucht werden, ob ≡3 transitiv ist. Logik und Künstliche Intelligenz V. Stahl Seite 52 • Man sucht zunächst ein paar Beispiele a, b, c ∈ N0 , für die a ≡3 b und b ≡3 c gilt. Dann prüft man nach, ob auch a ≡3 c. Also z.B. – a = 1, b = 7, c = 4: 1 ≡3 7, 7 ≡3 4. Tatsächlich gilt auch 1 ≡3 4. – a = 9, b = 0, c = 3: 9 ≡3 0, 0 ≡3 9. Tatsächlich gilt auch 9 ≡3 9. – ... • Pech — wir haben kein Gegenbeispiel gefunden, also . . . – Zu zeigen: ∀a ∀b ∀c (a ≡3 b ∧ b ≡3 c) → aRc. – Sei a, b, c beliebig aber fest. Zu zeigen: (a ≡3 b ∧ b ≡3 c) → a ≡3 c. – Gegeben: a ≡3 b, b ≡3 c. Zu zeigen a ≡3 c. – Einsetzen der Definition von ≡3 : Gegeben: a − b und b − c sind durch 3 teilbar. Zu zeigen: a − c ist durch 3 teilbar Da a − c = (a − b) + (b − c), a − b und b − c laut Annahme durch 3 teilbar sind und die Summe zweier durch 3 teilbarer Zahlen wieder durch 3 teilbar ist, folgt dass a − c durch 3 teilbar ist. Die Entscheidung ob eine Relation transitiv ist, ist i.a. schwieriger als die Entscheidung von Symmetrie oder Reflexivität. Einerseits ist es oft nicht so einfach Beispiele zu finden für die aRb und bRc ist, andererseits lässt sich die Transitivität im Bild auch nicht unmittelbar ablesen. Oft gibt einem aber ein mißlungener Beweisversuch einen Hinweis auf ein Gegenbeispiel. Relationen, die reflexiv, symmetrisch und transitiv sind, verdienen einen besonderen Namen. Definition 3.38 (Äquivalenzrelation) R heißt Äquivalenzrelation auf einer Menge A wenn R ⊆ A × A und R reflexiv auf A, symmetrisch und transitiv ist. Beispiel 3.39 Logik und Künstliche Intelligenz V. Stahl Seite 53 • ≡3 ist eine Äquivalenzrelation auf N0 . • Die in Bild 3.4 links dargestellte Relation ist eine Äquivalenzrelation auf der Menge R. • ≤N ist keine Äquivalenzrelation auf N0 . • ≤Z ist keine Äquivalenzrelation auf Z. • <N ist keine Äquivalenzrelation auf N. • σ ist keine Äquivalenzrelation auf N. • Die in Bild 3.4 rechts und in Bild 3.5 dargestellten Relationen sind keine Äquivalenzrelationen auf R. Es ist sehr einfach, eine Äquivalenzrelation auf einer Menge A zu konstruieren: Alles was man dazu braucht ist eine Zerlegung Z von A. Wie bereits auf Seite 44 gezeigt, ist dann die Äquivalenz ≡Z bzgl. Z eine Äquivalenzrelation auf A. Durch Zerlegungen bekommt man also einen ganz simplen Typ von Äquivalenzrelationen. Gibt es auch noch andere Äquivalenzrelationen, die nicht einer Zerlegung entspringen? Nein. Man kann nicht nur aus jeder Zerlegung eine Äquivalenzrelation machen sondern auch umgekehrt aus jeder Äquivalenzrelation auf die zugrundeliegende Zerlegung zurückschließen. Es besteht also ein eins zu eins Zusammenhang zwischen Äquivalenzrelationen und Zerlegungen — ob man also etwas als Äquivalenzrelation oder als Zerlegung verkauft kriegt ist egal, es ist beides im Prinzip genau das Selbe. Beispiel 3.40 Schauen wir uns die Äquivalenzrelation ≡3 genauer an und betrachten dazu die Mengen K0 K1 K2 K3 K4 .. . = = = = = {x {x {x {x {x | | | | | x ≡3 x ≡3 x ≡3 x ≡3 x ≡3 0} 1} 2} 3} 4} = = = = = {0, 3, 6, 9, . . .} {1, 4, 7, 10, . . .} {2, 5, 8, 11, . . .} {0, 3, 6, 9, . . .} = K0 {1, 4, 7, 10, . . .} = K1 Packt man diese Mengen zusammen, erhält man eine Zerlegung von N0 : Z = {K0 , K1 , K2 , K3 , K4 , . . .} = {K0 , K1 , K2 }. Logik und Künstliche Intelligenz V. Stahl Seite 54 Die Mengen Ki heißen Äquivalenzklassen der Äquivalenzrelation ≡3 . Da immer wieder die selben Mengen entstehen, hat ≡3 nur 3 Äquivalenzklassen. Definition 3.41 (Äquivalenzklasse) Ist R eine Äquivalenzrelation auf A und a ∈ A, dann heißt die Menge Ka = {x | xRa} Äquivalenzklasse von a der Äquivalenzrelation R. Allgemein gilt, dass die Äquivalenzklassen einer Äquivalenzrelation auf A eine Zerlegung von A bilden. Theorem 3.42 (Zerlegung in Äquivalenzklassen) Ist R eine Äquivalenzrelation auf einer Menge A, so ist für jedes a∈A Ka = {x | xRa} eine Äquivalenzklasse von R und Z = {Ka | a ∈ A} eine Zerlegung von A. Der Beweis ist etwas länger, illustriert aber hoffentlich wie man die zuvor gelernten Techniken in einem etwas größeren Rahmen anwenden kann. Beweis. Sei R eine Äquivalenzrelation auf A und für alle a ∈ A Ka = {x ∈ A | xRa}. Sei weiterhin Z = {Ka | a ∈ A}. Zu zeigen: Z ist eine Zerlegung von A. Zuerst setzt man die Definition des Begriffs Zerlegung ein (siehe Definition 3.17). Demnach sind drei Dinge zu zeigen: • Jede Menge K ∈ Z ist eine nichtleere Teilmenge von A. ∀K K ∈ Z → (K ⊆ A ∧ K 6= ∅). V. Stahl Logik und Künstliche Intelligenz Seite 55 Elimination des Allquantors: Sei K beliebig aber fest. Auflösen der wenn–dann Aussage: Gegeben K ∈ Z, d.h. es gibt ein a ∈ A so dass K = Ka . Zu zeigen Ka ⊆ A ∧ Ka 6= ∅. Dass Ka ⊆ A folgt direkt aus der Definition von Ka . Da R reflexiv ist, ist a ∈ Ka und somit Ka 6= ∅. • Die Elemente von Z sind paarweise disjunkt. ∀K ∀K ′ (K ∈ Z ∧ K ′ ∈ Z) → (K = K ′ ∨ K ∩ K ′ = ∅). Elimination der Allquantoren: Seien K und K ′ beliebig aber fest. Auflösen der wenn–dann Aussage: Gegeben K ∈ Z und K ′ ∈ Z. Nach Einsetzen der Definition von Z erhält man: Es gibt a, b ∈ A so dass K = Ka und K ′ = Kb . Zu zeigen: Ka = Kb ∨ Ka ∩ Kb = ∅. Diese Aussage ist äquivalent zu der wenn–dann Aussage Ka ∩ Kb 6= ∅ → Ka = Kb . Gegeben Ka ∩ Kb 6= ∅, zu zeigen Ka = Kb . Aus der Annahme folgt, dass es ein c geben muss mit c ∈ Ka ∩ Kb . Setzt man die Definition von Ka und Kb ein, erhält man cRa und cRb. Zu zeigen ist Ka = Kb . Einsetzen der Definition der Mengengleichheit (Definition 2.14) führt auf Ka ⊆ Kb und Kb ⊆ Ka . Wir zeigen Ka ⊆ Kb , der Beweis von Kb ⊆ Ka ist analog. Einsetzen der Teilmengendefinition (Definition 2.10) führt auf ∀x x ∈ Ka → x ∈ Kb . Einsetzen der Definition von Ka und Kb führt auf ∀x xRa → xRb. Sei x beliebig aber fest. Gegeben xRa, zu zeigen xRb. Aus der Annahme cRa und der Symmetrie von R erhält man aRc. Transitivität von R liefert xRc. Nochmal Transitivität und die Annahme cRb liefert xRb. Logik und Künstliche Intelligenz V. Stahl Seite 56 • Jedes Element von A ist in einer Menge K ∈ Z. ∀a a ∈ A → (∃K K ∈ Z ∧ a ∈ K). Sei a beliebig aber fest. Gegeben a ∈ A, zu zeigen ∃K K ∈ Z ∧ a ∈ K. Wähle K = Ka . Damit ist K ∈ Z und da R reflexiv ist, folgt aRa und laut Definition von Ka ist somit a ∈ K. Jede Äquivalenzrelation R auf A liefert also eine Zerlegung von A in Äquivalenzklassen von R. Wenn man versucht, sich eine Äquivalenzrelation vorzustellen, ist es oft hilfreich, sich die entsprechende Zerlegung in Äquivalenzklassen anzuschauen. Merkregel 3.43 Äquivalenzrelationen und Zerlegungen sind das selbe. Das eine lässt sich exakt durch das andere beschreiben. Beispiel 3.44 tionen Auf jeder Menge A gibt es zwei extreme Äquivalenzrela- • Die Gleichheit auf A =A = {(a, a) | a ∈ A}. Hier steht jedes Element nur mit sich selbst in Relation. Die Äquivalenzklassen sind somit einelementige Mengen Ka = {x | x =A a} = {a} für jedes a ∈ A. Die zugehörige Zerlegung Z = {Ka | a ∈ A} = {a} | a ∈ A ist die feinste Zerlegung von A. • Die Relation A × A = {(a, b) | a ∈ A, b ∈ A}. V. Stahl Logik und Künstliche Intelligenz Seite 57 Hier steht jedes Element mit jedem in Relation. Diese Relation hat genau eine Äquivalenzklasse. Für jedes a ∈ A ist Ka = {x | (x, a) ∈ A × A} = A. Die zugehörige Zerlegung ist somit Z = {Ka | a ∈ A} = {A}, d.h. die gröbste Zerlegung von A. Die Elemente einer Äquivalenzklasse werden auch Repräsentanten der Äquivalenzklasse genannt. Definition 3.45 (Repräsentantensystem) Sei R eine Äquivalenzrelation auf A. Eine Menge S ⊆ A heißt Repräsentantensystem von R wenn S genau ein Element aus jeder Äquivalenzklasse von R enthält. Beispiel 3.46 Ein Repräsentantensystem von ≡3 ist z.B. {0, 1, 2}. Ein anderes Repräsentantensystem ist {0, 4, 8}. Beispiel 3.47 Die Quersumme einer natürlichen Zahl ist die Summe aller Ziffern der Zahl in Dezimaldarstellung. So ergibt sich z.B. die Quersumme von 598 als 5 + 9 + 8 = 22. Die Relation ∼ ⊆ N × N sei definiert durch ∼ = {(a, b) | a ∈ N, b ∈ N, a und b haben die selbe Quersumme} Wie man leicht prüft, ist ∼ eine Äquivalenzrelation mit unendlich vielen Äquivalenzklassen: K1 = {1, 10, 100, 1000, . . .} K2 = {2, 11, 20, 110, 200, 1100, 2000, . . .} K3 = {3, 12, 21, 30, 111, 102, 120, 210, 300, . . .} .. . Ein Repräsentantensystem von ∼ erhält man wenn man aus jeder Äquivalenzklasse genau ein Element nimmt (z.B. das kleinste): {1, 2, 3, . . . , 9, 19, 29, 39, . . . , 99, 199, 299, 399, . . .} V. Stahl Logik und Künstliche Intelligenz Seite 58 Beispiel 3.48 Die Gleichheit auf einer beliebigen Menge A ist eine Äquivalenzrelation auf A, wobei jede Äquivalenzklasse aus genau einem Element besteht. Das einzige Repräsentantensystem ist somit A selbst. Beispiel 3.49 durch Die Relation ≡ ⊆ (Z×Z\{0})×(Z×Z\{0}) sei definiert ≡ = {((a, b), (x, y)) | (a, b) ∈ Z × Z \ {0}, (x, y) ∈ Z × Z \ {0}, ay = bx} Offensichtlich ist (a, b) ≡ (x, y) genau dann wenn a/b = x/y wobei / die Division in Q ist, also z.B. (6, 4) ≡ (12, 8) da 6/4 = 12/8 = 1.5 und (6, 4) 6≡ (6, 5) da 6/4 6= 6/5. Es ist leicht zu sehen, dass ≡ eine Äquivalenzrelation auf Z × Z \ {0} ist. Die Äquivalenzklassen von ≡ entsprechen den rationalen Zahlen Q, da es für jede rationale Zahl q ∈ Q genau eine Äquivalenzklasse von ≡ gibt, für deren Elemente (a, b) gilt a/b = q. Beispiel 3.50 Äquivalenzklassen der in Bild 3.5 links dargestellten Relation sind z.B. {1, −1}, {2, −2}, {0}, usw. Die Menge aller Äquivalenzklassen ist daher Z = {{x, −x} | x ∈ R} Ein Repräsentantensystem ist somit die Menge aller reeller Zahlen, die größer oder gleich 0 sind. 3.4 Ordnungsrelationen Relationen wie ≤N oder >Z sind keine Äquivalenzrelationen weil es an der Symmetrie hapert und bei >Z fehlt auch noch die Reflexivität. Dennoch spielen diese Relationen eine wichtige Rolle und so haben auch ihre charakteristischen Eigenschaften einen Namen verdient. Die Relationen dienen dazu, die Elemente einer Menge anzuordnen. Sie legen fest, welches Element “vor” welchem kommt. Wenn a vor b ist, dann kann nicht gleichzeitig b vor a sein. Die Eigenschaft ist also, dass für zwei verschiedene Elemente a, b nicht gleichzeitig aRb und bRa erfüllt sein darf. Das erinnert sehr an Symmetrie: Logik und Künstliche Intelligenz V. Stahl Seite 59 Hier hat man gefordert, dass wenn aRb gilt, auch bRa gelten muss. Die Ordnungseigenschaft nennt man daher Antisymmetrie. Definition 3.51 (Antisymmetrisch) Eine Relation R heißt antisymmetrisch wenn für keine zwei verschiedenen Objekte a 6= b sowohl aRb als auch bRa gilt: ∀a ∀b (aRb ∧ bRa) → a = b. Beispiel 3.52 Die Relation ≤N ist antisymmetrisch. Wenn a ≤N b und b ≤N a, dann muss a = b sein. Beispiel 3.53 Die Relation >Z ist ebenfalls antisymmetrisch. Wenn a >Z b und b >Z a, dann muss a = b sein. Moment . . . . Es gibt doch gar keine zwei Zahlen a, b ∈ Z für die a >Z b und gleichzeitig b >Z a ist! Ist die getroffene Aussage dann überhaupt sinnvoll? Ein gewiefter Anwalt würde so argumentieren: Die Aussage lautet wörtlich, dass alle Paare von ganzen Zahlen (a, b), die die (zugegebenermaßen unmögliche) Eigenschaft besitzen dass a >Z b und b >Z a, auch noch die Eigenschaft a = b erfüllen. Wenn diese Aussage falsch wäre, müsste es ein Gegenbeispiel geben. Wer eins findet, der spreche jetzt oder schweige für immer. Winkeladvokaten wie diesem verdanken wir die Tatsache, dass eine wenn–dann Aussage immer wahr ist, sobald der wenn–Teil falsch ist. Beispiel 3.54 Sei R = {(1, 2), (2, 3), (3, 1)}. Auch diese Relation ist antisymmetrisch. Allzuviel Ordnung stiftet sie jedoch nicht: Sie legt zwar fest, dass 1 vor 2 und 2 vor 3 kommt, gleichzeitig aber auch 3 vor 1. Das entspricht nicht unserer Vorstellung einer Ordnung! Um halbwegs zu einer Ordnung zu kommen muss man also zusätzlich noch Transitivität fordern. Definition 3.55 (Halbordnung) Eine Relation R heißt Halbordnung auf A wenn R ⊆ A × A und R reflexiv auf A, transitiv und antisymmetrisch ist. Somit ist ≤N eine Halbordnung auf N. Andererseits ist >Q keine Halbordnung auf Q, da >Q nicht reflexiv ist. Das ist kontraintuitiv — warum hat V. Stahl Logik und Künstliche Intelligenz Seite 60 man die Forderung nach Reflexivität in die Definition des Begriffs Halbordnung eingebaut? Ich habe keine Ahnung, es muss wohl ein Pedant gewesen sein, der darauf bestanden hat. . . . Halbordnungen kommen unserer Vorstellung einer Ordnung schon recht nahe. Andererseits ist aber auch z.B. R = {(a, a) | a ∈ N} = {(1, 1), (2, 2), (3, 3), . . .} eine Halbordnung auf N und diese Relation hat wirklich nichts Ordnendes an sich. Ordnung ist nur gewährleistet, wenn man jedes Element von N mit jedem anderen vergleichen kann, d.h. für alle a, b ∈ N gilt aRb oder bRa. Fordert man diese Vergleichbarkeit noch zusätzlich von einer Halbordnung, erhält man eine totale (oder lineare Ordnung): Definition 3.56 (totale Ordnung) Eine Relation R heißt totale Ordnung auf A wenn R Halbordnung auf A ist und ∀a ∀b aRb ∨ bRa. Beispiel 3.57 ≤N ist eine totale Ordnung auf N. Fordert man von der Relation R ⊆ A × A zusätzlich noch, dass es in jeder Teilmenge B ⊆ A ein Element gibt, das zu allen anderen Elementen von B in Relation steht, dann heißt R Wohlordnung auf A. Definition 3.58 (Wohlordnung) Eine Relation R heißt Wohlordnung auf A wenn R totale Ordnung auf A ist und ∀B ⊆ A ∃x ∈ B ∀y ∈ B xRy. Beispiel 3.59 ≤N ist eine Wohlordnung auf N während ≤Z keine Wohlordnung auf Z ist. Ist z.B. B die Menge der geraden ganzen Zahlen, dann ist B ⊆ Z aber B hat kein kleinstes Element. Beispiel 3.60 ≥N ist zwar eine totale Ordnung auf N aber keine Wohlordnung auf N. In einer unendliche Teilmenge von N gibt es kein Element, das größer gleich allen anderen ist. Logik und Künstliche Intelligenz V. Stahl Seite 61 Beispiel 3.61 Die Teilmengenrelation auf P (N) ist keine Wohlordnung, da sie keine totale Ordnung ist. So gilt z.B. weder {2, 3} ⊆ {4} noch {4} ⊆ {2, 3}. Beispiel 3.62 Jede totale Ordnung auf einer endlichen Menge ist auch eine Wohlordnung. Beispiel 3.63 ≤R ist keine Wohlordnung auf R+ 0 , da z.B. die Menge {x | x ∈ R ∧ x > 0 ∧ x < 1} kein kleinstes Element hat. In einer Wohlordnung kann es keine unendlich langen Folgen der Form . . . R a3 R a2 R a1 geben, da sonst B = {a1 , a2 , a3 , . . .} eine Teilmenge von A ist, die kein Element hat, das mit allen anderen Elementen von B in Relation steht. Solche Relationen spielen eine Rolle, wenn man z.B. beweisen möchte, dass ein Computerprogramm terminiert. 3.5 Umkehrrelation Eine Relation R ⊆ A×B ist eine Menge von Paaren, wobei die erste Komponente eines jeden Paars aus A ist und die zweite aus B. Vertauscht man nun in jedem Paar die beiden Komponenten, erhält man eine Relation R−1 ⊆ B ×A. Diese Relation heißt Umkehrrelation von R. Definition 3.64 (Umkehrrelation) Die Umkehrrelation einer Relation R ist definiert durch R−1 = {(a, b) | (b, a) ∈ R}. Wenn R ⊆ A × B, dann ist offensichtlich R−1 ⊆ B × A. Beispiel 3.65 Dann ist Sei R = {(1, 2), (2, 2), (2, 3)}. R−1 = {(2, 1), (2, 2), (3, 2)} V. Stahl Logik und Künstliche Intelligenz Seite 62 Beispiel 3.66 Die Umkehrrelation der Nachfolgerrelation auf N ist die Vorgängerrelation auf N: σ −1 = {(a, b) | (b, a) ∈ σ} = {(a, b) | a ∈ N, b ∈ N, a = b + 1} = {(2, 1), (3, 2), (4, 3) . . .}. Beispiel 3.67 Die Umkehrrelation der kleiner Relation auf N ist die größer Relation auf N: <−1 = N = = = {(a, b) | (b, a) ∈<N } {(a, b) | a, b ∈ N, b ist kleiner als a } {(a, b) | a, b ∈ N, a ist größer als b } >N . Eine Relation R ist symmetrisch genau dann wenn R = R−1 . Mit den in diesem Kapitel vorgestellten Techniken müssten Sie in der Lage sein, solche Aussagen zu beweisen. V. Stahl 4 Logik und Künstliche Intelligenz Seite 63 Beweistechniken Erfahrungsgemäß haben Studenten mit Beweisen oft ihre liebe Not. Ich kann und möchte Ihnen aber das Thema nicht ersparen, da Beweisen nichts anderes ist als zielorientiertes logisches Denken, und das ist vor allem für Informatiker unverzichtbar. Was ich aber für Sie tun kann, ist Ihnen ein paar Rezepte an die Hand zu geben, wie Sie Ihren Weg durch mathematische (und natürlich auch nichtmathematische) Beweise finden können, siehe [3], Seite 263ff. Noch genauer formalisiert werden diese Techniken in Kapitel ??, dies aber mit dem Ziel, dass Beweise komplett mechanisch und ohne jegliche menschliche Intelligez durchgeführt werden können. Der Nachteil hierbei ist, dass der Aufwand astronomisch wächst. Ein mathematischer Beweis hat viel Ähnlichkeit mit einem Handel. Manche Dinge besitzt man, manche Dinge möchte man gerne haben und durch geschickte Transaktionen versucht man alle Dinge, die man haben möchte, zu bekommen. Die Dinge, die in einem Beweis gedealt werden sind Aussagen, die Transaktionen heißen Beweisschritte. Eine Aussage “besitzt” man, wenn man gezeigt hat (oder in einer Fallunterscheidung annimmt), dass sie wahr ist. Die Menge dieser Aussagen bezeichnet man mit “Gegeben”. Analog bezeichnet man die Menge der Aussagen, die man beweisen möchte, mit “Zu zeigen”. Nachfolgend werden Beweisschritte aufgelistet, die auf Aussagen in “Gegeben” bzw. “Zu zeigen” anwendbar sind. Ein Beweis ist dann nichts anderes als eine Folge solcher Beweisschritte, an deren Ende die zu zeigenden Aussagen gegeben sind. Die Menge “Gegeben” ist dabei stets wachsend. Hat man einmal von einer Aussage gezeigt, dass sie wahr ist, kann man zu jedem Zeitpunkt im Beweis auf sie zurückgreifen. Andererseits werden die Aussagen in “Zu zeigen” in den auf sie angewandten Beweisschritten durch einfachere Aussagen ersetzt. Die erste (und oft schwierigste) Hürde bei einem Beweis ist, sich klar zu machen welche Aussagen gegeben und welche zu zeigen sind — und dies korrekt hinzuschreiben. In der Menge “Gegeben” ist unser gesamtes mathematisches Wissen. Die Menge “Zu zeigen” enthält die zu beweisende Aussage, d.h. besteht in der Regel aus einem einzigen Element. 4.1 Allgemein anwendbare Beweistechniken Einsetzen von Definitionen. Tritt in einer Aussage ein Begriff auf, dann kann man immer die Definition des Begriffes einsetzen. Dies gilt sowohl für Aussagen in “Ge- V. Stahl Logik und Künstliche Intelligenz Seite 64 geben” als auch in “Zu zeigen”. In der Regel sollte man diesen Schritt erst dann anwenden, wenn sonst keine Schritte anwendbar sind, da die dabei entstehenden Formeln meistens länger werden. Beispiel 4.1 Zu zeigen: A ⊆ B. Beweisschritt: Einsetzen der Definition von ⊆. Zu zeigen: ∀x x ∈ A → x ∈ B. Beispiel 4.2 Gegeben: R ist reflexiv auf A. Beweisschritt: Einsetzen der Definition von “reflexiv”. Gegeben: ∀x x ∈ A → xRx. Logische Umformungen Man kann zu jeder Zeit im Beweis die gegebenen bzw. zu zeigenden Aussagen logisch äquivalent umformen. Die wichtigsten Regeln hierzu sind in den Theoremen 7.24 und 7.25 zusammengefasst. Beispiel 4.3 Zu zeigen: ¬xRy ∨ ¬yRz ∨ xRz Beweisschritt: Logische Umformung. Zu zeigen: (xRy ∧ yRz) → xRz Beispiel 4.4 Zu zeigen: ¬∃y ∈ Z ∀x ∈ Z x ≥ y Beweisschritt: Logische Umformung. Zu zeigen: ∀y ∈ Z ∃x ∈ Z x < y 4.2 Beweistechniken für aussagenlogische Symbole Zu zeigende Aussage vom Typ A → B. Da die meisten Theoreme die Form “wenn . . . dann . . . ” haben, kann der nachfolgend beschriebene Beweisschritt fast immer als erster im Beweis angewandt werden. Er besteht darin, dass man annimmt dass A wahr ist, und unter Verwendung dieser Annahme B beweist. Beispiel 4.5 Zu zeigen: c ∈ A → cRc. Beweisschritt: Wenn dann Aussage. Gegeben: c ∈ A Zu zeigen: cRc V. Stahl Logik und Künstliche Intelligenz Seite 65 Wieso darf man hier einfach annehmen, dass A wahr ist? Dieser Beweisschritt ist genaugenommen eine abgekürzte Fallunterscheidung. Im ersten Fall nimmt man an, dass A wahr ist, im zweiten, dass A falsch ist. Nun kann man sich aber den zweiten Fall sparen, denn wenn A falsch ist, ist A → B sowieso wahr, siehe Tabelle 2.1. Zu zeigende Aussage vom Typ ¬A. In diesem Fall nimmt man A zu den gegebenen Aussagen dazu und leitet einen Widerspruch her. Beispiel 4.6 Zu zeigen: ¬∃x x ∈ A ∧ x ∈ B. Beweisschritt: Widerspruchsbeweis. Annahme: ∃x x ∈ A ∧ x ∈ B. Zu zeigen: Widerspruch. Gegebene Aussage vom Typ A und A → B. Wenn sowohl A als auch A → B gegeben sind, dann kann man auch B zu den gegebenen Aussagen dazunehmen. Dieser Beweisschritt heißt Modus Ponens. Beispiel 4.7 Gegeben: aRb und aRb → bRa Beweisschritt: Modus Ponens Gegeben: bRa. Gegebene Aussage vom Typ A ∨ B. Ist eine Aussage vom Typ A∨B gegeben, dann kann man davon ausgehen, dass entweder A oder B wahr ist, oder beide. Entsprechend kommt man oft mit einer Fallunterscheidung weiter: • Fall 1: Gegeben A und ¬B • Fall 2: Gegeben ¬A und B • Fall 3: Gegeben A und B Häufig kommt man auch schon mit nur zwei Fällen hin: • Fall 1: Gegeben A. • Fall 2: Gegeben B. Gegebene Aussage vom Typ A ↔ B. Ist eine Aussage vom Typ A ↔ B gegeben, dann darf man jedes Auftreten von A durch B ersetzen und umgekehrt. Dies gilt sowohl für die V. Stahl Logik und Künstliche Intelligenz Seite 66 gegebenen als auch für die zu zeigenden Formeln. Da Definitionen immer die Form A ↔ B haben, entspricht dieser Beweisschritt dem o.g. Einsetzen von Definitionen. Beispiel 4.8 Gegeben: A ⊆ B ↔ ∀x (x ∈ A → x ∈ B). Zu zeigen: A ⊆ B. Beweisschritt: Zu zeigen: ∀x (x ∈ A → x ∈ B). Andere Beweissituationen können oft durch logische Umformungen auf die genannten Situationen reduziert werden. Muss man z.B. eine Aussage der Form A ∨ B beweisen, kann man dies z.B. in ¬A → B umformen und o.g. Beweisschritt für zu zeigende Aussagen der Form A → B anwenden. 4.3 Beweistechniken für Quantoren Zu zeigende Aussage vom Typ ∀x F (x). Hat eine zu zeigende Aussage die Form ∀x F (x), d.h. beginnt mit einem Allquantor, dann kann man diesen einfach weglassen indem man sagt “sei x beliebig aber fest”. Dieser Schritt scheint trivial, was aber hinter den Kulissen passiert ist, dass man aus der Variablen x eine Konstante macht und die zu zeigende Aussage dadurch vereinfacht. Beispiel 4.9 Zu zeigen: ∀x x ∈ A → xRx. Beweisschritt: Sei x beliebig aber fest. Zu zeigen: x ∈ A → xRx. Mathematisch sauberer wäre es, wenn man tatsächlich ein neues Konstantensymbol statt x verwenden würde, da dann keine Verwirrung entstehen könnte, was Variablen- und was Konstantensymbole sind. Beispiel 4.10 Zu zeigen: ∀x x ∈ A → xRx. Beweisschritt: Sei c beliebig aber fest. Zu zeigen: c ∈ A → cRc. Zu zeigende Aussage vom Typ ∃x F (x). Für diese Beweissituation gibt’s kein einfaches Rezept, und das ist auch V. Stahl Logik und Künstliche Intelligenz Seite 67 der Grund weshalb Beweise oft schwierig sind. Gefordert ist, dass man ein Objekt konstruiert, welches die durch F beschriebene Eigenschaft besitzt. Solch ein Objekt kann durch ein bereits eingeführtes Konstantensymbol beschrieben werden, oder allgemeiner durch einen Term, in dem nur bereits eingeführte Konstantensymbole vorkommen. Beispiel 4.11 Zu zeigen: ∀x ∃y y > x Beweisschritt: Sei x beliebig aber fest. Zu zeigen ∃y y > x. Beweisschritt: Sei y = x + 1. Zu zeigen: x + 1 > x. Trivial. Gelingt es wie in diesem Beispiel einen Term für ein Objekt mit der geforderten Eigenschaft zu finden, spricht man von einem konstruktiven Beweis. Leider lässt sich in der Mathematik aber nicht alles konstruktiv beweisen (schwieriges Thema. . . ). In diesen Fällen muss man einen Widerspruchsbeweis führen: Man nimmt an, dass es kein Objekt mit der geforderten Eigenschaft gibt, und leitet damit einen Widerspruch her. In obigem Beispiel würde ein Widerspruchsbeweis wie folgt laufen: Beispiel 4.12 Zu zeigen: ∃y y > x. Beweisschritt: Widerspruchsbeweis. Gegeben: ¬∃y y > x. Zu zeigen: Widerspruch. Beweisschritt: Äquivalente Umformung. Gegeben: ∀y y ≤ x. Beweisschritt: Ersetze die allquantifizierte Variable y durch den konstanten Term x + 1. Gegben: x + 1 ≤ x. Widerspruch. Zu zeigende Aussage vom Typ ∃!x F (x). Hier muss bewiesen werden, dass es genau ein x gibt, welches die durch F beschriebene Eigenschaft besitzt. Der Beweis kann in zwei Teile zerlegt werden: • Beweisen, dass es mindestens ein solches x gibt, d.h. ∃x F (x). V. Stahl Logik und Künstliche Intelligenz Seite 68 • Beweisen, dass es höchstens ein solches x gibt, d.h. ∀x1 , x2 (F (x1 ) ∧ F (x2 )) → x1 = x2 . Gegebene Aussage vom Typ ∀x F (x). Hat eine zu zeigende Aussage die Form ∀x F (x), d.h. beginnt mit einem Allquantor, kann man diesen weglassen und im Rest der Formel die freien Vorkommen von x durch einen beliebigen, konstanten Term ersetzen. Beispiel 4.13 Gegeben: ∀x ∃y x > y √ Beweisschritt:√Sei x = 2 Gegeben: ∃y 2 > y Klar, wenn eine Aussage für jedes Objekt wahr ist, dann auch für ein bestimmtes Objekt, das durch einen Term beschrieben wird. Gegebene Aussage vom Typ ∃x F (x). In diesem Fall weiss man, dass es ein Objekt gibt, welches die durch F beschriebene Eigenschaft besitzt. Man fährt fort, indem man dem Kind einen Namen gibt, d.h. ein neues Konstantensymbol c einführt und sagt “sei c so dass F (c) wahr ist. Dieses neue Objekt kann man in den nachfolgenden Beweisschritten verwenden. Beispiel 4.14 Gegeben: ∃x ∀y x ≤ y Beweisschritt: Sei c so dass . . . Gegeben: ∀y c ≤ y Gegebene Aussage vom Typ ∃!x F (x). Hier weiß man, dass es genau ein x gibt, das die durch F beschriebene Eigenschaft besitzt. Dieses Wissen kann man äquivalent durch zwei einfachere Formeln darstellen: • Es gibt mindestens ein x mit der Eigenschaft, d.h. ∃x F (x). • Es gibt höchstens ein x mit der Eigenschaft, d.h. ∀x1 , x2 (F (x1 ) ∧ F (x2 )) → x1 = x2 . Logik und Künstliche Intelligenz V. Stahl 4.4 Seite 69 Zusammenfassung Ausgangssituation Beweisschritt Regel Ann. z.zg. A→B — ¬A ∨ B — Ann. z.zg. — A→B A B Ann. z.zg. — ¬A A B, ¬B für beliebige Formel B Widerspruchsbeweis Ann. A∨B Fallunterscheidung z.zg. — Fall 1: A Fall 2: B — Ann. z.zg. — A∨B — ¬A → B Ann. z.zg. A∧B — A, B — Ann. z.zg. — A∧B — Schritt 1: A Schritt 2: B Ann. z.zg. A↔B — A durch B ersetzen A durch B ersetzen u.a. Einsetzen von Definitionen Ann. z.zg. — A↔B — (A → B) ∧ (B → A) Umformung Ann. z.zg. A, A → B — B — Umformung Wenn-dann Regel Umformung Zerlegen in Teilprobleme Modus Ponens Tabelle 4.1: Beweisregeln für Aussagenlogische Symbole Logik und Künstliche Intelligenz V. Stahl Seite 70 Ausgangssituation Beweisschritt Regel Ann. ∀x F (x) Spezialfall z.zg. — F (t) für beliebigen Term t ohne Variablen — Ann. — Elimination Allquantor z.zg. ∀x F (x) x beliebig aber fest (x ab jetzt Konstante) F (x) Ann. ∃x F (x) Benennen z.zg. — x so dass F (x) (x ab jetzt Konstante) — Ann. z.zg. — ∃x F (x) — F (t) für einen beliebigen Term t Ann. ∃!x F (x) z.zg. — Ann. z.zg. — ∃!x F (x) Beispiel konstruieren ∃x F (x), Umformung ∀x1 , x2 (F (x1 ) ∧ F (x2 )) → x1 = x2 — — ∃x F (x), Umformung ∀x1 , x2 (F (x1 ) ∧ F (x2 )) → x1 = x2 Tabelle 4.2: Beweisregeln für Quantoren V. Stahl 5 Logik und Künstliche Intelligenz Seite 71 Funktionen In diesem Kapitel wird gezeigt, dass auch eine Funktion nichts anderes als eine Menge ist. Bei der Konstruktion von Funktionen setzen wir dabei auf den bereits bekannten Relationen auf. Es stellt sich heraus, dass eine Funktion im Wesentlichen eine Relation mit speziellen Eigenschaften ist. Häufig wird unter einer Funktion eine Rechenvorschrift verstanden. So sagt z.B. die Funktion f (x) = x2 , dass man den Input x quadrieren muss, um zum zugehörigen Output zu kommen. Für Informatiker sind in Funktionen also eng mit Computer Programmen verwandt. Funktionen sind jedoch wesentlich allgemeiner und müssen weder mit Zahlen noch mit Rechnen zu tun haben. Ist z.B. M die Menge aller Studenten an der FH Heilbronn und für alle x ∈ M sei f (x) das Semester von x, dann ist f ebenfalls eine Funktion. Generell besteht eine Funktion also aus drei Dingen: • Einer Menge A aus der die Argumente (oder Inputs) kommen. Im Beispiel ist dies die Menge der Studenten. • Einer Menge B aus der die Funktionswerte (oder Outputs) kommen. Im Beispiel ist dies die Menge {1, 2, 3, . . .}. • Einer Zuordnung von jedem Element aus A zu genau einem Element der Menge B. So eine Zuordnung kann man durch eine Relation R ⊆ A×B beschreiben, die die spezielle Eigenschaft hat, dass es zu jedem a ∈ A genau ein b ∈ B gibt mit aRb. Aus der grafischen Darstellung der Mengen A und B und der Relationen R durch Pfeile zwischen allen Elementen a ∈ A und b ∈ B mit aRb, erhält man die grafische Darstellung einer Funktion, siehe Bild 5.1. Entscheidend ist, dass die Relation R jedem a ∈ A genau ein b ∈ B zuordnet. Die in Bild 5.2 dargestellten Objekte sind somit keine Funktionen obwohl auch hier zwei Mengen A, B und eine Relation R ⊆ A × B im Spiel sind! Andererseits darf zwei unterschiedlichen Elementen a1 , a2 ∈ A durchaus das selbe b ∈ B zugeordnet werden, siehe Bild 5.1. Für die Quadrat Funktion ist dies z.B. für a1 = 2 und a2 = −2 tatsächlich auch der Fall. 5.1 Rechtseindeutige Relationen Beispiel 5.1 Sei R ⊆ Z × Z die Relation R = {(a, b) | a ∈ Z, b ∈ Z, b = a3 }. Logik und Künstliche Intelligenz V. Stahl Seite 72 R ⊆ A×B A B Abbildung 5.1: Grafische Darstellung einer Funktion. Jedem a ∈ A wird genau ein b ∈ B zugeordenet. Es ist erlaubt, dass unterschiedliche a’s das selbe b bekommen. Es ist auch erlaubt, dass ein paar b’s leer ausgehen. A R ⊆ A×B B A R ⊆ A×B B Abbildung 5.2: Links: Keine Funktion weil einem a zwei b’s zugeordnet werden. Rechts: Keine Funktion weil einem a gar kein b zugeordnet wird. Offensichtlich hat R die Eigenschaft, dass es zu jedem a ∈ Z genau ein b ∈ Z gibt, so dass aRb. Daher kann man R auch als Zuordnung interpretieren, die jedem Argument a ∈ Z genau einen Funktionswert b = a3 ∈ Z zuordnet. Beispiel 5.2 Auch die in Bild 3.1 links dargestellte Relation σ hat die Eigenschaft, dass es zu jedem a ∈ N genau ein b ∈ N gibt, so dass b = a + 1. Die im gleichen Bild rechts dargestellte Relation ≡3 hat diese Eigenschaft jedoch nicht, da z.B. 2 ≡3 2 und 2 ≡3 5. Beispiel 5.3 Die in Bild 3.4 rechts dargestellte Relation hat die Eigenschaft, dass es zu jedem a ∈ R genau ein b ∈ R gibt mit b = a2 . Die im gleichen Bild links dargestellte Relation hat diese Eigenschaft jedoch nicht, da z.B. |2| = |2| und |2| = | − 2| V. Stahl Logik und Künstliche Intelligenz Seite 73 Definition 5.4 (Rechtseindeutig) Eine Relation R heißt rechtseindeutig, wenn es zu jedem a höchstens ein b gibt, so dass aRb. Ein erster Versuch, diese Definition in eine Formel zu packen, könnte so aussehen: rechtseindeutig(R) ↔ ∀a ∃b aRb. Dies ist jedoch nicht ganz korrekt: Es wird nicht gefordert, dass ein b existiert sondern höchstens ein b. “Höchstens ein” bedeutet entweder gar keins oder genau eines, aber eben nicht mehr als eines. Die Bedeutung des Existenzquantors ist jedoch “mindestens ein”, d.h. eins oder mehrere aber nicht keines. Wie kann man “höchstens ein” mit den bereits bekannten Symbolen formulieren? Etwas umständlich ausgedrückt würde es so gehen: Wenn es zwei Objekte mit der geforderten Eigenschaft gibt, dann müssen diese gleich sein. Den Pulitzer Preis wird man dafür zwar nicht bekommen, aber wenigstens müssen wir nicht noch mehr Symbole einführen. Die korrekte Formel für eine rechtseindeutige Relation ist somit rechtseindeutig(R) ↔ ∀a ∀b1 ∀b2 (aRb1 ∧ aRb2 ) → b1 = b2 . Relationale Datenbanken. Ein Konzept, das der Rechtseindeutigkeit sehr ähnlich ist, findet man in Datenbanken wieder. Man spricht dort von Schlüsseln. Die Personaldatenbank einer kleinen Firma könnte z.B. wie folgt aussehen: Vorname Nachname Hans Müller Dieter Müller Kurt Lang Hans Meier Personalnummer 10239087 76239872 23984751 83982136 Rolle Senior Manager Manager Manager Programmierer Die Spalte Personalnummer spielt eine besondere Rolle, da durch die Angabe der Personalnummer eindeutig eine Person festgelegt ist. Kennt man z.B. nur den Nachnamen Müller oder die Rolle Manager, ist nicht klar welche Person gemeint ist. Die Personalnummer wird daher Schlüssel genannt. Jede Spalte der Tabelle hat einen Typ, so haben z.B. Vorname, Nachname und Rolle den Typ String, während Personalnummer den Typ Integer hat. Mathematisch gesehen sind String und Integer nichts anderes als Mengen, nämlich die V. Stahl Logik und Künstliche Intelligenz Seite 74 Menge aller Zeichenketten und die Menge aller ganzer Zahlen. Die Tabelle kann somit als Relation R ⊆ String × String × Integer × String beschrieben werden. Es gilt z.B. (Dieter, Müller, 76239872, Manager) ∈ R während (Hans, Lang, 83982136, Manager) 6∈ R. Dass die Personalnummer Schlüssel von R ist, lässt sich nun wie folgt ausdrücken: für alle x3 ∈ Integer existiert höchstens ein x1 , x2 , x4 ∈ String so dass (x1 , x2 , x3 , x4 ) ∈ R Das “höchstens ein” bedeutet nicht, dass es zu jeder ganzen Zahl einen Mitarbeiter mit dieser Personalnummer geben muss, es bedeutet aber andererseits, dass keine zwei Mitarbeiter die selbe Personalnummer haben können. Das Konzept der Schlüssel in Datenbanken ist also im Wesentlichen eine Erweiterung des Begriffs der rechtseindeutigen Relation. Um einen noch engeren Zusammenhang herzustellen, kann man die Komponenten von R umordnen und gruppieren. Es entsteht dann eine Relation R ⊆ Integer × String3 mit z.B. Damit gilt 76239872, (Dieter, Müller, Manager) ∈ R. für alle x ∈ Integer existiert höchstens ein y ∈ String3 so dass (x, y) ∈ R, d.h. die Relation ist rechtseindeutig, da die Personalnummer Schlüssel ist. V. Stahl 5.2 Logik und Künstliche Intelligenz Seite 75 Partielle Funktionen Interpretiert man die linke Seite einer Relation als Argument und die rechte Seite als Funktionswert, so sieht man, dass Funktionen im Prinzip nichts anderes sind als spezielle Relationen. Die Einschränkung, die man dabei aber machen muss ist, dass jedem Argumentwert nur höchstens ein Funktionswert zugeordnet ist. Dies ist der entscheidende Unterschied zwischen einer Relation und einer partiellen Funktion. Stellt man die härtere Forderung, dass jedem Argument genau ein Funktionswert zugeordnet wird, erhält man (totale) Funktionen. Das in Bild 5.2 rechts dargestellte Objekt ist eine partielle Funktion aber keine (totale) Funktion. Im Folgenden seien A, B Mengen und R ⊆ A × B eine Relation. Ein rein verwaltungstechnischer Unterschied zwischen einer rechtseindeutigen Relation und einer partiellen Funktion ist, dass man bei der partiellen Funktion die Mengen A und B noch mit abspeichert. Definition 5.5 (Partielle Funktion) Ein Tripel f = (A, B, R) heißt partielle Funktion, wenn • R ⊆ A × B ist und • R rechtseindeutig ist, d.h. für jedes a ∈ A höchstens ein b ∈ B existiert mit aRb. Die Relation R heißt hierbei Graph der Funktion f . Beachten Sie, dass bei der Definition einer partiellen Funktion nicht nur der Graph R von f sondern auch die Mengen A und B angegeben werden müssen! Ist f = (A, B, R) eine partielle Funktion und a ∈ A, so existiert höchstens ein Element b ∈ B mit aRb. Dieses Element wird auch kurz mit f (a) bezeichnet und Funktionswert von a genannt, falls es existiert. Man sagt daher auch, dass f Elemente der Menge A auf Elemente der Menge B abbildet oder noch einfacher f ist eine partielle Funktion von A nach B. Logik und Künstliche Intelligenz V. Stahl 5.3 Seite 76 Definitionsbereich, Wertebereich Definition 5.6 (Definitionsbereich, Wertebereich) Sei f = (A, B, R) eine partielle Funktion. • Der Definitionsbereich def(f ) ⊆ A von f ist def(f ) = {a ∈ A | es existiert ein b ∈ B so dass aRb } = {a | a ∈ A ∧ ∃b b ∈ B ∧ aRb} • Der Wertebereich bild(f ) ⊆ B von f (auch Bild von f genannt) ist bild(f ) = {b ∈ B | es existiert ein a ∈ A so dass aRb } = {b | b ∈ B ∧ ∃a a ∈ A ∧ aRb} Bemerkung. Das Bild von f kann man auch kompakt schreiben als bild(f ) = {f (a) | a ∈ def(f )}. Man schreibt hierfür auch oft f (A). Ist f = (A, B, R) eine partielle Funktion, dann ist garantiert, dass es zu jedem a ∈ A höchstens einen Funktionswert f (a) gibt. Es kann aber durchaus passieren, dass es zu einem a keinen Funktionswert gibt. Man sagt dann auch dass f an der Stelle a eine Definitionslücke hat bzw. f (a) undefiniert ist. Beispiel 5.7 In Bild 5.3 ist eine partielle Funktion f = (A, B, R) dar1 4 5 2 6 7 3 R ⊆ A×B A B Abbildung 5.3: Partielle Funktion. Logik und Künstliche Intelligenz V. Stahl Seite 77 gestellt mit A = {1, 2, 3} B = {4, 5, 6, 7} R = {(1, 4), (3, 6)}. Es gilt somit f (1) = 4 und f (3) = 6 während f (2) undefiniert ist. Die Funktion hat also an der Stelle 2 eine Definitionslücke. Weiterhin ist def(f ) = {1, 3} bild(f ) = {4, 6}. Beispiel 5.8 Sei f = R, R, {(a, b) | a ∈ R, b ∈ R, ab = 1} Dies ist die Kehrwertsfunktion f (x) = 1/x, die für x = 0 nicht definiert ist. Der Definitionsbereich von f ist def(f ) = R \ {0}, d.h. f hat an der Stelle 0 eine Definitionslücke. 5.4 Totale Funktionen Wenn eine partielle Funktion keine Definitionslücken hat, nennt man sie auch totale Funktion (oder einfach Funktion). Definition 5.9 (Totale Funktion) Eine partielle Funktion f = (A, B, R) heißt total wenn def(f ) = A. Eine totale Funktion f = (A, B, R) ordnet also jedem a ∈ A genau ein b ∈ B zu. Man sagt auch f ist auf ganz A definiert. Statt totaler Funktion sagt man auch einfach Funktion von A nach B. Für eine totale Funktion f = (A, B, R) gilt also, dass jedem a ∈ A genau ein b ∈ B zugeordnet wird, d.h. ∀a a ∈ A → (∃!b b ∈ B ∧ aRb). Etwas lesbarer werden solche Formeln, wenn man direkt zu den Quantoren dazuschreibt aus welcher Menge die quantifizierten Variablen kommen sollen, d.h. ∀a ∈ A ∃!b ∈ B aRb. V. Stahl Logik und Künstliche Intelligenz Seite 78 Solche Quantoren werden relativierte Quantoren genannt. Für Beweise eignet sich die ausführliche Darstellung jedoch besser, da hier die einzelnen Beweisschritte quasi schon dastehen. Eigentlich braucht man den genau–ein–Existenzquantor ∃! gar nicht, sondern kann ihn durch die anderen Symbole ersetzen: Genau ein bedeutet mindestens ein und gleichzeitig höchstens ein. Mindestens ein ist die Bedeutung des normalen Existenzquantors, höchstens ein kann man wie in Kapitel 5.1 gezeigt formulieren. Somit erhält man folgende Formel für die Aussage “zu jedem a ∈ A gibt es genau ein b ∈ B mit aRb”: ∀a ∈ A ∃b ∈ B aRb) ∧ ∀a ∀b1 ∀b2 (aRb1 ∧ aRb2 ) → b1 = b2 . | {z } | {z } mindestens ein höchstens ein Definition 5.10 (Menge der partiellen bzw. totalen Funktionen) Die Menge der partiellen Funktionen von A nach B wird mit A ⇀ B bezeichnet, d.h. A ⇀ B = {f | ∃R f = (A, B, R) ∧ R ⊆ A × B ∧ ∀a ∈ A ∀b1 ∈ B ∀b2 ∈ B (aRb1 ∧ aRb2 ) → b1 = b2 }. Die Menge der totalen Funktionen von A nach B wird mit A → B bezeichnet, d.h. A → B = {f | ∃R f = (A, B, R) ∧ R ⊆ A × B ∧ ∀a ∈ A ∃!b ∈ B aRb}. Um also auszudrücken, dass f eine totale Funktion von A nach B ist, kann man einfach schreiben f ∈ A → B. In der mathematischen Literatur wird statt des ∈ Symbols meistens ein Doppelpunkt verwendet, d.h. f : A → B. Dies ist historisch bedingt und führt dazu, dass sich heute viele Mathematiker gar nicht bewusst sind, was A → B wirklich bedeutet. Bemerkung. Manchmal wird die Menge der Funktionen von A nach B auch mit B A bezeichnet. Dies ist dadurch motiviert, dass es für endliche Mengen A, B genau |B||A| Funktionen von A nach B gibt. V. Stahl Logik und Künstliche Intelligenz Seite 79 Definition 5.11 (n-stellige Funktion) Ist f = (An , B, R) eine Funktion, so sagt man auch f ist n-stellige Funktion auf A. Definition 5.12 (m-wertige Funktion) Ist f = (A, B m , R) eine Funktion, so sagt man auch f ist m-wertige Funktion auf B. Beispiel 5.13 Die Funktion f ∈ R → R, f (x) = x2 ist eine einstellige und einwertige Funktion auf R. Beispiel 5.14 Die Funktion f ∈ N × N → N, f (x, y) = x + y ist eine zweistellige Funktion auf N, siehe Bild 5.4. Der Graph von f ist in diesem Fall die Relation (1, 1), 2 , (3, 4), 7 , (2, 5), 7 , . . . . (1, 1) ... 2 (2, 5) 7 (3, 4) ... ... N×N N Abbildung 5.4: Grafische Darstellung der Additionsfunktion + ∈ N×N → N. Beispiel 5.15 Die Funktion f ∈ Z3 → Z2 , f (x, y, z) = (xy, xz) ist eine dreistellige und zweiwertige Funktion auf Z. Für zweistellige Funktionen verwendet man häufig die sog. Infixnotation, d.h. das Funktionssymbol steht zwischen den Operanden, z.B. a + b oder a/b und nicht wie üblich davor, d.h. +(a, b) oder /(a, b). V. Stahl 5.5 Logik und Künstliche Intelligenz Seite 80 Erweiterung Angenommen Sie haben ein Java Funktion geschrieben, die von einer int Zahl die Quersumme berechnet. Früher oder später wird ein Benutzer kommen und sich beschweren, dass das Programm nur Zahlen bis 231 − 1 akzeptiert, aber eben nicht größere. Sie müssten dann das Programm so modifizieren, dass es beliebig große Zahlen verarbeiten kann, z.B. unter Verwendung des Typs BigInteger. Was Sie dabei gemacht haben, ist die ursprüngliche Funktion f ∈ int → int zu erweitern zu einer Funktion f ∈ Z → Z, siehe Bild 5.5. Dieser Prozess tritt häufig auf wenn im Nachhinein zusätzliche 5 000 000 000 5 23 48 ... 12 192 ... ... int int Z Z Abbildung 5.5: Erweiterung der Quersummenfunktion von int → int nach Z → Z. Features verlangt werden. Wir werden später darauf zurückkommen wenn wir Ringe und Körper erweitern und damit Polynome und komplexe Zahlen konstruieren. Definition 5.16 (Erweiterung) Seien f = (A, B, R) und g = (A′ , B ′ , R′ ) zwei Funktionen. Dann heißt g Erweiterung von f wenn A ⊆ A′ , B ⊆ B ′ und R ⊆ R′ . V. Stahl Beispiel 5.17 N. Logik und Künstliche Intelligenz Seite 81 Die Addition auf Z ist eine Erweiterung der Addition auf Nimmt man die Definition der Erweiterung wörtlich, stellt man fest, dass jede Funktion Erweiterung von sich selbst ist. Das klingt vertraut — in der Tat ist “Erweiterung von” eine reflexive, transitive und antisymmetrische Relation, d.h. eine Halbordnung auf der Menge der Funktionen. Es gibt also Relationen von Funktionen, Funktionen von Relationen, Mengen von Funktionen von Funktionen von Relationen usw. Mathematik ist wie Lego . . . . 5.6 Komposition von Funktionen Angenommen man hat zwei Funktionen f ∈ A → B und g ∈ B → C, d.h. g bezieht seine Argumente aus genau der Menge, wo f seine Ergebnisse abliefert. Für jedes a ∈ A kann man dann zuerst f anwenden und auf das Ergebnis g. Was dabei herauskommt ist g(f (a)) ∈ C. Es handelt sich also um eine Funktion, die Elemente aus A auf Elemente aus C abbildet. Diese Funktion wird mit g ◦ f bezeichnet, d.h. g◦f ∈A→C und heißt Komposition von g und f . A f B g C gÆf Abbildung 5.6: Funktionskomposition Definition 5.18 (Komposition) Seien f ∈ A → B und g ∈ B → C zwei Funktionen. Die Komposition g ◦ f von f und g ist definiert durch g◦f ∈A→C (g ◦ f )(a) = g(f (a)). Logik und Künstliche Intelligenz V. Stahl Seite 82 Für die in Bild 5.7 dargestellte Funktion g ◦ f ∈ A → C Beispiel 5.19 gilt (g ◦ f )(1) = 8 (g ◦ f )(2) = 10 (g ◦ f )(3) = 10. 4 1 8 5 2 6 3 9 10 7 f A g B C Abbildung 5.7: Komposition zweier Funktionen. Beispiel 5.20 Sei f ∈ Z → N0 , g ∈ N0 → N, f (a) = a2 und g(a) = a + 1. Dann ist g ◦ f ∈ Z → N, (g ◦ f )(a) = g(f (a)) = a2 + 1. Was immer wieder zu Fehlern führt, ist die Reihenfolge der Argumente in der Funktionskomposition. So bedeutet g ◦ f , dass man zuerst f ausführt und auf das Ergebnis g anwendet. Man liest g ◦ f daher auch als “g nach f ”. Die Reihenfolge ist deshalb wichtig, weil im Allgemeinen gilt g ◦ f 6= f ◦ g. Damit die Komposition f ◦g überhaupt definiert ist, muss die Bildmenge von g gleich der Argumentmenge von f sein, was im vorigen Beispiel gar nicht der Fall ist. Selbst wenn sowohl g ◦ f als auch f ◦ g definiert sind, sind sie trotzdem in der Regel verschieden. Logik und Künstliche Intelligenz V. Stahl Beispiel 5.21 Seite 83 Sei f ∈ Z → N0 , g ∈ N0 → Z, f (a) = a2 und g(a) = a − 3. Dann ist sowohl g ◦ f als auch f ◦ g definiert: g ◦ f ∈ Z → Z, g(f (a)) = a2 − 3 und f ◦ g ∈ N0 → N0 , f (g(a)) = (a − 3)2 = a2 − 6a + 9 und somit g ◦ f 6= f ◦ g. Beispiel 5.22 Sei f ∈ N2 → N, f (a1 , a2 ) = a1 + a2 und g ∈ N → Z × N, g(a) = (1 − a, 3a). Dann ist g ◦ f ∈ N2 → Z × N mit (g ◦ f )(a1 , a2 ) = g(f (a1 , a2 )) = g(a1 + a2 ) = 1 − (a1 + a2 ), 3(a1 + a2 ) = (1 − a1 − a2 , 3a1 + 3a2 ). Andererseits ist f ◦ g nicht definiert. Beispiel 5.23 Sei f ∈ N → N, g ∈ N → N, f (a) = 3a und g(a) = a + 1 Dann ist sowohl g ◦ f als auch f ◦ g definiert: g ◦ f ∈ N → N, g(f (a)) = g(3a) = 3a + 1 und f ◦ g ∈ N → N, f (g(a)) = f (a + 1) = 3(a + 1) = 3a + 3 und somit g ◦ f 6= f ◦ g. Was genau ist eigentlich die Funktionskomposition? Sie nimmt zwei zueinander passende Funktionen und liefert eine neue Funktion. Somit handelt es sich um eine zweistellige partielle Funktion auf der Menge der Funktionen. V. Stahl Logik und Künstliche Intelligenz Seite 84 Partiell deshalb, weil man nicht zwei beliebige Funktionen hintereinander ausführen kann sondern nur zueinander kompatible. Sei also F = {f | ∃A ∃B ∃R f = (A, B, R) ∧ R ⊆ A × B ∧ ∀a ∈ A ∃!b ∈ B aRb} die Menge aller Funktionen. Dann ist ◦ ∈ F × F ⇀ F aber ◦ 6∈ F × F → F. Man kann nun weitergehen und die Menge aller Paare von Funktionen definieren, die hintereinander ausgeführt werden können. Dies wäre K = {(f, g) | ∃A ∃B ∃C ∃Rf ∃Rg f = (A, B, Rf ) ∧ g = (B, C, Rg ) ∧ Rf ⊆ A × B ∧ Rg ⊆ B × C ∧ ∀a ∈ A ∃!b ∈ B aRf b ∧ ∀b ∈ B ∃!c ∈ C bRg c} ⊆ F × F. Damit ließe sich dann sagen, dass ◦ eine Funktion von K nach F ist, d.h. ◦ ∈ K → F. 5.7 Surjektiv, injektiv, bijektiv Schauen wir uns die beiden Funktionen f ∈ Q → Q f (a) = a2 g ∈ Q → Q+ g(a) = a2 0 an. Die Funktionen sind zwar sehr ähnlich, wenn man aber die Definition von Funktionen wörtlich nimmt, muss man zugeben dass sie nicht gleich sind: f = (Q, Q, Rf ), g = (Q, Q+ 0 , Rg ). Zwei Tripel sind genau dann gleich wenn alle Komponenten gleich sind. Da Q 6= Q+ 0 , unterscheiden sich f und g in der zweiten Komponente und somit ist f 6= g. Was die zwei Funktionen aber so ähnlich macht ist, dass sie den selben Graph haben. Rf = {(a, b) | a ∈ Q, b ∈ Q, b = a2 } 2 = {(a, b) | a ∈ Q, b ∈ Q+ 0 ,b = a } = Rg . Logik und Künstliche Intelligenz V. Stahl Seite 85 In gewisser Weise ist es also verschwenderisch, in der zweiten Komponenten von f alle rationalen Zahlen zu nehmen — die nicht negativen hätten’s auch schon getan. Eine Funktion, die in diesem Sinne ökonomisch ist, heißt surjektiv. Die Menge in der zweiten Komponente beinhaltet dann nur genau die Elemente, die auch als Funktionswerte auftreten können, d.h. zu jedem b ∈ Q+ 0 gibt’s auch ein a ∈ Q so dass g(a) = b. Definition 5.24 (Surjektive Funktion) Eine Funktion f = (A, B, R) heißt surjektiv wenn es zu jedem b ∈ B (mindestens) ein a ∈ A gibt mit aRb: ∀b ∈ B ∃a ∈ A aRb. Gleichbedeutend kann man auch sagen bild(f ) = B. A R ⊆ A×B B A R ⊆ A×B B Abbildung 5.8: Links: surjektive Funktion. Rechts: nicht surjektive Funktion. Beispiel 5.25 Die Addition + ∈ Z2 → Z ist surjektiv. Zu jedem b ∈ Z gibt es ein Paar a = (a1 , a2 ) ∈ Z2 so dass a1 + a2 = b ist. Man kann z.B. immer a2 = 0 und a1 = b nehmen. Beispiel 5.26 Die Addition + ∈ N2 → N ist nicht surjektiv: Für b = 1 gibt es kein Paar von natürlichen Zahlen a = (a1 , a2 ) ∈ N2 so dass a = a1 + a2 = 1. Für alle anderen b′ s aus N würde es gehen, aber der Allquantor ist in der Hinsicht ziemlich kompromisslos. Theorem 5.27 Ist f = (A, B, R) eine Funktion, dann ist (A, bild(f ), R) eine surjektive Funktion. Logik und Künstliche Intelligenz V. Stahl Seite 86 Abgesehen davon, dass sie nicht surjektiv ist, ist die oben beschriebenen Funktion f ist noch auf eine zweite Weise redundant. √ positiven √ Zu jedem ′ b ∈ Q gibt es zwei a s in Q so dass f (a) = b, nämlich b und − b. Diese b’s fahren sozusagen zweigleisig. Dem kann man Einhalt gebieten, z.B. indem man die Funktion auf nicht negative Argumente einschränkt. Man erhält dann h ∈ Q+ h(a) = a2 . 0 → Q, Eine Funktion, die in diesem Sinne eingleisig fährt, heißt injektiv. Zu jedem b ∈ Q gibt’s höchstens ein a ∈ Q+ 0 so dass h(a) = b. Definition 5.28 (Injektive Funktion) Eine Funktion f = (A, B, R) heißt injektiv wenn es zu jedem b ∈ B höchstens ein a ∈ A gibt mit aRb: ∀a ∈ A ∀a′ ∈ A ∀b ∈ B (aRb ∧ a′ Rb) → a = a′ . Gleichbedeutend kann man auch sagen, dass unterschiedliche Argumente auf unterschiedliche Funktionswerte abgebildet werden müssen: ∀a ∈ A ∀a′ ∈ A a 6= a′ → f (a) 6= f (a′ ). A R ⊆ A×B B A R ⊆ A×B B Abbildung 5.9: Links: injektive Funktion. Rechts: nicht injektive Funktion. Beispiel 5.29 Die Addition + ∈ N2 → N ist nicht injektiv. Für b = 3 gibt’s sowohl a = (1, 2) ∈ N2 als auch a = (2, 1) ∈ N2 . Beispiel 5.30 Die Funktion f ∈ N → N2 mit f (a) = (a + 3, 2a) ist injektiv. Es gibt zwar nicht zu jedem Paar b = (b1 , b2 ) ∈ N2 ein a ∈ N mit f (a) = b (man nehme z.B. b = (1, 1), die Funktion ist also nicht surjektiv) aber zu den Paaren b ∈ N2 wo’s ein a gibt (z.B. b = (5, 4)), gibt’s nur ein einziges a ∈ N (im Beispiel a = 2). V. Stahl Logik und Künstliche Intelligenz Seite 87 Da die Definitionen sehr ähnlich sind und sich nur in der Reihenfolge der Quantoren und durch mindestens, höchstens und genau ein unterscheiden, nochmal eine kurze Zusammenfassung: Merkregel 5.31 Ein Tripel f = (A, B, R) mit R ⊆ A × B ist eine . . . • partielle Funktion wenn zu jedem a höchstens ein b mit aRb existiert. • totale Funktion wenn zu jedem a genau ein b mit aRb existiert. Eine totale Funktion f = (A, B, R) ist . . . • surjektiv wenn zu jedem b (mindestens) ein a mit aRb existiert. • injektiv wenn zu jedem b höchstens ein a mit aRb existiert. Es gibt Funktionen, die weder injektiv noch surjektiv sind. Es gibt auch Funktionen, die injektiv aber nicht surjektiv oder surjektiv aber nicht injektiv sind. Und schließlich gibt’s noch die Funktionen, die sowohl injektiv als auch surjektiv sind: Definition 5.32 (Bijektive Funktion) Eine Funktion heißt bijektiv, wenn sie injektiv und surjektiv ist. Eine bijektive Funktion f = (A, B, R) ist eine eins zu eins Zuordnung: Zu jedem a ∈ A gibt’s genau ein b ∈ B (weil f eine Funktion ist) und zu jedem b ∈ B gibt’s genau ein a ∈ A (weil f bijektiv ist). Jedes a weiß wo’s hingehört und jedes b weiß wo’s herkommt. Da freut sich der Mathematiker. Beispiel 5.33 Sei A = {x|x ∈ R, 0 ≤ x ≤ 1} die Menge der reellen Zahlen zwischen 0 und 1. Dann ist f ∈ A → A, f (x) = x2 injektiv, surjektiv und somit bijektiv. Um von einer Funktion zu entscheiden ob sie bijektiv ist, prüft man ob sie surjektiv und injektiv ist. Erfüllt sie eine der beiden Eigenschaften nicht, ist sie auch nicht bijektiv. Logik und Künstliche Intelligenz V. Stahl bijektiv R ⊆ A×B A weder injektiv noch surjektiv B A injektiv aber nicht surjektiv A R ⊆ A×B Seite 88 B R ⊆ A×B B nicht injektiv aber surjektiv A R ⊆ A×B B Abbildung 5.10: Überblick injektiv und surjektiv. Wie entscheidet man nun von einer gegebenen Funktion f ∈ A → B ob sie surjektiv ist? • Zunächst sucht man sich ein paar Beispiele b ∈ B und prüft, ob es zu jedem dieser b’s auch ein a ∈ A gibt, so dass f (a) = b. Bei der Wahl der Beispiele sollte man darauf achten, dass die Menge B hierdurch gut repräsentiert ist. Ist z.B. B = Z sollte man sowohl positive als auch negative Zahlen prüfen. Auch Spezialfälle wie z.B. 0 und besonders große oder kleine Zahlen sollten unter den Beispielen sein. Es können nun zwei Dinge passieren: • Es gibt ein Beispiel b, für das man kein entsprechendes a ∈ A findet mit f (a) = b. Hier besteht der Verdacht, dass f nicht surjektiv ist. Es könnte aber auch sein, dass man das zugehörige a nur übersehen hat. Wenn A endlich ist, kann man alle Elemente von A durchprobieren, andernfalls geht man wie folgt vor: – Zu zeigen: Es gibt kein a ∈ A mit f (a) = b, d.h. ¬∃a ∈ A f (a) = b. Laut Theorem 7.25 ist dies gleichbedeutend mit ∀a ∈ A f (a) 6= b. V. Stahl Logik und Künstliche Intelligenz Seite 89 – Elimination des Allquantors: Sei a ∈ A beliebig aber fest. Zu zeigen f (a) 6= b. – An dieser Stelle muss man die Definition von f einsetzen um weiterrechnen zu können. • Wenn man andererseits für alle Beispiele b ein a ∈ A gefunden hat mit f (a) = b, so besteht der Verdacht, dass f surjektiv ist. Je mehr Beispiele geprüft wurden, desto begründeter ist dieser Verdacht. Ganz sicher kann man sich dabei aber nicht sein, außer wenn B endlich ist und man alle Elemente von b geprüft hat. Andernfalls geht man wie folgt vor: – Zu zeigen: f ist surjektiv, d.h. ∀b ∈ B ∃a ∈ A f (a) = b. – Elimination des Allquantors: Sei b ∈ B beliebig aber fest. Zu zeigen ∃a ∈ A f (a) = b. – So. Jetzt hat man eine Formel, die mit einem Existenzquantor beginnt und so etwas zu beweisen ist wirklich schwer. Entweder man findet einen Term, mit dem man das gesuchte a in Abhängigkeit von b berechnen kann — was darauf hinausläuft die Gleichung f (a) = b nach a aufzulösen — oder man behilft sich mit folgendem Trick: – Widerspruchsbeweis: Man nimmt das Gegenteil an von dem was man beweisen möchte und führt das zu einem Widerspruch. Das ist ähnlich wie bei einem Gerichtsprozess — wenn der Angeklagte beginnt sich in Widersprüche zu verwickeln, weiss man dass er gelogen hat. Die Annahme ist also ¬∃a ∈ A f (a) = b. Durch logische Umformung nach Theorem 7.25 erhält man ∀a ∈ A f (a) 6= b. Unter Verwendung dieser Aussage muss man nun einen Widerspruch herleiten. Hierzu muss man im nächsten Schritt wieder auf die Definition von f zurückgreifen. Logik und Künstliche Intelligenz V. Stahl Beispiel 5.34 Seite 90 Sei f ∈ R → R, f (a) = a2 . • Wir wählen das Beispiel b = −2 und finden kein a ∈ R so dass a2 = −2. • Es entsteht also der Verdacht, dass es kein a ∈ R gibt mit f (a) = −2. – Zu zeigen: Es gibt kein a ∈ R so dass f (a) = −2, d.h. ¬∃a ∈ R f (a) = −2. Umformung ergibt ∀a ∈ R f (a) 6= −2. – Sei a ∈ R beliebig aber fest. Zu zeigen f (a) 6= −2. – Einsetzen der Definition von f . Zu zeigen a2 6= −2. – Bekannt ist die Tatsache ∀x ∈ R x2 ≥ 0. Wenn das für alle x ∈ R gilt, dann sicher auch für x = a. Also hat man a2 ≥ 0. Hieraus folgt a2 6= −2. Beispiel 5.35 Sei f ∈ Z × Z → Z, f (a1 , a2 ) = a1 + a2 . • Zunächst ein paar Beispiele: – Für b = 3 findet man a = (1, 2). – Für b = 0 findet man a = (−3, 3). – Für b = −10 findet man a = (−5, −5). • Es entsteht also der Verdacht dass f surjektiv ist. – Zu zeigen: ∀b ∈ Z ∃a ∈ Z2 f (a) = b. – Sei b ∈ Z beliebig aber fest. Zu zeigen: ∃a ∈ Z2 f (a) = b. – Mit der Wahl a = (0, b) gilt f (a) = b. Analog geht man vor um von einer gegebenen Funktion f ∈ A → B zu entscheiden ob sie injektiv ist. Logik und Künstliche Intelligenz V. Stahl Seite 91 • Zunächst sucht man sich ein paar Beispiele a ∈ A und berechnet die zugehörigen Funktionswerte b = f (a). Dann versucht man a′ ∈ A mit a 6= a′ zu finden so dass b = f (a′ ) Gelingt dies, ist f nicht injektiv da es zwei verschiedene a’s gibt, die auf das selbe b abgebildet werden und wir sind fertig. Andernfalls liegt der Verdacht nahe, dass f injektiv ist. Ist A endlich, so kann man einfach für alle a,′ ∈ A mit a 6= a′ prüfen dass f (a) 6= f (a′ ). Falls A unendlich ist, ist dies nicht machbar. • Der Beweis, dass f injektiv ist, verläuft wie folgt: – Zu zeigen: ∀a ∈ A ∀a′ ∈ A a 6= a′ → f (a) 6= f (a′ ). – Elimination des Allquantors. Sei a ∈ A und a′ ∈ A beliebig aber fest. Zu zeigen a 6= a′ → f (a) 6= f (a′ ). – Oft ist es einfacher, die Formel an dieser Stelle umzuformen. Eine äquivalente Formel ist f (a) = f (a′ ) → a = a′ . – Gegeben f (a) = f (a′ ). Zu zeigen a = a′ . – An dieser Stelle kann man nicht weiterrechnen ohne die Definition von f einzusetzen. Man beginnt dann mit der Gleichung f (a) = f (a′ ) und formt so lang um, bis a = a′ rauskommt. Beispiel 5.36 Sei f ∈ R → R, f (a) = a2 . Wir wählen das Beispiel a = 2 und finden den Funktionswert b = f (2) = 4. Man sucht nun ein a′ ∈ A mit a′ 6= 2 so dass f (a′ ) = 4. In der Tat hat a′ = −2 diese Eigenschaften. Zu b = 4 gibt’s also zwei verschiedene a’s, nämlich 2 und −2 und damit ist f nicht injektiv. Beispiel 5.37 f (a) = a2 . Sei A = {x|x ∈ R, −1 ≤ x ≤ 0} und f ∈ A → R, Logik und Künstliche Intelligenz V. Stahl Seite 92 • Zunächst wieder ein paar Beispiele – Für b = 1 ist a = −1 das einzige a ∈ A mit f (a) = b. – Für b = 0 ist a = 0 das einzige a ∈ A mit f (a) = b. – Für b = 3 oder b = −4 existiert kein a ∈ A mit f (a) = b. Das macht aber nichts — die Eigenschaft injektiv verlangt ja nur, dass es nicht mehr als ein a gibt. • Es entsteht somit der Verdacht, dass f injektiv ist. – Zu zeigen: ∀a ∈ A ∀a′ ∈ A a 6= a′ → f (a) 6= f (a′ ). – Sei a ∈ A und a′ ∈ A beliebig aber fest. Zu zeigen a 6= a′ → f (a) 6= f (a′ ). – Umformen. Zu zeigen f (a) = f (a′ ) → a = a′ . – Gegeben f (a) = f (a′ ). Zu zeigen a = a′ . – Einsetzen der Definition von f : Gegeben a2 = a′2 . Durch Wurzelziehen auf beiden Seiten erhält man |a| = |a′ |. – Einsetzen der Definition von A in die Annahme a ∈ A und a′ ∈ A ergibt a ≤ 0 und a′ ≤ 0. Daraus folgt Also bzw. |a| = −a und |a′ | = −a′ . −a = −a′ a = a′ . 5.8 Umkehrfunktion Hat man eine Funktion f ∈ A → B und ein bestimmtes Element b ∈ B, so kann man sich fragen, welche Elemente a aus A durch f auf b abgebildet werden. Dies kann genau ein Element sein, mehrere oder aber gar keins. Von besonderem Interesse ist natürlich der Fall, wo zu jedem b ∈ B genau ein a ∈ A existiert, so dass f (a) = b, d.h. wenn f bijektiv ist. In diesem Fall kann man nämlich eine Funktion g ∈ B → A definieren, die jedem b ∈ B das entsprechende a ∈ A zuordnet. Diese Funktion nennt man naheliegenderweise Umkehrfunktion von f . Logik und Künstliche Intelligenz V. Stahl Beispiel 5.38 Seite 93 Sei f ∈ N0 → N, f (a) = a + 1. Offensichtlich gibt es zu jedem b ∈ N genau ein a ∈ N0 mit f (a) = b. Für ein gegebenes b ∈ N erhält man das zugehörige a ∈ N0 durch a = b − 1. Diese Zuordnung ist nichts anderes als die Funktion g ∈ N → N0 , g(b) = b − 1. Stellt man f und g als Tripel dar, wird das Prinzip der Konstruktion einer Umkehrfunktion klar: f = N0 , N, {(0, 1), (1, 2), (2, 3), . . .} g = N, N0 , {(1, 0), (2, 1), (3, 2), . . .} Es werden lediglich die ersten beiden Komponenten vertauscht und die Relation in der dritten Komponente wird durch ihre Umkehrrelation ersetzt. Im Prinzip kann man zu jeder Funktion f = (A, B, R) auf diese Weise das Tripel g = (B, A, R−1 ) bilden. Was dabei herauskommt ist jedoch nur dann eine Funktion wenn f bijektiv ist. Beispiel 5.39 Sei f ∈ Z → N0 mit f (a) = a2 . Somit ist f = (Z, N0 , R) = Z, N0 , {. . . (−2, 4), (−1, 1), (0, 0), (1, 1), (2, 4), . . .} . Vertauscht man die ersten zwei Mengen und geht zur Umkehrrelation über, erhält man g = (N0 , Z, R−1 ) = N0 , Z, {. . . (4, −2), (1, −1), (0, 0), (1, 1), (4, 2), . . .} . Das ist keine Funktion! Die Forderung, dass es zu jedem a ∈ N0 genau ein b ∈ Z mit aR−1 b gibt, ist nicht erfüllt. Logik und Künstliche Intelligenz V. Stahl Seite 94 • Zu a = 4 ∈ N0 gibt es gleich zwei b’s aus Z (nämlich b = 2 und b = −2) mit aR−1 b. • Weiterhin gibt’s z.B. für a = 3 ∈ N0 gar kein b ∈ Z mit aR−1 b. Theorem 5.40 Ist f = (A, B, R) eine bijektive Funktion, dann ist auch g = (B, A, R−1 ) eine bijektive Funktion. Beweis. • Zu zeigen: Für alle A, B, R gilt wenn f = (A, B, R) eine bijektive Funktion ist, dann ist g = (B, A, R−1 ) eine bijektive Funktion. • Sei A, B, R beliebig aber fest. – Gegeben f = (A, B, R) ist eine bijektive Funktion. – Zu zeigen g = (B, A, R−1 ) ist eine bijektive Funktion. • Einsetzen der Defintion einer bijektiven Funktion. – Gegeben: ∀a | ∈ A ∃!b {z∈ B aRb} f ist Funktion und ∀b | ∈ B ∃!a {z∈ A aRb} f ist bijektiv und ∀a ∈ B bR−1 a} | ∈ A ∃!b{z g ist bijektiv – Zu zeigen: −1 ∀b | ∈ B ∃!a{z∈ A bR a} g ist Funktion • Einsetzen der Definition von R−1 : Da aRb genau dann wenn bR−1 a, bleibt zu zeigen ∀b ∈ B ∃!a ∈ A aRb und ∀a ∈ A ∃!b ∈ B aRb. Vertauscht man die Reihenfolge dieser beiden Formeln, steht genau die Annahme da dass f eine bijektive Funktion ist. Logik und Künstliche Intelligenz V. Stahl Seite 95 Definition 5.41 (Umkehrfunktion) Die Umkehrfunktion einer bijektiven Funktion f = (A, B, R) ist die Funktion g = (B, A, R−1 ). Statt Umkehrfunktion sagt man auch inverse Funktion. Zu einer bijektiven Funktion sagt man daher auch sie sei invertierbar. In der grafischen Darstellung erhält man die Umkehrfunktion einer bijektiven Funktion einfach indem man die Pfeile umdreht, siehe Bild 5.11. A f ∈A→B f −1 ∈ B → A R ⊆ A×B R−1 ⊆ B × A B A B Abbildung 5.11: Umkehrfunktion. Notation 5.42 Die Umkehrfunktion einer bijektiven Funktion f wird mit f −1 bezeichnet. Invertiert man eine Funktion zweimal, landet man wieder bei der Ausgangsfunktion: Ist f = (A, B, R) dann ist −1 −1 f −1 = B, A, R−1 = A, B, (R−1 )−1 = (A, B, R) = f. Anders ausgedrückt: Ist g Umkehrfunktion von f , dann ist f Umkehrfunktion von g. Beispiel 5.43 Die Funktion f ∈ R → R, f (a) = a2 ist nicht invertierbar, da f nicht injektiv ist. So ist z.B. f (2) = f (−2). Eine Umkehrfunktion existiert also deshalb nicht, weil nicht klar ist, V. Stahl Logik und Künstliche Intelligenz Seite 96 ob sie 4 auf 2 oder auf −2 abbilden soll. Außerdem ist f auch nicht surjektiv, es gibt z.B. kein a welches durch f auf −4 abgebildet würde. Worauf sollte also die Umkehrfunktion −4 abbilden? Beispiel 5.44 Durch Einschränkung des Definitions- und Wertebereichs von Beispiel 5.43 erhält man aber eine umkehrbare Funktion: Sei R+ 0 = {x | x ∈ R, x ≥ 0} und 2 + f ∈ R+ 0 → R0 , f (x) = x , so ist f invertierbar mit der Umkehrfunktion √ + g ∈ R+ x. 0 → R0 , g(x) = Beispiel 5.45 Genauso hätte man im vorigen Beispiel mit R− 0 = {x | x ∈ R, x ≤ 0} und 2 + f ∈ R− 0 → R0 , f (x) = x , eine invertierbar Funktion erhalten. Diesmal wäre die Umkehrfunktion aber √ − g ∈ R+ 0 → R0 , g(x) = − x. Beispiel 5.46 Die Nachfolgerfunktion f ∈ N → N, f (x) = x + 1 ist nicht invertierbar, da sie nicht surjektiv ist: Es gibt kein x ∈ N so dass f (x) = 1. Durch Erweiterung von Definitions- und Wertebereich auf Z erhält man jedoch eine invertierbare Funktion f ∈ Z → Z, f (x) = x + 1. Beispiel 5.47 Die Funktion f ∈ [0, π] → [−1, 1], f (x) = sin(x) ist nicht invertierbar, da z.B. f (π/4) = f (3π/4), siehe Bild 5.12. Verschiebt man aber den Definitionsbereich um π/2 nach links, so sieht man daß f ∈ [−π/2, π/2] → [−1, 1], f (x) = sin(x) Logik und Künstliche Intelligenz V. Stahl sin(x) Seite 97 os(x) 1 1 =2 =2 x x 1 1 Abbildung 5.12: Sinus- und Cosinusfunktion invertierbar ist. Andererseits ist f ∈ [−π/2, π/2] → [−1, 1], f (x) = cos(x) nicht invertierbar, da z.B. cos(−π/4) = cos(π/4). Dafür ist aber f ∈ [0, π] → [−1, 1], f (x) = cos(x) wieder invertierbar. Dies erklärt, warum für x 6∈ [−π/2, π/2] im allgemeinen arcsin(sin(x)) 6= x und für x 6∈ [0, π] im allgemeinen arccos(cos(x)) 6= x ist. 5.9 Funktionsterme für Umkehrfunktionen Häufig werden Funktionen durch die Angabe eines Funktionsterms definiert. Ein Funktionsterm ist eine Vorschrift, wie man aus einem gegebenen Input den zugehörigen Output berechnen kann, z.B. f (x) = 2x + 1. Um eine Funktion vollständig zu definieren, muss man natürlich noch die Mengen angeben, die die Funktion aufeinander abbildet — also z.B. f ∈ R → R. V. Stahl Logik und Künstliche Intelligenz Seite 98 Oft stellt sich das Problem, zu einer durch einen Term definierten Funktion f einen Term für die Umkehrfunktion f −1 zu bestimmen. Hierzu führt man eine neue Variable y für den Funktionswert von f an der Stelle x ein und erhält dadurch im obigen Beispiel die Gleichung y = 2x + 1. Der Graph von f ist die Menge der Paare (x, y) ∈ R × R, die diese Gleichung erfüllen. Für den Input x ist der Funktionswert von f somit y. Bei der Umkehrfunktion ist jedoch y gegeben und gesucht ist das x, dessen Funktionswert y ist. Ist f bijektiv, dann existiert genau ein solches x. Um dieses x zu berechnen, muss die Gleichung so umgeformt werden, dass x nur noch allein auf der linken Seite auftritt. Im Beispiel erreicht man dies durch Subtraktion mit 1 und Division durch 2. x = (y − 1)/2. Damit hat man auch schon einen Term für die Umkehrfunktion: f −1 (y) = (y − 1)/2. Ein etwas schwierigeres Beispiel: f ∈ R2 → R2 , f (x1 , x2 ) = (x1 + x2 , x1 − x2 ). Auch hier führt man für den Funktionswert von f an der Stelle (x1 , x2 ) eine neue Variable y ein. Da y ∈ R2 , ist es sinnvoll die Komponenten von y auch gleich zu benennen. Sei also y = (y1 , y2). Dies führt auf das Gleichungssystem y1 = x1 + x2 y2 = x1 − x2 . Bei der Umkehrfunktion stellt sich das Problem, dass y1 und y2 gegeben sind und zugehörige x1 und x2 gesucht sind. Da es sich hier um ein lineares Gleichungssystem handelt, ist es einfach einen Term hierfür anzugeben. Mit dem Gauß Algorithmus erhält man x1 = (y1 + y2 )/2 x2 = (y1 − y2 )/2. Folglich ist die Umkehrfunktion f −1 ∈ R2 → R2 , f −1 (y1 , y2) = (y1 + y2 )/2, (y1 − y2 )/2 Logik und Künstliche Intelligenz V. Stahl Seite 99 Terme können beliebig kompliziert sein und auch Fallunterscheidungen enthalten, z.B. x+1 falls x ungerade f ∈ N → N, f (x) = x−1 falls x gerade Um hier zu einem Term für die Umkehrfunktion zu kommen, behandelt man die Fälle separat. y = x+1 y = x−1 falls x ungerade falls x gerade Auflösen nach x ergibt x = y−1 x = y+1 falls x ungerade falls x gerade Problematisch ist, dass x immer noch auf der rechten Seite in der Fallunterscheidung auftritt. Da x jedoch genau dann gerade ist, wenn y ungerade ist, erhält man x = y−1 x = y+1 falls y gerade falls y ungerade und damit den Term für die Umkehrfunktion y − 1 falls y gerade −1 f (y) = y + 1 falls y ungerade Damit sind in diesem Beispiel die Funktionen f und f −1 identisch, d.h. f = f −1 . 5.10 Kommutativ, assoziativ, distributiv Definition 5.48 (Kommutativ) Eine zweistellige Funktion ⊕ ∈ A×A → A heißt kommutativ, wenn x⊕y =y⊕x für alle x, y ∈ A. V. Stahl Logik und Künstliche Intelligenz Seite 100 Beispiel 5.49 Die Addition auf den reellen Zahlen ist kommutativ, da x + y = y + x für alle x, y ∈ R. Beispiel 5.50 Die Subtraktion auf den reellen Zahlen ist hingegen nicht kommutativ, da z.B. 2 − 3 6= 3 − 2. Definition 5.51 (Assoziativ) Eine zweistellige Funktion ⊕ ∈ A × A → A heißt assoziativ, wenn (x ⊕ y) ⊕ z = x ⊕ (y ⊕ z). für alle x, y, z ∈ A. Beispiel 5.52 Die Addition auf den reellen Zahlen ist assoziativ, da (x+ y) + z = x + (y + z) für alle x, y, z ∈ R. Beispiel 5.53 Die Subtraktion auf den reellen Zahlen ist nicht assoziativ, da z.B. (6 − 2) − 3) 6= 6 − (2 − 3). Beispiel 5.54 Das kartesische Produkt × auf Mengen ist nicht assoziativ, da (A × B) × C 6= A × (B × C) für alle A, B, C 6= ∅. Definition 5.55 (Distributiv) Seien ⊕, ⊗ zweistellige Funktionen auf A. ⊗ heißt distributiv über ⊕ wenn x ⊗ (y ⊕ z) = (x ⊗ y) ⊕ (x ⊗ z) und (y ⊕ z) ⊗ x = (y ⊗ x) ⊕ (z ⊗ x) Beispiel 5.56 Die Multiplikation auf den reellen Zahlen ist distributiv über der Addition auf den reellen Zahlen, denn x(y + z) = xy + xz und (y + z)x = (yx + zx) für alle x, y, z ∈ R. Beispiel 5.57 Die Addition auf den reellen Zahlen ist nicht distributiv über der Multiplikation auf den reellen Zahlen, denn z.B. 2 + (3 × 5) 6= 2 × 3 + 2 × 5. Logik und Künstliche Intelligenz V. Stahl 5.11 Seite 101 Folgen Funktionen, deren Definitionsbereich die natürlichen Zahlen sind, spielen eine sehr wichtige Rolle und werden Folgen genannt. Definition 5.58 (Folge) Eine Funktion f ∈ A → B heißt • Folge über B, wenn A = N. • Folge der Länge n über B, wenn A = {1, 2, . . . , n}. • Endliche Folge über B, wenn es ein n ∈ N0 gibt, so dass A = {1, 2, . . . , n}. Um Schreibaufwand zu sparen kann man auch einfach Folge sagen statt Folge über B. Für Folgen ist i.a. eine aufzählende Schreibweise recht praktisch, d.h. wenn f eine Folge ist und B aus dem Kontext hervorgeht, schreibt man auch f = hf (1), f (2), f (3), . . . .i Ist f eine Folge der Länge n, schreibt man f = hf (1), f (2), . . . , f (n)i. Die spitzen Klammern, die die Folge umschließen kann man auch weglassen wenn dadurch keine Unklarheiten entstehen. Ein Spezialfall ist die Folge der Länge 0, sie wird durch h i bezeichnet. Definition 5.59 (Menge der Folgen) Für jede Menge B bezeichnet • B ∗ die Menge der endlichen Folgen über B • N → B die Menge der unendlichen Folgen über B. Definition 5.60 (Konkatenation von endlichen Folgen) Die Konkatenation conc ∈ B ∗ × B ∗ → B ∗ zweier endlicher Folgen f = hf1 , f2 , . . . , fn i und g = hg1 , g2 , . . . , gm i ist definiert als conc(f, g) = hf1 , f2 , . . . , fn , g1 , g2, . . . , gm i. Logik und Künstliche Intelligenz V. Stahl 5.12 Seite 102 Abzählbarkeit Bezüglich ihrer Größe unterscheidet man grundsätzlich zwei Arten von unendlichen Mengen: Solche, deren Elemente man “durchnumerieren” kann, und solche, die so groß sind, dass dies nicht mehr möglich ist. Im ersten Fall spricht man von abzählbaren Mengen, im zweiten Fall von überabzählbaren Mengen. Abzählbarkeit spielt in der Informatik eine ganz zentrale Rolle. Abzählbare Mengen kann man im Rechner darstellen, d.h. man kann jedes Element einer solchen Menge eindeutig durch eine Bitfolge endlicher Länge codieren. Für überabzählbare Mengen geht dies nicht, d.h. egal auf welche Weise man den Elementen einer überabzählbaren Menge endliche Bitfolgen zuordnet, wird es immer zwei Elemente geben, die die selbe Bitfolge bekommen. Wie wir in diesem Abschnitt sehen werden, ist die Menge der reellen Zahlen überabzählbar. Das ist auch der Grund, weshalb es keine Programmiersprache gibt, die einen Datentyp für reelle Zahlen hat. Stattdessen werden Gleitkommazahlen wie float und double verwendet, mit denen man jedoch nur eine endliche Teilmenge der reellen Zahlen darstellen kann, so dass es bei arithmetischen Operationen zwangsläufig zu Rundungsfehlern kommt. Andererseits sind N, Z und sogar Q abzählbar. Dieser Umstand wird z.B. von Computer Algebra Systemen wie Maple genutzt um exakte Arithmetik mit ganzen oder rationalen Zahlen beliebiger Größe durchzuführen. Formal lässt sich der Begriff der Abzählbarkeit wie folgt definieren: Definition 5.61 (Abzählbar) Eine Menge A heißt abzählbar wenn es eine injektive Funktion f ∈ A → N gibt. Eine Menge A ist abzählbar, wenn man jedem ihrer Elemente exklusiv einen Index aus N zuweisen kann. Das heißt • jedes Element aus A kriegt einen Index aus N (f ist eine Funktion von A nach N) • keine zwei Elemente aus A kriegen den selben Index (f ist injektiv). Um die Elemente einer abzählbaren Menge im Rechner darzustellen, kann man z.B. einfach die Indices der Elemente binär codieren. Beispiel 5.62 Endlichen Mengen sind offensichtlich abzählbar. Beispiel 5.63 Die Elemente der Menge N lassen sich in trivialer Weise durchnumerieren: 1 ist das erste Element, 2 das zweite, 3 das dritte, Logik und Künstliche Intelligenz V. Stahl Seite 103 usw. Eine injektive Funktion f ∈ N → N ist also schnell gefunden, z.B. f (n) = n und somit ist N abzählbar. Beispiel 5.64 Die Elemente von Z lassen sich auch durchnumerieren: 0 ist das erste Elemente, 1 das zweite, −1 das dritte, 2 das vierte, −2 das fünfte, usw. Allgemein führt das zu der Funktion f ∈ Z → N die jedem Element x ∈ Z genau einen Index aus N zuordnet: 2x falls x > 0 f (x) = −2x + 1 falls x ≤ 0 Da f sogar bijektiv ist, folgt dass Z eine abzählbare Menge ist. Beispiel 5.65 Auch die Elemente von N2 lassen sich durchnumeriern, wie in Bild 5.13 gezeigt ist. Hier sind die Elemente (a, b) von N2 als Punkte in einem zwei dimensionalen Koordinatensystem zusammen mit deren Durchnumerierung dargestellt. 11 4 3 2 1 f (1, 1) = 1 f (2, 1) = 2 10 12 4 9 13 3 5 8 14 1 2 6 7 1 2 f (1, 2) = 3 f (1, 3) = 4 3 f (2, 2) = 5 f (3, 1) = 6 15 f (4, 1) = 7 .. . 4 Abbildung 5.13: Durchnumerierung von N2 Die gleiche Überlegung kann man auch für das kartesische Produkt von beliebigen abzählbaren Mengen anstellen. Theorem 5.66 Sind A, B abzählbare Mengen, dann auch A × B. Beweis. Seien A und B abzählbare Mengen. Zu zeigen ist, dass eine injektive Funktion h ∈ A × B → N existiert. Aus der Annahme folgt, dass V. Stahl Logik und Künstliche Intelligenz Seite 104 es injektive Funktionen fA ∈ A → N und fB ∈ B → N gibt. Damit ist f ∈ A × B → N × N mit f (a, b) = (fA (a), fB (b)) injektiv. Da weiterhin N2 abzählbar ist, existiert eine injektive Funktion g ∈ N2 → N. Somit ist h ∈ A × B → N mit h(a, b) = g(f (a, b)) injektiv, da die Komposition injektiver Funktionen injektiv ist, siehe Bild 5.14 A×B f injektiv N×N g N injektiv g◦f injektiv Abbildung 5.14: Konstruktion einer injektiven Funktion h ∈ A × B → N Folglich sind auch N3 = N2 × N N4 = N3 × N .. . und allgemein Nn für beliebiges n ∈ N abzählbare Mengen. Da sich die Menge Q der rationalen Zahlen injektiv auf die abzählbare Menge Z × N abbilden lässt (man zerlegt die rationale Zahl einfach in ihren ganzzahligen Zähler und ihren natürlichzahligen Nenner), ist somit auch Q abzählbar. Beispiel 5.67 Man kann sogar zeigen, dass die Menge N∗ aller beliebig (aber endlich) langer Folgen von natürlichen Zahlen abzählbar ist. Den Beweis könnte man ähnlich wie im vorigen Beispiel anstellen, man kann es aber auch ganz anders machen und direkt eine injektive Funktion f ∈ N∗ → N hinschreiben: f (hx1 , x2 , . . . , xn i) = 2x1 3x2 5x3 7x4 · · · πnxn Hierbei ist πn die n-te Primzahl. Somit ist z.B. f (h1, 1, 3i) = 21 31 53 = 750 f (h4i) = 24 = 16 f (h i) = 1 Logik und Künstliche Intelligenz V. Stahl Seite 105 Dass diese Funktion injektiv ist, folgt aus der Tatsache dass jede natürliche Zahl eine eindeutige Primfaktorzerlegung hat. Es kann also nicht passieren, dass f aus zwei unterschiedlichen endlichen Folgen die selbe Zahl generiert. Nachdem wir immer “größere” abzählbare Mengen erzeugt haben, ist nun die Grenze zu überabzählbaren Mengen erreicht. Ein erstes Beispiel ist die Menge A = N → {0, 1}. Jedes Element von A ist eine 0/1 Folge unendlicher Länge. Diese Menge ist nicht zu verwechseln mit der abzählbaren Menge {0, 1}∗, deren Elemente endliche 0/1 Folgen sind. Der Beweis dass A überabzählar ist, wird durch Widerspruch geführt. Man nimmt also an, dass A abzählbar ist, d.h. es existiert eine injektive Funktin f ∈ A → N. Somit wird jeder 0/1 Folge eine eindeutige Nummer zugeordnet. Man kann damit die 0/1 Folgen nach aufsteigender Nummer sortieren und in einer Tabelle anordnen. Erste Folge Zweite Folge Dritte Folge ... f1 = h1, 1, 0, 0, 1, 1, . . .i f2 = h0, 1, 1, 0, 0, 1, . . .i f3 = h0, 0, 0, 1, 1, 0, . . .i ... Jede unendlich lange 0/1 Folge müsste somit irgendwo in dieser Tabelle auftreten, d.h. für jede Folge f ∈ A existiert ein n ∈ N so dass f = fn . Anhand dieser Tabelle wird nun eine Folge fˆ ∈ A konstruiert durch fˆ(i) = 1 − fi (i), Im Beispiel ist somit i = 1, 2, . . . fˆ(i) = h0, 0, 1, . . . , i. Somit unterscheidet sich fˆ von jeder Folge fi in der Tabelle weil ˆ 6= fi (i) für alle i. f(i) Daher ist fˆ nicht in der Tabelle, was im Widerspruch zur Behauptung steht, dass jede unendliche 0/1 Folge in der Tabelle ist. Theorem 5.68 (Abzählbarkeit von Teilmengen) Ist A abzählbar und B ⊆ A, so ist auch B abzählbar. Ist A überabzählbar und B ⊇ A, so ist auch B überabzählbar. V. Stahl Logik und Künstliche Intelligenz Seite 106 Beweis. Der zweite Teil folgt aus dem ersten durch aussagenlogische Umformung. Der Beweis des ersten Teils ist wie folgt. Angenommen A ist abzählbar und B ⊆ A. Dann existiert eine injektive Funktion f ∈ A → N. Somit ist auch g ∈ B → N mit g(x) = f (x) für alle x ∈ B injektiv und daher B abzählbar. Theorem 5.69 R ist überabzählbar. Beweis. Laut Theorem 5.68 genügt es zu zeigen, dass das Intervall [0, 1) überabzählbar ist. Jede reelle Zahl aus diesem Intervall entspricht einer unendlich langen Folge von (Nachkomma-) Ziffern. Der Rest des Beweises kann damit gleich geführt werden wie der Beweis der Überabzählbarkeit von N → {0, 1}. Es ist somit unmöglich jeder reellen Zahl eine eindeutige natürliche Zahl zuzuordnen, d.h. auf eine Weise dass keine zwei unterscheidlichen reellen Zahlen die selbe natürliche Zahl bekommen. Ebenso wenig ist es möglich, jeder reellen Zahl eine eindeutige endlich lange Bitfolge zuzuordnen. Genau das müsste man aber tun um reelle Zahlen im Rechner darzustellen. Es ist noch nicht einmal möglich, alle reellen Zahlen zu benennen, d.h. jeder reellen Zahl einen eindeutigen Namen (z.B. endliche Folge von Buchstaben) zuzuordnen. All dies ist für abzählbare Mengen möglich und wird in einigen Programmiersprachen auch tatsächlich gemacht. So kann man z.B. in Maple eine beliebig große rationale Zahl eintippen, die dann intern durch eine endlich lange Bitfolge codiert wird. Im Maple Laufzeitsystem muss also eine Funktion implementiert sein, die jeder rationalen Zahl eine eindeutige endlich lange Bitfolge zuweist. Bemerkung. In manchen Büchern wird definiert, dass A abzählbar ist, wenn es eine bijektive Funktion f ∈ A → N gibt. Demnach wären endliche Mengen nicht abzählbar. Für uns Informatiker steht Abzählbarkeit aber für Codierbarkeit, so dass wir bei Definition 5.61 bleiben. Das folgende Theorem zeigt, dass die beiden Definitionen im Kern das Selbe ausdrücken. Theorem 5.70 Eine Menge A ist abzählbar, wenn sie entweder endlich ist oder es eine bijektive Funktion f ∈ A → N gibt. Logik und Künstliche Intelligenz V. Stahl 6 Seite 107 Aussagenlogik 6.1 Boolesche Funktionen Wenn man sich mit Wissen beschäftigt, spielt Wahrheit eine große Rolle. Wahrheit ist immer an Aussagen gebunden, die entweder wahr oder falsch sind. Diese beiden Wahrheitswerte bilden eine Menge W = {0, 1} wobei 0 für “falsch” und 1 für “wahr” steht. Ähnlich wie es auf natürlichen Zahlen Funktionen gibt wie + (“plus”), − (“minus”), × (“mal”) , gibt es auch Funktionen auf Wahrheitswerten, die mit ∧ “und”, ∨ “oder”, ¬ “nicht”, → “wenn dann”, ↔ “genau dann wenn” bezeichnet werden. Diese Funktionen heißen Boolesche Funktionen. Da es nur zwei Wahrheitswerte gibt, lassen sie sich einfach durch eine Tabelle definieren: x y 0 0 0 1 1 0 1 1 x∧y 0 0 0 1 x∨y 0 1 1 1 x→y 1 1 0 1 x↔y 1 0 0 1 x 0 1 ¬x 1 0 Tabelle 6.1: Boolesche Funktionen Die ¬ Funktion ist einstellig, d.h. hat nur ein Argument, alle anderen sind zweistellig. Die Funktionen lassen sich leicht einprägen. Die ∧ , ∨ und ¬ Funktionen entsprechen ziemlich genau ihrem Namen. Wie man aus Tabelle 6.1 entnimmt, ist • x ∧ y genau dann wahr, wenn x wahr ist und y wahr ist • x ∨ y genau dann wahr, wenn x wahr ist oder y wahr ist V. Stahl Logik und Künstliche Intelligenz Seite 108 • ¬x genau dann wahr, wenn x nicht wahr ist. Die → Funktion ist nicht ganz so intuitiv. Merken Sie sich am einfachsten • x → y ist immer wahr, außern wenn die Bedingung x erfüllt ist, die Konsequenz y aber nicht eintritt. Die ↔ Funktion ist wieder leichter: • x ↔ y ist genau dann wahr, wenn x und y gleich sind. Gerade die → Funktion spielt eine wichtige Rolle beim automatischen Schlussfolgern. Angenommen wir haben zwei Aussagen mit Wahrheitswerten x und y, von denen bekannt ist, dass x = 1 und x → y = 1. Durch Vergleich mit Tabelle 6.1 folgt, dass y = 1. Diese einfache Schlussfolgerungsregel heißt “Modus Ponens”. Erstaunlicherweise lassen sich fast alle noch so geniale logische Denkvorgänge auf solche einfachen, elementaren Denkschritte zurückführen. Beispiel 6.1 Wenn Sie Ihre Hausaufgaben gewissenhaft machen, werden Sie die Prüfung bestehen. (Solche unumstößlichen Wahrheiten nennt man auch Axiome, die daraus abgeleiteten Schlussfolgerungen sind die Theoreme.) Angenommen Sie stehen nun vor der Prüfung und haben während des Semesters Ihre Hausaufgaben immer gewissenhaft gemacht. Dann können Sie sich völlig entspannt an die Arbeit machen, denn die reine Logik garantiert Ihnen, dass Sie nicht durchfallen werden. Beispiel 6.2 An dieser Stelle gleich einen Hinweis auf den vermutlich beliebtesten logischen Denkfehler. Angenommen Sie haben Ihre Hausaufgaben nicht gemacht, mit Glück und etwas Hilfe Ihres Nebensitzers bestehen Sie aber trotzdem. Ist damit die Logik widerlegt? Nein, denn selbst wenn x = 0 und x → y = 1 ist es trotzdem möglich, dass auch y=1 Logik und Künstliche Intelligenz V. Stahl Seite 109 ist. Dies ist der Fall in der zweiten Zeile in Tabelle 6.1. Was hingegen ausgeschlossen ist, ist x = 1, x → y = 1 und y = 0. Gehen Sie also lieber auf Nummer sicher und machen Ihre Hausaufgaben... 6.2 Rechengesetze für Boolesche Funktionen Auf natürlichen Zahlen gibt es eine ganze Menge von Rechenregeln, z.B. x + y = y + x, x(y + z) = xy + xz, usw. Analog haben auch die Booleschen Funktionen einiges zu bieten, siehe Tabelle 6.2. Man kann sich sehr leicht davon überzeugen, dass diese Rechenregeln stimmen. Da es nur zwei Wahrheitswerte gibt, kann man sämtliche Fälle in einer Tabelle durchprobieren. Der Beweis von x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z) sieht dann wie folgt aus: x y 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 z 0 1 0 1 0 1 0 1 x ∧ (y ∨ z) 0 0 0 0 0 1 1 1 (x ∧ y) ∨ (x ∧ z) 0 0 0 0 0 1 1 1 Die letzten beiden Spalten sind gleich, d.h. für alle möglichen Wahrheitswerte von x, y, z ist der Wert von x ∧ (y ∨ z) gleich dem von (x ∧ y) ∨ (x ∧ z). Das Distributivgesetz für natürliche Zahlen lässt sich auf diese Weise natürlich nicht beweisen, da man unendlich viele Fälle durchprobieren müsste. Sie sehen, wenn man’s mit endlichen Mengen zu tun hat, sind die Dinge schon sehr einfach. Die Beweise der Rechengesetze Boolescher Funktionen könnte sogar eine Maschine mühelos durchführen. Logik und Künstliche Intelligenz V. Stahl Seite 110 Für alle x, y, z ∈ {0, 1} gilt x∧y = y∧x x∨y = y∨x (x ∧ y) ∧ z = x ∧ (y ∧ z) (x ∨ y) ∨ z = x ∨ (y ∨ z) x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z) x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z) Kommutativität von ∧ Kommutativität von ∨ Assoziativität von ∧ Assoziativität von ∨ Distributivität von ∧ über ∨ Distributivität von ∨ über ∧ x∧x = x x∨x = x Idempotenz von ∧ Idempotenz von ∨ x ∧ (¬x) = 0 x ∨ (¬x) = 1 Unerfüllbarkeit Tautologie x∧1 x∧0 x∨0 x∨1 = = = = x 0 x 1 Neutrales Element von ∧ Neutrales Element von ∨ x ∧ (x ∨ y) = x x ∨ (x ∧ y) = x Absorption ¬¬x = x Doppelnegation ¬(x ∧ y) = (¬x) ∨ (¬y) ¬(x ∨ y) = (¬x) ∧ (¬y) x → y = (¬x) ∨ y x ↔ y = (x → y) ∧ (y → x) de Morgan’sche Regeln Ersetzen von → Ersetzen von ↔ Tabelle 6.2: Rechenregeln für Boolesche Funktionen. V. Stahl 6.3 Logik und Künstliche Intelligenz Seite 111 Formeln der Aussagenlogik Im letzten Abschnitt sind wir auf Ausdrücke wie z.B. x ∧ (y ∨ z) gestoßen. Wenn man genau hinschaut erkennt man, dass es sich hierbei um nichts anderes als eine Zeichenkette handelt. Diese besteht aus Variablensymbolen x, y, z, Klammern sowie Symbolen für Boolesche Funktionen ∧ und ∨. Solche Zeichenketten nennen wir aussagenlogische Formeln. Wenn man komplexe Formeln aufbauen möchte, braucht man hinreichend viele Variablensymbole. Damit uns diese nicht irgendwann ausgehen, verwenden wir nicht mehr x, y, z sondern gönnen uns gleich unendlich viele Variablensymbole x1 , x2 , x3 , . . .. (Da Formeln endlich lang sind, werden in einer Formel aber immer nur endlich viele davon auftreten.) Definition 6.3 Aussagenlogische Formel. Eine aussagenlogische Formel ist eine Zeichenkette, die sich auf folgende Weise in endlich vielen Schritten konstruieren lässt: • Die Symbole 0 und 1 sind Formeln. • Jedes Variablensymbol x1 , x2 , . . . ist eine Formel. • Ist F eine Formel, dann auch ¬F • Sind F und G Formeln, dann auch (F ∧ G), (F ∨ G), (F → G) und (F ↔ G). Beispiele für Formeln sind 0 x3 (x5 ∧ x1 ) ¬¬((x1 → x2 ) → x3 ) während x5 ¬x4 x1 → x2 keine Formeln sind. (Im letzten Fall fehlten lediglich die Klammern.) Besonders geschickt an dieser Definition ist, dass sich jede Formel auf genau eine Weise durch einen Syntaxbaum konstruieren lässt. Um dies zu Logik und Künstliche Intelligenz V. Stahl Seite 112 erreichen waren die Klammern erforderlich. Ohne Klammern könnte man z.B. die Formel ¬x1 → x2 auf zwei unterschiedliche Weisen konstruieren, siehe Bild 6.1. Dies würde später zu Problemen führen, wenn man einer Formel wieder eine Bedeutung zuordnen möchte und dann nicht weiss, ob sie als (¬x1 ) → x2 (linker Syntaxbaum in Bild 6.1) ¬(x1 → x2 ) (rechter Syntaxbaum in Bild 6.1) oder zu interpretieren ist. ¬x1 → x2 ¬x1 → x2 ¬x1 x1 x1 → x2 x2 x1 x2 Abbildung 6.1: Unterschiedliche Syntaxbäume für ¬x1 → x2 Offensichtlich gilt x1 6= ¬¬x1 , denn die Zeichenkette auf der linken Seite hat noch nicht einmal die selbe Länge wie die auf der rechten Seite. Andererseits — interpretiert man x1 als Variable für einen Wahrheitswert und ¬ als Boolesche Funktion, dann ist x1 = ¬¬x1 für jeden Wert von x1 . Es ist also wichtig, zwischen Zeichenketten und deren mögliche Bedeutung als Boolesche Funktionen zu unterscheiden! 6.4 Semantik der Aussagenlogik Nachdem nun klar ist, mit welchen Formeln (Zeichenketten) gespielt wird, soll diesen Zeichenketten eine Bedeutung gegeben werden. Die Bedeutung Logik und Künstliche Intelligenz V. Stahl Seite 113 einer Zeichenkette nennt man ihre Interpretation. Wie zu erwarten leitet sich diese unmittelbar aus den Booleschen Funktionen ab. Die Formel (x3 → x1 ) → ¬x2 kann als Funktion f ∈ W 3 → W, f (x1 , x2 , x3 ) = (x3 → x1 ) → ¬x2 interpretiert werden, die drei Wahrheitswerten für x1 , x2 , x3 einen Wahrheitswert nach den Rechenregeln der Booleschen Funktionen zuordnet. Genausogut könnte man sie jedoch auch als vierstellige Funktion f ∈ W 4 → W, f (x1 , x2 , x3 , x4 ) = (x3 → x1 ) → ¬x2 interpretieren, die eben konstant in ihrem vierten Argument ist. Um die Bedeutung einer Formel eindeutig zu machen und für alle Fälle gewappnet zu sein, greift man zu einem Trick — man interpretiert eine Formel immer als “unendlich-stellige” Funktion. Diese Idee wird nun etwas konkretisiert. Eine Zuordnung von Wahrheitswerten zu den Variablensymbolen x1 , x2 , x3 , . . . nennt man Belegung. Stellen Sie sich eine Belegung b einfach als unendlich lange Folge von Nullen und Einsen vor, d.h. b = b1 , b2 , b3 , . . . wobei jedes bi entweder Null oder Eins ist und dem Variablensymbol xi der Wahrheitswert bi zugeordnet wird. Beispiele für Belegungen sind 0, 0, 0, 0, . . . 1, 1, 1, 1, . . . 0, 1, 0, 1, . . . und es gibt natürlich unendlich viele weitere. Sei im Folgenden B die Menge aller Belegungen, d.h. die Menge aller unendlich langer 0, 1-Folgen. Dann kann eine Formel in naheligender Weise als Funktion f ∈ B → {0, 1} interpretiert werden, die jeder Belegung einen Wahrheitswert zuordnet. Beispiel 6.4 Die Formel (x3 → ¬x2 ) Logik und Künstliche Intelligenz V. Stahl Seite 114 kann als Funktion f ∈ B → {0, 1}, f (b) = b3 → ¬b2 interpretiert werden. So ist z.B. f (0, 0, 0, 0, . . .) = 1 f (1, 1, 1, 1, . . .) = 0 f (1, 0, 1, 0, . . .) = 1. Da in einer Formel immer nur endlich viele Variablensymbole vorkommen, sind auch nur endlich viele Stellen der Belegung bei der Berechnung des Wahrheitswerts relevant. Die Bedeutung (oder Interpretation) einer Formel F als Funktion wird im Folgenden mit F ′ bezeichnet. Wem die obige informelle Beschreibung nicht genügt, mag sich an folgender exakter Definition die Zähne ausbeißen: Definition 6.5 Interpretation. Sei B die Menge aller Belegungen und F eine Formel. Die Interpretation F ′ von F ist eine Funktion F ′ ∈ B → {0, 1}, die jeder Belegung b ∈ B wie folgt einen Wahrheitswert zuordnet: • Ist F = 0 bzw. F = 1, dann ist F ′ die konstante Null- bzw. Einsfunktion, d.h. F ′ (b) = 0 bzw. F ′ (b) = 1. • Ist F = xi für ein Variablensymbol, dann ist F ′ (b) = bi . • Ist F = ¬G für eine Formel G, dann ist F ′ (b) = ¬G′ (b). • Ist F = (G ∧ H) für bestimmte Formeln G, H, dann ist F ′ (b) = G′ (b) ∧ H ′ (b). (Analog für ∨, →, ↔.) Beispiel 6.6 Sei F = x1 und G = ¬¬x1 . Dann gilt F 6= G. V. Stahl Logik und Künstliche Intelligenz Seite 115 Andererseits gilt für jede Belegung b F ′ (b) = G′ (b), d.h. F ′ und G′ sind identische Funktionen und somit F ′ = G′ . Definition 6.7 Äquivalente Formeln. Zwei Formeln F und G heißen äquivalent, wenn F ′ = G′ . Man schreibt dann F ≡ G. Beispiel 6.8 dass Anhand einer Wahrheitstabelle lässt sich leicht verifizieren, (x1 → x2 ) ≡ (¬x2 → ¬x1 ). Anwenden von Rechenregeln wie in Tabelle 6.2 bedeutet somit nichts anderes, als Formeln äquivalent umzuformen. Halten wir also abschließend fest: • Das Symbol “=” wird verwendet, um die syntaktische Gleichheit von Formeln auszudrücken, d.h. deren Gleichheit als Zeichenketten. • Das Symbol “≡” wird verwendet, um die semantische Gleichheit von Formeln auszudrücken, d.h. deren Gleichheit wenn man sie als Funktionen interpretiert. Wenn F = G, dann gilt auch F ≡ G, andersherum muss dies aber nicht der Fall sein. So ist z.B. x1 → x2 ≡ ¬x2 → x1 aber x1 → x2 6= ¬x2 → x1 . Es ist also ganz essentiell wichtig, zwischen einer Formel als Zeichenkette und ihrer Interpretation als Funktion zu unterscheiden! 6.5 Syntaktische Vereinfachungen Aufgrund des Assoziativgesetzes für ∧ gilt (F ∧ G) ∧ H ≡ F ∧ (G ∧ H) V. Stahl Logik und Künstliche Intelligenz Seite 116 wobei F, G, H beliebige aussagenlogische Formeln sind. Bei Ketten von mit ∧ verknüpften Formeln ändert die Position der Klammern somit nichts an der Bedeutung. Wenn man sich also nur für die Semantik interessiert, kann man die Klammern einfach weglassen und nur F ∧G∧H schreiben. Gleiches gilt natürlich auch für Ketten von ∨-verknüpften Formeln. Um die Notation noch etwas zu vereinfachen, werden Klammern ganz außen um eine Formel weggelassen. Statt (x1 ∨ x2 ) schreiben wir also einfach x1 ∨ x2 . 6.6 Konjunktive Normalform In Kapitel 6.4 wurde gezeigt, dass es unterschiedliche Formeln mit der selben Bedeutung gibt. Diesem Phänomen begegnet man immer, wenn man sich zwischen Syntax und Semantik bewegt. So sind z.B. die beiden Zeichenketten 3/4 und 6/8 syntaktisch verschieden, bedeuten jedoch das selbe wenn man sie als rationale Zahlen interpretiert. In der Regel sucht man dann nach der kürzesten oder einfachsten Zeichenkette mit der selben Semantik — im Fall von Brüchen findet man diese indem man so weit wie möglich kürzt. Man nennt diese Zeichenkette dann Normalform. Für aussagenlogische Formeln gibt es mehrere Normalformen, besonders wichtig für uns ist die konjunktive Normalform. Zunächst ein paar Beispiele für Formeln in konjunktiver Normalform — wir schenken uns dabei überflüssige Klammern. (x1 ∨ x3 ) ∧ (x2 ∨ x1 ) ∧ (x4 ∨ x2 ) ¬x1 ∧ (x2 ∨ x3 ) ∧ ¬x2 (x1 ∨ ¬x2 ) ∧ ¬x3 ∧ (x2 ∨ ¬x4 ∨ ¬x1 ) Folgendes fällt hierbei auf: • Es treten keine → und ↔ Symbole auf. Logik und Künstliche Intelligenz V. Stahl Seite 117 • Die Negationssymbole stehen immer direkt vor den Variablensymbolen. Unter einem Literal versteht man ein Variablensymbol xi oder dessen Negation ¬xi . • In der Formel sind Literale mit ∨ verknüpft. Die ∨-verknüpften Pakete werden dann mit ∧ zusammengefasst. Der Aufbau einer Formel in konjunktiver Normalform ist schematisch als Syntaxbaum in Bild 6.2 dargestellt. ∧ ∨ ··· ∨ ··· ∨ ··· ··· Literale xi , ¬xi Abbildung 6.2: Syntaxbaum einer Formel in konjunktiver Normalform Theorem 6.9 (Konjunktive Normalform) Zu jeder Formel F gibt es eine äquivalente Formel G in konjunktiver Normalform. Wie kann man also eine gegebene Formel auf konjunktive Normalform bringen? Hierzu bietet sich folgendes Verfahren an: • Zunächst eliminiert man ↔ und → mittels der Äquivalenzen F ↔G ≡ (F → G) ∧ (G → F ) F → G ≡ ¬F ∨ G • Mit den Äquivalenzen ¬(F ∨ G) ≡ ¬F ∧ ¬G ¬(F ∧ G) ≡ ¬F ∨ ¬G kann man die Negationssymbole direkt an die Variablensymbolen bringen. Zwei direkt aufeinanderfolgende Negationssymbole können gestrichen werden. Logik und Künstliche Intelligenz V. Stahl Seite 118 • Zum Schluss wendet man die Äquivalenzen F ∨ (G ∧ H) ≡ (F ∨ G) ∧ (F ∨ H) (F ∧ G) ∨ H ≡ (F ∨ H) ∧ (G ∨ H) so oft an, bis die Formel in konjunktiver Normalform ist. Beispiel 6.10 Die Formel ¬(x1 ↔ x2 ) soll auf konjunktive Normalform transformiert werden. • Zunächst wird ↔ eliminert. ¬ (x1 → x2 ) ∧ (x2 → x1 ) ¬ (¬x1 ∨ x2 ) ∧ (¬x2 ∨ x1 ) • Mit Hilfe der de Morgan’schen Gesetze werden nun die Negationssymbole zu den Variablensymbolen gebracht. Doppelte Negationen werden gelöscht. ¬ (¬x1 ∨ x2 ) ∨ ¬ (¬x2 ∨ x1 ) (x1 ∧ ¬x2 ) ∨ (x2 ∧ ¬x1 ) • Zum Schluss wird das Distributivgesetz verwendet um ∧ nach außen zu bringen. (x1 ∧ ¬x2 ) ∨ x2 ∧ (x1 ∧ ¬x2 ) ∨ ¬x1 (x1 ∨ x2 ) ∧ (¬x2 ∨ x2 ) ∧ (x1 ∨ ¬x1 ) ∧ (¬x2 ∨ ¬x1 ) Damit hat man konjunktive Normalform erreicht. Da die beiden Teilformeln (¬x2 ∨ x2 ) und (x1 ∨ ¬x1 ) in jeder Belegung wahr sind, kann man sie aus der ∧-Verknüpfung streichen und erhält (x1 ∨ x2 ) ∧ (¬x2 ∨ ¬x1 ). Mit Hilfe einer Wertetabelle kann man leicht verifizieren, dass tatsächlich ¬(x1 ↔ x2 ) ≡ (x1 ∨ x2 ) ∧ (¬x2 ∨ ¬x1 ), wobei die rechte Seite in konjunktiver Normalform ist. Manchmal kann man sich etwas Rechenaufwand sparen, wenn man die verallgemeinerten Distributivgesetze verwendet: F ∨ (G1 ∧ G2 ∧ . . . ∧ Gn ) ≡ (F ∨ G1 ) ∧ (F ∨ G2 ) ∧ . . . ∧ (F ∨ Gn ) (F1 ∧ F2 ∧ . . . ∧ Fn ) ∨ G ≡ (F1 ∨ G) ∧ (F2 ∨ G) ∧ . . . ∧ (Fn ∨ G) V. Stahl 6.7 Logik und Künstliche Intelligenz Seite 119 Tautologien Kein Witz — besonders interessant für uns sind die absolut trivialen Formeln, d.h. Formeln die für jede Belegung wahr sind. Beispiele für solche Trivialitäten sind x3 ∨ ¬x3 1 ¬0 0 → x2 x5 → 1 x1 → (x2 → x1 ) Solche Formeln nennt man Tautologien. Definition 6.11 Tautologie. Eine Formeln F heisst Tautologie, wenn F ≡ 1, d.h. F ′ (b) = 1 für jede Belegung b. 6.8 Logische Schlussfolgerungen “Worin besteht das Geheimnis Ihres langen Lebens?” wurde ein 100-jähriger gefragt. “Ich halte mich an strenge Diätregeln: • Wenn ich kein Bier zu einer Mahlzeit trinke, dann habe ich immer Fisch. • Immer wenn ich Fisch und Bier zur selben Mahlzeit habe, verzichte ich auf Eiscreme. • Wenn ich Eiscreme habe oder Bier meide, dann rühre ich Fisch nicht an.“ Versuchen Sie mal, sich an diese Diät zu halten — und Sie werden feststellen, dass Sie zu jedem Essen Bier trinken müssen! Anders ausgedrückt: Die Aussage • Ich trinke zu jedem Essen Bier. Logik und Künstliche Intelligenz V. Stahl Seite 120 ist eine logische Folgerung aus den o.g. drei Aussagen: Wenn die ersten drei Aussagen wahr sind, dann muss auch die vierte wahr sein. Logische Folgerungen dieser Art können auch Maschinen ziehen wenn man die Aussagen formal darstellt. Man kann die Aussagen auf drei Kernaussagen reduzieren, die über Boolesche Funktionen miteinander verknüpft sind: • Ich trinke Bier. • Ich esse Fisch. • Ich esse Eiscreme. Bezeichnen wir die Wahrheitswerte dieser drei Aussagen mit den Variablen x1 , x2 und x3 . Die Diätregeln entsprechen dann folgenden Booleschen Gleichungen: ¬x1 → x2 = 1 (x2 ∧ x1 ) → ¬x3 = 1 (x3 ∨ ¬x1 ) → ¬x2 = 1 Durch diese Gleichungen werden die Wahrheitswerte von x1 , x2 , x3 eingeschränkt. Da es insgesamt nur 8 Möglichkeiten gibt, können wir alle durchprobieren und dann die aussuchen, in denen alle Gleichungen erfüllt sind. x1 0 0 0 0 1 1 1 1 x2 0 0 1 1 0 0 1 1 x3 0 1 0 1 0 1 0 1 ¬x1 → x2 0 0 1 1 1 1 1 1 (x2 ∧ x1 ) → ¬x3 1 1 1 1 1 1 1 0 (x3 ∨ ¬x1 ) → ¬x2 1 1 0 0 1 1 1 0 Aus der Tabelle erkennt man, dass nur dann alle drei Gleichungen erfüllt sind, wenn x1 = 1. Ziehen wir das ganze nun auf die syntaktische Ebene, damit wir die Rechner ins Spiel bringen können. Logik und Künstliche Intelligenz V. Stahl Seite 121 Definition 6.12 Logische Folgerung. Eine Formel F folgt logisch aus Formeln G1 , G2 , . . . , Gn , wenn für jede Belegung b, für die G′1 (b) = 1, G′2 (b) = 1, . . . , G′n (b) = 1 gilt, auch F ′ (b) = 1 gilt. Formal nicht ganz exakt aber leichter zu merken: F folgt logisch aus G1 , G2 , . . . , Gn wenn F in jeder Belegung wahr ist, in der alle G1 , G2 , . . . , Gn wahr sind. Man schreibt in diesem Fall {G1 , G2 , . . . , Gn } |= F. Beispiel 6.13 Aus obigem Beispiel entnimmt man {¬x1 → x2 , x2 ∧ x1 ) → ¬x3 , (x3 ∨ ¬x1 ) → ¬x2 } |= x1 {¬x1 → x2 , x2 ∧ x1 ) → ¬x3 , (x3 ∨ ¬x1 ) → ¬x2 } |= ¬(x2 ∧ x3 ) Beispiel 6.14 Eine Formel F ist genau dann eine Tautologie, wenn sie in jeder Belegung wahr ist. Da die Formel 1 in jeder Belegung wahr ist, kann man durch 1 |= F ausdrücken, dass F eine Tautologie ist. Man schreibt dann auch kürzer |= F. Einen zentralen Zusammenhang zwischen Tautologien und logischem Schließen stellt folgendes Theorem her: Theorem 6.15 F folgt logisch aus G1 , G2 , . . . Gn genau dann wenn G1 ∧ G2 ∧ . . . ∧ Gn → F eine Tautologie ist. V. Stahl Logik und Künstliche Intelligenz Seite 122 Kürzer ausgedrückt: {G1 , G2 , . . . , Gn } |= F genau dann wenn |= G1 ∧ G2 ∧ . . . ∧ Gn → F. Als Spezialfall dieses Theorems gilt: F folgt logisch aus G genau dann wenn G → F eine Tautologie ist. Diese Eigenschaft rechtfertigt, dass man das → Symbol als “wenn–dann” Pfeil bezeichnet. Logik und Künstliche Intelligenz V. Stahl 7 Seite 123 Prädikatenlogik 7.1 7.1.1 Syntax der Prädikatenlogik Terme, atomare Formeln, Formeln Die Sprache der Prädikatenlogik (oder Logik erster Ordnung) ist — wie jede Sprache — eine Menge von Zeichenketten. Um die Sprache zu definieren, muss man also zunächst festlegen aus welchen Symbolen die Zeichenketten bestehen. Als nächstes wird festgelegt, welche dieser Zeichenketten Elemente der Sprache sind und welche nicht. Die Zeichenketten, die zur Sprache gehören heißen wohlgeformte Formeln (oder kurz Formeln). Doch zunächst zu den Symbolen. Man hat beliebig viele Variablensymbole – genau genommen abzählbar unendlich viele. Weiterhin hat man endlich viele Konstantensymbole, Funktionssymbole und Relationssymbole. Hinzu kommen noch Symbole der Aussagenlogik (∧, ∨, ¬, →, ↔), Klammern, Kommas und Quantoren (∀, ∃). Es gibt somit nicht die Sprache der Logik. Je nach dem welche Variablensymbole, Konstantensymbole, Funktionssymbole und Relationssymbole man ins Spiel nimmt, erhält man eine andere Sprache, d.h. andere Mengen von Termen und Formeln. Wir nehmen also an, dass eine feste Auswahl an Symbolen getroffen wurde, z.B. • Variablensymbole: x, y, z, x1 , x2 , x3 , . . .. • Konstantensymbole: c, d. • Funktionssymbole: f, g, h wobei f einstellig und g, h zweistellig sind. • Relationssymbole: P, Q wobei P einstellig und Q zweistellig ist. Aus den Variablen-, Konstanten-, und Funktionssymbolen kann man wie folgt Terme zusammenbauen. Definition 7.1 (Term) • Jedes Variablensymbol und jedes Konstantensymbol ist ein Term. • Ist f ein n-stelliges Funktionssymbol und sind t1 , . . . , tn Terme, dann ist auch f (t1 , . . . , tn ) ein Term. V. Stahl Logik und Künstliche Intelligenz Seite 124 Terme sind also nichts anderes als Zeichenketten mit einer bestimmten Struktur. Beispiele für Terme sind x d f (z) f (f (z)) g(d, y) g f (z), g(d, y) . Definition 7.2 (Atomare Formel) Ist P ein n-stelliges Relationssymbol und sind t1 , . . . , tn Terme, dann ist P (t1 , . . . , tn ) eine atomare Formel. Beispiele für atomare Formeln sind P (x) Q g(x, y), h(x, y) P f (f (y)) . Zum Schluss kommen noch die aussagelogischen Symbole und Quantoren dazu. Logik und Künstliche Intelligenz V. Stahl Seite 125 Definition 7.3 (Formel) • Jede atomare Formel ist eine Formel. • Ist F eine Formel, dann auch ¬F. • Sind F und G Formeln, dann auch (F ∧ G), (F ∨ G), (F → G), (F ↔ G). • Ist F eine Formel und x ein Variablensymbol, dann ist auch ∀x F eine Formel. Beispiele für Formeln sind Q(x, c) P (c) → ∀x ¬∀y Q(x, d) ∀x P f (g(x, c)) → Q c, f (c) Der Aufbau der letzten Formel ist in Bild 7.1 durch einen Baum dargestellt. Hat man sich also für bestimmte Variablen-, Konstanten-, Funktions-, und Relationssymbole entschieden, ist die zugehörige Sprache der Prädikatenlogik die Menge der Formeln, die man aus diesen Symbolen konstruieren kann. 7.1.2 Freie und gebundene Variablen. Ein Variablensymbol kommt in einer Formel entweder frei vor oder gebunden durch einen Quantor. Beispiel 7.4 Hierzu ein paar Beispiele: ∀x Q(x, y) Hier ist x gebunden und y frei. P (x) → ∀x Q(x, d) Das erste Auftreten von x ist frei, das zweite gebunden. ∀x P (x) → Q(x, y) Logik und Künstliche Intelligenz V. Stahl Seite 126 ∀x P f (g(x, c)) → Q c, f (c) ∀x P f (g(x, c)) P f (g(x, c)) f (g(x, c)) Formeln Q c, f (c) c atomare Formeln f (c) Terme g(x, c) x c c Abbildung 7.1: Aufbau von Formeln. Beide Auftreten von x sind gebunden, y ist frei. ∀x P (x) → Q(x, y) Das erste Auftreten von x ist gebunden, das zweite frei. Um die “Reichweite” eines Quantors zu bestimmen, muss man sich klarmachen wie die Formel durch einen Baum aufgebaut ist. Hierüber geben die Klammern Aufschluss. ∀x P (x) → ∀x Q(x, y) Beide Auftreten von x sind gebunden, jedoch durch unterschiedliche Quantoren. Ein Quantor ∀x bindet somit die freien Auftreten des Variablensymbols x im Baum unterhalb dieses Quantors, siehe Bild 7.1. Man sollte möglichst vermeiden, dass ein Variablensymbol in ein und der selben Formel sowohl frei als auch gebunden vorkommt oder durch unterschiedliche Quantoren gebunden wird. Solche Situationen können leicht behoben werden, indem man ein gebundenes Variablensymbol durch ein neues Variablensymbol ersetzt, d.h. ein Variablensymbol, das noch nicht in der Formel verwendet wird. Man spricht dann von einer gebundenen Umbenennung. Schließlich hat man ja unendlich viele Variablensymbole! Logik und Künstliche Intelligenz V. Stahl Seite 127 Definition 7.5 (Geschlossene Formel) Eine Formel, in der keine freien Variablensymbole vorkommen, heißt geschlossen. Man kann aus jeder Formel eine geschlossene Formel machen, wenn man an den Anfang der Formel einen Allquantor zu jeder in ihr auftretenden freien Variablen setzt. Man spricht dann vom universellen Abschluss der Formel. Der universelle Abschluss von P (x) → ∀z Q(y, z) ist somit 7.1.3 ∀x ∀y P (x) → ∀z Q(y, z) . Substitution Manchmal möchte man alle freien Auftreten eines Variablensymbols x in einer Formel F durch einen Term t ersetzen. Die entstehende Formel wird dann mit F [t/x] bezeichnet. So ist z.B. P (x)[f (y)/x] = P (f (y)) Q x, f (x) [h(x, y)/x] = Q h(x, y), f h(x, y) ∀y P (y) → Q(x, y) [f (c)/y] = ∀y P (y) → Q(x, f (c)) . Definition 7.6 (Substitution) Eine Substitution ist die Ersetzung eines Variablensymbols an allen Stellen, in denen es frei in einer Formel vorkommt durch einen Term. Definition 7.7 (Frei für) Sind alle Auftreten von Variablensymbolen im Term t nach dessen Substitution für x in F frei, dann heißt t frei für x in F . Bei Substitutionen ist es normalerweise sehr wünschenswert, dass t frei für x in F ist und kann leicht erreicht werden, indem man die gebundenen Variablensymbole von F so umbenennt, dass sie verschieden sind von den Variablensymbolen in t. Beispiel 7.8 Logik und Künstliche Intelligenz V. Stahl Seite 128 • Sei t = g(c, y) und F = ∀y Q(x, y). Dann ist t nicht frei für x in F . Es ist nämlich F [t/x] = ∀y Q g(c, y), y und das Vorkommen von y in t ist nun gebunden! • Benennt man das gebundene Variablensymbol y in F zunächst um, erhält man die Formel F ′ = ∀z Q(x, z). Nun ist t frei für x in F ′ und es ist F ′ [t/x] = ∀z Q g(c, y), z . Nachfolgendes Beispiel soll verdeutlichen, warum es so wichtig ist, dass ein Term frei für ein Variablensymbol ist, bevor man substituiert. Beispiel 7.9 Die Formel F = ∃y y = x + 1 kann interpretiert werden als Aussage über natürliche Zahlen und Addition. Sie drückt dann aus, dass die natürliche Zahl x einen Nachfolger hat. Dies ist wahr für beliebiges x ∈ N, also kann man für x auch einen Term einsetzen, z.B. die Konstante 42: F [42/x] = ∃y y = 42 + 1. auch dies ist wahr. Substiuiert man jedoch für x den Term y, erhält man F [y/x] = ∃y y = y + 1 und das ist natürlich falsch. Dies liegt daran, dass der Term y nicht frei für x in der Formel F ist. 7.1.4 Syntaktische Vereinfachungen. Die Formeln sind oft schwer zu lesen, weil sie sehr viele Klammern enthalten. Um die Notation zu vereinfachen, werden überflüssige Klammern weggelassen. Hierzu wird festgelegt, dass ∧ stärker bindet als ∨ und ∨ stärker als →. Beispiel 7.10 Die Formel P (x) ∧ ∃y Q(x, y) → P (c) ∨ P (x) ist somit eine syntaktische Vereinfachung von P (x) ∧ ∃y Q(x, y) → P (c) ∨ P (x) . V. Stahl 7.2 Logik und Künstliche Intelligenz Seite 129 Semantik der Prädikatenlogik Was könnte die Formel ∀x Q g(x, c), x bedeuten? Man kann sie z.B. so interpretieren, dass sie Aussagen über Zahlen aus N0 macht. Das Konstantensymbol c soll die Zahl 0 bedeuten, g soll die Additionsfunktion sein und Q die Gleichheitsrelation. Die Formel macht dann die wahre Aussage, dass für alle x ∈ N0 gilt x + 0 = x. Allgemein muss man bei der Interpretation einer Formel festlegen, was die Konstanten-, Funktions-, und Relationssymbole bedeuten sollen. Naheliegenderweise sollen die Konstantensymbole durch eine Konstanten, die Funktionssymbole durch Funktionen und die Relationssymbole durch Relationen interpretiert werden. Um’s einfach zu machen, sollen diese sich alle auf ein und dieselbe Menge beziehen. Um die Notation etwas zu vereinfachen, bezeichnen wir die Symbole unsere Sprache wie folgt: • Konstantensymbole: c1 , c2 , . . . • Variablensymbole: x1 , x2 , . . . • Funktionssymbole: f1 , f2 , . . . • Relationssymbole P1 , P2 , . . .. Definition 7.11 (Interpretation) Eine Interpretation einer Sprache der Prädikatenlogik besteht aus einer nichtleeren Menge A, der sog. Trägermenge der Interpretation. Weiterhin ordnet sie • jedem Konstantensymbol ci ein Element c′i ∈ A zu • jedem Variablensymbol xi ein Element x′i ∈ A zu • jedem n-stelligen Funktionssymbol fi eine n-stellige Funktion fi ∈ An → A zu • und jedem n-stelligen Relationssymbol Pi eine n-stellige Relation auf Pi ⊆ An zu. Notation 7.12 Allgemein wird die Bedeutung eines Symbols s mit s′ bezeichnet. V. Stahl Logik und Künstliche Intelligenz Seite 130 Intuitiv müsste klar sein, was eine Formel bedeutet, wenn die Bedeutung der Symbole (d.h. eine Interpretation) gegeben ist. Trotzdem nochmal eine exakte Definition. Gemäß dem Aufbau von Formeln wird zunächst die Bedeutung von Termen definiert. Definition 7.13 (Bedeutung von Termen) Sei t ein Term und I eine Interpretation. Dann ist die Bedeutung t′ von t in I definiert durch ′ falls t = ci für ein i ci ′ ′ t = x falls t = xi für ein i i′ ′ fi (t1 , . . . , t′n ) falls t = fi (t1 , . . . , tn ) für ein i. Beispiel 7.14 Sei t = f (g(x, c)), die Trägermenge von I sei N0 , weiter ′ ′ sei c = 5, x = 3, g ′ (x, y) = x + y und f ′ (x) = x + 1. Dann ist t′ = 9. Die Bedeutung eines Terms ist somit immer ein Element der Trägermenge. V. Stahl Logik und Künstliche Intelligenz Seite 131 Logik und Künstliche Intelligenz V. Stahl Seite 132 Definition 7.15 (Bedeutung von Formeln) Sei F eine Formel und I eine Interpretation mit Trägermenge A. Dann ist die Bedeutung F ′ von F in I wie folgt definiert: • Ist F eine atomare Formel, d.h. F = Pi (t1 , . . . , tn ) für ein i dann ist F ′ = Pi′ (t′1 , . . . , t′n ). • Ist F = ¬G für eine Formel G, dann ist F ′ = ¬G′ . Achtung: Während ¬ in der Formel F = ¬G nur ein Symbol ist, bezeichnet ¬ in F ′ = ¬G′ eine Boolesche Funktion! • Ist F = (G → H) für Formeln G und H, dann ist F ′ = G′ → H ′ . Wiederum ist → in F = (G → H) nur ein Symbol, während es in F ′ = G′ → H ′ eine Boolesche Funktion bezeichnet. • Die Bedeutung von G ∧ H, G ∨ H, G ↔ H ist analog zum vorigen Fall definiert. • Ist F = ∀xi G für ein Variablensymbol xi und eine Formel G dann ist – F ′ = 1 wenn die Formel G wahr ist in jeder Interpretation I[x′i = a] mit a ∈ A beliebig und – F ′ = 0 sonst. Hierbei ist I[x′i = a] die selbe Interpretation wie I, außer dass das Variablensymbol x′i durch a interpretiert wird. • Die Bedeutung von ∃xi G ist analog zum vorigen Fall definiert. V. Stahl Logik und Künstliche Intelligenz Seite 133 Die Bedeutung einer Formel in einer Interpretation ist somit immer ein Wahrheitswert 0 oder 1. Bemerkung. In der Regel werden wir mit geschlossenen Formeln arbeiten. Für die Interpretation solcher Formeln ist die Bedeutung der Variablensymbole irrelevant und wird daher nicht angegeben. Beispiel 7.16 Nachfolgend zwei Interpretationen I1 , I2 für Formeln, die die in Kapitel 7.1.1 genannten Symbole verwenden. • Trägermenge von I1 sei N0 . In I1 wird das Konstantensymbol c durch c′ = 0 interpretiert, f ′ ist die einstellige Nachfolgerfunktion, g ′ ist die Addition und h′ die Multiplikation. Weiterhin ist P ′ die Menge der geraden Zahlen und Q′ die Gleichheitsrelation. √ • Trägermenge von I2 sei R. In I2 ist c′ = 2, f ′ ist die Rundungsfunktion nach oben auf die nächstgelegene ganze Zahl, g ′ ist die Addition und h′ die Subtraktion. Weiterhin ist P ′ die Menge der rationalen Zahlen und Q′ die Gleichheitsrelation. Um auszudrücken, dass eine Formel F wahr bzgl. einer Interpretation I ist, schreibt man |=I F. Mit den Interpretationen von Beispiel 7.16 gilt |=I1 ∀x Q g(x, c), x 6|=I2 ∀x Q g(x, c), x . Theorem 7.17 Ist F eine Formel und I eine Interpretation, dann gilt entweder |=I F oder |=I ¬F. Definition 7.18 (Gültige Formel) Eine Formel heißt gültig, wenn sie wahr in jeder Interpretation ist. Ein Beispiel für eine gültige Formel ist P (x) → P (x) . Logik und Künstliche Intelligenz V. Stahl Seite 134 Definition 7.19 (Unerfüllbare Formel) Eine Formel heißt unerfüllbar, wenn sie falsch in jeder Interpretation ist. Offensichtlich ist eine Formel F genau dann gültig, wenn ¬F unerfüllbar ist. Beispiel 7.20 Die Formel ∀x P (x) → ∃yP (y) ist gültig. Wenn die Eigenschaft P ′ für jedes Elemnt der Trägermenge gilt, dann existiert auch mindestens ein Element der Trägermenge, welches die Eigenschaft P ′ hat. Doch halt — wie sieht’s mit der Interpretation aus, deren Trägermenge leer ist? In der Tat wäre die Formel in dieser Interpretation falsch. Um solche Ausnahmefälle zu vermeiden, wurde in Definition 7.11 ausdrücklich gefodert, dass die Trägermenge einer Interpretation nicht leer sein darf. 7.3 7.3.1 Rechenregeln für Formeln der Prädikatenlogik Äquivalente Formeln Eine Rechenregel ist ganz allgemein ausgedrückt eine syntaktische Umformung einer Zeichenkette, bei der die Semantik erhalten bleibt. Das Distributivgesetz besagt z.B., dass die beiden syntaktisch ungleichen Terme a(b + c) und ab + ac die gleiche Semantik haben, wenn man sie über den reellen Zahlen mit Addition und Multiplikation interpretiert. Das bedeutet, dass man im Lauf eines Rechenvorgangs die beiden Terme beliebig gegeneinander austauschen kann. Ähnliche Rechenregeln gibt es auch für Formeln der Prädikatenlogik. Beispiel 7.21 Formeln Aus den Gesetzen von de Morgan folgt, dass die beiden ¬ ∀x P (x) ∨ Q(c, d) und ¬∀x P (x) ∧ ¬Q(c, d) den selben Wahrheitswert haben, und zwar in jeder Interpretation. Sie haben somit die selbe Bedeutung, d.h. sind semantisch gleich. Logik und Künstliche Intelligenz V. Stahl Beispiel 7.22 Seite 135 Die beiden Formeln ¬∀x P (x) und ∃x ¬P (x) sagen im Prinzip das Selbe aus: Wenn nicht jedes x die Eigenschaft P hat, dann gibt’s mindestens ein x, welches nicht die Eigenschaft P hat — und umgekehrt. Dabei ist völlig egal, wie man P interpretiert. In jeder Interpretation besitzen die beiden Formeln den selben Wahrheitswert und sind somit semantisch gleich. Analog zur Aussagenlogik heißen semantisch gleiche Formeln äquivalent. Definition 7.23 (Äquivalente Formeln) Zwei Formeln F und G heißen äquivalent wenn sie in jeder Interpretation den selben Wahrheitswert haben. Man schreibt dann F ≡ G. Wie im Fall der Aussagenlogik wird das Symbol = verwendet für die syntaktische Gleichheit von Formeln, während ≡ für die semantische Gleichheit steht. Wenn F = G, dann gilt auch F ≡ G, andersherum muss dies aber nicht der Fall sein. So ist z.B. ¬∀x P (x) ≡ ∃x ¬P (x) aber ¬∀x P (x) 6= ∃x ¬P (x). 7.3.2 Regeln der Aussagenlogik Die Rechenregeln für Boolesche Funktionen in Tabelle 6.2 lassen sich unmittelbar auf die Prädikatenlogik übertragen. V. Stahl Logik und Künstliche Intelligenz Seite 136 Theorem 7.24 Seien F, G, H beliebige Formeln der Prädikatenlogik. Dann gilt F ∧G ≡ G∧F F ∨G ≡ G∨F (Kommutativität von ∧) (Kommutativität von ∨) (F ∧ G) ∧ H ≡ F ∧ (G ∧ H) (F ∨ G) ∨ H ≡ F ∨ (G ∨ H) (Assoziativität von ∧) (Assoziativität von ∨) F ∧ (G ∨ H) ≡ (F ∧ G) ∨ (F ∧ H) (Distributivität von ∧ über ∨) F ∨ (G ∧ H) ≡ (F ∨ G) ∧ (F ∨ H) (Distributivität von ∨ über ∧) F ∧F ≡ F F ∨F ≡ F (Idempotenz von ∧) (Idempotenz von ∨) F ∧ (F ∨ G) ≡ F F ∨ (F ∧ G) ≡ F (Absorption) ¬¬F ≡ F (Doppelnegation) ¬(F ∧ G) ≡ (¬F ) ∨ (¬G) ¬(F ∨ G) ≡ (¬F ) ∧ (¬G) (de Morgan’sche Regeln) F → G ≡ (¬F ) ∨ G F ↔ G ≡ (F → G) ∧ (G → F ) (Ersetzen von →) (Ersetzen von ↔) Logik und Künstliche Intelligenz V. Stahl 7.3.3 Seite 137 Regeln für Quantoren Theorem 7.25 Seien F und G beliebige Formeln. Dann gilt ¬∀xF ≡ ∃x¬F ¬∃xF ≡ ∀x¬F (Vertauschen von ¬ und ∀) (Vertauschen von ¬ und ∃) ∀xF ∧ ∀xG ≡ ∀x(F ∧ G) ∃xF ∨ ∃xG ≡ ∃x(F ∨ G) (Herausziehen von ∀ aus ∧) (Herausziehen von ∃ aus ∨) ∀x∀yF ≡ ∀y∀xF ∃x∃yF ≡ ∃y∃xF (Reihenfolge von ∀) (Reihenfolge von ∃) Theorem 7.26 Seien F und G beliebige Formeln. Falls x in G nicht frei vorkommt, gilt ∀xF ∀xF ∃xF ∃xF ∧G≡ ∨G≡ ∧G≡ ∨G≡ ∀x(F ∀x(F ∃x(F ∃x(F ∧ G) ∨ G) ∧ G) ∨ G) (Triviale Quantifizierung) Wichtig: Folgende ganz ähnlich aussehende Umformungen sind im Allgemeinen nicht zulässig! ∀xF ∨ ∀xG ≡ 6 ∀x(F ∨ G) ∃xF ∧ ∃xG ≡ 6 ∃x(F ∧ G) ∀x∃yF 6≡ ∃y∀xF ∃x∀yF 6≡ ∀y∃xF Beispiel 7.27 Um zu sehen, dass ∀xF ∨ ∀xG 6≡ ∀x(F ∨ G) Logik und Künstliche Intelligenz V. Stahl Seite 138 folgendes Beispiel: Sei F = P (x) G = ¬P (x) Dann besagt ∀x (F ∨ G), dass jedes Objekt die Eigenschaft P hat oder die Eigenschaft P nicht hat — was natürlich wahr ist. Andererseits besagt ∀xF ∨ ∀xG, dass jedes Objekt die Eigenschaft P hat oder jedes Objekt die Eigenschaft P nicht hat. Nimmt man die Interpretation I mit Trägermenge N und interpretiert P als Menge der geraden natürlichen Zahlen, dann ist diese Formel falsch in I. Beispiel 7.28 Um zu sehen, dass ∀x∃yF 6≡ ∃y∀xF folgendes Beispiel: Sei F = P (x, y) und I die Interpretation mit Trägermenge N und P die Gleichheitsrelation auf N. Dann ist ∀x∃y P (x, y) wahr, während falsch in I ist. 7.3.4 ∃y∀x P (x, y) Gebundene Umbenennung Auch die bereits früher erwähnte gebundene Umbenennung lässt sich als Rechengesetz verstehen, bei dem eine Formel syntaktisch verändert wird ohne ihre Semantik zu ändern. Theorem 7.29 (Gebundene Umbenennung) Sei F eine Formel, in der y nicht vorkommt. Sei weiterhin F [y/x] die Formel, die entsteht wenn man alle freien Vorkommen von x in F durch y ersetzt. Dann gilt Dann gilt ∀xF ≡ ∀yF [y/x] ∃xF ≡ ∃yF [y/x] Logik und Künstliche Intelligenz V. Stahl Beispiel 7.30 Seite 139 Wir haben gesehen, dass i.a. ∀xF ∨ ∀xG 6≡ ∀x(F ∨ G). Sei y ein Variablensymbol, das nicht in G vorkommt. Durch gebundene Umbenennung erhält man somit ∀xF ∨ ∀xG ≡ ∀xF ∨ ∀yG[y/x]. Da x in ∀y G[y/x] nicht frei vorkommt, folgt aus Theorem 7.25 ∀xF ∨ ∀yG[y/x] ≡ ∀x∀y(F ∨ G[y/x]). Somit gilt ∀xF ∨ ∀xG ≡ ∀x∀y(F ∨ G[y/x]). 7.3.5 Pränex Normalform Mit den Rechenregeln aus Kapitel 7.3 ist es immer möglich, eine Formel der Prädikatenlogik so äquivalent umzuformen, dass alle Quantoren am Anfang der Formel stehen. Die Formel hat dann Pränex Normalform. Definition 7.31 (Pränex Normalform) Eine Formel heißt pränex oder in Pränex Normalform wenn sie die Form Q1 x1 Q2 x2 . . . Qn xn F hat, wobei xi Variablensymbole, Qi ∈ {∀, ∃}, n ≥ 0 und F eine quantorenfreie Formel ist. Beispiel 7.32 ¬ ∃x P (x) ∨ ∀y Q(x, y) ≡ ¬∃x P (x) ∧ ¬∀y Q(x, y) ≡ ∀x ¬P (x) ∧ ∃y ¬Q(x, y) ≡ ∀z ¬P (z) ∧ ∃y ¬Q(x, y) ≡ ∀z ¬P (z) ∧ ∃y ¬Q(x, y) ≡ ∀z ∃y ¬P (z) ∧ ¬Q(x, y) (de Morgan) (Theorem 7.25) (Gebundene Umbenennung) (Theorem 7.26) (Theorem 7.26) Um eine gegeben Formel auf Pränex Normalform zu bringen, empfiehlt sich folgende Vorgehensweise: Logik und Künstliche Intelligenz V. Stahl Seite 140 • Zunächst ersetzt man → und ↔ durch ∧, ∨ und ¬, siehe Theorem 7.24. • Als nächstes transportiert man alle Negationen direkt zu den atomaren Formeln. Hierzu benötigt man das Gesetz von de Morgan und Theorem 7.25. In Beispiel 7.32 waren dies die ersten beiden Schritte. • Um einen Quantor aus einer ∧ bzw. ∨ Verknüpfung herauszuholen, bedient man sich der Theoreme 7.25 und 7.26. Die nötige Voraussetzung für die Anwendbarkeit von Theorem 7.26 (x darf in G nicht frei vorkommen), lässt sich durch eine gebundene Umbenennung immer erreichen. Dies war in Beispiel 7.32 im dritten Schritt erforderlich, um Theorem 7.26 anwenden zu können. 7.4 Logische Folgerungen Ähnlich wie im Fall der Aussagenlogik (Definition 6.12) wird nun auch für die Prädikatenlogik der Begriff der logischen Schlussfolgerung definiert. Sei im Folgenden Φ eine Menge von Formeln und F eine Formel. Definition 7.33 (Logische Folgerung) F folgt logisch aus Φ, wenn in jeder Interpretation, in der alle Formeln von Φ wahr sind, auch F wahr ist. Hierfür schreibt man Φ |= F. Wenn Φ nur eine einzige Formel G enthält, schreibt man einfach G |= F, d.h. man spart sich die Mengenklammern um G. Definition 7.34 (Modell) Eine Interpretation I, in der alle Formeln von Φ wahr sind, heißt Modell von Φ. Man schreibt dafür |=I Φ. Beispiel 7.35 Sei Φ = { ∀x x 6= 0 → ∃y x = s(y), ∀x ∀y s(x) = s(y) → x = y }. Logik und Künstliche Intelligenz V. Stahl Seite 141 Dann ist die Interpretation mit Trägermenge N0 , in der s ∈ N0 → N0 durch die Nachfolgerfunktion, 0 durch die Konstante Null und = durch die Gleichheitsrelation auf N0 interpretiert wird, ein Modell von Φ. Die beiden Formeln besagen dann, dass jede Zahl außer Null einen Vorgänger hat und dass die Nachfolgerfunktion injektiv ist. Natürlich hat Φ auch noch andere Modelle. Ein Modell von Φ ist somit eine Möglichkeit, was die Formeln von Φ bedeuten könnten. Mit dem Begriff des Modells lässt sich Definition 7.33 etwas kürzer formulieren: Φ |= F wenn F in jedem Modell von Φ wahr ist. In Kapitel ?? werden Verfahren vorgestellt, wie man automatisch logische Schlussfolgerungen ziehen kann. Je mehr Wissen man hat, desto mehr Schlussfolgerungen kann man daraus ziehen. Formal lässt sich das durch folgendes Theorem ausdrücken. Theorem 7.36 Seien Φ und Ψ Formelmengen mit Φ ⊆ Ψ. Sei F eine Formel mit Φ |= F . Dann gilt auch Ψ |= F . Es gibt auch Formeln, auf die man ohne jedes Vorwissen schließen kann. Dies sind genau die gültigen Formeln. Ist F eine gültige Formel, dann gilt ∅ |= F. 7.4.1 Schlussfolgerungsregeln Die in Kapitel 7.1.3 behandelten Substitutionen sind die Grundlage einer ganzen Klasse von einfachen logischen Schlussfolgerungen: Wenn eine Eigenschaft für alle Objekte gilt, dann trifft sie auch auf konkrete Einzelobjekte zu. Wenn man z.B. weiss, dass alle Menschen sterblich sind, kann man daraus schließen, dass auch Sokrates sterblich ist. Übersetzen wir nun diese triviale Erkenntnis in die Sprache der Logik. Sei F eine Formel (im Beispiel Sterblich(x)) und t ein Term (im Beispiel Sokrates). Dann ist in jeder Interpretation, in der ∀xF wahr ist, auch F [t/x] Logik und Künstliche Intelligenz V. Stahl Seite 142 wahr, d.h. ∀xF |= F [t/x]. Doch halt — es gibt eine unschöne Ausnahme! Sei F = ∃y y = x und t = y + 1. In der Standard Interpretation über den natürlichen Zahlen ist ∀xF = ∀x ∃y y = x wahr, aber F [t/x] = ∃y y = y + 1 ist falsch. Man muss daher zusätzlich fordern, dass t frei für x in F ist, siehe Definition 7.7. Theorem 7.37 Logische Schlussfolgerung durch Konkretisierung. Sei t frei für x in F . Dann gilt ∀xF |= F [t/x]. Neben der Konkretisierung ist die bereits aus der Aussagenlogik bekannte Schlussfolgerungsregel Modus Ponens wichtig. Theorem 7.38 (Modus Ponens.) Seien F und G zwei Formeln der Prädikatenlogik. Dann gilt {F, F → G} |= G. Wie in Kapitel ?? gezeigt wird, kann man allein mit der Konkretisierung und Modus Ponens alle erforderlichen logischen Schlussfolgerungen ziehen. Man kann also beliebig komplexe Denkvorgänge in so feine Schritte zerlegen, dass jeder einzelne Schritt trivial ist. 7.4.2 Konsistenz Definition 7.39 (Konsistenz) Eine Menge von Formeln heißt konsistent, wenn sie ein Modell hat. Ansonsten heißt sie inkonsistent. V. Stahl Logik und Künstliche Intelligenz Seite 143 Inkonsistente Mengen von Formeln sind in praktischen Anwendungen nicht sinnvoll. Aus einer inkonsistenten Menge von Formeln Φ kann man jede beliebige Formeln F logisch folgern. Dies wird klar, wenn man sich genau an die Definitionen hält. Es gilt Φ |= F genau dann wenn für jede Interpretation I, in der alle Formeln von Φ wahr sind, auch F wahr ist. Ist Φ jedoch inkonsistent, gibt es keine solche Interpretation I, folglich werden auch keine Anforderungen an F gestellt. Folgendes Theorem spielt für die in Kapitel ?? eine wichtige Rolle: Theorem 7.40 Wenn Φ |= F , dann ist Φ ∪ {¬F } inkonsistent. Der Beweis ist recht einfach: • Angenommen Φ |= F . • Laut Definition 7.33 ist somit F in jeder Interpretation wahr, in der alle Formeln von Φ wahr sind. • Damit ist ¬F in jeder Interpretation falsch, in der alle Formeln von Φ wahr sind. • Folglich gibt es keine Interpretation, in der sowohl alle Formeln von Φ als auch ¬F wahr sind. • Nach Definition 7.39 ist somit Φ ∪ {¬F } inkonsistent. V. Stahl A Logik und Künstliche Intelligenz Seite 144 Kardinalzahlen und Kontinuumshypothese In Definition 2.19 wurde der Begriff der Mächtigkeit (oder Kardinalität) einer Menge festgelegt. Zwei Dinge sind an dieser Definition nicht so toll: Zum einen hat man vorausgesetzt, dass bekannt ist was die Anzahl der Elemente einer Menge ist, zum anderen wurde die Mächtigkeit nur für endliche Mengen definiert. Nachdem wir uns inzwischen mit bijektiven Funktionen und Äquivalenzrelationen beschäftigt haben, können wir nun nicht nur den Begriff der Mächtigkeit von beliebigen Mengen definieren sondern auch noch einen bestimmten Typ von Zahlen, die sog. Kardinalzahlen. Definition A.1 Zwei Mengen A und B heißen gleich mächtig, wenn es eine bijektive Funktion f ∈ A → B gibt. Ist A eine endliche Menge und B ⊂ A, dann gibt es natürlich keine bijektive Funktion von A nach B und folglich sind A und B erwartungsgemäß nicht gleich mächtig. Beispiel A.2 Es gibt keine injektive Funktion in der Menge {1, 2, 3} → {1, 2}. Jede Funktion aus dieser Menge muss zwangsläufig mindestens zwei Elementen aus der ersten Menge ein und das selbe Element aus der zweiten Menge zuweisen. Für unendliche Mengen gilt dies nicht: Z und N sind gleich mächtig obwohl N ⊂ Z. Eine bijektive Funktion f ∈ Z → N wurde in Beispiel 5.64 definiert. Diese Eigenschaft hat Richard Dedekind benutzt um die Eigenschaft “unendlich” einer Menge zu definieren. Wir müssen uns ab sofort also nicht mehr auf unsere intuitive Vorstellung von Unendlichkeit verlassen. Definition A.3 Eine Menge A heißt unendlich, wenn es eine Menge B ⊂ A und eine injektive Funktion f ∈ A → B gibt. Die Mächtigkeit (oder Kardinalität) einer Menge wird nun nicht als “Zahl” sondern als die Menge aller gleich mächtigen Mengen definiert. Logik und Künstliche Intelligenz V. Stahl Seite 145 Definition A.4 Gleichmächtigkeit ist eine Äquivalenzrelation auf der Menge aller Mengen. Wir schreiben A≡B genau dann wenn A und B gleich mächtig sind. Die Äquivalenzklasse bzgl. ≡ von A wird mit |A| bezeichnet und heißt Kardinalität von A. Beispiel A.5 gilt Die Mengen N, Z, Q, usw. sind alle gleich mächtig. Daher |N| = {N, Z, Q, . . .}. Beispiel A.6 N und Z sind gleich mächtig, daher gilt |N| = |Z|. Andererseits gilt |∅| = 6 |{∅}|. Nachdem nun die Kardinalität einer Menge definiert ist, kann man sich darauf stützen und definieren was Zahlen sind. Anstatt also wie bisher unter Verwendung einer intuitiven Vorstellung von Zahlen zu definieren was die Mächtigkeit einer Menge ist, machen wir’s nun umgekehrt: Unter Verwendung der Kardinalität wird definiert was Zahlen sind. Für endliche Mengen ist der Begriff der Gleichmächtigkeit eng verwandt mit Zahlen. Zwei endliche Mengen sind gleich mächtig wenn sie die selbe Anzahl von Elementen haben. Die Zahlen 0, 1, 2, . . . sind somit nichts anderes als Namen für Äquivalenzklassen von ≡. Definition A.7 Die Symbole 0, 1, 2, . . . sind definiert durch 0 = |∅| 1 = |{∅}| 2 = | {∅}, ∅ | .. . V. Stahl Logik und Künstliche Intelligenz Seite 146 Somit ist z.B. 3 eine Menge (was auch sonst) und zwar die Menge aller 3elementigen Mengen oder anders ausgedrückt, die Äquivalenzklasse von n o ∅, ∅ , ∅, {∅} bzgl. der Äquivalenzrelation ≡. Um auch die Mächtigkeit von unendlichen Mengen durch Zahlen beschreiben zu können, braucht man zusätzliche Zahlen, die nicht in N0 sind. Sind zwei Mengen gleich mächtig, sagt man sie haben die selbe Kardinalität oder die selbe Kardinalzahl. Definition A.8 Die Kardinalzahl von N wird mit ℵ0 bezeichnet, d.h. |N| = ℵ0 . Das Symbol ℵ ist der erste Buchstabe des hebräischen Alphabets und wird “Alef” gesprochen. Manche Dinge sind halt so kompliziert, dass selbst griechische Buchstaben ihrer nicht würdig sind. Für jede abzählbare Menge A gilt somit |A| = ℵ0 . Damit ist ℵ0 6∈ N unsere erste “unendlich große” Zahl. Die ganzen Ordnungsrelationen auf Kardinalzahlen sind nun leicht zu definieren: Definition A.9 Existiert eine injektive Funktion in A → B aber nicht in B → A, dann hat B eine höhere Kardinalität als A. Man schreibt dann |A| < |B|. Wie in Kapitel 5.12 gezeigt, ist R überabzählbar. Es gibt also keine injektive Funktion von R nach N (aber natürlich von N nach R). Somit hat R eine höhere Kardinalität als N, d.h. |N| < |R|. Es gibt also noch größere Kardinalzahlen als ℵ0 . Tatsächlich kann man Mengen mit immer größerer Kardinalität konstruieren. V. Stahl Logik und Künstliche Intelligenz Seite 147 Definition A.10 Für jede Menge A ist die Kardinalität von P (A) größer als die Kardinalität von A. Beweis. Sei A eine Menge. Angenommen es gibt eine bijektive Funktion f ∈ A → P (A). Für jedes a ∈ A gilt entweder a ∈ f (a) oder a 6∈ f (a). Sei X ⊆ A definiert durch X = {a ∈ A | a 6∈ f (a)} Da f surjektiv ist, gibt es ein x ∈ A so dass f (x) = X. Ist nun x ∈ f (x) oder x 6∈ f (x)? • Angenommen x ∈ f (x). Dann ist x 6∈ X. • Angenommen x 6∈ f (x). Dann ist x ∈ X. Da f (x) = X, führen beide Möglichkeiten zum Widerspruch. Somit haben A und P (A) unterschiedliche Kardinalität. Andererseits ist A gleich mächtig wie {{a} | a ∈ A} ⊆ P (A) so dass P (A) größere Kardinalität als A hat. Es gibt also unendlich viele unendlich große Kardinalzahlen! Gibt es Mengen, die größere Kardinalität als N, aber kleinere Kardinalität als R haben, d.h. gibt es Kardinalzahlen zwischen |N| und |R|? Tatsächlich kann man aus den allgemein akzeptierten Axiomen der Mengentheorie nach Zermelo und Fraenkel keine solche Menge konstruieren. Andererseits führt aber auch die Annahme, dass es eine solche Menge gibt, nicht zu einem Widerspruch zu diesen Axiomen. Die nächst größere Kardinalzahl nach ℵ0 wird mit ℵ1 bezeichnet. Die Kontinuumshypothese besagt, dass |R| = ℵ1 . V. Stahl Logik und Künstliche Intelligenz Seite 148 Die Aussage kann mit den Axiomen von Zermelo und Fraenkel weder widerlegt (Gödel 1938) noch bewiesen (Cohen 1963) werden. Die arithmetischen Rechenoperationen auf Kardinalzahlen kann man nun wie folgt definieren: Definition A.11 Die Summe zweier Kardinalzahlen x und y ist definiert durch x + y = |A ∪ B| für beliebige, disjunkte Mengen mit A ∈ x und B ∈ y. Beispiel A.12 Um z.B. 2 + 3 zu berechnen, wählt man zwei disjunkte Mengen aus 2 und 3, also z.B. {1, 2} ∈ 2 {5, 6, 7} ∈ 3 und erhält 2 + 3 = |{1, 2, 5, 6, 7}| = 5 Die Addition von Kardinalzahlen ist zwar kommutativ und assoziativ aber man darf nicht kürzen: Es gilt |N| + |R| = |∅| + |R| aber |N| = 6 |∅|. Weiterhin gilt z.B. für alle n ∈ N0 ℵ0 + n = ℵ0 . Definition A.13 Multiplikation und Exponentiation von Kardinalzahlen sind definiert durch |A| · |B| = |A × B| |A||B| = |AB | So ist z.B. ℵ0 + ℵ0 = ℵ0 und ℵ0 · ℵ0 = ℵ0 . V. Stahl B Logik und Künstliche Intelligenz Seite 149 Axiomensysteme und Theorien Eine Theorie ist eine Menge Φ von geschlossenen Formeln, die abgeschlossen bzgl. logischen Schlussfolgerungen ist. Das heißt, wenn {G1 , . . . , Gn } ∈ Φ und {G1 , . . . , Gn } |= F dann F ∈ Φ. Folgende Eigenschaften von Theorien sind leicht zu zeigen: • Eine Theorie enthält alle gültigen Formeln. • Sobald eine Theorie eine unerfüllbare Formel enthält, enthält sie alle Formeln. Man spricht dann von einer entarteten Theorie. Grundsätzlich gibt es zwei Ansätze, Theorien zu erzeugen. Modellbasierte Methode. Ausgehend von einer Interpretation I erhält man eine Theorie dadurch, dass man alle Formeln betrachtet, die in der Interpretation wahr sind, d.h. Φ = {F | |=I F }. Axiomatische Methode. Ausgehend von einer Menge Φ̂ von Formeln erhält man eine Theorie dadurch, dass man alle Formeln betrachtet, die logisch aus Φ̂ folgen, d.h. Φ = {F | Φ̂ |= F }. B.1 Modellbasierte Theorien Eine algebraische Struktur ist ein Tupel bestehend aus einer Menge, ausgezeichneten Elementen dieser Menge sowie Funktionen und Relationen auf dieser Menge, z.B. (N0 , 0, s, +, ×, =) wobei s ∈ N0 → N0 die Nachfolgerfunktion ist. Eine algebraische Struktur beinhaltet somit alles, was man für die Interpretation von Formeln braucht. Ein paar Beispiele von Formeln, die in dieser Interpretation wahr sind: ∀x ∀y ¬(x = y) → ¬(s(x) = s(y)) ∀x ∃y ∃z x + z = y ∀x ∃y ∃z x = y + z V. Stahl Logik und Künstliche Intelligenz Seite 150 Die Menge aller geschlossenen Formeln, die in dieser Interpretation wahr sind, heißt modellbasierte Theorie der algebraischen Struktur. Es ist leicht zu zeigen, dass modellbasierte Theorien tatsächlich Theorien sind, d.h. abgeschlossen sind unter logischer Schlussfolgerung. Modellbasierte Theorien haben eine nette Eigenschaft: sie sind immer vollständig. Ist Φ eine modellbasierte Theorie und F eine geschlossene Formel, dann ist entweder F ∈ Φ oder ¬F ∈ Φ. Dies folgt direkt aus Theorem 7.17. Schön wär’s, wenn man ein Programm hätte, das einem von jeder Formel entscheiden könnte, ob sie in der modellbasierten Theorie von (N0 , 0, s, +, ×, = ) ist oder nicht — dann könnte man nämlich ungelöste Probleme wie z.B. die Goldbachsche Vermutung maschinell lösen lassen! Leider ist dies aber unmöglich... B.2 Axiomatische Theorien Sei Φ̂ eine Menge von Formeln. Mit Φ̂ |= wird die Menge aller Formeln bezeichnet, die logisch aus Φ̂ folgen. Diese Menge nennt man axiomatische Theorie von Φ̂. Beispiel B.1 Insbesondere ist z.B. ∅ |=, d.h. die axiomatische Theorie der leeren Menge, die Menge aller gültigen Formeln. Offensichtlich ist die axiomatische Theorie von Φ̂ eine Theorie, d.h. abgeschlossen unter logischer Schlussfolgerung. Ist Φ eine Theorie so dass Φ = Φ̂ |= dann heißt Φ̂ Axiomensystem von Φ. Von einem Axiomensystem wird immer gefordert, dass es entscheidbar ist. Existiert eine (endliche) Menge Φ̂ mit Φ = Φ̂ |= dann heißt Φ (endlich) axiomatisierbar. Beispiel B.2 Ein Beispiel ist die axiomatische Theorie der Gruppen. Die verwendete Sprache enthält ein zweistelliges Funktionssymbol ◦, ein Konstantensymbol e sowie ein zweistelliges Relationssymbol =, das V. Stahl Logik und Künstliche Intelligenz Seite 151 durch Gleichheit interpretiert wird. Das Axiomensystem Φ̂ besteht aus drei Formeln: ∀x ∀y ∀z (x ◦ y) ◦ z = x ◦ (y ◦ z) ∀x x ◦ e = x ∀x∃y x ◦ y = e. Die axiomatische Theorie von Φ̂ enthält genau die Formeln, die in jeder Gruppe wahr sind. Die axiomatische Theorie der leeren Menge ist die Menge aller gültigen Formeln. Die Menge aller gültigen Formeln ist somit endlich axiomatisierbar. Es stellen sich nun folgende Fragen. • Welche axiomatischen Theorien sind entscheidbar? Die Menge aller gültigen Formeln ist zwar endlich axiomatisierbar aber nicht entscheidbar. • Welche modellbasierten Theorien sind axiomatisierbar, welche sogar entscheidbar? So ist z.B. die modellbasierte Theorie Φ von (N0 , +, ×) weder axiomatisierbar noch entscheidbar. Jeder Versuch eines Axiomensystems Φ̂ für diese Theorie (z.B. die Peano Arithmetik) führt somit auf eine unvollständige Theorie, d.h. |= Φ̂ ⊂ Φ. Dies ist der berühmte Gödelsche Unvollständigkkeitssatz. Andererseits hat Tarski später bewiesen, dass die Theorie von (R, +, ×) entscheidbar ist. Besonders angenehm sind vollständige und axiomatisierbare Theorien. Diese sind nämlich immer entscheidbar. Für eine geschlossene Formel kann man nämlich ausgehend von den Axiomen systematisch alle Theoreme erzeugen und ist aufgrund der Vollständigkeit sicher, dass man irgendwann entweder F oder ¬F erhält. V. Stahl C Logik und Künstliche Intelligenz Seite 152 Zermelo-Fraenkel Set Theory Wie in Kapitel 2.4 gezeigt, führt die ursprüngliche Definition des Mengenbegriffs zu Widersprüchen. Schuld daran ist die uneingeschränkte Anwendung des Comprehension Principles, dass zu jeder Eigenschaft E(x) eine Menge existiert, die aus genau den Objekten x besteht, für die E(x) wahr ist. Aus der Eigenschaft E(x): x ist eine Menge, die nicht Element von sich selbst ist konnte somit die Menge R = {x | x ist Menge ∧ x 6∈ x} konstruiert werden. Durch ein Widerspruchsargument kann man zeigen, dass weder R ∈ R noch R 6∈ R wahr ist. Es ist jedoch unmöglich, dass eine Aussage und ihre Negation gleichzeitig falsch sind. Man muss also bei der Definition des Begriffs Menge etwas vorsichtiger sein. Anstatt wie Cantor anschaulich zu beschreiben was eine Menge ist, formuliert man die Spielregeln nach denen Mengen konstruiert werden dürfen. Die Kunst besteht darin, mit möglichst wenigen, einfachen Regeln auszukommen. Hierfür bietet sich die Sprache der Logik an. Man spricht dann von den Axiomen der Mengenlehre. Jede wahre Aussage über Mengen muss somit logisch aus den Axiomen folgen. Der Vorteil bei dieser Vorgehensweise ist, dass man keine intuitiven Begriffe verwenden muss wie in der Cantor’schen Definition. Dies ist aber auch genau der Nachteil, weil die so definierten Mengen intuitiv nur noch sehr schwer vorstellbar sind. Es gibt unterschiedliche Axiomatisierungen der Mengenlehre. Am verbreitetsten sind die Axiome von Zermelo und Fraenkel (ZF).1 Manchmal nimmt man noch ein zusätzliches Axiom dazu, das Axiom of choice. Das erweiterte System nennt man ZFC. Nachfolgende werden die Axiome von ZFC wiedergegeben. Man weiß nicht, ob diese Axiome konsistent sind — im Prinzip kann’s also passieren dass wieder ein Russel kommt und einen Widerspruch aus ihnen herleitet. Die meisten Mathematiker glauben aber, dass die Axiome widerspruchsfrei sind. Mehr als hoffen kann man dies auch nicht, denn aus dem zweiten Gödelschen Unvollständigkeitssatz folgt, dass man deren Widerspruchsfreiheit gar nicht beweisen kann, jedenfalls nicht mit der Maschinerie der Mengenlehre. 1 Die Axiome sind das Ergebnis der Arbeit von Thoralf Skolem aus dem Jahr 1922. Sie basieren auf der Arbeit von Adolf Fraenkel aus dem selben Jahr und einem Axiomensystem von Ernst Zermelo aus dem Jahr 1908. V. Stahl Logik und Künstliche Intelligenz Seite 153 In der Zermelo-Fraenkel Mengentheorie sind alle Objekte Mengen. Die in den Axiomen vorkommenden Variablen beziehen sich also immer auf Mengen. Die Tatsache, dass manche Variablen groß und andere klein geschrieben sind, dient also nur der Lesbarkeit und hat keine Bedeutung. • Axiom of empty set. Dieses Axiom drückt aus, dass es eine leere Menge ∅ gibt, d.h. eine Menge, die keine Elemente hat. Die Formel ist ∃A ∀x ¬(x ∈ A). • Axiom of extensionality. Dieses Axiom besagt, dass zwei Mengen genau dann gleich sind, wenn sie die selben Elemente haben. Anders ausgedrückt bedeutet dies, dass eine Menge eindeutig durch ihre Elemente bestimmt ist und es keine zwei unterschiedlichen Mengen mit den selben Elementen geben kann. Die Formel ist ∀A ∀B A = B ↔ (∀x x ∈ A ↔ x ∈ B). Aus dem Axiom of extensionality folgt u.a., dass es nur eine einzige leere Menge gibt. • Axiom of pairing. Dieses Axiom besagt, dass es zu je zwei Objekten x und y immer eine Menge A = {x, y} gibt, die genau x und y als Element enthält. Die Formel ist ∀x ∀y ∃A ∀z z ∈ A ↔ (z = x ∨ z = y). Zusammen mit dem Axiom of union kann man die Verallgemeinerung herleiten, dass es zu n Objekten x1 , x2 , . . . , xn immer eine Menge A = {x1 , x2 , . . . , xn } gibt: ∀x1 ∀x2 . . . ∀xn ∃A ∀y y ∈ A ↔ (y = x1 ∨ y = x2 ∨ . . . ∨ y = xn ). • Axiom of union. Salopp ausgedrückt besagt dieses Axiom, dass man Mengen flachbügeln kann. Enthält eine Menge A ihrerseits Mengen, dann gibt es eine Menge B, die genau die Elemente der Elemente von A enthält. Hat man z.B. die Menge {1, 2}, {4}, {2, 5} , dann kann folgt aus dem Axiom of union, dass auch {1, 2, 4, 5} V. Stahl Logik und Künstliche Intelligenz Seite 154 eine Menge ist. Die Formel ist ∀A ∃B ∀x x ∈ B ↔ (∃a x ∈ a ∧ a ∈ A). Zusammen mit dem Axiom of pairing kann man hieraus herleiten, dass zu je zwei Mengen ihre Vereinigungsmenge existiert. • Axiom of power set. Dieses Axiom besagt, dass zu jeder Menge A ihre Potenzmenge P (A) existiert. Unter Verwendung des Potenzmengenoperators würde man dies so formulieren: ∀A ∃B B = P (A). Den Potenzmengenoperator hat man natürlich an dieser Stelle noch nicht zur Verfügung – das Axiom soll ja gerade ausdrücken dass er existiert. Man muss also die Definition von P (A) als Menge aller Teilmengen C von A einsetzen: ∀A ∃B ∀C C ∈ B ↔ C ⊆ A. Auch das Teilmengensymbol in C ⊆ A lässt sich noch wie folgt eliminieren: ∀A ∃B ∀C C ∈ B ↔ (∀x x ∈ C → x ∈ A). • Axiom of infinity. In der ZFC Mengentheorie werden Zahlen 0, 1, 2, . . . wie folgt durch Mengen definiert: 0 = ∅ 1 = 0 ∪ {0} = ∅ ∪ {∅} = {∅} = {0} 2 = 1 ∪ {1} = {0} ∪ {1} = {0, 1} 3 = 2 ∪ {2} = {0, 1, 2} .. . V. Stahl Logik und Künstliche Intelligenz Seite 155 (Im Gegensatz zu den Kardinalzahlen werden auf diese Weise nur endlich große Zahlen definiert.) Allgemein ist also n + 1 = n ∪ {n} = {0, 1, 2, . . . , n}. Mit den bisherigen Axiomen kann man somit beliebige endliche Teilmengen von N0 konstruieren, nicht aber z.B. die Menge N0 selbst. Das Axiom of infinity erlaubt die Konstrukton von N0 auf induktive Weise: Es besagt, dass es eine Menge A gibt, die 0 enthält und für jedes Element x auch sein Nachfolger x ∪ {x}. Die Formel ist ∃A ∅ ∈ A ∧ ∀x x ∈ A → (x ∪ {x}) ∈ A • Axiom schema of replacement. Mit diesen Axiomen wird ausgedrückt, dass wenn f eine Funktion und A eine Menge ist, dann auch {f (x) | x ∈ A} eine Menge ist. Ein erster Versuch, dies formal auszudrücken ist ∀A ∃B B = {f (x) | x ∈ A}. Der nächste Schritt ist, den Ausdruck mit den Mengenklammern zu eliminieren, da man ja das Comprehension Principle nicht zur Verfügung hat: ∀A ∃B ∀y y ∈ B ↔ (∃x x ∈ A ∧ y = f (x)). Eine Funktion ist nichts anderes als eine Formel R(x, y) mit freien Variablen x und y und der Eigenschaft ∀x ∃!y R(x, y). Man erhält damit das Axiom ∀x ∃!y R(x, y) → ∀A ∃B ∀y y ∈ B ↔ ∃x x ∈ A ∧ R(x, y) . Dieses Axiom muss für jede Formel R(x, y) mit freien Variablen x, y aufgenommen werden. Es handelt sich also nicht um ein einzelnes Axiom sondern um ein ganzes Axiomenschema. • Axiom of regularity. Dieses Axiom besagt, dass jede nichtleere Menge A ein Element x hat, so dass A und x disjunkt sind. Die Formel ist ∀A A 6= ∅ → ∃x (x ∈ A ∧ x ∩ A = ∅). V. Stahl Logik und Künstliche Intelligenz Seite 156 Setzt man die Definition von ∩ ein, erhält man ∀A A 6= ∅ → ∃x x ∈ A ∧ ¬(∃y y ∈ x ∧ y ∈ A) . Aus diesem Axiom folgt u.a., dass keine Menge sich selbst als Element enthalten kann. Beweis. Angenommen a ist eine Menge, die sich selbst enthält, d.h. a ∈ a. Aus dem Axiom of pairing folgt, dass dann auch A = {a, a} = {a} eine Menge ist. Diese Menge hat nur ein einziges Element, nämlich a und nach dem Axiom of regularity muss a und A disjunkt sein. Da aber a ∈ a und a ∈ A, haben sie das gemeinsame Element a und sind somit nicht disjunkt. Damit ist die Russelsche Antinome ausgeschlossen. Es gibt auch keine Menge aller Mengen mehr. Aus dem Axiom of regularity folgt außerdem, dass es keine unendliche Kette Ai von Mengen gibt mit . . . ∈ A3 ∈ A2 ∈ A1 . Daher wird das Axiom auch Axiom of foundation genannt. Beweis. Angenommen es gibt eine unendliche Kette . . . ∈ A3 ∈ A2 ∈ A1 . Sei f eine Funktion, die jeder natürlichen Zahl n die Menge An zuweist. Aus dem Axiom of replacement folgt, dass B = {f (n) | n ∈ N} eine Menge ist. Aus dem Axiom of regularity folgt, dass es ein k ∈ N geben muss, so dass B ∩ f (k) = ∅. Laut Konstruktion ist jedoch f (k + 1) ∈ f (k) und f (k + 1) ∈ B, also ist B ∩ f (k) 6= ∅. Zusammen mit dem Axiom of choice (s.u.) kann man auch die Umkehrung zeigen: Wenn das Axiom of regularity nicht gilt, dann gibt es auch eine unendliche Element-von Kette. Logik und Künstliche Intelligenz V. Stahl Seite 157 Beweis. Sei A ein Gegenbeispiel zum Axiom of regularity, d.h. A ist eine Menge und für jedes Element x ∈ A ist x ∩ A 6= ∅. Sei g eine Auswahlfunktion für A, d.h. g(B) ∈ B für jede nichtleere Teilmenge B ⊆ A. Die Funktion f wird nun auf N definiert durch f (1) = g(A) f (n + 1) = g f (n) ∩ A . Damit ist f (n) ∈ A für alle n ∈ N. Aus unseren Annahmen über A folgt dass f (n) ∩ A 6= ∅ und damit ist f (n + 1) definiert. Aufgrund der Eigenschaft von g ist f (n + 1) ∈ f (n) ∩ A und damit f (n + 1) ∈ f (n). Damit hat man eine unendliche Kette . . . ∈ f (3) ∈ f (2) ∈ f (1). • Axiom of choice. Lange Zeit war nicht klar, ob das Axiom of choice überhaupt gebraucht wird, oder ob es bereits aus den anderen Axiomen folgt. In der Tat klingt das Axiom of choice so selbstverständlich, dass es für viele überraschend war als Gödel und Cohen seine Unabhängigkeit von den anderen Axiomen bewiesen. Das Axiom of choice sagt, dass wenn man eine Menge von Mengen hat, man aus jeder Menge ein Element auswählen kann. Etwas formeller wird dies wie folgt formuliert: Für jede Menge A existiert eine Funktion f , so dass f (x) ∈ x für alle x ∈ A. Da man in der Logik erster Stufe nicht über Funktionen quantifizieren darf, wird folgende, äquivalente Formulierung benutzt: Zu jeder Menge A von disjunkten nichtleeren Mengen B existiert eine Menge X, die genau eine Element von jeder Menge B enthält. Die Formel hierzu ist ∀A (∀B ∈ A B 6= ∅) ∧ (∀B ∈ A ∀C ∈ A B 6= C → B ∩ C = ∅) → ∃X (∀x ∈ X ∃B ∈ A x ∈ B) ∧ (∀B ∈ A ∃!x ∈ X x ∈ B) V. Stahl Logik und Künstliche Intelligenz Seite 158 Natürlich kann man in der Formel die relativierten Quantoren und den ∃! Quantor duch normale Quantoren ersetzen. Das Axiom of choice besagt, dass es zu jeder Menge eine Auswahlfunktion gibt, es gibt aber keine Hinweis darauf wie diese Funktion definiert ist. Dass eine solche Auswahlfunktion durchaus trickreich sein kann, erkennt man wenn man die Menge A = P (R) anschaut. Die naheliegende Option, dass man aus jeder Teilmenge von R z.B. das kleinste Element auswählt funktioniert nicht, da es Teilmengen von R gibt, die kein kleinstes Element haben, z.B. {x | x ∈ R ∧ x > 0}. Das Axiom of choice ist bei vielen Mathematikern unbeliebt, weil seine Verwendung zu nicht konstruktiven Beweisen führt. Solche Beweise garantieren zwar die Existenz bestimmter Objekte, verraten jedoch nicht wie diese definiert sind oder konstruiert werden können. Obwohl sie logisch unanfechtbar sind, haben sie eben nicht die selbe Überzeugungskraft wie konstruktive Beweise. Leider kommt man in außerordentlich vielen Bereichen der Mathematik nicht ohne das Axiom of choice aus. Beispiele sind Beweise folgender Theoreme: – Die Vereinigungsmenge von abzählbar vielen abzählbaren Mengen ist abzählbar. – Es gibt eine injektive Funktion von N in jede unendliche Menge. – Wenn A unendlich ist, dann haben A und A × A gleiche Kardinalität. – Je zwei Mengen haben entweder gleiche Kardinalität oder eine hat kleinere Kardinalität als die andere. – Jeder Vektorraum hat eine Basis. Aus den ZFC Axiomen kann man das Comprehension Principle in einer abgeschwächten Form ableiten, das sog. Separation Principle: Ist A eine Menge und F (x) eine Formel mit freier Variablen x, dann existiert eine Menge {x | x ∈ A ∧ F (x)}. Ausgehend von einer Menge A kann man nun versuchen eine Russelartige Menge RA zu konstruieren durch RA = {x | x ∈ A ∧ x 6∈ x}. Logik und Künstliche Intelligenz V. Stahl Seite 159 • Angenommen RA ∈ RA . Dann ist RA ∈ A und RA 6∈ RA . Dies ist ein Widerspruch. • Angenommen RA 6∈ RA . Dann ist RA 6∈ A oder RA ∈ RA . Folglich ist RA 6∈ A. Ein Widerspruch lässt sich hieraus jedoch nicht ableiten. In der Tat folgt bereits aus dem Axiom of regularity, dass es keine Menge gibt, die sich selbst enthält. C.1 Zorn’s Lemma Das Axiom of choice ist äquivalent zu Zorn’s Lemma. Hierzu muss zunächst der Begriff einer Kette, einer geschlossenen Menge und eines maximalen Elements erklärt werden. Eine Kette in einer Menge A ist eine (endliche oder unendliche) Folge a1 , a2 , . . . von Mengen mit ai ⊆ A und ai ⊆ ai+1 für alle i. Eine Menge A heißt geschlossen, wenn für jede ihrer Ketten a1 , a2 , . . . auch a1 ∪ a2 ∪ . . . ∈ A ist. Ein Element x ∈ A heißt maximales Element von A, wenn x 6⊆ a für alle a ∈ A. Theorem C.1 (Zorn’s Lemma) Jede geschlossene Menge hat ein maximales Element. Beweis. Siehe [22]. C.2 Wohlordnungsprinzip Auch das Wohlordnungsprinzip ist äquivalent zum Axiom of choice: Theorem C.2 (Wohlordnungsprinzip.) Zu jeder Menge A gibt es eine Relation R, so dass R Wohlordnung auf A ist. Das Wohlordnungsprinzip ist deshalb so wichtig, weil man damit das Prinzip der Induktion auf beliebige Mengen erweitern kann. Das Wohlordnungsprinzip ist eigentlich sehr überraschend – so gibt es z.B. auch eine Wohlordnung auf der Menge {x | x ∈ R ∧ x > 0 ∧ x < 1} V. Stahl Logik und Künstliche Intelligenz Seite 160 obwohl diese Menge weder ein größtes noch ein kleinstes Element hat. Dass Axiom of choice, Zorn’s Lemma und Wohlordnungsprinzip zwar logisch äquivalent aber dennoch so unterschiedlich intuitiv sind, hat zu folgendem Witz geführt: The Axiom of choice is obviously true, the well-ordering principle is obviously false, and who can tell about Zorn’s Lemma? Jerry Bona Logik und Künstliche Intelligenz V. Stahl D Seite 161 Neuman-Bernays-Gödel Set Theory Eine andere Lösung um die Mengenlehre von Widersprüchen zu befreien, wurde in den 1920er Jahren von John von Neuman vorgeschlagen und später von Paul Bernays und Kurt Gödel weiterentwickelt. Wie ZFC besteht auch sie aus Axiomen, die als NGB bezeichnet werden. Im Gegensatz zu ZFC sind es sogar nur endlich viele Axiome. Was Cantor intuitiv als Zusammenfassung von Objekten bezeichnet hat, heißt in NBG Klasse.2 Der Begriff Menge wird für spezielle Klassen verwendet, die ihrerseits Elemente von Klassen sind. Die Aussage “A ist eine Menge” bedeutet somit, dass es eine Klasse B gibt mit A ∈ B. Klassen, die keine Mengen sind heißen echte Klassen. Somit ist jede Menge eine Klasse, aber nicht jede Klasse ist eine Menge. Das Comprehension Principle, das besagt dass zu jeder Eigenschaft E eine Menge {x | x erfüllt E} existiert, wird nun eingeschränkt indem man verlangt, dass es sich bei den Objekten x um Mengen handeln muss. Es gibt also nur noch die Klasse {x | x ist Menge und x erfüllt E}, nicht aber die Klasse {x | x ist Klasse und x erfüllt E}. Auf diese Weise kann man natürlich wieder eine Russel’sche Klasse R = {x | x ist Menge und x 6∈ x } konstruieren. Aus der ursprünglichen Russel’schen Antinomie folgt, dass R keine Menge sondern eine echte Klasse ist. Es gilt somit R 6∈ R. Ein anderes Beispiel einer echten Klasse ist die Klasse aller Mengen M = {x | x ist Menge }. Aus den übrigen Axiomen von NBG folgt, dass R = M, d.h. es gibt keine Menge, die sich selbst enthält. Nach NBG gibt es somit die (echte) Klasse aller Mengen. ZFC hat nichts dergleichen zu bieten, insbesondere gibt es dort keine Menge aller Mengen. Was ihre Konsistenz angeht, stehen und fallen NBG und ZFC jedoch gemeinsam: Sollte es gelingen die Widersprüchlichkeit eines der beiden Systeme zu zeigen, würde daraus auch die Widersprüchlichkeit des anderen folgen. 2 Hier kommt auch der Begriff Klasse in objektorientierten Programmiersprachen her. E Literaturverzeichnis Literatur [1] Peter B. Andrews. An introduction to mathematical logic and type theory: to truth through proof. Kluwer Academic Publishers, 2002. [2] Christoph Beierle and Gabriele Kern-Isberner. Methoden wissensbasierter Systeme. Vieweg, 2006. [3] Bruno Buchberger and Franz Lichtenberger. Mathematik für Informatiker 1. Springer, 1981. [4] Peter J. Cameron. Sets, Logic and Categories. Springer, 2002. [5] Gregory J. Chaitin. Conversations with a Mathematician. Springer, 2003. [6] Chin-Liang Chang and Richard Char-Tung Lee. Symbolic logic and mechanical theorem proving. Academic Press, 1973. [7] J.N. Crossley, C.J. Ash, C.J. Brickhill, J.C. Stillwell, and N.H. Williams. What is Mathematical Logic? Dover Publications, 1990. [8] Gottlob Frege. Begriffsschrift, eine der arithmetischen nachgebildete formelsprache des reinen denkens. Halle, 1879. [9] Michael R. Genesereth and Nils J. Nilsson. Logische Grundlagen der Künstlichen Intelligenz. Vieweg, 1989. [10] Henry Hamburger and Dana Richards. Logic and language models for computer science. Prentice Hall, 2002. [11] John Haugeland. Artificial Intelligence: The Very Idea. MIT Press, 1985. [12] John Haugeland. Künstliche Intelligenz - Programmierte Vernunft? McGraw-Hill, 1987. [13] J. P. E. Hodgson. Knowledge representation and language in AI. Ellis Horwood Limited, 1991. [14] Douglas R. Hofstadter. Gödel, Escher, Bach: Ein endlos geflochtenes Band. Klett-Cotta, 1985. 162 [15] D. L. Johson. Elements of Logic via Numbers and Sets. Springer, 2001. [16] Uwe Lämmel and Jürgen Cleve. Künstliche Intelligenz. Fachbuchverlag Leipzig, 2001. [17] George F. Luger. Künstliche Intelligenz. Addison-Wesley, 2001. [18] David Poole, Alan Mackworth, and Randy Goebel. Computational intelligence, a logical approach. Oxford University Press, 1998. [19] Stuart Russell and Peter Norvig. Artificial Intelligence. Prentice Hall, 1995. [20] Uwe Schöning. Logik für Informatiker. Spektrum, 2000. [21] A. M. Turing. Computing machinery and intelligence. Journal of the Mind Association, LIX(236):433–460, 1950. [22] B.L. van der Waerden. Algebra. Springer, 1991. [23] Whitehead and Russel. Principia Mathematica. Cambridge University Press, 1925. 163