\item Prädikatensymbolen $P$, $Q$, $R$, alle mit fester Arität (auf wie viele Terme man das Prädikat anwendet)
\item Funktionszeichen $f$, $g$, $h$, ebenfalls jeweils mit Arität.
\item Konstantenzeichen $a$, $b$, $c$, \ldots
\end{enumerate}
\end{definition}
\begin{definition}[S-Struktur]
Eine \vocab{S}-Struktur für eine Sprache $\mathcal{S}$ besteht aus
\begin{itemize}
\item einer Domäne (Menge) $M$
\item Für jedes Prädikatenzeichen von $\mathcal{S}$ eine Relation über $M$
\item Für jedes Funktionszeichen und jede Konstante von $\mathcal{S}$ eine Funktion bzw.~ein Element aus $M$.
\end{itemize}
\end{definition}
\begin{definition}
Sei $\mathcal{S}$ eine Sprache und $\mathcal{A}$ ein Axiomensystem, d.h.~eine Menge an Formeln über $\mathcal{S}$.
Für eine Formel $\varphi$ schreiben wir $\mathcal{A}\models\varphi$,
falls aus $\mathcal{A}$\vocab{semantisch} die Formel $\varphi$ folgt,
d.h.~falls für alle $\mathcal{S}$-Strukturen, in denen $\mathcal{A}$ wahr ist,
auch $\varphi$ wahr ist.
\end{definition}
\subsection{Ableitungsregeln: Tableau-Kalkül}
\begin{definition}[Tableu-Kalkül]
Eine \vocab{Herleitung} für eine Formel $\varphi$ im \vocab{Tableau-Kalkül}
besteht immer daraus, mit der Formel $\lnot\varphi$ anzufangen
und dann durch Anwendung von Schlussregeln einen Baum zu erzeugen.
Ein Ast des Baumes gilt als \vocab{abgeschlossen}, wenn auf ihm sowohl $\psi$ als auch $\lnot\psi$ stehen, sich also ein Widerspruch ergeben hat.
Eine Herleitung von $\varphi$ ist es, alle Äste des Baumes, an dessen Wurzel $\lnot\varphi$ steht, zu schließen.
Folgende formale Regeln erlauben wir für logische Schlussfolgerungen:
\begin{itemize}
\item Steht $\lnot\lnot\varphi$ auf einem Ast, füge $\varphi$ hinzu.
\item Steht $α_1\landα_2$ auf einem Ast, füge $α_1$ und $α_2$ hinzu
\item Steht $α_1\lorα_2$ auf einem Ast, spalte in einen Ast mit $α_1$ und einen mit $α_2$
\item Steht $α_1\toα_2$ auf einem Ast, spalte in $\lnotα_1$ und $α_2$
\item Ergänze $\lnot(\varphi\to\psi)$ durch $\varphi$ und $\lnot\psi$
\item Ergänze $\lnot(\varphi\varphi\lor\psi)$ durch $\lnot\varphi$ und $\lnot\psi$
\item Spalte $\lnot(\varphi\land\psi)$ in $\lnot\varphi$ und $\lnot\psi$
\end{itemize}
Folgende Regeln sind für Quantoren erlaubt:
\begin{itemize}
\item Ergänze $\exists x \varphi$ durch $\varphi^{[ x \leftarrow a]}$ für ein neues Konstantenzeichen $a$. Hierbei steht $\varphi^{[ x \leftarrow a]}$ für die Formel, in der wir $x$ durch $a$ ersetzen
\item Ergänze $\lnot\forall x \varphi$ durch $\lnot\varphi^{[ x \leftarrow a]}$ für ein neues Konstantenzeichen $a$
\item Ergänze $\forall x \varphi$ durch $\varphi[ x \leftarrow l]$ für einen Term $t$
\item Ergänze $\lnot\exists x \varphi$ durch $\lnot\varphi^{[ x \leftarrow t]}$ für einen Term $t$
\end{itemize}
\end{definition}
\begin{remark}
Man sollte sich den entstehenden Baum so vorstellen, dass man auf jedem Ast wissen sammelt. Jede neue Zeile fügt neues Wissen hinzu, man kann also jederzeit Wissen des eigenen Astes verwenden.
Wenn wir einen Ast in 2 neue Aufteilen, entspricht das einer üblichen Fallunterscheidung.
Wenn wir alle Äste schließen, haben wir alle Fälle zum Widerspruch geführt.
\end{remark}
\begin{exercise}
Man mache sich für alle obigen formalen Schlussfolgerungen Gedanken,
was diese \emph{intuitiv} sagen.
Das heißt, welches Wissen wird hier in welches neue Wissen verwandelt,
und warum macht das Sinn, bzw.~warum würden wir erwarten, dass dies eine
sinnvolle logische Schlussregel ist.
\end{exercise}
\begin{example}[Logische Folgerungen]
Wir wollen die Aussage $(\varphi\land\psi)\to\lnot(\lnot\varphi\land\lnot\psi)$ zeigen.
Das zu beweisen ist letztendlich nicht schwer. Man muss sich \enquote{nur} davon überzeugen, dass jede einzelne der syntaktischen Schlussregeln so gestaltet ist,
dass sich auch in $S$-Strukturen die entsprechenden Schritte durchführen lassen.
\end{remark}
\begin{definition}[Vollständigkeit]
Ähnlich sprechen wir von \vocab{Vollständigkeit}, wenn jede Formel,
die sich semantisch herleiten lässt, auch syntaktisch herleiten lässt,
d.h.~ wenn aus $A \models\varphi$ auch schon $A \shows\varphi$ folgt.
\end{definition}
\begin{theorem}[Gödel'scher Vollständigkeitssatz]
Das Tableau-Kalkül ist korrekt und vollständig für jede Sprache $\mathcal{S}$.
\end{theorem}
\begin{remark}
Vollständigkeit zu beweisen ist weitaus schwieriger: Wir müssen über \emph{alle}$\mathcal{S}$-Strukturen etwas aussagen, haben aber nur eine fixe Menge an syntaktischen Regeln zur Verfügung.
Ist jede \emph{endliche} Teilmenge eines Axiomensystems konsistent,
so ist auch das Axiomensystem selbst konsistent.
\end{corollary}
\begin{proof}
Sei $\mathcal{A}$ dieses System und nimm an, dass man $\mathcal{A}$ nicht interpretieren kann, ich also keine $\mathcal{S}$-Struktur finde, in der $\mathcal{A}$ gilt.
Dann gilt insbesondere $\mathcal{A}\models\bot$, wobei $\bot$ irgendeine falsche Aussage sei, denn in jeder $\mathcal{S}$-Struktur, in der $\mathcal{A}$ gilt (es gibt keine solchen), gilt ja auch $\bot$.
Nach dem Vollständigkeitssatz gibt es dann auch schon eine Herleitung $\mathcal{A}\shows\bot$.
Eine Herleitung besteht allerdings aus endlich vielen Schritten,
also gibt es auch schon eine endliche Teilmenge $\mathcal{B}\subset\mathcal{A}$,
sodass $\mathcal{B}\shows\bot$.
Nach Korrektheit ist dann auch $\mathcal{B}\models\bot$,
also ist $\mathcal{B}$ inkonsistent, ein Widerspruch zu unserer Annahme.
Wir wollen nun verstehen, wie man einfache Arithmetik
(d.h.~Rechnen mit natürlichen Zahlen) in Prädikatenlogik formulieren kann.
\begin{definition}
Sei $\mathcal{L}_A$ die Sprache mit Relationszeichen $=$, $<$, Funktionszeichen $+$, $\cdot$, sowie Konstantenzeichen $0$, $1$.
\end{definition}
\begin{example}
Wir können zum Beispiel folgende Übersetzungen treffen:
\begin{IEEEeqnarray*}{rCl}
\text{$a$ ist ein Teiler von $b$}
&\leftrightarrow&
\exists x : a \cdot x = b
\\
\text{$p$ ist keine Primzahl}
&\leftrightarrow&
\exists a\exists b\colon (a \neq 1 \land b \neq 1 \land a \cdot b = p)
\\
\text{$p$ ist eine Primzahl}
&\leftrightarrow&
\lnot (\exists a\exists b\colon a \neq 1 \land b \neq 1 \land a \cdot b = p)
\\
&\leftrightarrow&
\forall a \forall b\colon a \cdot b = p \to (a = 1 \lor b = 1)
\\
\text{Die Zahl \enquote{Zwei}}
&\leftrightarrow&
1 + 1
\end{IEEEeqnarray*}
Um uns Notation zu vereinfachen, führen wir $a \mid b$ sowie $\prim(p)$ mit den obigen Bedeutungen ein, ebenfalls können wir jede \emph{feste} natürliche Zahle als $1+1+\dots b +1$ kodieren.
Damit meinen wir nicht, dass wir die Sprache tatsächlich erweitern (um solche Relationssymbole), sondern einfach, dass man jede Vorkommnis von diesen Relationen rein formal durch ihre obige Langschreibweise ersetzen kann.
Jetzt lässt sich die (starke) Goldbach'sche Vermutung formulieren als
\[
\forall z ((z > 2 \land 2 \mid z) \to\exists a, b (z = a + b \land\prim(a) \land\prim(b)))
.
\]
Etwas schwieriger wird es, zu übersetzen, dass es unendlich viele Primzahlen gibt:
\[
\forall x \exists p (x < p \land\prim(p))
.
\]
Eigentlich steht hier eher etwas wie \enquote{Es gibt beliebig große Primzahlen},
allerdings ist das (in den natürlichen Zahlen) das gleiche Konzept.
\end{example}
\begin{definition}
Ein \vocab{Axiomensystem} ist eine Menge von Sätzen (Formeln).
\end{definition}
\begin{question}
Was sind wünschenswerte Eigenschaften eines Axiomensystems?
\end{question}
\begin{itemize}
\item\vocab{Widerspruchsfreiheit}, d.h.~es gibt keine Aussage $\varphi$, für die sowohl $\varphi$ als auch $\lnot\varphi$ bewiesen werden können
\item\vocab{Vollständigkeit}, d.h.~für jeden Satz $\varphi$ der Sprache gilt $A \shows\varphi$ oder $A \shows\lnot\varphi$.
\end{itemize}
\begin{remark}
Dieser Begriff der \emph{Vollständigkeit} ist ein anderer, wie wir ihn bereits gesehen haben.
Ein Kalkül kann vollständig sein, wenn $A \models\varphi\iff A \shows\varphi$,
Herleitungen also vollständig die semantische wahren Aussagen widerspiegeln.
Ein Axiomensystem kann vollständig sein, indem $A \shows\varphi\lor A \shows\lnot\varphi$ für jede Formel $\varphi$.
\end{remark}
\begin{remark}
Beide Eigenschaften für sich sind natürlich einzeln leicht realisierbar:
Das leere Axiomensystem ist natürliche widerspruchsfrei, denn man kann gar nichts ableiten, und widersprüchliche Axiomensysteme sind vollständig, weil man jede Aussage zeigen kann.
Es gibt auch widerspruchsfreie und vollständige Systeme,
allerdings können diese nicht über Arithmetik reden.
Das wird Inhalt von Gödels Unvollständigkeitssatz sein.
\end{remark}
\subsection{Turing-Maschinen}
Turing-Maschinen sind ein theoretisches Computermodell,
das von \textsc{Alan Turing} eingeführt wurde.
\begin{definition}
Eine \vocab{Turingmaschine} besteht aus einem (nach rechts hin)
unendlichen Speicherband, auf dem an jeder Position $0$ oder $1$ steht,
einem Schreib-/Lesekopf, der sich stets an einer Position findet.
Das Programm einer Turingmaschine besteht aus einer Liste an Zuständen,
wobei jeder Zustand in Abhängigkeit vom Wert des Bands am Lesekopf angibt:
\begin{itemize}
\item welchen Wert der Schreibkopf auf die aktuelle Position schreiben soll
\item in welche Richtung (links/rechts/stehen bleiben) sich der Schreibkopf als nächstes bewegt
\item was der nächste Programmzustand der Turingmaschine ist
\end{itemize}
Das Programm lässt sich also Beschreiben über eine Zustandsmenge $\mathcal{S}$