Proseminar Logik für Informatiker

Werbung
Proseminar
Logik für Informatiker
Thema: Prädikatenlogik (1.Teil)
Sebastian Ernst
Inhaltsverzeichnis
1. Warum eine mächtigere Sprache?
1.1.
1.2.
Einleitung
Definitionen
2. Prädikatenlogik als formale Sprache
2.1.
2.2.
2.3.
2.4.
Terme
Formeln
Freie und gebundene Variablen
Substitution
3. Beweisidee der Prädikatenlogik
3.1.
Natural deduction rules
3.1.1 Beweisregeln für Gleichheit
3.1.2 Beweisregeln für All-Quantoren
3.1.3 Beweisregeln für Existenz-Quantoren
3.2.
Äquivalenz der Quantoren
4. Schlussfolgerung
5. Literaturangabe
2
Sebastian Ernst
1. Warum eine mächtigere Sprache?
1.1.
Einleitung
Wir benötigen für die Konstruktion von bestimmten Aussagen Symbole oder
Mechanismen, die einer natürlichen Sprache eher entsprechen als wir es mit Hilfe der
Aussagenlogik formulieren können. Mit Hilfe der Aussagenlogik können wir mit
Elementen wie „nicht“, „und“, „oder“ sowie „wenn…dann“ grundlegende Ausdrücke
formulieren. Da es sich bei der natürlichen Sprache aber um eine viel mächtigere Sprache
handelt, in der wir auch Ausdrücke formulieren wollen bei denen wir alle Elemente, eine
Auswahl oder ähnliches darstellen möchten, benötigen wir neue, mächtigere
Möglichkeiten.
Um die Aussagenlogik erweitern zu können ist eine mächtigere Sprache von Nöten, der
Anlass für den Entwurf der Prädikatenlogik.
Stellen wir uns vor wir möchten folgende Sätze formulieren, wie:
Alle Schachtarbeiter sind älter als einige Gefreite.
Einige Vögel können nicht fliegen.
Was können wir verwenden um Ausdrücke zu formulieren, wie beispielsweise „alle“ oder
„einige“. In der Aussagenlogik beschreiben wir einen Ausdruck als Ganzes, allerdings
wollen wir in diesen Sätzen die einzelnen Elemente beschreiben und diese wiederum
miteinander in Beziehung setzen.
Was sagt der erste Satz eigentlich aus, gehen wir ins Detail. Wie haben die Aussagen
„jemand ist ein Schachtarbeiter“, „jemand ist ein Gefreiter“ sowie „jemand ist älter als
jemand anderes“. Um ausdrücken zu können, dass jemand ein Schachtarbeiter oder ein
Gefreiter ist, benötigen wir Prädikate. Diese Prädikate erlauben uns ein Element einer
bestimmten Menge zuzuordnen. In unserem ersten Satz würden wir dann für „jemand ist
ein Schachtarbeiter“ … S(Fritz) bzw. „jemand ist ein Gefreiter … G(Heiaar) schreiben.
Hierbei bezeichnet der Buchstabe S bzw. G vor der Klammer, welches man als
Prädikatensymbol bezeichnen kann, die Zugehörigkeit des in der Klammer befindlichen
Elementes. Wir können nun formulieren das „Fritz älter als Heiaar ist“… Ä(Fritz ,Heiaar).
Da wir uns in unseren Beispielsätzen nicht auf ein exaktes Element, sondern auf eine
Menge von Elementen beziehen möchten, brauchen wir Individuenvariablen. Also
ersetzen wir „Fritz“ und „Heiaar“ einfach durch Individuenvariabeln, welche uns erlauben
beliebige Atome der Art S oder G herzustellen.
Gehen wir nun dazu über Prädikate, Prädikatensymbole und deren Beziehung zueinander
mathematisch zu definieren.
3
Sebastian Ernst
1.2.
Definitionen der Symbole
Neben den Prädikaten benötigen wir noch mehr Symbole um Prädikatenlogik als eine
formale Sprache definieren zu können.
Unsere Sprache besteht aus folgenden Symbolen:
1. Individuenvariablen: x, y, z, . . . , x1, x2, . . .
2. Individuenkonstanten: a, b, Fritz, Heiaar, . . . , a1, a2, . . .
3. Funktionssymbole beliebiger Anzahl an Stellen: f, g, h, . . . , f1, f2, . . .
4. Prädikatssymbole beliebiger Anzahl an Stellen: P, Q, R, . . . , P1, P2, . . .
5. Junktoren: ∧ (und), ∨ (oder), ¬ (nicht)
6. Quantoren: ∀ (Allquantor – „für alle“), ∃ (Existenzquantor – „es gibt“)
7. Hilfszeichen: (, ), , (Komma)
Mit Hilfe dieses Zeichensatzes sind wir in der Lage unseren Beispielsatz vollständig zu
formulieren. Hierfür müssen wir jedoch erst die Prädikate definieren.
Bsp.:
S(x):
x ist ein Schachtarbeiter
G(x):
x ist ein Gefreiter
Ä(x ,y):
x ist älter als y
Wobei x und y hier Variablen sind. Variablen sind Platzhalter für jegliche Arten von
beliebigen Werten. In unseren Fall wäre x für S(x) ein beliebiger Name für einen
Schachtarbeiter.
Schließlich möchten wir zum Ausdruck bringen, dass es „für alle“ Schachtarbeiter
„einige“ Gefreiten gibt, die jünger sind als sie. Hierfür benutzen wir die Quantoren.
Die Einführung von Quantoren zeigen nun die Erweiterung des Zeichensatzes der
Aussagenlogik auf. Mittels dieser Quantoren können wir nun die Ausdrücken aus dem
Beispiel formulieren:
∀x( S ( x) → (∃y (G ( y ) ∧ Ä ( x, y ))))
Gelesen als: „Für alle x gilt, wenn x ein Schachtarbeiter ist, dann gibt es ein y für das gilt,
y ist ein Gefreiter und x ist älter als y“
Aufgrund der Tatsache, dass es sich um eine Erweiterung der Aussagelogik handelt,
gelten alle Definitionen, Interferenzregeln, Theoreme, algebraischen Umformungsregeln
etc. somit auch in der Prädikatenlogik.
4
Sebastian Ernst
2. Prädikatenlogik als formale Sprache
Das prädikatenlogische Vokabular besteht aus zwei Mengen. Eine Menge von
Prädikatensymbolen P und eine Menge von Funktionssymbolen F sowie den Konstanten
C, die wir als 0-stellige Funktionen betrachten können und deshalb in die Menge der
Funktionssymbole integrieren. Variablen dienen als Platzhalter für konkrete Werte oder
Objekte.
Die Menge der zugrunde liegenden möglichen Werte bzw. Objekten für eine Variable x
heißt Universum U.
2.1.
Terme
Die Klasse der Terme wird induktiv definiert durch die folgenden drei Schritte.
(1) Jede Individuenvariable ist ein Term.
(2) Jede Individuenkonstante ist ein Term.
(3) Sind t1, . . . , tn Terme und f eine n-stellige Funktion, so ist auch f(t1, . . . , tn) ein Term.
In Backus Naur Form (BNF):
t ::= x | c | f (t ,..., t ) wobei x eine Variable ist, c ∈ C und f ∈ F
C – Konstanten F – Funktionen
2.2.
Formeln
Die Klasse der prädikatenlogischen Formeln wird induktiv definiert durch die folgenden
vier Schritte.
(1) Sind t1,…, tn Terme und P eine n-stelliges Prädikatssymbol, so ist P(t1,…, tn) eine
Formel.
(2) Ist α eine Formel, so ist auch (¬α ) eine Formel.
(3) Falls α und β Formeln sind, so sind auch (α ∧ β) und (α ∨ β) Formeln.
(4) Falls α eine Formel ist und x eine Individuenvariable,
so sind auch ( ∀ xα) und ( ∃ xα) Formeln.
In BNF: α ::= P(t1, t 2,..., tn) | (¬α ) | (α ∧ α ) | (α ∨ α ) | (α → α ) | (∀xα ) | (∃xα )
Die Argumente von Prädikaten sind immer Terme.
5
Sebastian Ernst
Zur Klammereinsparung ist es sinnvoll, Bindungsregeln festzulegen.
Bindungsregeln:
1.) ∀ , ∃ und ¬ binden stärker als ∧ .
2.) ∧ bindet stärker als ∨ .
3.) Binäre Operatoren gleicher Stärke werden als links geklammert angesehen.
Bsp.: (( A ∧ B) ∧ C ) ∧ D) ⇔ A ∧ B ∧ C ∧ D
Dabei ist zu beachten, dass in (4) der Definition der Formeln die Klammerung
quantifizierter Formeln auch den Bindungsbereich der Variablen kennzeichnet. So ist es
sinnvoll, in einer Formel ∀xP( x) ∨ Q( x) trotz Bindungsregeln die Klammerung
(∀xP( x)) ∨ Q( x) beizubehalten, um Missverständnissen vorzubeugen.
2.3.
Freie und gebundene Variablen
Für die späteren Definitionen ist es sinnvoll, unterscheiden zu können, ob Variablen im
Bindungsbereich eines Quantors in einer Formel vorkommen oder nicht. Wir führen daher
die Begriffe gebundene und freie Variable ein.
Wir sind in der Lage einen Syntaxbaum in der gleichen Weise wie bei der Aussagenlogik
zu zeichnen, allerdings mit ein paar zusätzlichen Informationen.
- die Quantoren ∀x α oder ∃y α werden als Knoten gezeichnet und haben ähnlich der
Negation einen Teilbaum
- Prädikate P (t1, t 2,..., tn) haben das Prädikatensymbol, hier P ,
als Knoten und n-viele Teilbäume (t1, t 2,..., tn )
Beispiel:
(∀x( P( x) ∧ Q( x))) → (¬P( x) ∨ Q( y ))
6
Sebastian Ernst
Definition:
Sei α eine prädikatenlogische Formel. Dann ist x frei in α, wenn x ein Blatt im
Syntaxbaum von α ist, und es keinen Knoten ∀x oder ∃x im Pfad von x zur Wurzel gibt.
Andernfalls heißt x gebunden.
Für Ausdrücke ∀x α oder ∃x α sagen wir, dass α den Gültigkeitsbereich von ∀x bzw.
∃x ist. Das heißt, jedes Vorkommen von x in α ist gebunden, wenn es im Gültigkeitsbaum
von ∀x oder ∃x liegt. Sonst ist x frei.
Eine Variable x kann in α sowohl gebunden als auch frei vorkommen. Betrachte unsere
folgende Formel:
∀x( P( x) ∧ Q( x)) → (¬P ( x) ∨ P( y ))
Man sieht, dass beide Vorkommen von x in der linken Teilformel durch ∀x gebunden
sind. Das Vorkommen von x in der rechten Teilformel ist jedoch frei.
Dies ist eine wichtige Unterscheidung, insbesondere im Bezug auf Substitutionen, die im
nächsten Punkt näher betrachtet werden.
7
Sebastian Ernst
2.4.
Substitution
Da es sich bei Variablen um Platzhalter handelt, müssen wir diese auch durch konkrete
Werte und insbesondere durch andere Terme ersetzen können. Die Termsetzung wird
Substitution genannt. Substituiert werden können bzw. dürfen nur freie Vorkommen eine
Variablen x in α . Eine durch einen Quantor gebundene Variable muss unverändert
bleiben, da diese unspezifiziert bzw. alle Werte des zugrunde liegenden Universums
repräsentiert.
Definition:
Sei x eine Variable, t ein Term und α eine Formel, so ist α [t / x] definiert als die Formel,
die man erhält, wenn man alle freien Vorkommen von x in α durch t ersetzt.
Substitutionen können allerdings unerwünschte Seiteneffekte hervorrufen. So könnte
beispielsweise bei einer Substitution α [t / x] der Term t eine Variable y enthalten, wobei
freie Vorkommen von x in α im Gültigkeitsbereich von ∀x oder ∃x liegt. Dadurch würde
die Variable y, die eventuell einem konkreten Kontext unterlag, durch einen Quantor
gebunden werden. Die Kontext-Spezifikation eines konkreten Wertes für y würde dadurch
überschrieben, da y nun für unspezifizierte bzw. alle möglichen Werte stehen würde.
Solche unerwünschten Effekte sollten auf jeden Fall vermieden werden.
Schauen wir uns folgendes Beispiel an um diesen Seiteneffekt besser zu verdeutlichen.
C ( x ) ∧ ∀y ( M ( y ) ∧ S ( x ) → ¬G ( y ))
Dies soll nichts weiter bedeuten als: „Ist x ein Chef, dann gilt für alle y, ist y ein
Mitarbeiter und der Chef ist sauer, dann gibt es keine Gehaltserhöhung“
Sei nun t = b( y ) (bedeutet b ist befördert worden) so würden die beiden Vorkommen von
y in t durch die Substitution α [t / x] durch den Allquantor gebunden.
C (b( y )) ∧ ∀y ( M ( y ) ∧ S (b( y )) → ¬G ( y ))
Was bedeuten würde, dass alle zum Chef beförderten Leute sauer wären und das ist
offentsichtlich falsch.
Definition:
Gegeben sei ein Term t, eine Variable x und eine Formel α . Wir sagen „t ist frei für x in
α“ wenn kein freies Vorkommen von x in α im Gültigkeitsbereich von ∀y oder ∃y für
eine Variable y in t liegt.
8
Sebastian Ernst
Bemerkung: Gibt es in einer Formel α kein freies Vorkommen einer Variablen x, so ist bei
der Substitution α [t / x] trivialerweise t frei für x in α, da nichts substituiert werden kann.
α [t / x] ist somit wieder einfach α.
Also wäre für:
C ( x ) ∧ ∀y ( M ( y ) ∧ S ( x ) → ¬G ( y ))
α [t / x] bei t = b( y ) „t nicht frei für x in α“.
Eine Lösung dieses Problems wäre eine geeignete Umbenennung der Variablen, bevor die
Substitution ausgeführt wird.
Für unseres Beispiel würde dies bedeuten:
C ( x ) ∧ ∀y ( M ( y ) ∧ S ( x ) → ¬G ( y ))
Bennnen wir die Variable y in z um:
C ( x ) ∧ ∀z ( M ( z ) ∧ S ( x ) → ¬G ( z ))
Durch die Substitution α [t / x] bei t = b( y ) ist t nun frei für x in α.
C (b( y )) ∧ ∀z ( M ( z ) ∧ S (b( y )) → ¬G ( z ))
Das t nun frei für x in α ist, wird b(y) nach der Substitution nicht mehr an den Allquantor
gebunden.
9
Sebastian Ernst
3. Beweisidee der Prädikatenlogik
Wie in der Aussagenlogik gibt es das gleiche syntaktische Beweissystem der natürlichen
Deduktion auch für die Prädikatenlogik. Das bedeutet, dass alle Beweise, die für die
Aussagenlogik formuliert worden sind auch für die Prädikatenlogik weiterhin gelten. Das
Beweissystem wird lediglich erweitert um sie auch allgemein für alle logischen Formeln
der Prädikatenlogik anwenden zu können.
3.1.
Natürliche Deduktionsregeln
Die zusätzlichen Regeln für unser neues Beweissystem unterscheiden sich in 2
Grundformen, die Einführungsregeln (=i) und die Eliminierungsregeln (=e). Diese
Grundformen gelten sowohl für Gleichheit als auch für alle Quantoren.
3.1.1 Beweisregeln für Gleichheit
Diese Gleichheit drückt weder die syntaktische noch die intentionale Gleichheit aus.
Wenn wir von Gleichheit im Sinne unserer Deduktion reden, sprechen wir davon, dass
die Formeln oder Terme zum gleichen Wert ausgewertet werden. Folglich ist
trivialerweise jeder Term t gleich mit sich selbst. Formal ausgedrückt bedeutet das:
t = t =i
(a)
Da wir wissen, dass ein Term t mit sich selbst gleich ist, versuchen wir im nächsten
Schritt eine Substitution zu erreichen von zwei unterschiedliche Termen t1 und t2, von
denen wir wissen, dass sie zum gleichem Wert ausgewertet werden.
Nehmen wir an es handelt sich dabei um die Ausdrücke y*(w+2) für t1 und y*w + y*2
für t2 (wir gehen davon aus, dass sie zum gleichen Werte ausgwertet werden können).
Folglich gilt in diesem Fall: z ≥ y * ( w + 2) impliziert z ≥ y * w + y * 2 und umgekehrt.
Drücken wir nun dieses Substitutionsprinzip als eine Regel =e aus:
t1 = t 2 α [t1 / x]
= e.
α [t 2 / x]
Unser α beschreibt die Formel, die man erhält nachdem man einmal für die
Substitution im Zähler und im Nenner erhält. Diese Formel soll zeigen, dass wir eine
Gleichheit erreichen können, bei Formeln, die zum gleichen Wert ausgwertet werden.
Selbstverständlich gilt auch in diesem Fall, dass t frei für x in α sein muss.
10
Sebastian Ernst
Um näher auf die Gleichheit einzugehen versuchen wir nun die Grundlagen jeglicher
extentionaler Gleichheit aufzuzeigen.
Dazu benötigen wir zunächst eine Beweisgrundlage. Hierzu soll uns folgender Beweis
dienen:
( x + 1) = (1 + x)
( x + 1 > 1) → ( x + 1 > 0)
(1 + x > 1) → (1 + x > 0)
1
2
3
Prämisse
Prämisse
=e 1,2
benutzen. Dieses Symbol drückt die
Im folgenden werden wir das Symbol
symbolische Folgerung aus.
Mit diesen Grundlagen versuchen wir nun folgende Formel zu beweisen:
Übernehmen wir unsere vorangegangenen Aussagen können wir für t1 als (x+1), t2 als
(1+x) und schließlich α als ( x > 1) → ( x > 0) festlegen.
Wir benutzen den Namen =e dann, wenn es das wiedergibt, was die Regel mit den
Daten macht: Es eliminiert die Gleichheit in t1=t2 durch Ersetzen aller t1 in α [t1 / x]
mit t2.
Dies klingt nach dem Substitutionsprinzip, unter der Annahme, dass t1 ist gleich t2.
Zusammen mit der =i Regel können wir folgende Ausdrücke beweisen:
t1 = t2
t2 = t1
t1 = t2, t2 = t3
(b)
t1 = t3
(c)
Beweis für (b):
Prämisse
1
t1 = t2
=i
2
t1 = t1
=e 1,2
3
t2 = t1
α ist hierbei t1 = x. Beweis für (c):
Prämisse
1
t2 = t3
Prämisse
2
t1 = t2
=e 1,2
3
t1 = t3
Nachdem wir nun (a), (b), (c) bewiesen haben, haben wir nun die Grundlagen der
extentionalen Gleichheit erfüllt – Reflexivität (a), Symmetrie (b) und schließlich
Transitivität (c).
11
Sebastian Ernst
3.1.2 Beweisregeln für All-Quantoren
Die Regel für die Allquantoren-Einführung laute:
α
∀xi
∀xα
Diese Interferrenzregel besagt, wenn ein Ausdruck α für ein bestimmtes, also
willkürliches x bewiesen werden kann, dann können wir daraus folgern, das α für alle
möglichen Werte von x gilt, und somit den ∀ -Quantor einführen.
Die Regel für die Allquantoren-Eliminierung laute:
∀xα
∀xe
α [t / x]
Das bedeutet: Wenn ∀xα wahr ist, dann kann man x in α durch irgendeinen Term t
ersetzen (natürlich nur unter der Bedingung, dass t für x frei in ist α ist) und folgern,
dass α [t / x] ebenfalls wahr ist.
Wir wissen bereits, dass α [t / x] gelöst werden kann, indem wir alle freien
Vorkommen von x in α mit t ersetzen. Man kann sich den Term t als eine Art
konkrete Instanz von x vorstellen.
Wenn α für alle x wahr ist, so sollte das auch für jeden Term t der Fall sein.
Damit kann die Betrachtung von ∀xe abgeschlossen werden und wir gehen nun zu
∀xi über.
Für diesen Beweis benötigen wir eine so genannte Beweisbox, da dieser Beweis ein
wenig komplizierter zu handhaben ist.
Das Prinzip dieses Beweises kennen wir aus der Mathematik unter „Es gibt ein x für
das gilt...“.
Wir können mittels der Beweisbox unseren Beweis wie folgt schreiben:
Die Variable x0 steht für einen unspezifizierten Wert aus dem Universum. Indem wir
also α für einen willkürlichen Term x0 beweisen, können wir daraus ∀xα
schlussfolgern.
Die Box gibt den Gültigkeitsbereich von x0 an. Der Term x0 darf nicht außerhalb
dieser Box erscheinen, da die Korrektheit der ∀i -Regel sonst nicht gewährleistet
wäre.
12
Sebastian Ernst
Beispiel:
Zu zeigen gilt es:
∀x ( P( x) → Q( x)), ∀x P( x)
∀x Q( x)
3.1.3 Beweisregeln für Existenz-Quantoren
Die Regel für die Existenzquantoren-Eliminierung laute:
α [t / x]
∃xi
∃xα
Angenommen, dies sei korrekt:
Die Formel bedeutet, dass wir ∃xα herleiten können, wenn α [t / x] für mindestens
einen Term t existiert (vorrausgesetz: t ist frei x in α). Etwas einfacher ausgedrückt,
bedeutet dies nicht weiter als dass wir eine Beispiel finden wollen, wo die Formel gilt
und haben somit den Beweis für die Existenz abgeschlossen.
Die ∃ -Eliminierungsregel impliziert eine Fallunterscheidung über alle Elemente aus
dem Universum. Dies wird durch die Substitution α [ x 0 / x] symbolisiert, in der x0 eine
Generalisierung der zu testendenWerte darstellt. Die Argumentation ist nun, wenn wir
wissen, dass ein Wert existiert sodass α gilt, und wenn wir durch Substitution eines
Wertes x0 eine Formel ψ erhalten, so haben wir damit ψ bewiesen, wenn es nicht mehr
auf der Wahl von x0 basiert.
13
Sebastian Ernst
Beispiel:
∀x( P ( x) → Q( x)), ∃xP( x)
∃xQ(x)
Die Formel ∃xQ(x) in Zeile 6 entspricht der erhaltenen Formel ψ in der
∃ -Eliminierungsregel. Sie enthält kein Vorkommen von x0, so wie es in der Regel gefordert
ist. Die Boxen, die den Gültigkeitsbereich der Generalisierungen für einen Wert aus dem
Universum demonstrieren, können auch ineinander verschachtelt sein, wie das nächste
Beispiel zeigt.
Beispiel:
Es soll nun ∃xP( x), ∀x∀y ( P( x) → Q( y ))
14
∀yQ( y ) beweisen
Sebastian Ernst
3.2.
Äquivalenz der Quantoren
Hierbei verwenden wir das Zeichen -||- , als Ausdruck dafür das:
ψ
α und α
ψ gilt.
Einige von diesen Äquivalenzen sollen nun beispielhaft durch natürliche Deduktion
hergeleitet und somit bewiesen werden.
15
Sebastian Ernst
Beweis von Theorem 1 (a)
Das Theorem bedeutet wörtlich ausgedrückt, dass wenn eine Formel für nicht alle x gilt,
so gibt es ein x für die sie nicht gilt oder umgekehrt ausgedrückt, gibt es ein x für das die
Formel nicht gilt, so gilt die Formel nicht für alle x.
Um das Theorem zu beweisen, muss sowohl die Hin als auch die Rückrichtung gezeigt
werden. Es folgt nun zuerst die Richtung:
¬∀xφ
∃x¬φ
Der Beweis für die Rückrichtung
∃x¬φ
¬∀xφ
Sieht wie folgt aus:
16
Sebastian Ernst
Der Beweis von Theorem 3 (b)
Die Formel wörtlich ausgedrückt bedeutet dieses Theorem, haben wir ein x für das eine
Formel gilt oder für eine andere Formel gilt, so gibt es ein x das für mindestens eine von
beiden Formeln gilt. Umgekehrt aus gedrückt bedeute dies, haben wir ein x, welches für
mindestens eine der beiden Formeln gilt, so gibt es ein x, das für die eine Formel gilt oder
für die andere (oder beide).
Hinrichtung:
(∃xφ ) ∨ (∃xψ )
∃x(φ ∨ ψ ) gezeigt:
Der Beweis für die Rückrichtung sieht wie folgt aus:
∃x(φ ∨ ψ )
(∃xφ ) ∨ (∃xψ )
17
Sebastian Ernst
4. Schlussfolgerung
Die syntaktischen Grundlagen des Bausatzes für die Prädikatenlogik sind nun gegeben
und es kann nun zum semantischen Teil der Prädikatenlogik übergegangen werden.
Weiterhin wurden die natürlichen Deduktionsregeln für die Prädikatenlogik
durchgesprochen und an einigen Beispielen schon praktisch verwendet.
Die Prädikatenlogik, dessen Gundlage die Aussagenlogik ist, ist wiederum Grundlage für
die temporal Logik und andere weiterführenden logische Sprachen.
5. Literaturangabe
Zur Verwendung dieser Ausarbeitung wurde folgendes Buch verwendet:
Michael Huth, Mark Ryan:
Logic in Computer Science: Modelling and reasoning about systems
Cambridge University Press, 2000
18
Herunterladen