11 KiB
Syntax & Semantik
Definition
Die Syntax beschreibt jeweils die Form, in der Dinge niedergeschrieben oder abgespeichert sind, während die Semantik bedeutet, wie das Geschriebene/das Gespeicherte interpretiert wird.
Folgend einige Beispiele:
Syntax | Semantik |
---|---|
Paritur | Musik (Schallwellen) |
Java-Code | Verhalten des Computers |
Terme einer mathematischen Theorie | Mathematische Objekte |
Aussagenlogische Formeln | Boolsche Funktionen |
Peano-Axiome | Die Struktur (\mathbb{N} , + , \cdot etc.) |
Feynnman-Diagramm | Wechselwirkungen |
Abgesehen von den bereits aus dem Kapitel "Grundbegriffe und elementare Logik" bekannten Ausdrücke sind auch folgende Ausdrücke wichtig:
\top
: Gleichbedeutend mittrue
\bot
: Gleichbedeutend mitfalse
Darstellung
Um leichter Erkenntnisse über Wahrheitswerte von Aussagen zu ziehen, können diese in verschiedene Darstellungsformen gebracht werden.
Im Folgenden werden einige davon aufgezeigt.
Ableitungsbaum
Ein Ableitungsbaum lässt es zu, den Überblick über eine Aussage bei einer bestimmten Belegung zu geben.
Folgende Formel gilt es darzustellen:
f = (((a \wedge b) \vee (\neg c)) \wedge (a \vee b))
Folgendes ist der Ableitungsbaum unter der Bedingung, dass a = 1
, b = 0
und c = 0
entspricht:
flowchart BT;
a((a: 1));
b((b: 0));
c((c: 0));
a --- 1((AND));
b --- 1;
c --- 2((NOT));
1 -- 0 --- 3((OR));
2 -- 1 --- 3;
a --- 4((OR));
b --- 4;
3 -- 1 --- 5((AND));
4 -- 1 --- 5;
5 --- f((f: 1))
Boolsche Funktionen
Ein weiterer Weg, eine Aussage darzustellen ist als boolsche Funktionen.
Hierbei werden jeweils algebraische Operatoren durch eine Funktion ersetzt, die dasselbe aussagt, nämlich folgende:
Operator | Funktion |
---|---|
\neg A |
\text{not}(A) |
A \wedge B |
\text{or}(A, B) |
A \vee B |
\text{and}(A, B) |
$$\begin{aligned} \newcommand{\and}{\mathop{\mathrm{and}}} \text{or}(x,y) &= \begin{cases} true & \text{falls} & x = true & \text{oder} & y = true \ false & \text{sonst} \end{cases} \
\text{and}(x,y) &= \begin{cases}
true & \text{falls} & x = true & \text{und} & y = true \\
false & \text{sonst}
\end{cases} \\
\text{not}(x) &= \begin{cases}
true & \text{falls} & x = false \\
false & \text{sonst}
\end{cases}
\end{aligned}
Wahrheitstabelle
Ein weiterer Weg, welcher es einem erleichtert, Erkenntnisse aus einer Aussage zu treffen, ist das Ausarbeiten einer Wahrheitstabelle, indem man alle einzelnen Terme berechnet.
Folgend ein Beispiel für diesen algebraischen Ausdruck:
p_0 \rightarrow (q \vee p_1)
p_0 |
q | p_1 |
q \vee p_1 |
p_0 \rightarrow (q \vee p_1) |
---|---|---|---|---|
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Boolsche Operatoren als Wahrheitstabellen
Folgendes sind boolsche Operatoren dargestellt als Wahrheitstabellen.
AND
\wedge
F |
G |
F \wedge G |
---|---|---|
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
OR
\vee
F |
G |
F \vee G |
---|---|---|
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Implikation \Rightarrow
F |
G |
F \Rightarrow G |
---|---|---|
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
Negation \neg
F |
\neg F |
---|---|
0 |
1 |
1 |
0 |
Semantische Eigenschaften
Über eine Formel A
mit der Belegung B
können unter bestimmten Umständen bestimmte Aussagen getroffen werden.
Folgend sind Aussagen und dazugehörige Umstände aufgelistet.
Bezeichnung | Alternative Bezeichnung | Beschreibung |
---|---|---|
Gültig | richtig oder wahr | Die gegebene Formel ist unter der Belegung B wahr. |
Allgemeingültig | Tautologie oder immer wahr | Die gegebene Formel ist, unabhängig der Belegung B , immer wahr. |
Ungültig | falsch oder unwahr | Die gegebene Formel ist unter der Belegung B nicht wahr. |
Unerfüllbar | Widerspruch oder immer falsch | Die gegebene Formel ist, unabhängig der Belegung B , immer falsch. |
erfüllbar | Es gibt mindestens eine Belegung B unter der die Formel erfüllbar ist. |
|
widerlegbar | Es gibt mindestens eine Belegung B unter der die Formel nicht erfüllbar ist. |
Normalformen
Normalformen beinhalten generell nur AND
s (\wedge
), OR
s (\vee
) und NOT
s (\neg
).
Negationsnormalform NNF
Die Negationsnormalform (NNF
) ist die Form einer Formel, in der nur atomare (nicht aufteilbare) Teilformeln negiert sind.
Folgendes Beispiel anhand dieser Formel:
\neg(A \rightarrow (B \wedge \neg(C \vee D)))
Diese Form ist nicht komplett normalisiert, da sie den Operator \rightarrow
beinhaltet.
Dieser Operator wird im Folgenden umgeformt.
\neg(\neg A \vee (B \wedge \neg(C \vee D)))
Diese Formel ist keine NNF
, da 2 nicht-atomare Formeln negiert sind.
Im Folgenden werden diese entfernt.
(\neg\neg A \wedge \neg(B \wedge (\neg C \wedge \neg D)))
(\neg\neg A \wedge (\neg B \vee \neg(\neg C \wedge \neg D)))
Nun ist nur noch eine letzte nicht-atomare Teilformel negiert. Dieser Teil wird nun entfernt:
(\neg\neg A \wedge (\neg B \vee (\neg\neg C \vee \neg\neg D)))
In einem letzten Schritt werden nun doppelte Negationen weg vereinfacht:
(A \wedge (\neg B \vee (C \vee D)))
Bei dieser Formel handelt es sich nun um eine Negationsnormalform (NNF
), da nur atomare Teilformeln negiert sind und nur $\neg$s, $\vee$s und $\wedge$s in der Formel genutzt werden.
Disjunktive Normalform DNF
Die Disjunktive Normalform ist eine Umformung der Formel, in der alle Belegungen für die die Formel true
ergibt, mit einander "verodert" werden.
Das sieht folgendermassen aus:
A |
B |
C |
D |
B \vee D |
(B \vee D) \wedge C |
\neg A \wedge ((B \vee D) \wedge C) |
---|---|---|---|---|---|---|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
Wie zu sehen ist, ist diese Formel an folgenden Stellen wahr:
\neg A \wedge \neg B \wedge C \wedge D
\neg A \wedge B \wedge C \wedge \neg D
\neg A \wedge B \wedge C \wedge D
Die DNF
erreicht man nun die Teilformeln der genannten Stellen mit einem OR
verknüpft:
(\neg A \wedge \neg B \wedge C \wedge D) \vee (\neg A \wedge B \wedge C \wedge \neg D) \vee (\neg A \wedge B \wedge C \wedge D)
Konjunktive Normalform KNF
Bei der Konjunktiven Normalform wiederum, werden alle negierten Belegungen, in denen die gegebene Formel false
ergibt miteinander "geandet".
Folgendes wieder anhand eines realen Beispiels:
A |
B |
C |
A \vee C |
B \vee (A \wedge C) |
---|---|---|---|---|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
An folgenden Stellen ergibt diese Formel false
:
\neg A \wedge \neg B \wedge \neg C
Negation:A \vee B \vee C
\neg A \wedge \neg B \wedge C
Negation:A \vee B \vee \neg C
A \wedge \neg B \wedge \neg C
Negation:\neg A \vee B \vee C
Um nun eine KNF
zu erhalten müssen die Negationen der genannten Stellen mit dem $\vee$-Operator verknüpft werden:
(A \vee B \vee C) \wedge (A \vee B \vee \neg C) \wedge (\neg A \vee B \vee C)