19  Aussagen- und Prädikatenlogik

19.1 Aussagenlogik

Die Aussagenlogik beschäftigt sich mit Aussagen und deren Verknüpfungen (Junktoren). Dabei sind Aussagen immer entweder wahr oder falsch. Sowohl in der Mathematik als auch beim Programmieren und im täglichen Leben spielen logische Überlegungen und damit die Aussagenlogik eine wichtige Rolle.

Beispiel 1: (Tägliches Leben: Lügende Politiker entlarven)

In einer Rede hört man von einem Politiker die folgenden vier Aussagen:

  • „Die Vollbeschäftigung wird erhalten oder die Steuern dürfen nicht erhöht werden.“
  • „Wenn sich Politiker um die Bevölkerung kümmern, müssen die Steuern angehoben werden.“
  • „Die Politiker kümmern sich um die Bevölkerung oder die Vollbeschäftigung kann nicht erhalten werden.“
  • „Es stimmt nicht, dass die Erhaltung der Vollbeschäftigung eine Steuererhöhung zur Folge haben muss.“

Frage: Hat sich der Politiker widersprochen? Das heißt: Kann es Wahrheitswerte (wahr oder falsch) für alle Aussagen geben, sodass er sich nicht widerspricht? Oder sagt er vielleicht sogar immer die Wahrheit, egal welche Wahrheitswerte die einzelnen Aussagen haben?

Problem: Die Verknüpfungen der Aussagen sind verhältnismäßig komplex, sodass man die obige Frage nicht ohne Weiteres beantworten kann!

Lösung: Wir formalisieren das Problem und formulieren die Aussagen in mathematischer Form.

Wir werden die Lösung am Ende des Kapitels zeigen.

Beispiel 2: (Mathematik: direkter Beweis)

In der Mathematik gibt es verschiedene Formen der Beweisführung: die vollständige Induktion, den Beweis durch Widerspruch und den direkten Beweis.

Die folgende Aufgabe soll mit Hilfe eines direkten Beweises gelöst werden. Die Idee ist, aus einer Aussage A durch Umformungen eine Aussage B zu folgern, deren Wahrheitswert bekannt ist. Formal könnte man das schreiben als

A \implies C_1 \implies C_2 \implies \cdots \implies C_n \implies B,

wobei alle C_i Zwischenschritte sind.

Man zeige, dass für alle a, b \in \mathbb{R} gilt:

a^2 + b^2 \ge 2ab

Beweis:

a^2 + b^2 \ge 2ab \quad \implies \quad a^2 - 2ab + b^2 \ge 0 \quad \implies \quad (a-b)^2 \ge 0

Damit ist man fertig, da Quadrate in den reellen Zahlen nie negativ sind, während man dem ursprünglichen Ausdruck nicht unbedingt ansieht, ob er für alle a, b wahr ist.

Weitere Beweismethoden sind die vollständige Induktion und der Beweis durch Widerspruch.

Beispiel 3: (Informatik)

In Data Science oder der Informatik benötigen wir Wahrheitswerte an mehreren Stellen.

Ein Beispiel sind Abbruchbedingungen bei Schleifen:

i <- 1
while(i<5){
  cat(paste("i hat aktuell den Wert", i, "\n"))
  i <- i+1
}
i hat aktuell den Wert 1 
i hat aktuell den Wert 2 
i hat aktuell den Wert 3 
i hat aktuell den Wert 4 

Die while()-Schleife wird so lange ausgeführt, wie der Term i<5 eine wahre Aussage ist.

Beispiel 4: (Datenanalyse)

library(pacman)
p_load(tidyverse)

penguins |> filter(species == "Gentoo" & body_mass >= 5700)
   species island bill_len bill_dep flipper_len body_mass  sex year
1   Gentoo Biscoe     50.0     16.3         230      5700 male 2007
2   Gentoo Biscoe     50.0     15.2         218      5700 male 2007
3   Gentoo Biscoe     48.4     14.6         213      5850 male 2007
4   Gentoo Biscoe     49.3     15.7         217      5850 male 2007
5   Gentoo Biscoe     49.2     15.2         221      6300 male 2007
6   Gentoo Biscoe     50.2     14.3         218      5700 male 2007
7   Gentoo Biscoe     59.6     17.0         230      6050 male 2007
8   Gentoo Biscoe     49.6     16.0         225      5700 male 2008
9   Gentoo Biscoe     49.8     16.8         230      5700 male 2008
10  Gentoo Biscoe     49.5     16.2         229      5800 male 2008
11  Gentoo Biscoe     48.6     16.0         230      5800 male 2008
12  Gentoo Biscoe     51.1     16.3         220      6000 male 2008
13  Gentoo Biscoe     45.2     16.4         223      5950 male 2008
14  Gentoo Biscoe     49.8     15.9         229      5950 male 2009
15  Gentoo Biscoe     55.1     16.0         230      5850 male 2009
16  Gentoo Biscoe     48.8     16.2         222      6000 male 2009
17  Gentoo Biscoe     50.4     15.7         222      5750 male 2009

In diesem Beispiel werden aus dem Datensatz penguins alle Beobachtungen herausgefiltert, bei denen species gleich "Gentoo" ist und gleichzeitig body_mass größer oder gleich 5700 ist. Dies bedeutet, dass sowohl das Argument species == "Gentoo" als auch body_mass >= 5700 gleichzeitig eine wahre Aussage (TRUE) sein müssen, damit der gesamte Ausdruck species == "Gentoo" & body_mass >= 5700 eine wahre Aussage wird. Übrig bleiben aus den insgesamt 344 Beobachtungen 17 Beobachtungen.

19.1.1 Aussagen und Wahrheitswerte

Wir wollen in diesem Kapitel die Grundlagen für die Aussagenlogik definieren und einige kleine Beispiele dazu zeigen. Am Ende des Kapitels lösen wir Beispiel 1: Lügende Politiker entlarven mit Hilfe der Aussagenlogik auf.

WarnungDefinition: Aussage / Wahrheitswerte

Eine Aussage ist ein grammatischer Satz, der objektiv nach wahr (w) oder falsch (f) klassifiziert werden kann. Man nennt die Wörter wahr und falsch die Wahrheitswerte.

Aussagen sind damit nie

  • wahr und gleichzeitig falsch,
  • weder wahr noch falsch.

Beispiele:

  • 2 + 3 = 6 ist eine falsche Aussage, 2\cdot 4 = 8 ist eine wahre Aussage.
  • Sätze wie “Sonnenblumen sind schön” (nicht objektiv) oder “Dieser Satz ist falsch.” (semantisches Paradox) sind keine Aussagen, da sie nicht objektiv als wahr oder falsch klassifiziert werden können.

Bemerkungen:

  • In R werden die Wahrheitswerte mit TRUE oder T beziehungsweise FALSE oder F gekennzeichnet. Oft entstehen solche logischen Vektoren aus Vergleichen (z.B. zweier Vektoren).
# Beispiel 1:
1:6 > 3
[1] FALSE FALSE FALSE  TRUE  TRUE  TRUE

Im ersten Beispiel vergleichen wir, ob die ganzen Zahlen von 1 bis 6 größer als 3 sind. Das Ergebnis ist ein sogenannter logischer Vektor (siehe Kapitel 11.4.1).

# Beispiel 2: 
c("Adam", "Bert", "Carl", "Doro") %in% c("Bert", "Cale", "Doro", "Emil", "Fido")
[1] FALSE  TRUE FALSE  TRUE

Mit dem Operator %in% wird überprüft, ob sich die Einträge aus dem ersten Vektor im zweiten befinden. Ist ein Eintrag TRUE, so kommt der jeweilige Eintrag im zweiten Vektor vor.

Analog gibt es seit R 4.6.0 auch den Operator %notin%, der der Negation des obigen Ausdrucks entspricht.

# Beispiel 3:
c("Adam", "Bert", "Carl", "Doro") %notin% c("Bert", "Cale", "Doro", "Emil", "Fido")
[1]  TRUE FALSE  TRUE FALSE

Praktische Anwendungen dieser Operatoren finden sich im Zusammenhang mit dem Filtern von Daten in Datentabellen in Kapitel 17.3.

19.1.2 Junktoren

Junktoren sind logische Operatoren in der Aussagenlogik.

  • Negation: \neg A (oder auch \overline{A})
    liest man nicht A. Die Negation kehrt den Wahrheitswert einer Aussage um, das heißt ist A wahr, so ist \neg A falsch und umgekehrt.

Die Negation ist ein einstelliger Operator, da sie nur einen Wahrheitswert benötigt. Die folgenden Junktoren sind alle zweistellige Operatoren, da sie zwei Wahrheitswerte benötigen.

  • Konjunktion: A \wedge B
    liest man A und B und ist genau dann wahr, wenn A und B beide wahr sind.

  • Disjunktion: A \vee B
    liest man A oder B und ist genau dann falsch, wenn sowohl A als auch B falsch sind.

  • Implikation: A \implies B
    liest man aus A folgt B, A impliziert B, B ist notwendig für A oder A ist hinreichend für B. Die Implikation ist genau dann falsch, wenn A wahr und B falsch ist.

  • Äquivalenz: A \iff B
    liest man A ist äquivalent zu B. Die Aussage A ist wahr genau dann, wenn Aussage B wahr ist. Gleichwertig kann man auch sagen: Wenn Aussage A wahr ist, so auch B, und wenn B wahr ist, so auch A.

19.1.3 Wahrheitstabellen

Mit Hilfe einer Wahrheitstabelle können alle Wahrheitswerte, die eine (abgeleitete) Aussage haben kann, gleichzeitig gezeigt werden. In Tabelle 19.1 sieht man die im vorherigen Kapitel definierten Aussagen A und B, sowie die definierten Verknüpfungen. Für n verknüpfte Aussagen gibt es 2^n mögliche wahr/falsch-Kombinationen. Also für zwei Aussagen sind das 2^2 = 4 verschiedene Möglichkeiten, die alle in der Wahrheitstabelle zu sehen sind.

Tabelle 19.1: Übersicht zur Negation, Konjunktion, Disjunktion, Implikation und Äquivalenz zweier Aussagen.
A B \neg A \neg B A \wedge B A \vee B A \implies B A \iff B
w w f f w w w w
w f f w f w f f
f w w f f w w f
f f w w f f w w
  • Tautologie:
    Eine Tautologie ist eine Aussage, die unabhängig von den Wahrheitswerten immer wahr ist. Ein Beispiel hierfür wäre die Aussage: „Es regnet oder es regnet nicht“.

  • Kontradiktion: Eine Kontradiktion ist das Gegenteil einer Tautologie und unabhängig von den Wahrheitswerten immer falsch. Ein Beispiel ist die Aussage „Es regnet und es regnet nicht“.

Die Wahrheitstabellen können auf beliebige Kombinationen von Aussagen erweitert werden und sind ein praktisches Werkzeug, um logische Verknüpfungen zu untersuchen. Ein interessantes Beispiel ist die Kontraposition. Dabei ist zu erwähnen, dass nicht nur das Ergebnis in der Tabelle zu sehen ist, sondern auch die Zwischenschritte, wie man das Ergebnis erhalten hat (hier: das explizite Aufschreiben der Negationen \neg A und \neg B).

Beispiel: Kontraposition

Die folgende Wahrheitstabelle zeigt, dass die Implikation A \implies B und ihre Kontraposition \neg B \implies \neg A die gleichen Wahrheitswerte haben. Mathematisch schreibt man

(A \implies B) \equiv (\neg B \implies \neg A),

wobei \equiv die Bedeutung ist identisch zu hat und auch so gelesen wird.

Tabelle 19.2: Wahrheitstabelle für die Kontraposition
A B \neg A \neg B A \implies B \neg B \implies \neg A
w w f f w w
w f f w f f
f w w f w w
f f w w w w

Nimmt man zum Beispiel die beiden Aussagen A: „Es regnet.“ und B: „Die Erde ist nass.“, dann ist die Implikation: „Wenn es regnet, dann ist die Erde nass.“ Eine dazu identische Aussage ist nun nicht: „Wenn es nicht regnet, dann ist die Erde nicht nass.“ Das wäre im Allgemeinen falsch, schließlich kann sie auch aus anderen Gründen nass sein, wenn dort zum Beispiel eine Wasserschlacht stattgefunden hat oder weil der Nachbar sein Auto geputzt hat. Eine äquivalente Aussage ist „Wenn die Erde nicht nass ist, dann regnet es nicht.“

HinweisAufgaben: Wahrheitstabellen

Zeigen Sie mit Hilfe einer Wahrheitstabelle, dass

  • \neg(\neg A) \equiv A gilt,
  • A \vee \neg A eine Tautologie ist,
  • A \wedge \neg A eine Kontradiktion ist und
  • die beiden Regeln von de Morgan gelten:

\neg(A \wedge B) \equiv (\neg A \vee \neg B) \quad \text{und} \quad \neg(A \vee B) \equiv (\neg A \wedge \neg B).

  • die Äquivalenz der Implikation in beide Richtungen entspricht:

(A \iff B) \equiv (A \implies B) \wedge (B \implies A)

Die ersten drei können wir leicht in einer einzigen Tabelle machen:

A \neg A \neg (\neg A) A \vee \neg A A \wedge \neg A
w f w w f
f w f w f

Für die beiden De-Morgan-Regeln gibt es zwei Aussagen A und B, die jeweils wahr oder falsch sein könnten, daher gibt es 2^2 = 4 Möglichkeiten, diese zu kombinieren und man muss alle Möglichkeiten betrachten.

A B \neg A \neg B A \wedge B \neg(A \wedge B) \neg A \vee \neg B
w w f f w f f
w f f w f w w
f w w f f w w
f f w w f w w

und komplett analog:

A B \neg A \neg B A \vee B \neg(A \vee B) \neg A \wedge \neg B
w w f f w f f
w f f w w f f
f w w f w f f
f f w w f w w

Man sieht, dass jeweils die letzten beiden Spalten gleich sind.

A B A \implies B B \implies A A \iff B (A \implies B) \wedge (B \implies A)
w w w w w w
w f f w f f
f w w f f f
f f w w w w

Selbsttest: Wahrheitstabelle

Gegeben sind die Aussagen E,{} B,{} J sowie die verknüpfte Aussage U mit

U \quad \equiv \quad \left(E \iff B\right) \implies \neg \left(\neg B \vee J\right). Bestimmen sie die Wahrheitswerte (f oder w) von U und tragen diese in die Felder ein.

E w w w w f f f f
B w w f f w w f f
J w f w f w f w f
U

Gegeben sind die Aussagen K,{} I,{} G sowie die verknüpfte Aussage N mit

N \quad \equiv \quad \left(K \iff I\right) \wedge \neg \left(I \vee G\right). Bestimmen sie die Wahrheitswerte (f oder w) von N und tragen diese in die Felder ein.

K w w w w f f f f
I w w f f w w f f
G w f w f w f w f
N

Gegeben sind die Aussagen Y,{} D,{} Z sowie die verknüpfte Aussage N mit

N \quad \equiv \quad \neg \left(Y \iff \neg D\right) \wedge \neg \left(\neg D \implies Z\right). Bestimmen sie die Wahrheitswerte (f oder w) von N und tragen diese in die Felder ein.

Y w w w w f f f f
D w w f f w w f f
Z w f w f w f w f
N

Gegeben sind die Aussagen L,{} Y,{} U sowie die verknüpfte Aussage M mit

M \quad \equiv \quad \neg \left(L \iff \neg Y\right) \vee \neg \left(\neg Y \wedge U\right). Bestimmen sie die Wahrheitswerte (f oder w) von M und tragen diese in die Felder ein.

L w w w w f f f f
Y w w f f w w f f
U w f w f w f w f
M

Gegeben sind die Aussagen V,{} I,{} F sowie die verknüpfte Aussage H mit

H \quad \equiv \quad \left(V \vee \neg I\right) \iff \neg \left(I \wedge F\right). Bestimmen sie die Wahrheitswerte (f oder w) von H und tragen diese in die Felder ein.

V w w w w f f f f
I w w f f w w f f
F w f w f w f w f
H

Gegeben sind die Aussagen S,{} G,{} Q sowie die verknüpfte Aussage E mit

E \quad \equiv \quad \neg \left(S \iff \neg G\right) \wedge \left(\neg G \implies Q\right). Bestimmen sie die Wahrheitswerte (f oder w) von E und tragen diese in die Felder ein.

S w w w w f f f f
G w w f f w w f f
Q w f w f w f w f
E

Gegeben sind die Aussagen Y,{} K,{} H sowie die verknüpfte Aussage V mit

V \quad \equiv \quad \neg \left(Y \wedge K\right) \iff \left(K \implies H\right). Bestimmen sie die Wahrheitswerte (f oder w) von V und tragen diese in die Felder ein.

Y w w w w f f f f
K w w f f w w f f
H w f w f w f w f
V

Gegeben sind die Aussagen L,{} X,{} A sowie die verknüpfte Aussage T mit

T \quad \equiv \quad \left(L \wedge \neg X\right) \iff \neg \left(\neg X \vee A\right). Bestimmen sie die Wahrheitswerte (f oder w) von T und tragen diese in die Felder ein.

L w w w w f f f f
X w w f f w w f f
A w f w f w f w f
T

Gegeben sind die Aussagen Z,{} R,{} D sowie die verknüpfte Aussage C mit

C \quad \equiv \quad \left(Z \iff R\right) \vee \left(R \implies D\right). Bestimmen sie die Wahrheitswerte (f oder w) von C und tragen diese in die Felder ein.

Z w w w w f f f f
R w w f f w w f f
D w f w f w f w f
C

Gegeben sind die Aussagen W,{} N,{} Z sowie die verknüpfte Aussage E mit

E \quad \equiv \quad \left(W \implies \neg N\right) \wedge \left(N \vee Z\right). Bestimmen sie die Wahrheitswerte (f oder w) von E und tragen diese in die Felder ein.

W w w w w f f f f
N w w f f w w f f
Z w f w f w f w f
E

Gegeben sind die Aussagen W,{} S,{} P sowie die verknüpfte Aussage R mit

R \quad \equiv \quad \left(W \iff S\right) \wedge \neg \left(S \vee P\right). Bestimmen sie die Wahrheitswerte (f oder w) von R und tragen diese in die Felder ein.

W w w w w f f f f
S w w f f w w f f
P w f w f w f w f
R

Gegeben sind die Aussagen G,{} T,{} Z sowie die verknüpfte Aussage W mit

W \quad \equiv \quad \left(G \vee T\right) \wedge \neg \left(\neg T \iff Z\right). Bestimmen sie die Wahrheitswerte (f oder w) von W und tragen diese in die Felder ein.

G w w w w f f f f
T w w f f w w f f
Z w f w f w f w f
W

19.1.4 Rechenregeln

Um sicherer mit den Verknüpfungen umzugehen, ist es notwendig, einige Rechenregeln zu kennen.

  • Konjunktion und Disjunktion sind kommutativ:

A\wedge B \equiv B \wedge A \qquad \text{und} \qquad A\vee B \equiv B \vee A

  • Konjunktion und Disjunktion sind assoziativ:

(A \wedge B) \wedge C \equiv A \wedge (B \wedge C) \qquad \text{und} \qquad (A \vee B) \vee C \equiv A \vee (B \vee C)

  • Distributivgesetze:

A \wedge (B \vee C) \equiv (A \wedge B) \vee (A \wedge C) \quad \text{und} \quad A \vee (B \wedge C) \equiv (A \vee B) \wedge (A \vee C)

Das Distributivgesetz gibt an, wie Konjunktion und Disjunktion zu behandeln sind, wenn diese gemeinsam in einem Ausdruck auftauchen. Dies ist analog zu Multiplikation und Addition bei den reellen Zahlen: a\cdot (b+c) = a\cdot b + a\cdot c.

  • Absorptionsgesetze:

A \vee (A \wedge B) \equiv A \quad \text{und} \quad A \wedge (A \vee B) \equiv A

  • Neutralitätsgesetze:

A \wedge 1 \equiv A \quad \text{und} \quad A \vee 0 \equiv A

  • Dualität:

Jede Formel hat eine duale Formel, die man erhält, wenn man gleichzeitig

  • wahr mit falsch vertauscht und
  • \wedge mit \vee vertauscht.

Zum Beispiel:

A B A \wedge B A B A \vee B
w w w f f f
w f f f w w
f w f w f w
f f f w w w
HinweisAufgaben:

Überlegen Sie sich mit Hilfe einer Wahrheitstabelle, warum die Regel A \vee (A \wedge B) \equiv A (oder alternativ die Regel A \wedge (A \vee B) \equiv A) Absorptionsgesetz heißt.

Auflösung: Lügende Politiker

Zu guter Letzt wollen wir das Einstiegsbeispiel auflösen. Dazu müssen wir die Sätze des Politikers in Aussagen übersetzen.

  • „Die Vollbeschäftigung wird erhalten oder die Steuern dürfen nicht erhöht werden.“
  • „Wenn sich Politiker um die Bevölkerung kümmern, müssen die Steuern angehoben werden.“
  • „Die Politiker kümmern sich um die Bevölkerung oder die Vollbeschäftigung kann nicht erhalten werden.“
  • „Es stimmt nicht, dass die Erhaltung der Vollbeschäftigung eine Steuererhöhung zur Folge haben muss.“

In den Sätzen des Politikers kommen 3 Aussagen vor (über deren Wahrheitswert wir erst einmal nichts wissen):

  • V: Vollbeschäftigung erhalten,
  • S: Steuern erhöhen,
  • P: Politiker kümmern sich.

Diese können jeweils wahr oder falsch sein, womit wir insgesamt 2^3 = 8 verschiedene Möglichkeiten betrachten müssen.

Übersetzt man die Sätze des Politikers in mathematische Aussagen, so ergibt sich:

  • A_1: \, V \vee \neg S
  • A_2: \, P \implies S
  • A_3: \, P \vee \neg V
  • A_4: \, \neg(V \implies S)

Wir erzeugen nun eine Wahrheitstabelle mit allen acht Möglichkeiten. Die Schritte, wie man zu den Wahrheitswerten der Spalten A_1 bis A_4 kommt, haben wir aus Platzgründen weggelassen. Es ist allerdings eine gute Übung sich diese zu überlegen.

Tabelle 19.3: Lösung der einleitenden Aufgabe (Lügende Politiker entlarven) mit Hilfe einer Wahrheitstabelle
V P S A_1 A_2 A_3 A_4 \bigwedge A_i
w w w w w w f f
w w f w f w w f
w f w w w f f f
w f f w w f w f
f w w f w w f f
f w f w f w f f
f f w f w w f f
f f f w w w f f

Die letzte Spalte enthält ausschließlich den Wahrheitswert falsch. Dies bedeutet, dass es vollkommen egal ist, welche Wahrheitswerte die einzelnen Aussagen (V, P, S) haben: Der Politiker kann in keinem der Fälle die Wahrheit sagen!

19.2 Prädikatenlogik

19.2.1 Aussageformen

WarnungDefinition: Aussageform, Variable und Grundmenge

Eine Aussageform ist ein grammatischer Satz, in dem eine durch ein Zeichen (meist einen Buchstaben) gekennzeichnete Leerstelle auftritt. Das an der Leerstelle auftretende Zeichen heißt Variable und steht für ein Element aus einer Grundmenge.

Beispiel:

Der Ausdruck A: 2m + 1 = 5 mit m \in \mathbb{N} ist offenbar keine Aussage im Sinne der Definition einer Aussage, da A keinen Wahrheitswert hat. Es handelt sich um eine Aussageform. Erst A(m) wird je nach m zu einer wahren oder falschen Aussage.

  • A ist die Aussageform,
  • m ist die Variable und
  • \mathbb{N} = \{1, 2, \cdots\} die Grundmenge

Setzen wir nun ein Element aus der Grundmenge ein, so wird aus der Aussageform eine Aussage.

  • A(1): 2\cdot 1 + 1 = 5, also 3 = 5, ist eine falsche Aussage.
  • A(2): 2\cdot 2 + 1 = 5, also 5 = 5, ist eine wahre Aussage.
WarnungDefinition: Lösung

Elemente der Grundmenge, die die Aussageform zu einer wahren Aussage machen, nennt man Lösungen der Aussageform. Alle Lösungen der Aussageform aus der Grundmenge nennt man die Lösungsmenge der Aussageform.

Im obigen Beispiel ist L = \{2\} die Lösungsmenge der Aussageform A.

WarnungDefinition: Erfüllbarkeit, Kontradiktion, Tautologie

Man nennt eine Aussageform

  • erfüllbar, wenn die Lösungsmenge nicht die leere Menge ist,
  • eine Kontradiktion, wenn die Aussageform nicht erfüllbar ist und
  • eine Tautologie, wenn jedes Element der Grundmenge die Aussageform erfüllt.
HinweisAufgabe:
  1. Wie lautet die Lösungsmenge der Aussageform B:\, k^2 = 9, mit k \in \mathbb{Z}?
  2. Was liefert der Ausdruck (-3:3)^2 == 4 ?
  1. Die quadratische Gleichung hat in \mathbb{Z} zwei Lösungen: L = \{-3, 3\}.
  2. Gibt man dies in die Konsole ein, so ergibt sich
(-3:3)^2 == 4
[1] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE

Um das Ergebnis zu verstehen, kann man den obigen Ausdruck nur teilweise ausführen, zum Beispiel:

(-3:3)
[1] -3 -2 -1  0  1  2  3
(-3:3)^2
[1] 9 4 1 0 1 4 9

19.2.2 Quantoren

Für Aussageformen gibt es neben den Junktoren auch noch die Quantoren. Diese machen aus einer Aussageform eine Aussage.

19.2.3 Existenzquantor \exists, \bigvee

Schreibweise und Aussprache:

Er wird mit der Variablen aus der Grundmenge geschrieben \exists x, \bigvee\limits_{x} und man liest

  • für mindestens ein x gilt…
  • es gibt mindestens ein x für das gilt…
  • es existiert mindestens ein x für das gilt…

Wahrheitswerte:

Wie bereits erwähnt machen die Quantoren aus einer Aussageform eine Aussage. Der Ausdruck \exists x A(x) ist eine Aussage und genau dann wahr, wenn mindestens ein Element der Grundmenge die Aussageform zu einer wahren Aussage macht, ansonsten ist die Aussage falsch.

Beispiel:

Gegeben ist die Aussageform A: 2n + 1 = 5 und n \in \mathbb{N} sei eine natürliche Zahl, dann heißt \exists n A(n) oder etwas ausführlicher \exists n\in \mathbb{N} A(n):

Es gibt mindestens eine Zahl n aus der Grundmenge \mathbb{N}, so dass A(n) eine wahre Aussage ist.

Dies ist offenbar eine wahre Aussage, da die Aussage für n = 2 wahr ist. Es gibt einen Zusammenhang zur Disjunktion \vee, was auch die Schreibweise des Existenzquantors erklärt:

\exists n A(n) = \bigvee_{n} A(n) \; \equiv \; A(1) \vee A(2) \vee A(3) \vee \cdots

Der Unterschied besteht darin, dass auch (überabzählbar) unendliche Grundmengen mit den Quantoren behandelt werden können, während die Schreibweise mit Hilfe der Junktoren dies nicht zulässt.

19.2.4 Allquantor \forall, \bigwedge

Schreibweise und Aussprache:

Er wird mit der Variablen aus der Grundmenge geschrieben \forall x, \bigwedge\limits_{x} und man liest

  • für alle x gilt …
  • für jedes x gilt …

Wahrheitswerte

Der Ausdruck \forall x A(x) ist eine Aussage und genau dann wahr, wenn alle Elemente der Grundmenge die Aussageform zu einer wahren Aussage machen, ansonsten ist die Aussage falsch.

Beispiel

Gegeben ist die Aussageform A: 2n + 1 = 5 und n \in \mathbb{N} sei eine natürliche Zahl, dann heißt \forall n A(n) (oder etwas ausführlicher \bigwedge\limits_{n\in \mathbb{N}} A(n)):

Für alle (Zahlen) n aus der Grundmenge \mathbb{N} ist A(n) eine wahre Aussage.

Dies ist eine falsche Aussage, da die Aussage nur für n = 2 wahr ist. Auch hier gibt es wieder einen Zusammenhang zu den Junktoren, hier allerdings zur Konjunktion \wedge:

\forall n A(n) = \bigwedge_{n} A(n) \; \equiv \; A(1) \wedge A(2) \wedge A(3) \wedge \cdots

Wie auch schon beim Existenzquantor können bei der Quantorenschreibweise Grundmengen mit unendlich vielen Elementen behandelt werden.

19.2.5 Satzformeln

Beispiel (Implikation):

Gibt man die beiden folgenden Aussageformen vor:

  • A(x): x ist ein Säugetier und
  • B(x): x ist ein Hund.

Schauen wir uns folgende Aussage(!) an: \bigwedge\limits_x (B(x) \implies A(x)).

Nur die Implikation B(x) \implies A(x) bedeutet: Wenn das Tier x ein Hund ist, dann ist das Tier x ein Säugetier.

Wie ändert sich das nun durch den Allquantor? Die kurze Antwort ist

Alle Hunde sind Säugetiere.

Wir könnten den gleichen Sachverhalt auch noch komplizierter formulieren und die Elemente x aus der Grundmenge in den Satz einbauen, aber das trägt nicht wirklich zum Verständnis bei.

Beispiel (Konjunktion, Disjunktion, Implikation und Äquivalenz)

Sehen wir uns nun die folgenden Aussageformen an:

  • Q(x): x ist ein Quadrat,
  • K(x): x ist klein,
  • G(x): x ist grün,
  • L(x,y): x liegt links von y.

Die Grundmenge sind die Objekte in Abbildung 19.1, also Dreiecke und Quadrate in verschiedenen Größen und Farben.

Abbildung 19.1: Grafik zum Beispiel
WarnungAufgaben, Teil 1

Zuerst formulieren wir ein paar Aussagen und bringen diese in eine mathematische Form:

  1. Es gibt Objekte, die keine Quadrate sind.
  2. Es gibt grüne Quadrate.
  3. Alle großen Quadrate sind grün.
  4. Es gibt große und kleine Quadrate.
  5. Alle großen Objekte liegen links von den kleinen Objekten.
  6. Dann und nur dann wenn ein Objekt klein ist, ist es kein grünes Quadrat.
  7. Es ist nicht richtig, dass alle Quadrate groß sind.
  1. Das ist noch relativ einfach: \bigvee\limits_{x} \neg Q(x)

  2. Nun haben wir eine zusätzliche Bedingung, diese können wir mit Hilfe der Konjunktion hinzufügen: \bigvee\limits_{x} (Q(x) \wedge G(x)).

  3. Analog zum vorherigen Fall geht es um große Quadrate (Konjunktion). Allerdings benötigen wir nun den Allquantor, da es um alle großen Quadrate geht und wir haben eine Folgerung, nämlich dass diese grün sind:

\bigwedge\limits_{x} \Big(Q(x) \wedge \neg K(x) \implies G(x)\Big)

  1. Bei diesem Satz muss man ein wenig aufpassen, denn wir haben zwei verschiedene Existenzaussagen gekoppelt.

\left(\bigvee\limits_{x} \Big(Q(x) \wedge \neg K(x)\Big)\right) \wedge \left(\bigvee\limits_{y} \Big(Q(y) \wedge K(y)\Big)\right)

Wie man die Variablen nennt, spielt keine Rolle. Daher kann man diese im zweiten Ausdruck auch y nennen, um diese klar vom linken Term abzugrenzen.

  1. Hier haben wir nun zum ersten Mal die Aussageform L(x, y). Hier ist die Reihenfolge der vorkommenden Variablen x und y wichtig! Des Weiteren benötigen wir auch zwei Quantoren, da alle Objekte betrachtet werden müssen.

\bigwedge\limits_{y} \Big( \bigwedge\limits_{x} L(x, y) \wedge \neg K(x) \Big) \implies K(y)

Um den Ausdruck besser zu verstehen, zerlegt man diesen. So kann der Ausdruck \Big( \bigwedge\limits_{x} L(x, y) \wedge \neg K(x) \Big) gelesen werden als

“Alle nicht-kleinen Objekte liegen links von y”

  1. Die Formulierung Dann und nur dann zeigt an, dass es sich um eine Äquivalenz zweier Aussagen handelt. Damit ergibt sich:

\bigwedge\limits_{x} \Big(K(x) \iff \big(Q(x) \wedge \neg G(x)\big)\Big)

WarnungAufgaben, Teil 2:

In einem zweiten Schritt können wir uns nun überlegen, ob diese Aussagen wahr oder falsch sind.

Offensichtlich sind 1. bis 5. wahr. Einzig 6. ist nicht direkt klar. Sehen wir uns das genauer an. Die Äquivalenz heißt Implikation in beide Richtungen. Die Richtung “wenn ein Objekt klein ist, dann ist es kein grünes Quadrat” stimmt. Die andere Richtung “wenn ein Objekt kein grünes Quadrat ist, dann ist es klein” ist aber falsch, da es auch ein Dreieck sein kann. Daher ist die Aussage falsch.

WarnungAufgaben, Teil 3:

In einem letzten Teil kann man nun den umgekehrten Weg gehen und sich für gegebene Aussagen die Bedeutung überlegen und welchen Wahrheitswert diese haben:

\bigwedge\limits_{x} \Big(\neg Q(x) \implies \neg K(x) \Big)

\bigvee\limits_{x} \Big(Q(x) \vee \neg G(x) \Big)

\bigvee\limits_{x} \Big(Q(x) \vee \neg G(x) \Big)

19.2.6 Quantoren in R

In R gibt es zwei Funktionen mit denen wir herausfinden können, ob in einem logischen Vektor mindestens einer (any()) oder alle (all()) Werte den Wahrheitswert TRUE haben.

any(..., na.rm = FALSE)

überprüft, ob in einem logischen Vektor mindestens ein Eintrag TRUE ist. Die Ausgabe ist ein logischer Vektor der Länge 1, der TRUE ist, falls es mindestens einen Eintrag TRUE gibt, sonst FALSE.

all(..., na.rm = FALSE)

überprüft, ob in einem logischen Vektor alle Einträge TRUE sind. Die Ausgabe ist wieder ein logischer Vektor der Länge 1. Sollten alle Einträge in dem Vektor TRUE sein, so ist die Ausgabe TRUE, sonst FALSE.

x1 <- c(TRUE, TRUE)
x2 <- c(TRUE, FALSE)
x3 <- c(FALSE, FALSE)
y  <- c(TRUE, NA)

any(x2)
[1] TRUE
any(x1, x2, x3)
[1] TRUE
any(x3)
[1] FALSE
any(y)
[1] TRUE
any(y, na.rm = TRUE)
[1] TRUE
all(x1)
[1] TRUE
all(x2)
[1] FALSE
all(y)
[1] NA
all(y, na.rm = TRUE)
[1] TRUE

19.3 Übersicht Aussagen- und Prädikatenlogik

Tabelle 19.4: Übersicht Aussagenlogik, # gibt die Anzahl der Argumente an.
Name Ausprägung R # Anwendung Aussprache
Wahrheitswert wahr, w TRUE, T 0 wahr
falsch, f FALSE, F 0 falsch
Negation (NOT) \neg ! 1 \neg A nicht A
Konjunktion (AND) \wedge & 2 A \wedge B A und B
Disjunktion (OR) \vee | 2 A \vee B A oder B
Implikation \implies 2 A \implies B A impliziert B
wenn A dann B
A ist hinreichend für B
B ist notwendig für A
Äquivalenz \iff 2 A \iff B A äquivalent B
A gilt genau dann wenn B gilt
A notw. und hinr. für B
Allaussage \forall, \bigwedge all() 1 \forall x, \bigwedge_x für alle x
für jedes x
Existenzaussage \exists, \bigvee any() 1 \exists x, \bigvee_x es existiert mind. ein x