22.07.2013 Aufrufe

Logik und Künstliche Intelligenz - Hochschule Heilbronn

Logik und Künstliche Intelligenz - Hochschule Heilbronn

Logik und Künstliche Intelligenz - Hochschule Heilbronn

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!