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