\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{multicol}
\usepackage{calc}
\usepackage{ifthen}
\usepackage[landscape]{geometry}
\usepackage{amsmath,amsthm,amsfonts,amssymb}
\usepackage{color,graphicx,overpic}
\usepackage{xcolor, listings}
\usepackage[compact]{titlesec} %less space for headers
\usepackage{mdwlist} %less space for lists
\usepackage{pdflscape}
\usepackage{verbatim}
\usepackage[most]{tcolorbox}
\usepackage[hidelinks,pdfencoding=auto]{hyperref}
\usepackage{bussproofs}
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{Logik und Logikprogrammierung}
\fancyfoot[L]{\thepage/\pageref{LastPage}}
\renewcommand{\headrulewidth}{0pt} %obere Trennlinie
\renewcommand{\footrulewidth}{0pt} %untere Trennlinie

\pdfinfo{
  /Title (Logik und Logikprogrammierung - Cheatsheet)
  /Creator (TeX)
  /Producer (pdfTeX 1.40.0)
  /Author (Robert Jeutter)
  /Subject ()
}

%%% Code Listings
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
\lstdefinestyle{mystyle}{
 backgroundcolor=\color{backcolour},  
 commentstyle=\color{codegreen},
 keywordstyle=\color{magenta},
 numberstyle=\tiny\color{codegray},
 stringstyle=\color{codepurple},
 basicstyle=\ttfamily,
 breakatwhitespace=false, 
}
\lstset{style=mystyle, upquote=true}

%textmarker style from colorbox doc
\tcbset{textmarker/.style={%
    enhanced,
    parbox=false,boxrule=0mm,boxsep=0mm,arc=0mm,
    outer arc=0mm,left=2mm,right=2mm,top=3pt,bottom=3pt,
    toptitle=1mm,bottomtitle=1mm,oversize}}

% define new colorboxes
\newtcolorbox{hintBox}{textmarker,
  borderline west={6pt}{0pt}{yellow},
  colback=yellow!10!white}
\newtcolorbox{importantBox}{textmarker,
  borderline west={6pt}{0pt}{red},
  colback=red!10!white}
\newtcolorbox{noteBox}{textmarker,
  borderline west={3pt}{0pt}{green},
  colback=green!10!white}

% define commands for easy access
\renewcommand{\note}[2]{\begin{noteBox} \textbf{#1} #2 \end{noteBox}}
\newcommand{\warning}[1]{\begin{hintBox} \textbf{Warning:} #1 \end{hintBox}}
\newcommand{\important}[1]{\begin{importantBox} \textbf{Important:} #1 \end{importantBox}}


% This sets page margins to .5 inch if using letter paper, and to 1cm
% if using A4 paper. (This probably isn't strictly necessary.)
% If using another size paper, use default 1cm margins.
\ifthenelse{\lengthtest { \paperwidth = 11in}}
  { \geometry{top=.5in,left=.5in,right=.5in,bottom=.5in} }
  {\ifthenelse{ \lengthtest{ \paperwidth = 297mm}}
    {\geometry{top=1.3cm,left=1cm,right=1cm,bottom=1.2cm} }
    {\geometry{top=1.3cm,left=1cm,right=1cm,bottom=1.2cm} }
  }

% Redefine section commands to use less space
\makeatletter
\renewcommand{\section}{\@startsection{section}{1}{0mm}%
                {-1ex plus -.5ex minus -.2ex}%
                {0.5ex plus .2ex}%x
                {\normalfont\large\bfseries}}
\renewcommand{\subsection}{\@startsection{subsection}{2}{0mm}%
                {-1explus -.5ex minus -.2ex}%
                {0.5ex plus .2ex}%
                {\normalfont\normalsize\bfseries}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{0mm}%
                {-1ex plus -.5ex minus -.2ex}%
                {1ex plus .2ex}%
                {\normalfont\small\bfseries}}
\makeatother

% Don't print section numbers
\setcounter{secnumdepth}{0}

\setlength{\parindent}{0pt}
\setlength{\parskip}{0pt plus 0.5ex}  
% compress space
\setlength\abovedisplayskip{0pt}
\setlength{\parskip}{0pt}
\setlength{\parsep}{0pt}
\setlength{\topskip}{0pt}
\setlength{\topsep}{0pt}
\setlength{\partopsep}{0pt}
\linespread{0.5}
\titlespacing{\section}{0pt}{*0}{*0}
\titlespacing{\subsection}{0pt}{*0}{*0}
\titlespacing{\subsubsection}{0pt}{*0}{*0}

\begin{document}

\raggedright
\begin{multicols}{3}\scriptsize
  % multicol parameters
  % These lengths are set only within the two main columns
  %\setlength{\columnseprule}{0.25pt}
  \setlength{\premulticols}{1pt}
  \setlength{\postmulticols}{1pt}
  \setlength{\multicolsep}{1pt}
  \setlength{\columnsep}{2pt}

  \subsubsection{Probleme mit natürlicher Sprache}

  \begin{enumerate*}
    \item Zuordnung von Wahrheitswerten zu natürlichsprachigen Aussagen ist problematisch. (Ich habe nur ein bißchen getrunken.)
    \item Natürliche Sprache ist oft schwer verständlich.
    \item Natürliche Sprache ist mehrdeutig.
    \item Natürliche Sprache hängt von Kontext ab.
  \end{enumerate*}

  \section{Aussagenlogik}
  In der Aussagenlogik gehen wir von ``Aussagen'' aus, denen wir (zumindest prinzipiell) Wahrheitswerte zuordnen können.

  Die Aussagen werden durch ``Operatoren'' verbunden.

  Für zusammengesetzten Aussagen verwenden wir $\varphi,\psi$ usw.

  Durch die Wahl der erlaubten Operatoren erhält man unterschiedliche ``Logiken''.

  Da der Wahrheitswert einer zusammengesetzten Aussage nur vom Wahrheitswert der Teilaussagen abhängen soll, sind Operatoren wie ``weil'' oder ``obwohl'' nicht zulässig.

  \subsection{Syntax der Aussagenlogik}
  Eine atomare Formel hat die Form $p_i$ (wobei $i\in\mathbb{N}=\{0,1,...\}$). Formeln werden durch folgenden induktiven Prozess definiert: 
  \begin{enumerate*}
  \item Alle atomaren Formeln und $\bot$ sind Formeln. 
  \item Falls $\varphi$ und $\psi$ Formeln sind, sind auch $(\varphi\wedge\psi),(\varphi\wedge\psi)$($\varphi \rightarrow\psi$) und $\lnot\varphi$Formeln. 
  \item Nichts ist Formel, was sich nicht mittels der obigen Regeln erzeugen läßt.
  \end{enumerate*}

  Beispielformel: $\lnot((\lnot p_4 \vee p_1)\wedge\bot)$

  Präzedenz der Operatoren: 
  \begin{itemize*}
  \item $\leftrightarrow$ bindet am schwächsten 
  \item $\rightarrow$\ldots{} 
  \item $\vee$\ldots{} 
  \item $\wedge$\ldots{} 
  \item $\lnot$ bindet am stärksten
  \end{itemize*}

  \subsection{Natürliches Schließen}
  Ein (mathematischer) Beweis zeigt, wie die Behauptung aus den Voraussetzungen folgt.
  Analog zeigt ein ``Beweisbaum'' (=``Herleitung'' = ``Deduktion''), wie eine Formel der Aussagenlogik aus Voraussetzungen (ebenfalls Formeln der Aussagenlogik) folgt.
  Diese ``Deduktionen'' sind Bäume, deren Knoten mit Formeln beschriftet sind: 
  \begin{itemize*}
  \item an der Wurzel steht die Behauptung (= Konklusion $\varphi$) 
  \item an den Blättern stehen Voraussetzungen (= Hypothesen oder Annahmen aus $\Gamma$) 
  \item an den inneren Knoten stehen ``Teilergebnisse'' und ``Begründungen''
  \end{itemize*}

  \subsection{Konstruktion von Deduktionen}
  Aus der Annahme der Aussage $\varphi$ folgt $\varphi$ unmittelbar: eine triviale Deduktion

  $\varphi$ mit Hypothesen $\{\varphi\}$ und Konklusion $\varphi$.

  \subsubsection{Konjunktionseinführung}
  Ist D eine Deduktion von $\varphi$ mit Hypothesen aus $\Gamma$ und ist E eine Deduktion von $\psi$ mit Hypothesen aus $\Gamma$, so ergibt sich die folgende Deduktion von $\varphi\wedge\psi$ mit Hypothesen aus $\Gamma$:
\begin{prooftree}
  \AxiomC{$\varphi$}
  \AxiomC{$\psi$}
                  \RightLabel{\scriptsize ($\wedge I$)}
          \BinaryInfC{$\varphi\wedge\psi$}
\end{prooftree}

  \subsubsection{Konjunktionselimination}
  Ist D eine Deduktion von $\varphi\wedge\psi$ mit Hypothesen aus $\Gamma$, so ergeben sich die folgenden Deduktionen von $\varphi$ bzw. von $\psi$ mit Hypothesen aus $\Gamma$:

  \begin{prooftree}
    \AxiomC{$\varphi\wedge\psi$}
                    \RightLabel{\scriptsize ($\wedge E_1$)}
            \UnaryInfC{$\varphi$}
  \end{prooftree}
  \begin{prooftree}
    \AxiomC{$\varphi\wedge\psi$}
                    \RightLabel{\scriptsize ($\wedge E_2$)}
            \UnaryInfC{$\psi$}
  \end{prooftree}

  \subsubsection{Implikationseinführung}
  Ist D eine Deduktion von $\psi$ mit Hypothesen aus $\Gamma\cup\{\varphi\}$, so ergibt sich die folgende Deduktion von $\varphi\rightarrow\psi$ mit Hypothesen aus $\Gamma$:
  \begin{prooftree}
    \AxiomC{$\psi$}
    \RightLabel(\scriptsize ($\rightarrow I)$)
    \UnaryInfC{$\varphi\rightarrow\psi$}
  \end{prooftree}

  \subsubsection{Implikationselimination oder modus ponens}
  Ist D eine Deduktion von $\varphi$ mit Hypothesen aus $\Gamma$ und ist E eine Deduktion von $\varphi\rightarrow\psi$ mit Hypothesen aus $\Gamma$, so ergibt sich die folgende Deduktion von $\psi$ mit Hypothesen aus $\Gamma$:
  \begin{prooftree}
    \AxiomC{$\varphi$}
    \AxiomC{$\varphi\rightarrow\psi$}
    \RightLabel(\scriptsize ($\rightarrow E)$)
    \BinaryInfC{$\varphi$}
  \end{prooftree}

  \subsubsection{Disjunktionselimination}
  Ist D eine Deduktion von $\varphi\vee\psi$ mit Hypothesen aus $\Gamma$, ist E eine Deduktion von $\sigma$ mit Hypothesen aus $\Gamma\cup\{\varphi\}$und ist F eine Deduktion von $\sigma$ mit Hypothesen aus $\Gamma\cup\{\psi\}$, so ergibt sich die folgende Deduktion von $\sigma$ mit Hypothesen aus $\Gamma$:
  \begin{prooftree}
    \AxiomC{$\varphi\vee\psi$}
    \AxiomC{$\sigma$}
    \AxiomC{$\sigma$}
    \RightLabel(\scriptsize ($\vee E)$)
    \TrinaryInfC{$\sigma$}
  \end{prooftree}

  \subsubsection{Negationseinführung}
  Ist D eine Deduktion von $\bot$ mit Hypothesen aus $\Gamma\cup\{\varphi\}$, so ergibt sich die folgende Deduktion von $\lnot\varphi$ mit Hypothesen aus $\Gamma$:
  \begin{prooftree}
    \AxiomC{$\bot$}
    \RightLabel(\scriptsize ($\lnot I)$)
    \UnaryInfC{$\varphi$}
  \end{prooftree}

  \subsection{Negationselimination}
  Ist D eine Deduktion von $\lnot\varphi$ mit Hypothesen aus $\Gamma$ und ist E eine Deduktion von $\varphi$ mit Hypothesen aus $\gamma$, so ergibt sich die folgende Deduktion von $\bot$ mit Hypothesen aus $\Gamma$:
  \begin{prooftree}
    \AxiomC{$\lnot\varphi$}
    \AxiomC{$\varphi$}
    \RightLabel(\scriptsize ($\lnot E)$)
    \BinaryInfC{$\bot$}
  \end{prooftree}

  \subsubsection{Falsum}
Ist D eine Deduktion von $\bot$ mit Hypothesen aus $\Gamma$, so ergibt sich die folgende Deduktion von $\varphi$ mit Hypothesen aus $\Gamma$:
\begin{prooftree}
  \AxiomC{$\bot$}
  \RightLabel(\scriptsize ($\bot)$)
  \UnaryInfC{$\varphi$}
\end{prooftree}

  \subsubsection{reductio ad absurdum}
  Ist D eine Deduktion von $\bot$ mit Hypothesen aus $\Gamma\cup\{\lnot\varphi\}$, so ergibt sich die folgende Deduktion von $\varphi$ mit Hypothesen aus $\Gamma$:
  \begin{prooftree}
    \AxiomC{$\bot$}
    \RightLabel(\scriptsize ($raa)$)
    \UnaryInfC{$\varphi$}
  \end{prooftree}

  \subsection{Regeln des natürlichen Schließens}
  \begin{quote}
    Definition

    Für eine Formelmenge $\Gamma$ und eine Formel $\varphi$ schreiben wir
    $\Gamma\Vdash\varphi$ wenn es eine Deduktion gibt mit Hypothesen aus
    $\Gamma$ und Konklusion $\varphi$. Wir sagen ``$\varphi$ ist eine
    syntaktische Folgerung von $\Gamma$''.

    Eine Formel $\varphi$ ist ein Theorem, wenn $\varnothing\Vdash\varphi$
    gilt.
  \end{quote}

  \subsubsection{Bemerkung}\label{bemerkung}

  $\Gamma\Vdash\varphi$ sagt (zunächst) nichts über den Inhalt der Formeln
  in $\Gamma\cup\{\varphi\}$ aus, sondern nur über die Tatsache, dass
  $\varphi$ mithilfe des natürlichen Schließens aus den Formeln aus
  $\Gamma$ hergeleitet werden kann.

  Ebenso sagt ``$\varphi$ ist Theorem'' nur, dass $\varphi$ abgeleitet
  werden kann, über ``Wahrheit'' sagt dieser Begriff (zunächst) nichts
  aus.

  \subsubsection{Satz}\label{satz}

  Für alle Formeln $\varphi$ und $\psi$ gilt
  $\{\lnot(\varphi\vee\psi)\}\Vdash\lnot\varphi\wedge\lnot\psi$.

  Beweis: Wir geben eine Deduktion an\ldots{} -
  $\{\lnot\varphi\wedge\lnot\psi\}\Vdash\lnot(\varphi\vee\psi)$
  \includegraphics[width=\linewidth]{Assets/Logik-beispiel-1.png} -
  $\{\lnot\varphi\vee\lnot\psi\}\Vdash\lnot(\varphi\wedge\psi)$
  \includegraphics[width=\linewidth]{Assets/Logik-beispiel-2.png} -
  $\{\varphi\vee\psi\} \Vdash \psi\vee\varphi$
  \includegraphics[width=\linewidth]{Assets/Logik-beispiel-3.png}

  \subsubsection{Satz}\label{satz-1}

  Für jede Formel $\varphi$ ist $\lnot\lnot\varphi\rightarrow\varphi$ ein
  Theorem.

  Beweis: Wir geben eine Deduktion mit Konklusion
  $\lnot\lnot\varphi\rightarrow\varphi$ ohne Hypothesen an\ldots{}


  \includegraphics[width=\linewidth]{Assets/Logik-beispiel-5.png}

  \subsubsection{Satz}\label{satz-2}

  Für jede Formel $\varphi$ ist $\varphi\vee\lnot\varphi$ ein Theorem.

  Beweis: Wir geben eine Deduktion mit Konklusion
  $\varphi\vee\lnot\varphi$ ohne Hypothesen an\ldots{}


  \includegraphics[width=\linewidth]{Assets/Logik-beispiel-6.png}

  Bemerkung: Man kann beweisen, dass jede Deduktion der letzten beiden
  Theoreme die Regel (raa) verwendet, sie also nicht ``intuitionistisch''
  gelten.

  \subsubsection{Satz}\label{satz-3}

  $\{\lnot(\varphi\wedge\psi)\}\Vdash\lnot\varphi\vee\lnot\psi$


  \includegraphics[width=\linewidth]{Assets/Logik-beispiel-4.png}

  \subsection{Semantik}\label{semantik}

  Formeln sollen Verknüpfungen von Aussagen widerspiegeln, wir haben dies
  zur Motivation der einzelnen Regeln des natürlichen Schließens genutzt.
  Aber die Begriffe ``syntaktische Folgerung'' und ``Theorem'' sind rein
  syntaktisch definiert.

  Erst die jetzt zu definierende ``Semantik'' gibt den Formeln
  ``Bedeutung''.

  Idee der Semantik: wenn man jeder atomaren Formel $p_i$ einen
  Wahrheitswertzuordnet, so kann man den Wahrheitswert jeder Formel
  berechnen.

  Es gibt verschiedene Möglichkeiten, Wahrheitswerte zu definieren: -
  zweiwertige oder Boolesche Logik $B=\{0,1\}$: Wahrheitswerte ``wahr''=1
  und ``falsch''= 0 - dreiwertige Kleene-Logik $K_3=\{0,\frac{1}{2},1\}$:
  zusätzlicher Wahrheitswert ``unbekannt''$=\frac{1}{2}$ - Fuzzy-Logik
  $F=[0,1]$: Wahrheitswerte sind ``Grad der Überzeugtheit'' - unendliche
  Boolesche Algebra $B_R$= Menge der Teilmengen von $\mathbb{R}$;
  $A\subseteq\mathbb{R}$ ist ``Menge der Menschen, die Aussage für wahr
  halten'' - Heyting-Algebra $H_R$= Menge der offenen Teilmengen von
  $\mathbb{R}$ - Erinnerung: $A\subseteq\mathbb{R}$ offen, wenn
  $\forall a\in A\exists\epsilon >0:(a-\epsilon,a+\epsilon)\subseteq A$,
  d.h., wenn $A$ abzählbare Vereinigung von offenen Intervallen $(x,y)$
  ist.

  Beispiele: - offen:
  $(0,1), \mathbb{R}_{>0}, \mathbb{R}\backslash\{0\}, \mathbb{R}\backslash\mathbb{N}$
  - nicht offen:
  $[1,2), \mathbb{R}_{\geq 0}, \mathbb{Q}, \mathbb{N}, \{\frac{1}{n} | n\in\mathbb{N}\}, \mathbb{R}\backslash\mathbb{Q}$

  Sei W eine Menge von Wahrheitswerten.\textbackslash{} Eine W-Belegung
  ist eine Abbildung $B:V\rightarrow W$, wobei
  $V\subseteq\{p_0 ,p_1 ,...\}$ eine Menge atomarer Formeln ist.

  Die W-Belegung $B:V\rightarrow W$ paßt zur Formel $\phi$, falls alle
  atomaren Formeln aus $\phi$ zu V gehören.

  Sei nun B eine W-Belegung. Was ist der Wahrheitswert der Formel
  $p_0\vee p_1$ unter der Belegung B?

  Zur Beantwortung dieser Frage benötigen wir eine Funktion
  $\vee_W :W\times W\rightarrow W$ (analog für
  $\wedge,\rightarrow,\lnot$).

  \subsection{Wahrheitswertebereiche}\label{wahrheitswertebereiche}

  \begin{quote}
    Definition: Sei W eine Menge und $R\subseteq W\times W$ eine binäre
    Relation. - R ist reflexiv, wenn $(a,a)\in R$ für alle $a\in W$ gilt. -
    R ist antisymmetrisch, wenn $(a,b),(b,a)\in R$ impliziert, dass $a=b$
    gilt (für alle $a,b\in W$). - R ist transitive, wenn $(a,b),(b,c)\in R$
    impliziert, dass $(a,c)\in R$ gilt (für alle $a,b,c\in W$). - R ist eine
    Ordnungsrelation, wenn R reflexiv, antisymmetrisch und transitiv ist. In
    diesem Fall heißt das Paar $(W,R)$ eine partiell geordnete Menge.
  \end{quote}

  Beispiel 1. Sei $\leq$ übliche Ordnung auf $\mathbb{R}$und
  $W\subseteq\mathbb{R}$. Dann ist $(W,\leq)$ partiell geordnete Menge. 2.
  Sei $X$ eine Menge und $W\subseteq P(X)$. Dann ist $(W,\subseteq)$
  partiell geordnete Menge. 3. Sei $W=P(\sum *)$ und $\leq_p$ die Relation
  ``es gibt Polynomialzeitreduktion'' (vgl. ``Automaten, Sprachen und
  Komplexität''). Diese Relation ist reflexiv, transitiv, aber nicht
  antisymmetrisch (denn $3-SAT\leq_{p} HC$ und $HC\leq_{p} 3-SAT$).

  \begin{quote}
    Definition: Sei $(W,\leq)$ partiell geordnete Menge, $M\subseteq W$ und
    $a\in W$. - a ist obere Schranke von $M$, wenn $m\leq a$ für alle
    $m\in M$ gilt. - a ist kleinste obere Schranke oder Supremum von $M$,
    wenn $a$ obere Schranke von $M$ ist und wenn $a\leq b$ für alle oberen
    Schranken $b$ von $M$ gilt. Wir schreiben in diesem Fall $a=sup \ M$. -
    a ist untere Schranke von $M$, wenn $a\leq m$ für alle $m\in M$ gilt. -
    a ist größte untere Schranke oder Infimum von $M$, wenn a untere
    Schranke von $M$ ist und wenn $b\leq a$ für alle unteren Schranken $b$
    von $M$ gilt. Wir schreiben in diesem Fall $a=inf\ M$.
  \end{quote}

  Beispiel 1. betrachte $(W,\leq)$ mit $W=\mathbb{R}$ und $\leq$ übliche
  Ordnung auf $\mathbb{R}$. - Dann gelten $sup[0,1] = sup(0,1) =1$. -
  $sup\ W$ existiert nicht (denn $W$ hat keine obere Schranke). 2.
  betrachte $(W,\subseteq)$ mit $X$ Menge und $W =P(X)$. -
  $sup\ M=\bigcup_{A\in M} A$ für alle $M\subseteq W$ 3. betrachte
  $(W,\subseteq)$ mit $W=\{\{0\},\{1\},\{0,1,2\},\{0,1,3\}\}$. -
  $sup\{\{0\},\{0,1,2\}\}=\{0,1,2\}$ - $\{0,1,2\}$ und $\{0,1,3\}$ sind
  die oberen Schranken von $M=\{\{0\},\{1\}\}$, aber $M$ hat kein Supremum

  \begin{quote}
    Definition: Ein (vollständiger) Verband ist eine partiell geordnete
    Menge $(W,\leq)$, in der jede Menge $M\subseteq W$ ein Supremum $sup\ M$
    und ein Infimum $inf\ M$ hat. In einem Verband $(W,\leq)$ definieren
    wir: - $0_W = inf\ W$ und $1_W= sup\ W$ - $a\wedge_W b= inf\{a,b\}$ und
    $a\vee_W b= sup\{a,b\}$ für $a,b\in W$
  \end{quote}

  Bemerkung: In jedem Verband $(W,\leq)$ gelten $0_W= sup\ \varnothing$
  und $1_W= inf\ \varnothing$ (denn jedes Element von $W$ ist obere und
  untere Schranke von $\varnothing$).

  \begin{quote}
    Definition: Ein Wahrheitswertebereich ist ein Tupel
    $(W,\leq,\rightarrow W,\lnot W)$, wobei $(W,\leq)$ ein Verband und
    $\rightarrow W:W^2 \rightarrow W$ und $\lnot W:W\rightarrow W$
    Funktionen sind.
  \end{quote}

  \subsubsection{Beispiel}\label{beispiel-2}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Der Boolesche Wahrheitswertebereich B ist definiert durch die
          Grundmenge $B=\{0,1\}$, die natürliche Ordnung $\leq$ und die
          Funktionen $\lnot_B (a) = 1-a$, $\rightarrow_B(a,b) = max(b, 1 -a)$.
          Hier gelten:

          \begin{itemize*}
            \item
                  $0_B=0$, $1_B= 1$,
            \item
                  $a\wedge_B b= min(a,b)$, $a\vee_B b= max(a,b)$
          \end{itemize*}
    \item
          Der Kleenesche Wahrheitswertebereich $K_3$ ist definiert durch die
          Grundmenge $K_3=\{0,\frac{1}{2},1\}$ mit der natürlichen Ordnung
          $\leq$ und durch die Funktionen $\lnot_{K_3} (a) = 1 -a $,
          $\rightarrow_{K_3} (a,b) = max(b, 1-a)$. Hier gelten:
    \item
          $\lnot_{K_3} = 0$, $1_{K_3} = 1$
    \item
          $a\wedge_{K_3} b= min(a,b)$, $a\vee_{K_3} b= max(a,b)$
    \item
          Der Wahrheitswertebereich F der Fuzzy-Logik ist definiert durch die
          Grundmenge $F=[0,1]\subseteq\mathbb{R}$ mit der natürlichen Ordnung
          $\leq$ und durch die Funktionen $\lnot_F (a) = 1-a$,
          $\rightarrow_F (a,b) = max(b, 1-a)$. Hier gelten:
    \item
          $0_F= 0$, $1_F= 1$
    \item
          $a\wedge_F b= min(a,b)$, $a\vee_F b= max(a,b)$
    \item
          Der Boolesche Wahrheitswertebereich $B_R$ ist definiert durch die
          Grundmenge $B_R=\{A|A\subseteq \mathbb{R}\}$ mit der Ordnung
          $\subseteq$ und durch die Funktionen
          $\lnot_{B_R} (A) =\mathbb{R}\backslash A$,
          $\rightarrow_{B_R} (A,B) = B\cup\mathbb{R}\backslash A$. Hier gelten:
    \item
          $0_{B_R}=\varnothing$, $1_{B_R}=\mathbb{R}$
    \item
          $A\wedge_{B_R} B=A\cap B$, $A\vee_{B_R} B=A\cup B$
    \item
          Der Heytingsche Wahrheitswertebereich $H_R$ ist definiert durch die
          Grundmenge
          $H_{mathbb{R}} =\{A\subseteq\mathbb{R} | \text{A ist offen}\}$, die
          Ordnung $\subseteq$ und durch die Funktionen
          $\lnot_{H_R} (A) = Inneres(\mathbb{R}\backslash A)$,
          $\rightarrow_{H_R} (A,B) =Inneres(B\cup \mathbb{R}\backslash A)$. Hier
          gelten:
    \item
          $0_{H_R}=\varnothing$, $1_{H_R}=\mathbb{R}$
    \item
          $A\wedge_{H_R} B= A\cap B$, $A\vee_{H_R} B=A\cup B$
    \item
          Erinnerung:
          $Inneres(A) =\{a\in A|\exists \epsilon > 0 : (a-\epsilon,a+\epsilon)\subseteq A\}$
    \item
          Beispiele:
          $Inneres((0,1))=(0,1)=Inneres([0,1]),Inneres(N)=\varnothing,Inneres(\mathbb{R}_{\geq 0}) = \mathbb{R}_{> 0}$
  \end{itemize*}

  Sei W ein Wahrheitswertebereich und B eine W-Belegung. Induktiv über den
  Formelaufbau definieren wir den Wahrheitswert $\hat{B}(\phi)\in W$ jeder
  zu $B$ passenden Formel $\phi$: - $\hat{B}(\bot) = 0_W$ -
  $\hat{B}(p) = B(p)$ falls $p$ eine atomare Formel ist -
  $\hat{B}((\phi\wedge \psi )) = \hat{B}(\phi)\wedge_W \hat{B}(\psi )$ -
  $\hat{B}((\phi\vee \psi )) = \hat{B}(\phi)\vee_W \hat{B}(\psi )$ -
  $\hat{B}((\phi\rightarrow \psi )) = \rightarrow W(\hat{B}(\phi),\hat{B}(\psi ))$
  - $\hat{B}(\lnot\phi) = \lnot W(\hat{B}(\phi))$

  Wir schreiben im folgenden $B(\phi)$ anstatt $\hat{B}(\phi)$.

  Beispiel: Betrachte die Formel
  $\phi= ((p\wedge q)\rightarrow (q\wedge p))$. - Für eine beliebige
  B-Belegung $B:\{p,q\}\rightarrow B$ gilt
  $B((p\wedge q)\rightarrow (q\wedge p)) = max(B(q\wedge p), 1 -B(p\wedge q)) = max(min(B(q),B(p)), 1 -min(B(p),B(q))) = 1 = 1_B$
  - Für die $K_3$-Belegung $B:\{p,q\}\rightarrow K_3$ mit
  $B(p) =B(q) = \frac{1}{2}$\} gilt
  $B((p\wedge q)\rightarrow (q\wedge p)) = max(B(q\wedge p), 1 -B(p\wedge q))= max(min(B(q),B(p)), 1 -min(B(p),B(q))) = \frac{1}{2} \not= 1_{K_3}$
  - analog gibt es eine F-Belegung $B:\{p,q\}\rightarrow F$, so dass
  $B((p\wedge q)\rightarrow (q\wedge p)) \not = 1_F$ gilt. - Für eine
  beliebige $H_{mathbb{R}}$-Belegung $B:\{p,q\}\rightarrow H_R$ gilt
  $B((p\wedge q)\rightarrow (q\wedge p)) = Inneres(B(q\wedge p)\cup \mathbb{R}\backslash B(p\wedge q)) = Inneres((B(q)\cap B(p))\cup \mathbb{R}\backslash (B(p)\cap B(q))) = Inneres(\mathbb{R}) = \mathbb{R} = 1_{H_R}$

  \subsection{Folgerung und Tautologie}\label{folgerung-und-tautologie}

  Sei W ein Wahrheitswertebereich. Eine Formel $\phi$ heißt eine
  W-Folgerung der Formelmenge $\Gamma$, falls für jede W-Belegung B, die
  zu allen Formeln aus $\Gamma \cup\{\phi\}$ paßt, gilt:
  $inf\{B(\gamma )|\gamma \in \Gamma \}\leq B(\phi)$

  Wir schreiben $\Gamma \Vdash W\phi$, falls $\phi$ eine W-Folgerung von
  $\Gamma$ ist.

  Bemerkung: Im Gegensatz zur Beziehung $\Gamma \vdash \phi$, d.h. zur
  syntaktischen Folgerung, ist $\Gamma \Vdash W \phi$ eine semantische
  Beziehung.

  Eine W-Tautologie ist eine Formel $\phi$ mit $\varnothing \Vdash W\phi$,
  d.h. $B(\phi) = 1_W$ für alle passenden W-Belegungen B (denn
  $inf\{\hat{B}(\gamma )|\gamma \in \varnothing \}= inf \varnothing = 1_W)$.

  Wahrheitstafel für den Booleschen Wahrheitswertebereich B:

  \begin{tabular}{llllllll}
    RL & AK & BK & $AK\vee BK$ & $AK\rightarrow BK$ & $(BK\wedge RL)\rightarrow\lnot AK$ & RL & $\lnot AK$ \\\hline
    0  & 0  & 0  & 0           & 1                  & 1                                  & 0  & 1          \\
    0  & 0  & 1  & 1           & 1                  & 1                                  & 0  & 1          \\
    0  & 1  & 0  & 1           & 0                  & 1                                  & 0  & 0          \\
    0  & 1  & 1  & 1           & 1                  & 1                                  & 0  & 0          \\
    1  & 0  & 0  & 0           & 1                  & 1                                  & 1  & 1          \\
    1  & 0  & 1  & 1           & 1                  & 1                                  & 1  & 1          \\
    1  & 1  & 0  & 1           & 0                  & 1                                  & 1  & 0          \\
    1  & 1  & 1  & 1           & 1                  & 0                                  & 1  & 0          \\
  \end{tabular}

  Wir erhalten also
  $\{(AK\vee BK),(AK\rightarrow BK), ((BK\wedge RL)\rightarrow \lnot AK),RL\} \Vdash_B \lnot AK$
  und können damit sagen:

  ``Wenn die Aussagen''Bauteil A oder Bauteil B ist kaputt" und ``daraus,
  dass Bauteil A kaputt ist, folgt, dass Bauteil B kaputt ist''
  und\ldots{} wahr sind, \ldots{} dann kann man die Folgerung ziehen: die
  Aussage ``das Bauteil A ist heil'' ist wahr."

  Erinnerung aus der ersten Vorlesung:
  $\{(AK\vee BK),(AK\rightarrow BK), ((BK\wedge RL)\rightarrow \lnot AK),RL\} \vdash  \lnot AK$

  Beispiel Sei $\phi$ beliebige Formel mit atomaren Formeln in V. - Sei
  $B:V\rightarrow B$ eine B-Belegung. Dann gilt

  \begin{verbatim}
$B(\lnot\lnot\phi\rightarrow\phi) = \rightarrow B(\lnot B\lnot B(B(\phi)),B(\phi)) = max(B(\phi), 1 -( 1 -( 1 -B(\phi)))) = max(B(\phi), 1 -B(\phi)) = 1 = 1_B$.

Also ist $\lnot\lnot\phi\rightarrow\phi$ eine B-Tautologie (gilt ebenso für den Wahrheitswertebereich $B_R$).
\end{verbatim}

  \begin{itemize*}
    \item
          Sei $B:V\rightarrow H_R$ eine $H_R$-Belegung mit
          $B(\phi) =R\backslash\{0\}$. Dann gelten

          \begin{itemize*}
            \item
                  $B(\lnot\phi) = Inneres(\mathbb{R}\backslash B(\phi)) = Inneres(\{0\}) =\varnothing$
            \item
                  $B(\lnot\lnot\phi) = Inneres(\mathbb{R}\backslash B(\lnot\phi)) = Inneres(\mathbb{R}) = \mathbb{R}$
            \item
                  $B(\lnot\lnot\phi\rightarrow\phi) = \rightarrow_{H_R} (B(\lnot\lnot\phi),B(\phi)) = \rightarrow_{H_R} (\mathbb{R},\mathbb{R}\backslash \{0\}) = Inneres(\mathbb{R}\backslash\{0\}\cup\mathbb{R}\backslash\mathbb{R}) = \mathbb{R}\backslash\{0\}\not =\mathbb{R}= 1_{H_R}$
          \end{itemize*}

          Also ist $\lnot\lnot\phi\rightarrow\phi$ keine $H_R$-Tautologie (gilt
          ebenso für die Wahrheitswertebereiche $K_3$ und $F$).
    \item
          Sei $B:V\rightarrow B$ eine B-Belegung. Dann gilt

          $B(\phi\vee\lnot\phi) = max(B(\phi), 1 -B(\phi)) = 1 = 1_B$.

          Also ist $\phi\vee\lnot\phi$ eine B-Tautologie (gilt ebenso für den
          Wahrheitswertebereich $B_R$).
    \item
          Sei $B:V\rightarrow H_R$ eine $H_R$-Belegung mit
          $B(\phi)=\mathbb{R}\backslash\{0\}$. Dann gilt
          $B(\phi\vee\lnot\phi) = B(\phi)\cup B(\lnot\phi) = \mathbb{R}\backslash\{0\}\cup \varnothing \not= 1_{H_R}$.

          Also ist $\phi\vee\lnot\phi$ keine $H_R$-Tautologie (gilt ebenso für
          die Wahrheitswertebereiche $K_3$ und $F$).
    \item
          Sei $B:V\rightarrow B$ eine B-Belegung. Dann gilt

          $B(\lnot\phi\rightarrow\bot) = \rightarrow_B(B(\lnot\phi),B(\bot)) = max(0,1-B(\lnot \phi)) = 1 -( 1 -B(\phi)) =B(\phi)$.

          Also haben wir $\{\lnot\phi\rightarrow\bot\}\Vdash B\phi$ und
          $\{\phi\}\Vdash B\lnot \phi\rightarrow\bot$.
    \item
          Ebenso erhält man:

          \begin{itemize*}
            \item
                  $\{\lnot\phi\rightarrow\bot\}\Vdash_{K_3} \phi$
            \item
                  $\{\phi\}\Vdash_{K_3} \lnot\phi\rightarrow\bot$
            \item
                  $\{\lnot\phi\rightarrow\bot\}\Vdash_F\phi$
            \item
                  $\{\phi\}\Vdash F\lnot\phi\rightarrow\bot$
          \end{itemize*}
    \item
          Sei $B:D\rightarrow H_R$ eine $H_R$-Belegung mit
          $B(\phi) =\mathbb{R}\backslash\{0\}$. Dann gilt
          $B(\lnot\phi\rightarrow\bot) = Inneres(B(\bot )\cup \mathbb{R}\backslash B(\lnot\phi))= Inneres(\varnothing \cup \mathbb{R}\backslash\varnothing)= \mathbb{R} \not\supseteq B(\phi)$.

          also $\{\lnot\phi\rightarrow\bot\}\not\Vdash_{H_R} \phi$.

          Es gilt aber $\{\phi\}\Vdash_{H_R}\lnot \phi\rightarrow\bot$.
  \end{itemize*}

  Zusammenfassung der Beispiele

  \begin{tabular}{lllllll}
                                                       & B & $B_R$ & $K_3$ & F & $H_R$ & \\\hline
    $\varnothing\Vdash_W\lnot\lnot\phi\rightarrow\phi$ & Y & Y     & -     & - & -     &
    $\varnothing\vdash \lnot\lnot\phi\rightarrow\phi$                                    \\
    $\varnothing\Vdash_W\phi\vee\lnot\phi$             & Y & Y     & -     & - & -     &
    $\varnothing\vdash\phi\vee\lnot\phi$                                                 \\
    $\{\lnot\phi\rightarrow\bot\}\Vdash_W\phi$         & Y & Y     & Y     & Y & -     &
    $\{\lnot\phi\rightarrow\bot\}\vdash\phi$                                             \\
    $\{\phi\}\Vdash_W\lnot\phi\rightarrow\bot$         & Y & Y     & Y     & Y & Y     &
    $\{\phi\}\vdash\lnot\phi\rightarrow\bot$                                             \\
  \end{tabular}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          $Y$ in Spalte W:W-Folgerung gilt
    \item
          $-$ in Spalte W:W-Folgerung gilt nicht
  \end{itemize*}

  \begin{quote}
    Überblick: Wir haben definiert - $\Gamma\vdash\phi$ syntaktische
    Folgerung - Theorem (``hypothesenlos ableitbar'') -
    $\Gamma\Vdash_W \phi$ (semantische) W-Folgerung - W-Tautologie (``wird
    immer zu $1_W$ ausgewertet'')
  \end{quote}

  Frage: Was ist die Beziehung zwischen diesen Begriffen, insbes. zwischen
  ``Theorem'' und ``W-Tautologie''? Da z.B. B-Folgerung
  $\not =K_3$-Folgerung, hängt die Anwort von W ab.

  \subsection{Korrektheit}\label{korrektheit}

  Können wir durch mathematische Beweise zu falschen Aussagenkommen?

  Können wir durch das natürliche Schließen zu falschen Aussagen kommen?

  Existiert eine Menge $\Gamma$ von Formeln und eine Formel $\varphi$ mit
  $\Gamma\vdash\varphi$ und $\Gamma\not\Vdash_W \varphi$? Für welche
  Wahrheitswertebereiche W?

  Frage für diese Vorlesung: Für welche Wahrheitswertebereiche W gilt
  $\Gamma\vdash\varphi\Rightarrow\Gamma\vdash_W \varphi$ bzw. $\varphi$
  ist Theorem $\Rightarrow\varphi$ ist W-Tautologie?

  Beispiel: Betrachte den Kleeneschen Wahrheitswertebereich $K_3$. - Sei
  $p$ atomare Formel. $\frac{[p]^4}{p\rightarrow p}$ Also gilt
  $\varnothing\vdash p\rightarrow p$, d.h. $p\rightarrow p$ ist Theorem. -
  Sei $B$ $K_3$-Belegung mit $B(p)=\frac{1}{2}$. Dann gilt
  $B(p\rightarrow p) = max(B(p), 1-B(p)) =\frac{1}{2}$, also
  $inf\{B(\gamma)|\gamma\in\varnothing\}= 1 >\frac{1}{2} = B(p\rightarrow p)$.
  Damit haben wir gezeigt $\varnothing\not\Vdash_{K_3} p\rightarrow p$.

  Die Implikation $\Gamma\vdash\varphi\Rightarrow\Gamma\vdash_W \varphi$
  gilt also NICHT für den Kleeneschen Wahrheitswertebereich $W=K_3$ und
  damit auch NICHT für den Wahrheitswertebereich der Fuzzy-Logik $F$.

  \begin{quote}
    Korrektheitslemma für nat. Schließen \& Wahrheitswertebereich B

    Sei $D$ eine Deduktion mit Hypothesen in der Menge $\Gamma$ und
    Konklusion $\varphi$. Dann gilt $\Gamma\vdash_B \varphi$, d.h.
    $inf\{B(\gamma)|\gamma\in\Gamma\}\leq B(\varphi)$ für alle passenden
    B-Belegungen $B$.
  \end{quote}

  Beweis: Induktion über die Größe der Deduktion $D$ (d.h. Anzahl der
  Regelanwendungen). - I.A.: die kleinste Deduktion $D$ hat die Form
  $\varphi$ mit Hypothese $\varphi$ und Konklusion $\varphi$. Sei $B$
  passendeB-Belegung. Hypothesen von $D$ in
  $\Gamma\Rightarrow\varphi\in\Gamma\Rightarrow inf\{B(\gamma)|\gamma\in\Gamma\}\leq B(\varphi)\Rightarrow\Gamma\vdash_B \varphi$
  - I.V.: Behauptung gelte für alle Deduktionen, die kleiner sind als $D$.
  - I.S.: Wir unterscheiden verschiedene Fälle, je nachdem, welche Regel
  als letzte angewandt wurde. - $(\wedge I)$ Die Deduktion hat die Form
  $\frac{\alpha\quad\beta}{\alpha\wedge\beta}$ mit
  $\varphi=\alpha\wedge\beta$. Sei $B$ passende B-Belegung. Nach IV gelten
  $inf\{B(\gamma)|\gamma\in\Gamma\}\leq B(\alpha)$ und
  $inf\{B(\gamma)|\gamma\in\Gamma\}\leq B(\beta)$ und damit
  $inf\{B(\gamma)|\gamma\in\Gamma\}\leq B(\alpha)\wedge_B B(\beta)=B(\alpha\wedge\beta) =B(\varphi)$.
  Da $B$ beliebig war, haben wir $\Gamma\vdash_B \varphi$ gezeigt. -
  $(\vee E)$ Die Deduktion $D$ hat die Form
  $\frac{\alpha\vee\beta\quad\phi\quad\phi}{\phi}$ Also gibt es Deduktion
  $E$ mit Hypothesen in $\Gamma$ und Konklusion $\alpha\vee\beta$ und
  Deduktionen $F$ und $G$ mit Hypothesen in $\Gamma\cup\{\alpha\}$ bzw.
  $\Gamma\cup\{\beta\}$ und Konklusion $\varphi$. Sei $B$ passende
  B-Belegung. Nach IV gelten
  $inf\{B(\gamma)|\gamma\in\Gamma\}\leq B(\alpha\vee\beta)$ (1)
  $inf\{B(\gamma)|\gamma\in\Gamma\cup\{\alpha\}\}\leq B(\varphi)$ (2)
  $inf\{B(\gamma)|\gamma\in\Gamma\cup\{\beta\}\}\leq B(\varphi)$ (3) Wir
  unterscheiden zwei Fälle: - $B(\alpha)\leq B(\beta)$:
  $inf\{B(\gamma)|\gamma\in\Gamma\}\leq B(\alpha\vee\beta) =B(\alpha)\vee_B B(\beta) =B(\beta)$
  impliziert
  $inf\{B(\gamma)|\gamma\in\Gamma\}= inf\{B(\gamma)|\gamma\in\Gamma\cup\{\beta\}\}\leq B(\varphi)$
  - $B(\alpha)>B(\beta)$: analog Da $B$ beliebig war, haben wir
  $\Gamma\vdash_B \varphi$ gezeigt. - $(\rightarrow I)$ Die DeduktionDhat
  die Form $\frac{\beta}{\alpha\rightarrow\beta}$ mit
  $\varphi=\alpha\rightarrow\beta$. Sei $B$ eine passende B-Belegung. Nach
  IV gilt $inf\{B(\gamma)|\gamma\in\Gamma\cup\{\alpha\}\}\leq B(\beta)$
  Wir unterscheiden wieder zwei Fälle: -
  $B(\alpha)=0:inf\{B(\gamma)|\gamma\in\Gamma\}\leq 1 =\rightarrow_B(B(\alpha),B(\beta)) = B(\alpha\rightarrow\beta) =B(\varphi)$
  -
  $B(\alpha)=1:inf\{B(\gamma)|\gamma\in\Gamma\}=inf\{B(\gamma)|\gamma\in\Gamma\cup\{\alpha\}\}\leq B(\beta) =\rightarrow_B (B(\alpha),B(\beta)) = B(\alpha\rightarrow\beta) =B(\varphi)$
  Da $B$ beliebig war, habe wir $\Gamma\vdash_B \varphi$ gezeigt. -
  $(raa)$ Die DeduktionDhat die Form $\frac{\bot}{\phi}$ Sei $B$ eine
  passende B-Belegung. Nach IV gilt
  $inf\{B(\gamma)|\gamma\in\Gamma\cup\{\lnot\varphi\}\}\leq B(\bot) = 0$.
  Wir unterscheiden wieder zwei Fälle: -
  $inf\{B(\gamma)|\gamma\in\Gamma\}=0$: dann gilt
  $inf\{B(\gamma)|\gamma\in\Gamma\}\leq B(\varphi)$. -
  $inf\{B(\gamma)|\gamma\in\Gamma\}=1$: Wegen
  $inf\{B(\gamma)|\gamma\in\Gamma\cup\{\lnot\varphi\}\}=0$ folgt
  $0 =B(\lnot\varphi)=\lnot_B (B(\varphi))$ und daher
  $B(\varphi)=1\geq inf\{B(\gamma)|\gamma\in\Gamma\}$. Da $B$ beliebig
  war, haben wir $\Gamma\vdash_B \varphi$ gezeigt.

  Ist die letzte Schlußregel in der Deduktion $D$ von der Form
  $(\wedge I), (\vee E), (\rightarrow I)$ oder $(raa)$, so haben wir die
  Behauptung des Lemmas gezeigt. Analog kann dies für die verbleibenden
  Regeln getan werden.

  \begin{quote}
    Korrektheitssatz für natürliches Schließen \& Wahrheitswertebereich $B$

    Für jede Menge von Formeln $\Gamma$ und jede Formel $\varphi$ gilt
    $\Gamma\vdash\varphi\Rightarrow\Gamma\vdash_B\varphi$.
  \end{quote}

  Beweis: Wegen $\Gamma\vdash\varphi$ existiert eine Deduktion $D$ mit
  Hypothesen in $\Gamma$ und Konklusion $\varphi$. Nach dem
  Korrektheitslemma folgt $\Gamma\vdash_B \varphi$.

  \begin{quote}
    Korollar: Jedes Theorem ist eine B-Tautologie.
  \end{quote}

  \begin{quote}
    Korrektheitssatz für natürliches Schließen \& Wahrheitswertebereich $B$

    Für jede Menge von Formeln $\Gamma$ und jede Formel $\varphi$ gilt
    $\Gamma\vdash\varphi\Rightarrow\Gamma\vdash_{B_\mathbb{R}}\varphi$.
  \end{quote}

  Beweis: 1. Variante: verallgemeinere den Beweis von Korrektheitslemma
  und Korrektheitssatz für $B$ auf $B_\mathbb{R}$ (Problem: wir haben
  mehrfach ausgenutzt, dass $B=\{0,1\}$ mit $0<1$) 2. Variante: Folgerung
  aus Korrektheitssatz für $B$.

  \begin{quote}
    Korollar: Jedes Theorem ist eine $B_\mathbb{R}$-Tautologie.
  \end{quote}

  \begin{quote}
    Korrektheitslemma für nat. Schließen \& Wahrheitswertebereich
    $H_{mathbb{R}}$

    Sei $D$ eine Deduktion mit Hypothesen in der Menge $\Gamma$ und
    Konklusion $\varphi$, die die Regel $(raa)$ nicht verwendet. Dann gilt
    $\Gamma\vdash_{H_\mathbb{R}}\varphi$.
  \end{quote}

  Beweis: ähnlich zum Beweis des Korrektheitslemmas für den
  Wahrheitswertebereich B. Nur die Behandlung der Regel $(raa)$ kann nicht
  übertragen werden.

  Beispiel: Sei $p$ eine atomare Formel.
  \includegraphics[width=\linewidth]{Assets/Logik-beispiel-7.png} Also gilt
  $\{\lnot\lnot p\}\vdash p$, d.h. $p$ ist syntaktische Folgerung von
  $\lnot\lnot p$. - Sei $B$ $H_{mathbb{R}}$-Belegung mit
  $B(p)=\mathbb{R}\backslash\{0\}$. -
  $\Rightarrow B(\lnot\lnot p) =\mathbb{R}\not\subseteq \mathbb{R}\backslash\{0\}=B(p)$
  - $\Rightarrow\lnot\lnot p\not\Vdash_{H_{mathbb{R}}} p$, d.h. $p$ ist
  keine $H_{mathbb{R}}$ -Folgerung von $\lnot\lnot p$.

  \begin{quote}
    Korrektheitssatz für nat. Schließen \& Wahrheitswertebereich
    $H_{mathbb{R}}$

    Für jede Menge von Formeln $\Gamma$ und jede Formel $\varphi$ gilt
    $\Gamma\vdash\varphi$ ohne $(raa)$
    $\Rightarrow\Gamma\vdash_{H_{mathbb{R}}}\varphi$.
  \end{quote}

  \begin{quote}
    Korollar: Jedes $(raa)$-frei herleitbare Theorem ist eine
    $H_{mathbb{R}}$-Tautologie.
  \end{quote}

  Folgerung: Jede Deduktion der Theoreme
  $\lnot\lnot\varphi\rightarrow\varphi$ und $\varphi\vee\lnot\varphi$ ohne
  Hypothesen verwendet $(raa)$.

  \subsection{Vollständigkeit}\label{vollstuxe4ndigkeit}

  Können wir durch mathematische Beweise zu allen korrekten Aussagen
  kommen?

  Können wir durch das natürliche Schließen zu allen korrekten Aussagen
  kommen?

  Existiert eine Menge $\Gamma$ von Formeln und eine Formel $\varphi$ mit
  $\Gamma\vdash_W\varphi$ und $\Gamma\not\vdash\varphi$? Für welche
  Wahrheitswertebereiche $W$?

  Frage für diese Vorlesung: Für welche Wahrheitswertebereiche $W$ gilt
  $\Gamma\vdash_W \varphi\Rightarrow\Gamma\vdash\varphi$ bzw. $\varphi$
  ist $W$-Tautologie $\Rightarrow\varphi$ ist Theorem?

  \subsubsection{Plan}\label{plan}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Sei $W$ einer der Wahrheitswertebereiche
          $B,K_3 ,F ,B_\mathbb{R}, H_{mathbb{R}}$.
    \item
          z.z. ist $\Gamma\vdash_W\varphi\Rightarrow\Gamma\vdash\varphi$.
    \item
          dies ist äquivalent zu
          $\Gamma\not\vdash\varphi\Rightarrow\Gamma\not\Vdash_W \varphi$.
    \item
          hierzu gehen wir folgendermaßen vor:
    \item
          $\Gamma \not\Vdash_W\varphi$
    \item
          $\Leftrightarrow$ $\Gamma\cup\{\lnot\varphi\}$ konsistent
    \item
          $\Rightarrow$ $\exists\Delta\subseteq\Gamma\cup\{\lnot\varphi\}$
          maximal konsistent
    \item
          $\Rightarrow$ $\Delta$ erfüllbar
    \item
          $\Rightarrow$ $\Gamma\cup\{\lnot\varphi\}$ erfüllbar
    \item
          $\Leftrightarrow$ $\Gamma\not\Vdash_B \varphi$
    \item
          $\Rightarrow$ $\Gamma\not\Vdash\varphi$
  \end{itemize*}

  \subsubsection{Konsistente Mengen}\label{konsistente-mengen}

  \begin{quote}
    Definition

    Sei $\Gamma$ eine Menge von Formeln. $\Gamma$ heißt inkonsistent, wenn
    $\Gamma\vdash\bot$ gilt. Sonst heißt $\Gamma$ konsistent.
  \end{quote}

  \begin{quote}
    Lemma

    Sei $\Gamma$ eine Menge von Formeln und $\varphi$ eine Formel. Dann gilt
    $\Gamma\not\vdash\varphi \Leftrightarrow \Gamma\cup\{\lnot\varphi\}$
    konsistent.
  \end{quote}

  Beweis: Wir zeigen
  ``$\Gamma\vdash\varphi\Leftrightarrow \Gamma\cup\{\lnot\varphi\}$
  inkonsistent'': - Richtung ``$\Rightarrow$'', gelte also
  $\Gamma \vdash \varphi$. - $\Rightarrow$ es gibt Deduktion $D$ mit
  Hypothesen in $\Gamma$ und Konklusion $\varphi$ - $\Rightarrow$ Wir
  erhalten die folgende Deduktion mit Hypothesen in
  $\Gamma\cup\{\lnot\varphi\}$ und Konklusion $\bot$:
  $\frac{\lnot\varphi\quad\varphi}{\bot}$ -
  $\Rightarrow\Gamma\cup\{\lnot\varphi\}\vdash\bot$,
  d.h.$\Gamma\cup\{\lnot\varphi\}$ ist inkonsistent. - Richtung
  ``$\Leftarrow$'', sei also $\Gamma\cup\{\lnot\varphi\}$ inkonsistent. -
  $\Rightarrow$ Es gibt Deduktion $D$ mit Hypothesen in
  $\Gamma\cup\{\lnot\varphi\}$ und Konklusion $\bot$. - $\Rightarrow$ Wir
  erhalten die folgende Deduktion mit Hypothesen in $\Gamma$ und
  Konklusion $\varphi$: $\frac{\bot}{\varphi}$ - $\Gamma\vdash\varphi$

  \subsubsection{Maximal konsistente
    Mengen}\label{maximal-konsistente-mengen}

  \begin{quote}
    Definition

    Eine Formelmenge $\Delta$ ist maximal konsistent, wenn sie konsistent
    ist und wenn gilt ``$\sum\supseteq\Delta$ konsistent
    $\Rightarrow\sum = \Delta$''.
  \end{quote}

  \begin{quote}
    Satz

    Jede konsistente Formelmenge $\Gamma$ ist in einer maximal konsistenten
    Formelmenge $\Delta$ enthalten.
  \end{quote}

  Beweis: Sei $\varphi_1,\varphi_2,...$ eine Liste aller Formeln (da wir
  abzählbar viele atomare Formeln haben, gibt es nur abzählbar viele
  Formeln)

  Wir definieren induktiv konsistente Mengen $\Gamma_n$: - Setze
  $\Gamma_1 = \Gamma$ - Setze
  $\Gamma_{n+1}= \begin{cases} \Gamma_n\cup\{\varphi_n\}\quad\text{ falls diese Menge konsistent} \\ \Gamma_n \quad\text{sonst}\end{cases}$

  Setze nun $\Delta =\bigcup_{n\geq 1} \Gamma_n$. 1. Wir zeigen indirekt,
  dass $\Delta$ konsistent ist: Angenommen, $\Delta\vdash\bot$. -
  $\Rightarrow$ Es gibt Deduktion $D$ mit Konklusion $\bot$ und endlicher
  Menge von Hypothesen $\Delta'\subseteq\Delta$. - $\Rightarrow$ Es gibt
  $n\geq 1$ mit $\Delta'\subseteq\Gamma_n$ -
  $\Rightarrow \Gamma_n\vdash\bot$, zu $\Gamma_n$ konsistent. Also ist
  $\Delta$ konsistent. 2. Wir zeigen indirekt, dass $\Delta$ maximal
  konsistent ist. Sei also $\sum\supseteq\Delta$ konsistent. Angenommen,
  $\sum\not=\Delta$. - $\Rightarrow$ es gibt $n\in N$ mit
  $\varphi_n\in\sum\backslash\Delta$ -
  $\Rightarrow \Gamma_n\cup\{\varphi_n\}\subseteq\Delta\cup\sum= \sum$
  konsistent. - $\Rightarrow \varphi_n \in\Gamma_{n+1}\subseteq \Delta$,
  ein Widerspruch, d.h. $\Delta$ ist max. konsistent.

  \begin{quote}
    Lemma 1

    Sei $\Delta$ maximal konsistent und gelte $\Delta\vdash\varphi$. Dann
    gilt $\varphi\in\Delta$.
  \end{quote}

  Beweis: 1. Zunächst zeigen wir indirekt, dass $\Delta\cup\{\varphi\}$
  konsistent ist: - Angenommen, $\Delta\cup\{\varphi\}\vdash\bot$. -
  $\Rightarrow$ $\exists$ Deduktion $D$ mit Hypothesen in
  $\Delta\cup\{\varphi\}$ und Konklusion $\bot$. -
  $\Delta\vdash \varphi \Rightarrow \exists$ Deduktion $E$ mit Hypothesen
  in $\Delta$ und Konklusion $\varphi$. - $\Rightarrow$ Wir erhalten die
  folgende Deduktion: $\frac{\Delta \frac{\Delta}{\varphi}}{\bot}$

  \begin{verbatim}
Also $\Delta\vdash\bot$, ein Widerspruch zur Konsistenz von $\Delta$. Also ist $\Delta\cup\{\varphi\}$ konsistent.
\end{verbatim}

  \begin{enumerate*}
    \setcounter{enumi}{1}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Da $\Delta\cup\{\varphi\}\supseteq\Delta$ konsistent und $\Delta$
          maximal konsistent ist, folgt $\Delta=\Delta\cup\{\varphi\}$, d.h.
          $\varphi\in\Delta$.
  \end{enumerate*}

  \begin{quote}
    Lemma 2

    Sei $\Delta$ maximal konsistent und $\varphi$ Formel. Dann gilt
    $\varphi\not\in\Delta\Leftrightarrow\lnot\varphi\in\Delta$.
  \end{quote}

  Beweis: - Zunächst gelte $\lnot\varphi\in\Delta$. Angenommen,
  $\varphi\in\Delta$. Dann haben wir die Deduktion
  $\frac{\lnot\varphi\quad\varphi}{\bot}$ und damit $\Delta\vdash\bot$,
  was der Konsistenz von $\Delta$ widerspricht. - Gelte nun
  $\varphi\not\in\Delta$. - $\Rightarrow$
  $\Delta(\Delta\cup\{\varphi\}\Rightarrow\Delta\cup\{\varphi\}$
  inkonsistent (da $\Delta$ max. konsistent) - $\Rightarrow$ Es gibt
  Deduktion $D$ mit Hypothesen in $\Delta\cup\{\varphi\}$ \&Konklusion
  $\bot$. - $\Rightarrow$ Wir erhalten die folgende Deduktion:
  $\frac{\bot}{\lnot\varphi}$ - $\Rightarrow$
  $\Delta\vdash\lnot\varphi\Rightarrow\lnot\varphi\in\Delta$ (nach Lemma
  1)

  \subsection{Erfüllbare Mengen}\label{erfuxfcllbare-mengen}

  \begin{quote}
    Definition

    Sei $\Gamma$ eine Menge von Formeln. $\Gamma$ heißt erfüllbar, wenn es
    eine passende B-Belegung $B$ gibt mit $B(\gamma) = 1_B$ für alle
    $\gamma\in\Gamma$.
  \end{quote}

  Bemerkung - Die Erfüllbarkeit einer endlichen Menge $\Gamma$ ist
  entscheidbar: - Berechne Menge $V$ von in $\Gamma$ vorkommenden atomaren
  Formeln - Probiere alle B-Belegungen $B:V\rightarrow B$ durch - Die
  Erfüllbarkeit einer endlichen Menge $\Gamma$ ist NP-vollständig (Satz
  von Cook)

  \begin{quote}
    Satz Sei $\Delta$ eine maximal konsistente Menge von Formeln. Dann ist
    $\Delta$ erfüllbar.
  \end{quote}

  Beweis: Definiere eine B-Belegung $B$ mittels
  $B(p_i) = \begin{cases} 1_B \quad\text{ falls } p_i\in\Delta \\ 0_B \quad\text{ sonst. } \end{cases}$
  Wir zeigen für alle Formeln
  $\varphi: B(\varphi) = 1_B \Leftarrow\Rightarrow\varphi\in\Delta$ (*)

  Der Beweis erfolgt per Induktion über die Länge von $\varphi$.

  \begin{enumerate*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          I.A.: hat $\varphi$ die Länge 1, so ist $\varphi$ atomare Formel. Hier
          gilt (*) nach Konstruktion von $B$.
    \item
          I.V.: Gelte (*) für alle Formeln der Länge $<n$.
    \item
          I.S.: Sei $\varphi$ Formel der Längen$>1$. $\Rightarrow$ Es gibt
          Formeln $\alpha$ und $\beta$ der Länge$<n$ mit
          $\varphi\in\{\lnot\alpha,\alpha\wedge\beta,\alpha\vee\beta,\alpha\rightarrow\beta\}$.

          \begin{itemize*}
            \item
                  Wir zeigen (*) für diese vier Fälle einzeln auf den folgenden
                  Folien.
            \item
                  Zur Erinnerung: $\Delta$ max. konsistent, $\varphi$ Formel
            \item
                  Lemma 1: $\Delta\vdash\varphi\Rightarrow\varphi\in\Delta$
            \item
                  Lemma 2:
                  $\varphi\not\in\Delta\Leftarrow\Rightarrow\lnot\varphi\in\Delta$
          \end{itemize*}
    \item
          $\varphi =\lnot\alpha$.
          $B(\varphi) = 1_B \Leftarrow\Rightarrow B(\alpha) = 0_B \Leftarrow\Rightarrow \alpha\not\in\Delta\Leftarrow\Rightarrow \Delta \owns\lnot\alpha =\varphi$
    \item
          $\varphi =\alpha\wedge\beta$.
  \end{enumerate*}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          $B(\varphi) = 1_B \Rightarrow B(\alpha) =B(\beta) = 1_B \Rightarrow\alpha,\beta\in\Delta\Rightarrow\Delta\vdash\varphi$
          denn $\frac{\alpha\quad\beta}{\alpha\wedge\beta}$ ist Deduktion
          $\Rightarrow\varphi\in\Delta$.
    \item
          $\varphi$ $\in$ $\Delta$ $\Rightarrow\Delta\vdash\alpha$ und
          $\Delta\vdash\beta$ denn $\frac{\varphi}{\alpha}$ und
          $\frac{\varphi}{\beta}$ sind Deduktionen.
          $\Rightarrow\alpha,\beta\in\Delta\Rightarrow B(\alpha),B(\beta) = 1_B=\Rightarrow B(\varphi) = 1_B$
  \end{itemize*}

  \begin{enumerate*}
    \setcounter{enumi}{2}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          $\varphi =\alpha\vee\beta$.
  \end{enumerate*}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          $B(\varphi) = 1_B \Rightarrow B(\alpha) = 1_B$ oder $B(\beta) = 1_B$

          \begin{itemize*}
            \item
                  angenommen,
                  $B(\alpha) = 1_B \Rightarrow\alpha\in\Delta\Rightarrow\Delta\vdash\varphi$
                  denn $\frac{\alpha}{\varphi}$ ist Deduktion
                  $\Rightarrow\varphi\in\Delta$
            \item
                  angenommen, $B(\alpha) = 0_B \Rightarrow B(\beta) = 1_B$. weiter
                  analog.
          \end{itemize*}
    \item
          $\varphi\in\Delta$. Dann gilt
          $\Delta\cup\{\lnot\alpha ,\lnot\beta\}\vdash \bot$ aufgrund der
          Deduktion \includegraphics[width=\linewidth]{Assets/Logik-beispiel-8.png} Da $\Delta$
          konsistent ist, folgt
          $\Delta\not=\Delta\cup\{\lnot\alpha,\lnot\beta\}$ und damit
          $\lnot\alpha\in\Delta$ oder $\lnot\beta\in\Delta$.
          $\Rightarrow\alpha\in\Delta$ oder $\beta\in\Delta$ nach Lemma 2
          $\Rightarrow B(\alpha) = 1_B$ oder $B(\beta) =1_B$
          $\Rightarrow B(\varphi) = 1_B$.
  \end{itemize*}

  \begin{enumerate*}
    \setcounter{enumi}{3}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          $\varphi = \alpha\rightarrow\beta$.
  \end{enumerate*}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          $B(\varphi) = 1_B \Rightarrow B(\alpha) = 0_B$ oder
          $B(\beta) = 1_B \Rightarrow\lnot\alpha\in\Delta$ oder $\beta\in\Delta$
          Aufgrund nebenstehender Deduktionen gilt in beiden Fällen
          $\Delta\vdash\alpha\rightarrow\beta\Rightarrow\varphi\in\Delta$
          \includegraphics[width=\linewidth]{Assets/Logik-beispiel-9.png}
    \item
          $\varphi\in\Delta$. Angenommen,
          $B(\varphi) = 0_B = \Rightarrow B(\alpha) = 1_B, B(\beta) = 0_B$
          $\Rightarrow\alpha\in\Delta, \beta\not\in\Delta \Rightarrow \lnot\beta\in\Delta$
          Aufgrund der nebenstehenden Deduktion gilt $\Delta\vdash\bot$, d.h.
          $\Delta$ ist inkonsistent, im Widerspruch zur Annahme.
          $\Rightarrow B(\varphi) = 1_B$
          \includegraphics[width=\linewidth]{Assets/Logik-beispiel-10.png}
  \end{itemize*}

  \begin{quote}
    Lemma

    Sei $\Gamma$ eine Menge von Formeln und $\varphi$ eine Formel. Dann gilt
    $\Gamma\not\Vdash_B\varphi\Leftarrow\Rightarrow\Gamma\cup\{\lnot \varphi\}$
    erfüllbar.
  \end{quote}

  Beweis: $\Gamma\not\Vdash_B\varphi$ $\Leftarrow\Rightarrow$ es gibt
  passende B-Belegung $B$ mit
  $inf\{B(\gamma)|\gamma\in\Gamma\} \not\leq_B B(\varphi)$
  $\Leftarrow\Rightarrow$ es gibt passende B-Belegung $B$ mit
  $inf\{B(\gamma)|\gamma\in\Gamma\}= 1_B$ und $B(\varphi)=0_B$
  $\Leftarrow\Rightarrow$ es gibt passende B-Belegung $B$ mit
  $B(\gamma) = 1_B$ für alle $\gamma\in\Gamma$ und $B(\lnot\varphi) = 1_B$
  $\Leftarrow\Rightarrow \Gamma\cup\{\lnot\varphi\}$ erfüllbar

  \begin{quote}
    Beobachtung: Sei $W$ einer der Wahrheitswertebereiche $B, K_3, F, H_R$
    und $B_R,\Gamma$ eine Menge von Formeln und $\varphi$ eine Formel. Dann
    gilt $\Gamma\Vdash W\varphi\Rightarrow\Gamma\Vdash B\varphi$.
  \end{quote}

  Beweis: Sei $B$ beliebige B-Belegung, die zu jeder Formel in
  $\Gamma\cup\{\varphi\}$ paßt. definiere W-Belegung $B_W$ durch
  $B_W(pi) = \begin{cases} 1_W \quad\text{ falls } B(p_i) = 1_B \\ 0_W \quad\text{ sonst} \end{cases}$.
  per Induktion über die Formelgröße kann man für alle Formeln $\psi$, zu
  denen $B$ paßt, zeigen:
  $B_W(\psi) = \begin{cases} 1_W \quad\text{ falls } B(\psi) = 1_B \\ 0_W \quad\text{ sonst.} \end{cases}$
  (*)

  Wir unterscheiden zwei Fälle: -
  $inf\{B(\gamma)|\gamma\in\Gamma\}= 1_B \Rightarrow inf\{B_W(\gamma)|\gamma\in\Gamma\} = 1_W$
  (wegen (\emph{)) $\Rightarrow 1_W = B_W(\varphi)$ (wegen
    $\Gamma\Vdash_W\varphi$) $\Rightarrow 1_B = B(\varphi)$ (wegen (}))
  $\Rightarrow inf\{B(\gamma)|\gamma\in\Gamma\} = 1_B \leq B(\varphi)$ und
  -
  $inf\{B(\gamma)|\gamma\in\Gamma\} \not= 1_B \Rightarrow inf\{B(\gamma)|\gamma\in\Gamma\}= 0_B$
  $\Rightarrow inf\{B(\gamma)|\gamma\in\Gamma\}= 0_B \leq B(\varphi)$.

  Da $B$ beliebig war, gilt $\Gamma\Vdash_B \varphi$.

  \begin{quote}
    Satz (Vollständigkeitssatz)

    Sei $\Gamma$ eine Menge von Formeln, $\varphi$ eine Formel und $W$ einer
    der Wahrheitswertebereiche $B,K_3 , F, B_R$ und $H_R$. Dann gilt
    $\Gamma\Vdash_W\varphi \Rightarrow \Gamma\vdash\varphi$. Insbesondere
    ist jede W-Tautologie ein Theorem.
  \end{quote}

  Beweis: indirekt - $\Gamma\not\Vdash$ - $\Gamma\cup\{\lnot\varphi\}$
  konsistent - $\exists\Delta\supseteq\Gamma\cup\{\lnot\varphi\}$ maximal
  konsistent - $\Rightarrow\Delta$ erfüllbar -
  $\Gamma\cup\{\lnot\varphi\}$ erfüllbar - $\Gamma\not\Vdash_B \varphi$\\-
  $\Gamma\not\Vdash_W \varphi$

  \subsection{Vollständigkeit und
    Korrektheit}\label{vollstuxe4ndigkeit-und-korrektheit}

  \begin{quote}
    Satz

    Seien $\Gamma$ eine Menge von Formeln und $\varphi$ eine Formel. Dann
    gilt $\Gamma\vdash\varphi\Leftarrow\Rightarrow\Gamma\Vdash_B \varphi$.
    Insbesondere ist eine Formel genau dann eine B-Tautologie, wenn sie ein
    Theorem ist.
  \end{quote}

  Beweis: Folgt unmittelbar aus Korrektheitssatz und Vollständigkeitssatz.

  \begin{quote}
    Bemerkung: - gilt für jede ``Boolesche Algebra'', z.B. $B_R$ -
    $\Gamma\vdash\varphi$ ohne ($raa$)
    $\Leftarrow\Rightarrow\Gamma\Vdash_{H_R} \varphi$ (Tarksi 1938)
  \end{quote}

  \subsubsection{Folgerung 1:
    Entscheidbarkeit}\label{folgerung-1-entscheidbarkeit}

  \begin{quote}
    Satz: die Menge der Theoreme ist entscheidbar.
  \end{quote}

  Beweis: Sei $\varphi$ Formel und $V$ die Menge der vorkommenden atomaren
  Formeln. Dann gilt $\varphi$ Theorem - $\Leftarrow\Rightarrow\varphi$
  B-Tautologie - $\Leftarrow\Rightarrow$ für alle Abbildungen
  $B:V\rightarrow\{0_B, 1_B\}$ gilt $B(\varphi) = 1_B$

  Da es nur endlich viele solche Abbildungen gibt und $B(\varphi)$
  berechnet werden kann, ist dies eine entscheidbare Aussage.

  \subsubsection{Folgerung 2: Äquivalenzen und
    Theoreme}\label{folgerung-2-uxe4quivalenzen-und-theoreme}

  \begin{quote}
    Definition

    Zwei Formeln $\alpha$ und $\beta$ heißen äquivalent
    $(\alpha\equiv\beta)$, wenn für alle passenden B-Belegungen $B$ gilt:
    $B(\alpha) =B(\beta)$.
  \end{quote}

  \begin{quote}
    Satz: Es gelten die folgenden Äquivalenzen: 1.
    $p_1 \vee p_2 \equiv p_2 \vee p_1$ 2.
    $(p_1 \vee p_2 )\vee p_3 \equiv p_1 \vee (p_2 \vee p_3 )$ 3.
    $p_1 \vee (p_2 \wedge p_3 )\equiv (p_1 \vee p_2 )\wedge (p_1 \vee p_3 )$
    4. $\lnot(p_1 \vee p_2 )\equiv\lnot p_1 \wedge\lnot p_2$ 5.
    $p_1 \vee p_1 \equiv p_1$ 6.
    $(p_1 \wedge \lnot p_1 )\vee p_2 \equiv p_2$ 7.
    $\lnot\lnot p_1\equiv p_1$ 8. $p_1 \wedge\lnot p_1 \equiv\bot$ 9.
    $p_1 \vee\lnot p_1 \equiv\lnot\bot$ 10.
    $p_1 \rightarrow p_2 \equiv \lnot p_1 \vee p_2$
  \end{quote}

  Beweis: Wir zeigen nur die Äquivalenz (3): Sei $B$ beliebige B-Belegung,
  die wenigstens auf $\{p_1, p_2, p_3\}$ definiert ist. Dazu betrachten
  wir die Wertetabelle: \textbar{} $B(p_1)$ \textbar{} $B(p_2)$ \textbar{}
  $B(p_3)$ \textbar{} $B(p_1\vee(p_2\wedge p_3))$ \textbar{}
  $B((p_1\vee p_2)\wedge(p_1 \vee p_3 ))$ \textbar{} \textbar{} --------
  \textbar{} -------- \textbar{} -------- \textbar{}
  --------------------------- \textbar{}
  --------------------------------------- \textbar{} \textbar{} $0_B$
  \textbar{} $0_B$ \textbar{} $0_B$ \textbar{} $0_B$ \textbar{} $0_B$
  \textbar{} \textbar{} $0_B$ \textbar{} $0_B$ \textbar{} $1_B$ \textbar{}
  $0_B$ \textbar{} $0_B$ \textbar{} \textbar{} $0_B$ \textbar{} $1_B$
  \textbar{} $0_B$ \textbar{} $0_B$ \textbar{} $0_B$ \textbar{} \textbar{}
  $0_B$ \textbar{} $1_B$ \textbar{} $1_B$ \textbar{} $1_B$ \textbar{}
  $1_B$ \textbar{} \textbar{} $1_B$ \textbar{} $0_B$ \textbar{} $0_B$
  \textbar{} $1_B$ \textbar{} $1_B$ \textbar{} \textbar{} $1_B$ \textbar{}
  $0_B$ \textbar{} $1_B$ \textbar{} $1_B$ \textbar{} $1_B$ \textbar{}
  \textbar{} $1_B$ \textbar{} $1_B$ \textbar{} $0_B$ \textbar{} $1_B$
  \textbar{} $1_B$ \textbar{} \textbar{} $1_B$ \textbar{} $1_B$ \textbar{}
  $1_B$ \textbar{} $1_B$ \textbar{} $1_B$ \textbar{}

  Die anderen Äquivalenzen werden analog bewiesen.

  Aus dieser Liste von Äquivalenzen können weitere hergeleitet werden:

  Beispiel: Für alle Formeln $\alpha$ und $\beta$ gilt
  $\lnot(\alpha\wedge\beta)\equiv\lnot\alpha\vee\lnot\beta$.

  Beweis:
  $\lnot(\alpha\wedge\beta) \equiv \lnot(\lnot\lnot\alpha\wedge\lnot\lnot\beta) \equiv \lnot\lnot(\lnot\alpha\vee\lnot\beta) \equiv \lnot\alpha\vee\lnot\beta$

  \begin{quote}
    Bemerkung Mit den üblichen Rechenregeln für Gleichungen können aus
    dieser Liste alle gültigen Äquivalenzen hergeleitet werden.
  \end{quote}

  \paragraph{Zusammenhang zw. Theoremen und
    Äquivalenzen}\label{zusammenhang-zw.-theoremen-und-uxe4quivalenzen}

  \begin{quote}
    Satz

    Seien $\alpha$ und $\beta$ zwei Formeln. Dann gilt
    $\alpha\equiv\beta\Leftarrow\Rightarrow(\alpha\leftrightarrow\beta)$ ist
    Theorem.
  \end{quote}

  Beweis: $\alpha\equiv\beta$ - $\Leftarrow\Rightarrow$ für alle passenden
  B-Belegungen $B$ gilt $B(\alpha)=B(\beta)$ -
  $\Leftarrow\Rightarrow \{\alpha\}\Vdash_B\beta$ und
  $\{\beta\}\Vdash_B \alpha$ -
  $\Leftarrow\Rightarrow \{\alpha\}\vdash\beta$ und
  $\{\beta\}\vdash\alpha$ (nach Korrektheits- und Vollständigkeitssatz)

  es bleibt z.z., dass dies äquivalent zu
  $\varnothing\vdash(\alpha\leftrightarrow\beta)$ ist. - $\Rightarrow$:
  Wir haben also Deduktionen mit Hypothesen in $\{\alpha\}$ bzw. in
  $\{\beta\}$ und Konklusionen $\beta$ bzw.$\alpha$. Es ergibt sich eine
  hypothesenlose Deduktion von $\alpha\leftrightarrow\beta$:
  \includegraphics[width=\linewidth]{Assets/Logik-deduktion-1.png} - $\Leftarrow$: Wir haben
  also eine hypothesenlose Deduktion von $\alpha\leftrightarrow\beta$. Es
  ergeben sich die folgenden Deduktionen mit Hypothesen $\beta$ bzw.
  $\alpha$ und Konklusionen $\alpha$ bzw. $\beta$:
  \includegraphics[width=\linewidth]{Assets/Logik-deduktion-2.png}

  \begin{quote}
    Satz

    Sei $\alpha$ eine Formel. Dann gilt $\alpha$ ist Theorem
    $\Leftarrow\Rightarrow\alpha\equiv\lnot\bot$.
  \end{quote}

  Beweis: $\alpha$ ist Theorem - $\Leftarrow\Rightarrow\alpha$ ist
  B-Tautologie (Korrektheits- und Vollständigkeitssatz) -
  $\Leftarrow\Rightarrow$ für alle passenden B-Belegungen $B$ gilt
  $B(\alpha) = 1_B$ - $\Leftarrow\Rightarrow$ für alle passenden
  B-Belegungen $B$ gilt $B(\alpha) =B(\lnot\bot)$ -
  $\Leftarrow\Rightarrow\alpha\equiv\lnot\bot$

  \subsubsection{Folgerung 3: Kompaktheit}\label{folgerung-3-kompaktheit}

  \begin{quote}
    Satz

    Sei $\Gamma$ eine u.U. unendliche Menge von Formeln und $\varphi$ eine
    Formel mit $\Gamma\Vdash_B\varphi$. Dann existiert
    $\Gamma'\subseteq\Gamma$ endlich mit $\Gamma'\Vdash_B \varphi$.
  \end{quote}

  Beweis: $\Gamma\Vdash_B\varphi$ - $\Rightarrow\Gamma\vdash\varphi$ (nach
  dem Vollständigkeitssatz) - $\Rightarrow$ es gibt Deduktion von
  $\varphi$ mit Hypothesen $\gamma_1,...,\gamma_n\in\Gamma$ -
  $\Rightarrow\Gamma'=\{\gamma_1,...,\gamma_n\}\subseteq\Gamma$ endlich
  mit $\Gamma'\vdash\varphi$ - $\Rightarrow\Gamma'\Vdash_B\varphi$ (nach
  dem Korrektheitssatz).

  \begin{quote}
    Folgerung (Kompaktheits- oder Endlichkeitssatz)

    Sei $\Gamma$ eine u.U. unendliche Menge von Formeln. Dann gilt $\Gamma$
    unerfüllbar $\Leftarrow\Rightarrow\exists\Gamma'\subseteq\Gamma$
    endlich: $\Gamma'$ unerfüllbar
  \end{quote}

  Beweis: $\Gamma$ unerfüllbar -
  $\Leftarrow\Rightarrow\Gamma\cup\{\lnot\bot\}$ unerfüllbar -
  $\Leftarrow\Rightarrow\Gamma\Vdash_B\bot$ - $\Leftarrow\Rightarrow$ es
  gibt $\Gamma'\subseteq\Gamma$ endlich: $\Gamma'\Vdash_B\bot$ -
  $\Leftarrow\Rightarrow$ es gibt $\Gamma'\subseteq\Gamma$ endlich:
  $\Gamma'\cup\{\lnot\bot\}$ unerfüllbar - $\Leftarrow\Rightarrow$ es gibt
  $\Gamma'\subseteq\Gamma$ endlich: $\Gamma'$ unerfüllbar

  \subsubsection{1. Anwendung des Kompaktheitsatzes:
    Färbbarkeit}\label{anwendung-des-kompaktheitsatzes-fuxe4rbbarkeit}

  \begin{quote}
    Definition

    Ein Graph ist ein Paar $G=(V,E)$ mit einer Menge $V$ und
    $E\subseteq\binom{V}{2} =\{X\subseteq V:|V\Vdash 2\}$. Für $W\subseteq V$ sei $G\upharpoonright_W= (W,E\cap\binom{W}{2})$
    der von $W$ induzierte Teilgraph. Der Graph G ist 3-färbbar, wenn es
    eine Abbildung $f:V\rightarrow\{1,2,3\}$ mit $f(v)\not=f(w)$ für alle
    $\{v,w\}\in E$.
  \end{quote}

  Bemerkung: Die 3-Färbbarkeit eines endlichen Graphen ist NP-vollständig

  \begin{quote}
    Satz Sei $G= (N,E)$ ein Graph. Dann sind äquivalent 1. $G$ ist
    3-färbbar. 2. Für jede endliche Menge $W\subseteq N$ ist
    $G\upharpoonright_W$ 3-färbbar.
  \end{quote}

  Beweis: - $1.\Rightarrow 2.$ trivial - $2.\Rightarrow 1.$ Sei nun, für
  alle endlichen Menge $W\subseteq N$, der induzierte Teilgraph
  $G\upharpoonright_W$ 3-färbbar.

  Wir beschreiben zunächst mit einer unendlichen Menge $\Gamma$ von
  Formeln, dass eine 3-Färbung existiert: - atomare Formeln $p_{n,c}$ für
  $n\in N$ und $c\in\{1,2,3\}$ (Idee: der Knoten n hat die Farbe c) -
  $\Gamma$ enthält die folgenden Formeln: - für alle
  $n\in N:p_{n, 1} \vee p_{n, 2} \vee p_{n, 3}$ (der Knoten n ist gefärbt)
  - für alle
  $n\in N:\bigwedge_{1\leq c< d \leq 3} \lnot(p_{n,c} \wedge p_{n,d})$
  (der Knoten n ist nur mit einer Farbe gefärbt) - für alle
  $\{m,n\}\in E: \bigwedge_{1\leq c\leq 3} \lnot(p_{m,c} \wedge p_{n,c})$
  (verbundene Knoten m und n sind verschieden gefärbt)

  Behauptung: Jede endliche Menge $\Delta\subseteq\Gamma$ ist erfüllbar.

  Begründung: - Da $\Delta$ endlich ist, existiert endliche Menge
  $W\subseteq N$, so dass jede atomare Formel in $\Delta$ die Form
  $p_{n,c}$ für ein $n\in W$ und ein $c\in\{1,2,3\}$ hat. - Nach Annahme
  existiert $f_W:W\rightarrow\{1,2,3\}$ mit $f_W(m) \not=f(n)$ f.a.
  $\{m,n\}\in E\cap\binom{W}{2}$. - Definiere
  $B:\{p_{n,c}|n\in W, 1 \leq c\leq 3\}\rightarrow\{0,1\}$ durch
  $B(p_{n,c}) = \begin{cases} 1 \quad\text{ falls } f_W(n) = c \\ 0 \quad\text{ sonst.} \end{cases}$
  - Diese Belegung erfüllt $\Delta$, d.h. $\Delta$ ist erfüllbar, womit
  die Behauptung gezeigt ist.

  Nach dem Kompaktheitssatz ist also $\Gamma$ erfüllbar. Sei $B$
  erfüllende Belegung. Für $n\in N$ existiert genau ein $c\in\{1,2,3\}$
  mit $B(p_{n,c}) =1$. Setze $f(n) =c$. Dann ist $f$ eine gültige Färbung
  des Graphen $G$.

  \subsubsection{2. Anwendung des Kompaktheitsatzes:
    Parkettierungen}\label{anwendung-des-kompaktheitsatzes-parkettierungen}

  Idee: Gegeben ist eine Menge von quadratischen Kacheln mit gefärbten
  Kanten. Ist es möglich, mit diesen Kacheln die gesamte Ebene zu
  füllen,so dass aneinanderstoßende Kanten gleichfarbig sind?

  Berühmtes Beispiel: Mit diesen 11 Kacheln kann die Ebene gefüllt werden,
  aber dies ist nicht periodisch möglich.
  \includegraphics[width=\linewidth]{Assets/Logik-parkettierung-1.png}

  \begin{quote}
    Definition

    Ein Kachelsystem besteht aus einer endlichen Menge C von ``Farben'' und
    einer Menge K von Abbildungen $\{N,O,S,W\}\rightarrow C$ von
    ``Kacheln''. Eine Kachelung von $G\subseteq Z\times Z$ ist eine
    Abbildung $f:G\rightarrow K$ mit - $f(i,j)(N) =f(i,j+ 1 )(S)$ für alle
    $(i,j),(i,j+ 1 )\in G$ - $f(i,j)(O) =f(i+ 1 ,j)(W)$ für alle
    $(i,j),(i+ 1 ,j)\in G$
  \end{quote}

  \begin{quote}
    Satz

    Sei $K$ ein Kachelsystem. Es existiert genau dann eine Kachelung von
    $Z\times Z$, wenn für jedes $n\in N$ eine Kachelung von
    $\{(i,j) :|i|,|j| \leq n\}$ existiert.
  \end{quote}

  Beweis: - $\Rightarrow$: trivial - $\Leftarrow$: Wir beschreiben
  zunächst mit einer unendlichen Menge $\Gamma$ von Formeln, dass eine
  Kachelung existiert: atomare Formeln $p_{k,i,j}$ für $k\in K$ und
  $i,j\in Z$ (Idee: an der Stelle $(i,j)$ liegt die Kachel $k$, d.h.
  $f(i,j) =k$) Für alle $(i,j)\in Z$ enthält $\Gamma$ die folgenden
  Formeln: - eine der Kacheln aus $K$ liegt an der Stelle
  $(i,j):\bigvee_{k\in K} p_{k,i,j}$ - es liegen nicht zwei verschiedene
  Kacheln an der Stelle
  $(i,j): \bigwedge_{k,k'\in K,k\not=k'} \lnot(p_{k,i,j}\wedge p_{k',i,j})$
  - Kacheln an Stellen $(i,j)$ und $(i,j+1)$ ``passen übereinander'':
  $\bigvee_{k,k'\in K,k(N)=k'(S)} (p_{k,i,j}\wedge p_{k',i,j+1})$ -
  Kacheln an Stellen $(i,j)$ und $(i+1,j)$ ``passen nebeneinander'':
  $\bigvee_{k,k'\in K,k(W)=k'(O)} (p_{k,i,j}\wedge p_{k',i+1,j})$

  Sei nun $\Delta\subseteq\Gamma$ endlich. - $\Rightarrow$ es gibt
  $n\in N$, so dass $\Delta$ nur atomare Formeln der Form $p_{k,i,j}$ mit
  $|i|,|j|\leq n$ enthält. - Voraussetzung $\Rightarrow$ es gibt Kachelung
  $g:\{(i,j) :|i|,|j| \leq n\}\rightarrow K$ für $k\in K$ und
  $|i|,|j|\leq n$ definiere
  $B(p_{k,i,j}) = \begin{cases} 1_B \quad\text{ falls } g(i,j) =k \\ 0_B \quad\text{ sonst} \end{cases}$
  - $\Rightarrow B(\sigma) = 1_B$ für alle $\sigma\in\Delta$ (da $g$
  Kachelung) - Also haben wir gezeigt, dass jede endliche Teilmenge von
  $\Gamma$ erfüllbar ist. - Kompaktheitssatz $\Rightarrow$ es gibt
  B-Belegung $B$ mit $B(\gamma) = 1_B$ für alle $\gamma\in\Gamma$ -
  $\Rightarrow$ es gibt Abbildung $f:Z\times Z\rightarrow K$ mit
  $f(i,j) =k \Leftarrow\Rightarrow B(p_{k,i,j}) = 1_B$. - Wegen
  $B\Vdash\Gamma$ ist dies eine Kachelung.

  Weitere Anwendungen des Kompaktheitsatzes - abz. partielle Ordnungen
  sind linearisierbar - abz. Gleichungssystem über $\mathbb{Z}_2$ lösbar
  $\Leftarrow\Rightarrow$ jedes endliche Teilsystem lösbar -
  Heiratsproblem - Kőnigs Lemma (Übung) - \ldots{}

  Bemerkung: Der Kompaktheitssatz gilt auch, wenn die Menge der atomaren
  Formeln nicht abzählbar ist. Damit gelten die obigen Aussagen
  allgemeiner: - 3-Färbbarkeit: beliebige Graphen - Linearisierbarkeit:
  beliebige partielle Ordnungen - Lösbarkeit: beliebig große
  Gleichungssysteme über $\mathbb{Z}_2$ - \ldots{}

  \subsection{Erfüllbarkeit}\label{erfuxfcllbarkeit}

  \begin{quote}
    Erfüllbarkeitsproblem

    Eingabe: Formel $\Gamma$

    Frage: existiert eine B-Belegung $B$ mit $B(\Gamma) = 1_B$.
  \end{quote}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          offensichtlicher Algorithmus: probiere alle Belegungen durch (d.h.
          stelle Wahrheitswertetabelle auf)$\rightarrow$ exponentielle Zeit
    \item
          ``Automaten, Sprachen und Komplexität'': das Problem ist
          NP-vollständig
    \item
          nächstes Ziel:spezielle Algorithmen für syntaktisch eingeschränkte
          Formeln $\Gamma$
    \item
          Spätere Verallgemeinerung dieser Algorithmen (letzte Vorlesung des
          Logik-Teils von ``Logik und Logikprogrammierung'') bildet Grundlage
          der logischen Programmierung.
  \end{itemize*}

  \subsubsection{Hornformeln (Alfred Horn,
    1918-2001)}\label{hornformeln-alfred-horn-1918-2001}

  \begin{quote}
    Definition

    Eine Hornklausel hat die Form
    $(\lnot\bot\wedge p_1\wedge p_2\wedge ... \wedge p_n)\rightarrow q$ für
    $n\geq 0$, atomare Formeln $p_1 ,p_2 ,... ,p_n$ und $q$ atomare Formel
    oder $q=\bot$. Eine Hornformel ist eine Konjunktion von Hornklauseln.
  \end{quote}

  Schreib- und Sprechweise - $\{p_1,p_2 ,... ,p_n\}\rightarrow q$ für
  Hornklausel
  $(\lnot\bot\wedge p_1 \wedge p_2 \wedge ...\wedge p_n)\rightarrow q$
  insbes. $\varnothing\rightarrow q$ für $\lnot\bot\rightarrow q$ -
  $\{(M_i\rightarrow q_i)| 1 \leq i\leq n\}$ für Hornformel
  $\bigwedge_{1 \leq i \leq n} (M_i\rightarrow q_i)$

  Bemerkung, in der Literatur auch: -
  $\{\lnot p_1,\lnot p_2 ,... ,\lnot p_n,q\}$ für
  $\{p_1 ,... ,p_n\}\rightarrow q$ mit $q$ atomare Formel -
  $\{\lnot p_1,\lnot p_2 ,... ,\lnot p_n\}$ für
  $\{p_1 ,... ,p_n\}\rightarrow\bot$ - $\Box$ für
  $\varnothing\rightarrow\bot$, die ``leere Hornklausel''

  \subsubsection{Markierungsalgorithmus}\label{markierungsalgorithmus}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Eingabe: eine endliche Menge $\Gamma$ von Hornklauseln.
  \end{itemize*}

  \begin{enumerate*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          while es gibt in $\Gamma$ eine Hornklausel $M\rightarrow q$, so dass
          alle $p\in M$ markiert sind und $q$ unmarkierte atomare Formel ist: do
          markiere $q$ (in allen Hornklauseln in $\Gamma$)
    \item
          if $\Gamma$ enthält eine Hornklausel der Form $M\rightarrow\bot$, in
          der alle $p\in M$ markiert sind then return ``unerfüllbar'' else
          return ``erfüllbar''
  \end{enumerate*}

  Beweis einer Folgerung: Beispiel - Ziel ist es, die folgende Folgerung
  zu zeigen:
  $\{(AK\vee BK),(AK\rightarrow BK),(BK\wedge RL\rightarrow\lnot AK),RL\}\Vdash\lnot AK$
  - Lemma: man muß Unerfüllbarkeit der folgenden Menge zeigen:
  $\{(AK\vee BK),(AK\rightarrow BK),(BK\wedge RL\rightarrow \lnot AK),RL,\lnot\lnot AK\}$
  - Dies ist keine Menge von Hornklauseln! - Idee: ersetze $BK$ durch
  $\lnot BH$ in allen Formeln. - Ergebnis: - Aus $AK\vee BK$ wird
  $\lnot BH\vee AK\equiv BH\rightarrow AK\equiv\{BH\}\rightarrow AK$. -
  Aus $AK\rightarrow BK$ wird
  $AK\rightarrow\lnot BH\equiv\lnot AK\vee\lnot BH\equiv AK\wedge BH\rightarrow\bot\equiv\{AK,BH\} \rightarrow\bot$.
  - Aus $BK\wedge RL\rightarrow\lnot AK$ wird
  $\lnot BH\wedge RL\rightarrow\lnot AK\equiv BH\vee\lnot RL\vee\lnot AK\equiv RL\wedge AK\rightarrow BH\equiv\{RL,AK\}\rightarrow BH$
  - $RL\equiv (\varnothing\rightarrow RL)$ -
  $\lnot\lnot AK\equiv (\varnothing\rightarrow AK)$ - Wir müssen also
  zeigen, dass die folgende Menge von Hornklauseln unerfüllbar ist:
  $\{\{BH\}\rightarrow AK,\{AK,BH\}\rightarrow\bot,\{RL,AK\}\rightarrow BH,\varnothing\rightarrow RL,\varnothing\rightarrow AK\}$

  Der Markierungsalgorithmus geht wie folgt vor: 1. Runde: markiere $RL$
  aufgrund der Hornklausel $\varnothing\rightarrow RL$ 2. Runde: markiere
  $AK$ aufgrund der Hornklausel $\varnothing\rightarrow AK$ 3. Runde:
  markiere $BH$ aufgrund der Hornklausel $\{RL,AK\}\rightarrow BH$

  dann sind keine weiteren Markierungen möglich.

  In der Hornklausel $\{AK,BH\}\rightarrow\bot$ sind alle atomaren Formeln
  aus $\{AK,BH\}$ markiert. Also gibt der Algorithmus aus, dass die Menge
  von Hornklauseln nicht erfüllbar ist.

  Nach unserer Herleitung folgern wir, dass das Teil $A$ heil ist.

  \begin{enumerate*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Der Algorithmus terminiert: in jedem Durchlauf der while-Schleife wird
          wenigstens eine atomare Formel markiert. Nach endlich vielen Schritten
          terminiert die Schleife also.
    \item
          Wenn der Algorithmus eine atomare Formelqmarkiert und wenn $B$ eine
          B-Belegung ist, die $\Gamma$ erfüllt, dann gilt $B(q) = 1_B$. Beweis:
          wir zeigen induktiv über $n$: Wenn $q$ in einem der ersten $n$
          Schleifendurchläufe markiert wird, dann gilt $B(q) = 1_B$.
  \end{enumerate*}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          I.A. Die Aussage gilt offensichtlich für $n=0$.
    \item
          I.S. werde die atomare Formel $q$ in einem der ersten $n$
          Schleifendurchläufe markiert. Dann gibt es eine Hornklausel
          $\{p_1,p_2 ,... ,p_k\}\rightarrow q$, so dass $p_1 ,... ,p_k$ in den
          ersten $n-1$ Schleifendurchläufen markiert wurden. Also gilt
          $B(p_1)=...=B(p_k) = 1_B$ nach IV. Da $B$ alle Hornformeln aus
          $\Gamma$ erfüllt, gilt insbesondere
          $B(\{p_1 ,p_2 ,... ,p_k\}\rightarrow q) = 1_B$ und damit $B(q) = 1_B$.
  \end{itemize*}

  \begin{enumerate*}
    \setcounter{enumi}{2}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Wenn der Algorithmus ``unerfüllbar'' ausgibt, dann ist $\Gamma$
          unerfüllbar. Beweis: indirekt, wir nehmen also an, dass der
          Algorithmus ``unerfüllbar'' ausgibt, $B$ aber eine B-Belegung ist, die
          $\Gamma$ erfüllt. Sei $\{p_1 ,... ,p_k\}\rightarrow\bot$ die
          Hornklausel aus $\Gamma$, die die Ausgabe ``unerfüllbar'' verursacht
          (d.h. die atomaren Formeln $p_1 ,... ,p_k$ sind markiert). Nach 2.
          gilt $B(p_1) =...=B(p_k) = 1_B$, also
          $B(\{p_1 ,p_2 ,... ,p_k\}\rightarrow\bot) = 0_B$ im Widerspruch zur
          Annahme, dass $B$ alle Hornklauseln aus $\Gamma$ erfüllt. Also kann es
          keine erfüllende B-Belegung von $\Gamma$ geben.
    \item
          Wenn der Algorithmus ``erfüllbar'' ausgibt, dann erfüllt die folgende
          B-Belegung alle Formeln aus $\Gamma$:
          $B(p_i)=\begin{cases} 1_B \quad\text{ der Algorithmus markiert } p_i \\ 0_B \quad\text{ sonst} \end{cases}$
          Beweis:

          \begin{itemize*}
            \item
                  Sei $M\rightarrow q$ eine beliebige Hornklausel aus $\Gamma$.
            \item
                  Ist ein $p\in M$ nicht markiert, so gilt
                  $B(\bigwedge_{p\in M} p) = 0_B$ und damit $B(M\rightarrow q) = 1_B$.
            \item
                  Sind alle $p\in M$ markiert, so wird auch $q$ markiert, also
                  $B(q) = 1_B$ und damit $B(M\rightarrow q) = 1_B$.
            \item
                  Gilt $q=\bot$, so existiert unmarkiertes $p\in M$ (da der
                  Algorithmus sonst ``unerfüllbar'' ausgegeben hätte), also
                  $B(M\rightarrow\bot) = 1_B$ wie im ersten Fall. Also gilt
                  $B(M\rightarrow q) = 1_B$ für alle Hornklauseln aus $\Gamma$, d.h.
                  $\Gamma$ ist erfüllbar.
          \end{itemize*}
  \end{enumerate*}

  \begin{quote}
    Satz

    Sei $\Gamma$ endliche Menge von Hornklauseln. Dann terminiert der
    Markierungsalgorithmus mit dem korrekten Ergebnis.
  \end{quote}

  Beweis: Die Aussagen 1.-4. beweisen diesen Satz.

  Bemerkungen: - Mit einer geeigneten Implementierung läuft der
  Algorithmusin linearer Zeit. - Wir haben sogar gezeigt, dass bei Ausgabe
  von ``erfüllbar'' eine erfüllende B-Belegung berechnet werden kann.

  \subsubsection{SLD-Resolution}\label{sld-resolution}

  \begin{quote}
    Definition

    Sei $\Gamma$ eine Menge von Hornklauseln. Eine SLD-Resolution aus
    $\Gamma$ ist eine Folge
    $(M_0\rightarrow\bot,M_1\rightarrow\bot,... ,M_m\rightarrow\bot)$ von
    Hornklauseln mit - $(M_0\rightarrow\bot)\in\Gamma$ - für alle
    $0\leq n<m$ existiert $(N\rightarrow q)\in\Gamma$ mit $q\in M_n$ und
    $M_{n+1} = M_n\backslash\{q\}\cup N$
  \end{quote}

  Beispiel: -
  $\Gamma =\{\{BH\}\rightarrow AK,\{AK,BH\}\rightarrow\bot,\{RL,AK\}\rightarrow BH,\varnothing\rightarrow RL,\varnothing\rightarrow AK\}$
  - $M_0 =\{AK,BH\}$ - $M_1 =M_0 \backslash\{BH\}\cup\{RL,AK\}=\{RL,AK\}$
  - $M_2 =M_1 \backslash\{RL\}\cup\varnothing =\{AK\}$ -
  $M_3 =M_2 \backslash\{AK\}\cup\varnothing =\varnothing$

  \begin{quote}
    Lemma A

    Sei $\Gamma$ eine (u.U. unendliche) Menge von Hornklauseln und
    $(M_0\rightarrow\bot, M_1\rightarrow\bot,... , M_m\rightarrow\bot)$ eine
    SLD-Resolution aus $\Gamma$ mit $M_m=\varnothing$. Dann ist $\Gamma$
    nicht erfüllbar.
  \end{quote}

  Beweis: - indirekt: angenommen, es gibt B-Belegung $B$ mit
  $B(N\rightarrow q) = 1_B$ für alle $(N\rightarrow q)\in\Gamma$. - Wir
  zeigen für alle $0\leq n\leq m$ per Induktion über n: es gibt $p\in M_n$
  mit $B(p) = 0_B$ (4) - I.A.: $n=0:(M_0 \rightarrow\bot,...)$
  SLD-Resolution $\Rightarrow(M_0\rightarrow\bot)\in\Gamma$ -
  $\Rightarrow B(M_0\rightarrow\bot) = 1_B$ - $\Rightarrow$ es gibt
  $p\in M_0$ mit $B(p) = 0_B$ - I.V.: sei $n<m$ und $p\in M_n$ mit
  $B(p) = 0_B$ - I.S.:
  $(... ,M_n\rightarrow\bot,M_{n+ 1}\rightarrow\bot,...)$ SLD-Resolution
  $\Rightarrow$ es gibt $(N\rightarrow q)\in\Gamma$ mit
  $M_{n+1} =M_n\backslash\{q\}\cup N$ und $q\in M_n$. Zwei Fälle werden
  unterschieden: 1. $p\not=q$: dann gilt $p\in M_{n+1}$ mit $B(p) = 0_B$
  2. $p=q:(N\rightarrow q)\in\Gamma\Rightarrow B(N\rightarrow q) = 1_B$ es
  gibt $p'\in N\subseteq M_{n+1}$ mit $B(p')=0_B$ in jedem der zwei Fälle
  gilt also (4) für $n+1$. - Damit ist der induktive Beweis von (4)
  abgeschlossen. - Mit $m=n$ haben wir insbesondere ``es gibt $p\in M_m$
  mit $B(p) = 0_B$'' im Widerspruch zu $M_m=\varnothing$. Damit ist der
  indirekte Beweis abgeschlossen.

  \begin{quote}
    Lemma B

    Sei $\Gamma$ eine (u.U. unendliche) unerfüllbare Menge von Hornklauseln.
    Dann existiert eine SLD-Resolution
    $(M_0\rightarrow\bot,...,M_m\rightarrow\bot)$ aus $\Gamma$ mit
    $M_m=\varnothing$.
  \end{quote}

  Beweis: Endlichkeitssatz: es gibt $\Delta\subseteq\Gamma$ endlich und
  unerfüllbar. Bei Eingabe von$\Delta$ terminiert Markierungsalgorithmus
  mit ``unerfüllbar'' - $r\geq 0...$ Anzahl der Runden - $q_i...$
  Atomformel, die in $i$ Runde markiert wird $(1\leq i\leq r)$

  Behauptung: Es gibt $m\leq r$ und SLD-Resolution
  $(M_0\rightarrow\bot,...,M_m\rightarrow\bot)$ aus $\Delta$ mit
  $M_m=\varnothing$ und $M_n\subseteq\{q_1,q_2,... ,q_{r-n}\}$ f.a.
  $0\leq n\leq m$. (5)

  Beweis der Behauptung: Wir konstruieren die Hornklauseln
  $M_i\rightarrow\bot$ induktiv: - I.A.: Da der Markierungsalgorithmus mit
  ``unerfüllbar'' terminiert, existiert eine Hornklausel
  $(M_0\rightarrow\bot)\in\Gamma$ mit $M_0\subseteq\{q_1,... ,q_{r- 0}\}$.
  $(M_0\rightarrow\bot)$ ist SLD-Resolution aus $\Delta$, die (5) erfüllt.
  - I.V.: Sei $n\leq r$ und $(M_0\rightarrow\bot,... ,M_n\rightarrow\bot)$
  SLD-Resolution, so dass (5) gilt. - I.S.: wir betrachten drei Fälle: 1.
  Fall $M_n=\varnothing$: mit $m:=n$ ist Beweis der Beh. abgeschlossen. 2.
  Fall $n=r$: Nach (5) gilt $M_n\subseteq\{q_1,...,q_{r-n}\}=\varnothing$.
  Mit $m:=n$ ist der Beweis der Beh. abgeschlossen. 3. Fall $n<r$ und
  $M_n \not=\varnothing$. Sei $k$ maximal mit
  $q_k\in M_n\subseteq\{q_1,q_2,... ,q_{r-n}\}$. Also existiert
  $(N\rightarrow q_k)\in\Delta$, so dass $N\subseteq\{q_1,... ,q_{k-1}\}$.
  Setze
  $M_{n+1}=M_n\backslash\{q_k\}\cup N\subseteq\{q_1,... ,q_{k-1}\}\subseteq\{q_1,...,q_{r-(n+1)}\}$.

  Damit ist der induktive Beweis der Beh. abgeschlossen, woraus das Lemma
  unmittelbar folgt.

  \begin{quote}
    Satz

    Sei $\Gamma$ eine (u.U. unendliche) Menge von Hornklauseln. Dann sind
    äquivalent: 1. $\Gamma$ ist nicht erfüllbar. 2. Es gibt eine
    SLD-Resolution
    $(M_0\rightarrow\bot,M_1\rightarrow\bot,... ,M_m\rightarrow\bot)$ aus
    $\Gamma$ mit $M_m=\varnothing$.
  \end{quote}

  Beweis: Folgt unmittelbar aus Lemmata A und B.

  Beispiel:
  $\Gamma=\{\{a,b\}\rightarrow\bot,\{a\}\rightarrow c, \{b\}\rightarrow c,\{c\}\rightarrow a,\varnothing\rightarrow b$;
  alle SLD-Resolutionen aus$\Gamma$ kann man durch einen Baum beschreiben:
  \includegraphics[width=\linewidth]{Assets/Logik-beispiel-11.png}

  Die Suche nach einer SLD-Resolution mit $M_m=\varnothing$ kann
  grundsätzlich auf zwei Arten erfolgen: - Breitensuche: - findet
  SLD-Resolution mit $M_m=\varnothing$ (falls sie existiert), da Baum
  endlich verzweigend ist (d.h. die Niveaus sind endlich) - hoher
  Platzbedarf, da ganze Niveaus abgespeichert werden müssen (in einem
  Binärbaum der Tiefe $n$ kann es Niveaus der Größe $2^n$ geben) -
  Tiefensuche: - geringerer Platzbedarf (in einem Binärbaum der Tiefe $n$
  hat jeder Ast die Länge $\leq n$) - findet existierende SLD-Resolution
  mit $M_m=\varnothing$ nicht immer (siehe Beispiel)

  \subsection{Zusammenfassung
    Aussagenlogik}\label{zusammenfassung-aussagenlogik}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Das natürliche Schließen formalisiert die ``üblichen'' Argumente in
          mathematischen Beweisen.
    \item
          Unterschiedliche Wahrheitswertebereiche formalisieren unterschiedliche
          Vorstellungen von ``Wahrheit''.
    \item
          Das natürliche Schließen ist vollständig und korrekt für den
          Booleschen Wahrheitswertebereich.
    \item
          Der Markierungsalgorithmus und die SLD-Resolution sind praktikable
          Verfahren, um die Erfüllbarkeit von Hornformeln zu bestimmen.
  \end{itemize*}

  \section{Kapitel 2: Prädikatenlogik}\label{kapitel-2-pruxe4dikatenlogik}

  Beispiel: Graphen
  \includegraphics[width=\linewidth]{Assets/Logik-prädikatenlogik-graph.png} Um über diesen
  Graphen Aussagen in der Aussagenlogik zu machen, verwenden wir Formeln
  $\varphi_{i,j}$ für $1\leq i,j\leq 9$ mit
  $\varphi_{i,j}=\begin{cases} \lnot\bot\quad\text{ falls} (v_i,v_j) Kante\\ \bot\quad\text{ sonst}\end{cases}$
  - Die aussagenlogische Formel $\bigvee_{1\leq i,j\leq 9} \varphi_{i,j}$
  sagt aus, dass der Graph eine Kante enthält. - Die aussagenlogische
  Formel $\bigwedge_{1\leq i\leq 9} \bigvee_{1\leq j\leq 9} \varphi_{i,j}$
  sagt aus, dass jeder Knoten einen Nachbarn hat - Die aussagenlogische
  Formel
  $\bigvee_{1\leq i,j,k\leq 9 verschieden} \varphi_{i,j}\wedge\varphi_{j,k}\wedge\varphi_{k,i}$
  sagt aus, dass der Graph ein Dreieck enthält. Man kann so vorgehen, wenn
  der Graph bekannt und endlich ist. Sollen analoge Aussagen für einen
  anderen Graphen gemacht werden, so ist die Kodierungsarbeit zu
  wiederholen.

  Beispiel: Datenbanken - Im folgenden reden wir über die Studenten und
  die Lehrenden in Veranstaltungen zur Theoretischen Informatik in diesem
  Semester. Betrachte die folgenden Aussagen: - Jeder ist Student oder
  wissenschaftlicher Mitarbeiter oder Professor. - Dietrich Kuske ist
  Professor. - Kein Student ist Professor. - Jeder Student ist jünger als
  jeder Professor. - Es gibt eine Person, die an den Veranstaltungen
  ``Logik und Logikprogrammierung'' und ``Algorithmen und
  Datenstrukturen'' teilnimmt. - Es gibt eine Person, die kein
  wissenschaftlicher Mitarbeiter ist und nicht an beiden Veranstaltungen
  teilnimmt. - Jeder Student ist jünger als die Person, mit der er am
  besten über Informatik reden kann. - Um sie in der Aussagenlogik machen
  zu können, müssen wir atomare Aussagen für ``Hans ist Student'', ``Otto
  ist jünger als Ottilie'' usw. einführen. Dies ist nur möglich, wenn 1.
  alle involvierten Personen bekannt sind und fest stehen und 2. es nur
  endlich viele involvierte Personen gibt. - Sollen analoge Aussagen für
  das vorige oder das kommende Jahr gemacht werden, so ist die gesamte
  Kodierungsarbeit neu zu machen.

  \subsection{Kodierung in einer
    ``Struktur''}\label{kodierung-in-einer-struktur}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Grundmenge: Die Studenten und die Lehrenden in Veranstaltungen zur
          Theoretischen Informatik in diesem Sommersemester
    \item
          Teilmengen:
    \item
          $S(x)$ ``x ist Student''
    \item
          $LuLP(x)$ ``x nimmt an der Veranstaltung LuLP teil''
    \item
          $AuD(x)$ ``x nimmt an der Veranstaltung AuD teil''
    \item
          $Pr(x)$ ``x ist Professor''
    \item
          $WM(x)$ ``x ist wissenschaftlicher Mitarbeiter''
    \item
          Relationen:
    \item
          $J(x,y)$ ``x ist jünger als y''
    \item
          Funktion:
    \item
          $f(x)$ ist diejenige Person (aus dem genannten Kreis), mit der x am
          besten über Informatik reden kann.
    \item
          Konstante:
    \item
          $dk$ Dietrich Kuske
  \end{itemize*}

  Die in der Aussagenlogik nur schwer formulierbaren Aussagen werden nun -
  Für alle $x$ gilt $S(x)\vee WM(x)\vee Pr(x)$ - $Pr(dk)$ - Für alle $x$
  gilt $S(x)\rightarrow\lnot Pr(x)$ - Für alle $x$ und $y$ gilt
  $(S(x)\wedge Pr(y))\rightarrow J(x,y)$ - Es gibt ein $x$ mit
  $LuLP(x)\wedge AuD(x)$ - Es gibt ein $x$ mit
  $((\lnot LuLP(x)\vee\lnot AuD(x))\wedge\lnot WM(x))$ - Für alle $x$ gilt
  $S(x)\rightarrow J(x,f(x))$

  Bemerkung: Diese Formulierungen sind auch brauchbar, wenn die Grundmenge
  unendlich ist. Sie sind auch unabhängig vom Jahr (im nächsten Jahr
  können diese Folien wieder verwendet werden).

  Ziel - Wir wollen in der Lage sein, über Sachverhalte in ``Strukturen''
  (Graphen, Datenbanken, relle Zahlen, Gruppen\ldots{} ) zu reden. - Dabei
  soll es ``Relationen'' geben, durch die das Enthaltensein in einer
  Teilmenge oder Beziehungen zwischen Objekten ausgedrückt werden können
  (z.B. $S(x),J(x,y),...$ ) - Weiter soll es ``Funktionen'' geben, durch
  die Objekte (oder Tupel von Objekten) auf andere Objekte abgebildet
  werden (z.B. $f$) - Nullstellige Funktionen (ohne Argumente): Konstante
  (z.B. $dk$)

  Fragen - Nach welchen Regeln bildet man korrekte Formeln? - Was ist eine
  Struktur? - Wann hat eine Aussage in einer Struktur eine Bedeutung (ist
  ``sinnvoll'')? - Wann ``gilt'' eine Aussage in einer Struktur? - Gibt es
  Formeln, die in allen Strukturen gelten? - Kann man solche Formeln
  algorithmisch identifizieren? Gibt es einen Beweiskalkül wie das
  natürliche Schließen oder die SLD-Resolution? - \ldots{}\ldots{}\ldots{}

  \subsection{Syntax der
    Prädikatenlogik}\label{syntax-der-pruxe4dikatenlogik}

  Formeln machen Aussagen über Strukturen. Dabei hat es keinen Sinn zu
  fragen, ob eine Formel, die über Studenten etc. redet, im Graphen $G$
  gilt.

  \begin{quote}
    Definition

    Eine Signatur ist ein Tripel $\sum=(\Omega, Rel,ar)$, wobei $\Omega$ und
    $Rel$ disjunkte Mengen von Funktions- und Relationsnamen sind und
    $ar:\Omega\cup Rel\rightarrow\mathbb{N}$ eine Abbildung ist.
  \end{quote}

  Beispiel: $\Omega=\{f,dk\}$ mit $ar(f) =1,ar(dk)=0$ und
  $Rel=\{S,LuLP,AuD,Pr,WM,J\}$ mit
  $ar(S) =ar(LuLP) =ar(AuD) =ar(Pr) =ar(WM) =1 undar(J) = 2$ bilden die
  Signatur der Datenbank von vorhin. - typische Funktionsnamen:
  $f, g, a, b...$ mit $ar(f),ar(g) > 0$ und $ar(a) =ar(b) = 0$ - typische
  Relationsnamen: $R,S,...$

  \begin{quote}
    Definition

    Die Menge der Variablen ist $Var=\{x_0,x_1 ,...\}$.
  \end{quote}

  \begin{quote}
    Definition

    Sei $\sum$ eine Signatur. Die Menge $T_{\sum}$ der $\sum$-Terme ist
    induktiv definiert: 1. Jede Variable ist ein Term, d.h.
    $Var\subseteq T_{\sum}$ 2. ist $f\in\Omega$ mit $ar(f)=k$ und sind
    $t_1,...,t_k\in T_{\sum}$, so gilt $f(t_1,...,t_k)\in T_{\sum}$ 3.
    Nichts ist $\sum$-Term, was sich nicht mittels der obigen Regeln
    erzeugen läßt.
  \end{quote}

  Beispiel:In der Signatur der Datenbank von vorhin haben wir u.a. die
  folgenden Terme: - $x_1$ und $x_8$ - $f(x_0)$ und $f(f(x_3))$ - $dk()$
  und $f(dk())$ - hierfür schreiben wir kürzer $dk$ bzw. $f(dk)$

  \begin{quote}
    Definition

    Sei $\sum$ Signatur. Die atomaren $\sum$-Formeln sind die Zeichenketten
    der Form - $R(t_1,t_2,...,t_k)$ falls $t_1,t_2,...,t_k\in T_{\sum}$ und
    $R\in Rel$ mit $ar(R)=k$ oder - $t_1=t_2$ falls $t_1,t_2\in T_{\sum}$
    oder - $\bot$.
  \end{quote}

  Beispiel: In der Signatur der Datenbank von vorhin haben wir u.a. die
  folgenden atomaren Formeln: - $S(x_1)$ und $LuLP(f(x4))$ - $S(dk)$ und
  $AuD(f(dk))$

  \begin{quote}
    Definition

    Sei $\sum$ Signatur. $\sum$-Formeln werden durch folgenden induktiven
    Prozeß definiert: 1. Alle atomaren $\sum$-Formeln sind $\sum$-Formeln.
    2. Falls $\varphi$ und $\Psi$ $\sum$-Formeln sind, sind auch
    $(\varphi\wedge\Psi)$,$(\varphi\vee\Psi)$ und $(\varphi\rightarrow\Psi)$
    $\sum$-Formeln. 3. Falls $\varphi$ eine $\sum$-Formel ist, ist auch
    $\lnot\varphi$ eine $\sum$-Formel. 4. Falls $\varphi$ eine $\sum$-Formel
    und $x\in Var$, so sind auch $\forall x\varphi$ und $\exists x\varphi$
    $\sum$-Formeln. 5. Nichts ist $\sum$-Formel, was sich nicht mittels der
    obigen Regeln erzeugen läßt.
  \end{quote}

  Ist die Signatur $\sum$ aus dem Kontext klar, so sprechen wir einfach
  von Termen, atomaren Formeln bzw.Formeln.

  Beispiel:In der Signatur der Datenbank von vorhin haben wir u.a. die
  folgenden Formeln: - $\forall x_0 (S(x_0)\vee WM(x_0)\vee Pr(x_0))$ -
  $Pr(dk)$ - $\forall x_3 (S(x_3)\rightarrow\lnot Pr(x_3))$ -
  $\forall x_0 \forall x_2 ((S(x_0)\wedge Pr(x_2))\rightarrow J(x_0,x_2))$
  - $\exists x_1 (LuLP(x_1)\wedge AuD(x_1))$ -
  $\exists x_2 ((\lnot LuLP(x_2)\vee\lnot AuD(x_2))\wedge\lnot WM(x_2))$ -
  $\forall x_1 (S(x_1)\rightarrow J(x_1,f(x_1)))$

  Wir verwenden die aus der Aussagenlogik bekannten Abkürzungen, z.B.
  steht $\varphi\leftrightarrow\Psi$ für
  $(\varphi\rightarrow\Psi)\wedge(\Psi\rightarrow\varphi)$.

  Zur verbesserten Lesbarkeit fügen wir mitunter hinter quantifizierten
  Variablen einen Doppelpunkt ein, z.B. steht $\exists x\forall y:\varphi$
  für $\exists x\forall y\varphi$

  Ebenso verwenden wir Variablennamen $x$,$y$,$z$ u.ä.

  Präzedenzen: $\lnot,\forall x,\exists x$ binden am stärksten

  Beispiel:
  $(\lnot\forall x:R(x,y)\wedge\exists z:R(x,z))\rightarrow P(x,y,z)$
  steht für
  $((\lnot(\forall x:R(x,y))\wedge\exists z:R(x,z))\rightarrow P(x,y,z))$

  \subsection{Aufgabe}\label{aufgabe}

  Im folgenden seien - $P$ ein-stelliges, $Q$ und $R$ zwei-stellige
  Relationssymbole, - $a$ null-stelliges und $f$ ein-stelliges
  Funktionssymbol und - $x,y$ und $z$ Variable.

  Welche der folgenden Zeichenketten sind Formeln? \textbar{} \textbar{}
  \textbar{} \textbar{} ---------------------------------------------
  \textbar{} ---- \textbar{} \textbar{} $\forall x P(a)$ \textbar{} ja
  \textbar{} \textbar{} $\forall x\exists y(Q(x,y)\vee R(x))$ \textbar{}
  nein \textbar{} \textbar{} $\forall x Q(x,x)\rightarrow\exists x Q(x,y)$
  \textbar{} ja \textbar{} \textbar{} $\forall x P(f(x))\vee\forall$ x
  Q(x,x)\$ \textbar{} ja \textbar{} \textbar{}
  $\forall x(P(y)\wedge\forall y P(x))$ \textbar{} ja \textbar{}
  \textbar{} $P(x) \rightarrow\exists x Q(x,P(x))$ \textbar{} nein
  \textbar{} \textbar{} $\forall f\exists x P(f(x))$ \textbar{} nein
  \textbar{}

  \begin{quote}
    Definition

    Sei $\sum$ eine Signatur. Die Menge $FV(\varphi)$ der freien Variablen
    einer $\sum$-Formel $\varphi$ ist induktiv definiert: - Ist $\varphi$
    atomare $\sum$-Formel, so ist $FV(\varphi)$ die Menge der in $\varphi$
    vorkommenden Variablen. -
    $FV(\varphi\Box\Psi) =FV(\varphi)\cup FV(\Psi)$ für
    $\Box\in\{\wedge,\vee,\rightarrow\}$ - $FV(\lnot\varphi) =FV(\varphi)$ -
    $FV(\exists x\varphi) =FV(\forall x\varphi) =FV(\varphi)\backslash\{x\}$.
    Eine $\sum$-Formel $\varphi$ ist geschlossen oder ein $\sum$-Satz, wenn
    $FV(\varphi)=\varnothing$ gilt.
  \end{quote}

  Was sind die freien Variablen der folgenden Formeln? Welche Formeln sind
  Sätze? \textbar{} \textbar{} freie Variablen? \textbar{} Satz?
  \textbar{} \textbar{}
  -----------------------------------------------------------------------
  \textbar{} ---------------- \textbar{} ----- \textbar{} \textbar{}
  $\forall x P(a)$ \textbar{} nein \textbar{} ja \textbar{} \textbar{}
  $\forall x Q(x,x)\rightarrow\exists x Q(x,y)$ \textbar{} y \textbar{}
  nein \textbar{} \textbar{} $\forall x P(x)\vee\forall x Q(x,x)$
  \textbar{} nein \textbar{} ja \textbar{} \textbar{}
  $\forall x(P(y)\wedge\forall y P(x))$ \textbar{} y \textbar{} nein
  \textbar{} \textbar{} $\forall x(\lnot\forall y Q(x,y)\wedge R(x,y))$
  \textbar{} y \textbar{} nein \textbar{} \textbar{}
  $\exists z(Q(z,x)\vee R(y,z))\rightarrow\exists y(R(x,y)\wedge Q(x,z))$
  \textbar{} x,y,z \textbar{} nein \textbar{} \textbar{}
  $\exists x(\lnot P(x)\vee P(f(a)))$ \textbar{} nein \textbar{} ja
  \textbar{} \textbar{} $P(x)\rightarrow\exists x P(x)$ \textbar{} x
  \textbar{} nein \textbar{} \textbar{}
  $\exists x\forall y((P(y)\rightarrow Q(x,y))\vee\lnot P(x))$ \textbar{}
  x \textbar{} nein \textbar{} \textbar{} $\exists x\forall x Q(x,x)$
  \textbar{} nein \textbar{} ja \textbar{}

  Semantik der Prädikatenlogik - Erinnerung: Die Frage ``Ist die
  aussagenlogische Formel $\varphi$ wahr oder falsch?'' war sinnlos, denn
  wir wissen i.a. nicht, ob die atomaren Aussagen wahr oder falsch sind. -
  Analog: Die Frage ``Ist die prädikatenlogische Formel $\varphi$ wahr
  oder falsch?'' ist sinnlos, denn wir wissen bisher nicht, über welche
  Objekte, über welche ``Struktur'' $\varphi$ spricht.

  \begin{quote}
    Definition

    Sei $\sum$ eine Signatur. Eine $\sum$-Struktur ist ein Tupel
    $A=(U_A,(f^A)_{f\in\Omega},(R^A)_{R\in Rel})$, wobei - $U_A$ eine
    nichtleere Menge, das Universum, - $R^A\supseteq U_A^{ar(R)}$ eine
    Relation der Stelligkeit $ar(R)$ für $R\in Rel$ und -
    $f^A:U_A^{ar(f)}\rightarrow U_A$ eine Funktion der Stelligkeit $ar(f)$
    für $f\in\Omega$ ist.
  \end{quote}

  Bemerkung: $U_A^0=\{()\}$. - Also ist $a^A:U_A^0\rightarrow U_A$ für
  $a\in\Omega$ mit $ar(a)=0$ vollständig gegeben durch $a^A(())\in U_A$.
  Wir behandeln 0-stellige Funktionen daher als Konstanten. - Weiterhin
  gilt $R^A=\varnothing$ oder $R^A=\{()\}$ für $R\in Rel$ mit $ar(R)=0$.

  Beispiel: Graph - Sei $\sum=(\Omega ,Rel,ar)$ mit
  $\Omega=\varnothing ,Rel=\{E\}$ und $ar(E)=2$ die Signatur der Graphen.
  - Um den Graphen als $\sum$-Struktur $A=(UA,EA)$ zu betrachten, setzen
  wir - $UA=\{v_1,v_2,...,v_9\}$ und -
  $EA=\{(v_i,v_j)|(v_i,v_j) ist Kante\}$

  Im folgenden sei $\sum$ eine Signatur, A eine $\sum$-Struktur und
  $\rho:Var\rightarrow U_A$ eine Abbildung (eine Variableninterpretation).
  Wir definieren eine Abbildung $\rho':T\sum\rightarrow U_A$ induktiv für
  $t\in T_{\sum}$: - ist $t\in Var$, so setze $\rho'(t) =\rho(t)$ -
  ansonsten existieren $f\in\Omega$ mit $ar(f)=k$ und
  $t_1,...,t_k\in T_{\sum}$ mit $t=f(t_1,...,t_k)$. Dann setze
  $\rho'(t) =f^A(\rho'(t_1),...,\rho'(t_k))$. Die Abbildung $\rho'$ ist
  die übliche ``Auswertungsabbildung''. Zur Vereinfachung schreiben wir
  auch $\rho(t)$ an Stelle von $\rho'(t)$.

  Beispiel: - Seien $A=(R,f^A,a^A)$ mit $f^A$ die Subtraktion und $a$
  nullstelliges Funktionssymbol mit $a^A=10$. Seien weiter $x,y\in Var$
  mit $\rho(x)=7$ und $\rho(y)=-2$. Dann gilt
  $\rho(f(a,f(x,y))) =\rho(a)-(\rho(x)-\rho(y)) =a^A-(\rho(x)-\rho(y)) = 1$
  - Seien $A= (Z,f^A,a^A)$ mit $f^A$ die Maximumbildung, $a$ nullstelliges
  Funktionssymbol mit $a^A=10$. Seien weiter $x,y\in Var$ mit $\rho(x)=7$
  und $\rho(y)=-2$. In diesem Fall gilt
  $\rho(f(a,f(x,y))) = max(\rho(a),max(\rho(x),\rho(y)) = max(a^A,max(\rho(x),\rho(y))) = 10$

  Bemerkung: Wir müssten also eigentlich noch vermerken, in welcher
  Struktur $\rho(t)$ gebildet wird - dies wird aber aus dem Kontext immer
  klar sein.

  Für eine $\sum$-Formel $\varphi$ definieren wir die Gültigkeit in einer
  $\sum$-Struktur $A$ unter der Variableninterpretation $\rho$ (in
  Zeichen: $A\Vdash_\rho\varphi$) induktiv: - $A\Vdash_\rho\bot$ gilt
  nicht. - $A\Vdash_\rho R(t_1,...,t_k)$ falls
  $(\rho(t_1),...,\rho(t_k))\in R^A$ für $R\in Rel$ mit $ar(R)=k$ und
  $t_1,...,t_k\in T_{\sum}$. - $A\Vdash_\rho t_1 =t_2$ falls
  $\rho(t_1) =\rho(t_2)$ für $t_1,t_2\in T_{\sum}$.

  Für $\sum$-Formeln $\varphi$ und $\Psi$ und $x\in Var$: -
  $A\Vdash_p \varphi\wedge\Psi$ falls $A\Vdash_p\varphi$ und
  $A\Vdash_p \Psi$. - $A\Vdash_p \varphi\vee\Psi$ falls $A\Vdash_p\varphi$
  oder $A\Vdash_p\Psi$ . - $A\Vdash_p \varphi\rightarrow\Psi$ falls nicht
  $A\Vdash_p\varphi$ oder $A\Vdash_p\Psi$ . - $A\Vdash_p \lnot\varphi$
  falls $A\Vdash_p \varphi$ nicht gilt. - $A\Vdash_p \exists x\varphi$
  falls ??? - $A\Vdash_p \forall x\varphi$ falls ???

  Für $x\in Var$ und $a\in U_A$ sei
  $\rho[x\rightarrow a]:Var\rightarrow U_A$ die Variableninterpretation,
  für die gilt
  $(\rho[x\rightarrow a])(y) = \begin{cases} \rho(y) \quad\text{ falls } x\not=y \\ a \quad\text{ sonst } \end{cases}$
  - $A\Vdash_p \exists x\varphi$ falls es $a\in U_A$ gibt mit
  $A\Vdash_{p[x\rightarrow a]}\varphi$. - $A\Vdash_p \forall x\varphi$
  falls $A\Vdash_{p[x\rightarrow a]}\varphi$ für alle $a\in U_A$.

  \begin{quote}
    Definition

    Sei $\sum$ eine Signatur, $\varphi$ eine $\sum$-Formel, $\Delta$ eine
    Menge von $\sum$-Formeln und $A$ eine $\sum$-Struktur. -
    $A\Vdash\varphi$ ($A$ ist Modell von $\varphi$) falls $A\Vdash_p\varphi$
    für alle Variableninterpretationen $\rho$ gilt. - $A\Vdash\Delta$ falls
    $A\Vdash\Psi$ für alle $\Psi\in\Delta$.
  \end{quote}

  Aufgaben - Sei $A$ die Struktur, die dem vorherigen Graphen entspricht -
  Welche der folgenden Formeln $\varphi$ gelten in $A$, d.h. für welche
  Formeln gilt $A\Vdash_p\varphi$ für alle Variableninterpretationen
  $\rho$? 1. $\exists x\exists y:E(x,y)$ 2. $\forall x\exists y:E(x,y)$ 3.
  $\exists x\forall y:(x\not=y\rightarrow E(x,y))$ 4.
  $\forall x\forall y:(x\not=y\rightarrow E(x,y))$ 5.
  $\exists x\exists y\exists z:(E(x,y)\wedge E(y,z)\wedge E(z,x))$ - In
  der Prädikatenlogik ist es also möglich, die Eigenschaften vom Anfang
  des Kapitels auszudrücken, ohne den Graphen direkt in die Formel zu
  kodieren.

  \begin{quote}
    Definition

    Sei $\sum$ eine Signatur, $\varphi$ eine $\sum$-Formel, $\Delta$ eine
    Menge von $\sum$-Formeln und $A$ eine $\sum$-Struktur. - $\Delta$ ist
    erfüllbar, wenn es $\sum$-Struktur $B$ und Variableninterpretation
    $\rho:Var\rightarrow U_B$ gibt mit $B\Vdash_\rho\Psi$ für alle
    $\Psi\in\Delta$. - $\varphi$ ist semantische Folgerung von
    $\Delta(\Delta\Vdash\varphi)$ falls für alle $\sum$-Strukturen $B$ und
    alle Variableninterpretationen $\rho:Var\rightarrow U_B$ gilt: Gilt
    $B\Vdash_\rho\Psi$ für alle $\Psi\in\Delta$, so gilt auch
    $B\Vdash_\rho \varphi$. - $\varphi$ ist allgemeingültig, falls
    $B\Vdash \rho\varphi$ für alle $\sum$-Strukturen $B$ und alle
    Variableninterpretationen $\rho$ gilt.
  \end{quote}

  Bemerkung: $\varphi$ allgemeingültig gdw. $\varnothing\Vdash\varphi$
  gdw. $\{\lnot\varphi\}$ nicht erfüllbar. Hierfür schreiben wir auch
  $\Vdash\varphi$.

  Beispiel: Der Satz
  $\varphi=(\forall x:R(x)\rightarrow\forall x:R(f(x)))$ ist
  allgemeingültig.

  Beweis: Sei $\sum$ Signatur, so dass $\varphi$ $\sum$-Satz ist. Sei $A$
  $\sum$-Struktur und $\rho$ Variableninterpretation. Wir betrachten zwei
  Fälle: 1. Falls $A\not\Vdash_\rho\forall x R(x)$, so gilt
  $A\Vdash_p\varphi$. 2. Wir nehmen nun $A\Vdash_p\forall x R(x)$ an. Sei
  $a\in U_A$ beliebig und $b=f^A(a)$.
  $A\Vdash_p\forall x R(x) \Rightarrow A\Vdash_{p[x\rightarrow b]} R(x) \Rightarrow RA\owns (p[x\rightarrow b])(x) = b = f^A(a) = (\rho[x\rightarrow a])(f(x)) \Rightarrow A\Vdash_{p[x\rightarrow a]}R(f(x))$.
  Da $a\in U_A$ beliebig war, haben wir also $A\Vdash_p\forall x:R(f(x))$.
  Also gilt auch in diesem Fall $A\Vdash_p\varphi$. Da $A$ und $\rho$
  beliebig waren, ist $\varphi$ somit allgemeingültig.

  Beispiel: - Der Satz $\varphi =\exists x(R(x)\rightarrow R(f(x)))$ ist
  allgemeingültig. - Beweis: Sei $\sum$ Signatur, so dass $\varphi$
  $\sum$-Satz ist. Sei $A$ $\sum$-Struktur und $\rho$
  Variableninterpretation. Wir betrachten wieder zwei Fälle: 1.
  Angenommen, $R^A=U_A$. Sei $a\in U_A$ beliebig. -
  $\Rightarrow f^A(a)\in R^A$ -
  $\Rightarrow A\Vdash_{p[x\rightarrow a]} R(f(x))$ -
  $\Rightarrow A\Vdash_{p[x\rightarrow a]} R(x)\rightarrow R(f(x))$ -
  $\Rightarrow A\Vdash_p\varphi$. 2. Ansonsten existiert
  $a\in U_A\backslash R^A$. -
  $\Rightarrow A\not\Vdash_{p[x\rightarrow a]} R(x)$ -
  $\Rightarrow A\Vdash_{p[x\rightarrow a]} R(x)\rightarrow R(f(x))$ -
  $\Rightarrow A\Vdash_p \varphi$. Da $A$ und $\rho$ beliebig waren, ist
  $\varphi$ somit allgemeingültig.

  Aufgabe \textbar{} \textbar{} allgemeingültig \textbar{} erfüllbar
  \textbar{} unerfüllbar \textbar{} \textbar{}
  --------------------------------------------------------------------
  \textbar{} --------------- \textbar{} --------- \textbar{} -----------
  \textbar{} \textbar{} $P(a)$ \textbar{} nein \textbar{} ja \textbar{}
  nein \textbar{} \textbar{} $\exists x:(\lnot P(x)\vee P(a))$ \textbar{}
  ja \textbar{} ja \textbar{} nein \textbar{} \textbar{}
  $P(a)\rightarrow\exists x:P(x)$ \textbar{} ja \textbar{} ja \textbar{}
  nein \textbar{} \textbar{} $P(x)\rightarrow\exists x:P(x)$ \textbar{} ja
  \textbar{} ja \textbar{} nein \textbar{} \textbar{}
  $\forall x:P(x)\rightarrow\exists x:P(x)$ \textbar{} ja \textbar{} ja
  \textbar{} nein \textbar{} \textbar{}
  $\forall x:P(x)\wedge\lnot\forall y:P(y)$ \textbar{} nein \textbar{}
  nein \textbar{} ja \textbar{} \textbar{}
  $\forall x:(P(x,x)\rightarrow\exists x\forall y:P(x,y))$ \textbar{} nein
  \textbar{} ja \textbar{} nein \textbar{} \textbar{}
  $\forall x\forall y:(x=y\rightarrow f(x) =f(y))$ \textbar{} ja
  \textbar{} ja \textbar{} nein \textbar{} \textbar{}
  $\forall x\forall y:(f(x) =f(y)\rightarrow x=y)$ \textbar{} nein
  \textbar{} ja \textbar{} nein \textbar{} \textbar{}
  $\exists x\exists y\exists z:(f(x) =y\wedge f(x) =z\wedge y \not=z)$
  \textbar{} nein \textbar{} nein \textbar{} ja \textbar{} \textbar{}
  $\exists x\forall x:Q(x,x)$ \textbar{} nein \textbar{} ja \textbar{}
  nein \textbar{}

  \subsection{Substitutionen}\label{substitutionen}

  \begin{quote}
    Definition

    Eine Substitution besteht aus einer Variable $x\in Var$ und einem Term
    $t\in T_{\sum}$, geschrieben $[x:=t]$.
  \end{quote}

  Die Formel $\varphi[x:=t]$ ist die Anwendung der Substitution $[x:=t]$
  auf die Formel $\varphi$. Sie entsteht aus $\varphi$, indem alle freien
  Vorkommen von $x$ durch $t$ ersetzt werden. Sie soll das über $t$
  aussagen, was $\varphi$ über $x$ ausgesagt hat. Dazu definieren wir
  zunächst induktiv, was es heißt, die freien Vorkommen von $x$ im Term
  $s\in T_{\sum}$ zu ersetzen: - $x[x:=t] =t$ - $y[x:=t] =y$ für
  $y\in Var\backslash\{x\}$ -
  $(f(t_1 ,...,t_k))[x:=t] =f(t_1 [x:=t],...t_k[x:=t])$ für $f\in\Omega$
  mit $ar(f) =k$ und $t_1,...,t_k\in T_{\sum}$

  \begin{quote}
    Lemma

    Seien $\sum$ Signatur, $A$ $\sum$-Struktur, $\rho:Var\rightarrow U_A$
    Variableninterpretation, $x\in Var$ und $s,t\in T_{\sum}$. Dann gilt
    $\rho(s[x:=t])=\rho[x\rightarrow \rho(t)](s)$.
  \end{quote}

  Beweis: Induktion über den Aufbau des Terms $s$ (mit
  $\rho'=\rho[x\rightarrow \rho(t)]$ ): -
  $s=x:\rho(s[x:=t])=\rho(t) =\rho'(x) =\rho'(s)$ -
  $s\in Var\backslash\{x\}:\rho(s[x:=t])=\rho(s) =\rho'(s)$ -
  $s=f(t_1 ,...,t_k):\rho((f(t_1 ,...,t_k))[x:=t])= \rho(f(t_1[x:=t],...,t_k[x:=t]))= f^A(\rho(t_1[x:=t]),...,\rho(t_k[x:=t])) = f^A(\rho'(t_1),...,\rho'(t_k))= \rho'(f(t_1 ,...,t_k))=\rho'(s)$

  Die Definition von $s[x:=t]$ kann induktiv auf $\sum$-Formeln
  fortgesetzt werden: - $(t_1 =t_2 )[x:=t] = (t_1 [x:=t] =t_2 [x:=t])$ für
  $t_1 ,t_2 \in T_{\sum}$ -
  $(R(t_1 ,...,t_k))[x:=t] =R(t_1 [x:=t],...,t_k[x:=t])$ für $R\in Rel$
  mit $ar(R) =k$ und $t_1 ,...,t_k\in T_{\sum}$ - $\bot[x:=t] =\bot$

  Für $\sum$ -Formeln $\varphi$ und $\Psi$ und $y\in Var$: -
  $(\varphi\Box\Psi)[x:=t]=\varphi [x:=t]\Box\Psi[x:=t]$ für
  $\Box\in\{\wedge,\vee,\rightarrow\}$ -
  $(\lnot\varphi)[x:=t] = \lnot(\varphi[x:=t])$ -
  $(Qy\varphi)[x:=t] = \begin{cases} Qy\varphi[x:=t] \quad\text{ falls } x\not=y \\ Qy\varphi \quad\text{ falls } x=y \end{cases} \text{ für } Q\in\{\exists,\forall\}$.

  Beispiel:
  $(\exists x P(x,f(y))\vee\lnot\forall yQ(y,g(a,h(z))))[y:=f(u)] = (\exists x P(x,f(f(u)))\vee\lnot\forall yQ(y,g(a,h(z))))$

  $\varphi [x:=t]$ ``soll das über $t$ aussagen, was $\varphi$ über $x$
  ausgesagt hat.''

  Gegenbeispiel: Aus $\exists y$ $Mutter(x) =y$ mit Substitution
  $[x:=Mutter(y)]$ wird $\exists y$ Mutter$(Mutter(y)) =y$.

  \begin{quote}
    Definition

    Sei $[x:=t]$ Substitution und $\varphi$ $\sum$-Formel. Die Substitution
    $[x:=t]$ heißt für $\varphi$ zulässig, wenn für alle $y\in Var$ gilt:
    $y$ Variable in $t\Rightarrow\varphi$ enthält weder $\exists y$ noch
    $\forall y$
  \end{quote}

  \begin{quote}
    Lemma

    Sei $\sum$ Signatur, A $\sum$-Struktur, $\rho:Var\rightarrow U_A$
    Variableninterpretation, $x\in Var$ und $t\in T_{\sum}$. Ist die
    Substitution $[x:=t]$ für die $\sum$-Formel $\varphi$ zulässig, so gilt
    $A\Vdash_p\varphi [x:=t]\Leftrightarrow  A\Vdash_{p[x\rightarrow \rho(t)]}\varphi$.
  \end{quote}

  Beweis: Induktion über den Aufbau der Formel $\varphi$ (mit
  $\rho'=\rho[x\rightarrow \rho(t)])$: - $\varphi = (s_1 =s_2)$: -
  $A\Vdash_p(s_1 =s_2)[x:=t] \Leftrightarrow A\Vdash_p s_1[x:=t] =s_2[x:=t]$
  -
  $\Leftrightarrow \rho(s_1[x:=t]) =\rho(s_2[x:=t])\Leftrightarrow \rho'(s_1) =\rho'(s_2)$
  - $\Leftrightarrow A\Vdash_{p'} s_1 =s_2$ - andere atomare Formeln
  analog - $\varphi =\varphi_1\wedge\varphi_2$: -
  $A\Vdash_p(\varphi_1\wedge\varphi_2)[x:=t] \Leftrightarrow A\Vdash_p\varphi_1 [x:=t]\wedge\varphi_2[x:=t]$
  - $\Leftrightarrow A\Vdash_p\varphi_1[x:=t]$ und
  $A\Vdash_p\varphi_2[x:=t]$ - $\Leftrightarrow A\Vdash_{p'}\varphi_1$ und
  $A\Vdash_{p'}\varphi_2$ -
  $\Leftrightarrow A\Vdash_{p'}\varphi_1\wedge\varphi_2$ -
  $\varphi=\varphi_1\vee\varphi_2,\varphi =\varphi_1\rightarrow\varphi_2$
  und $\varphi=\lnot\psi$ analog - $\varphi=\forall y\psi$: - Wir
  betrachten zunächst den Fall $x=y$: -
  $A\Vdash_p(\forall x\psi)[x:=t]\Leftrightarrow A\Vdash_p\forall x\psi \Leftrightarrow A\Vdash_{p'}\forall x\psi$
  (denn $x\not\in FV(\forall x\psi)$ ) - Jetzt der Fall $x\not=y$: - Für
  $a\in U_A$ setze $\rho_a=\rho[y\rightarrow a]$. Da $[x:=t]$ für
  $\varphi$ zulässig ist, kommt $y$ in $t$ nicht vor. Zunächst erhalten
  wir - $\rho_a[x\rightarrow \rho_a(t)] = \rho_a[x\rightarrow \rho(t)]$ da
  $y$ nicht in $t$ vorkommt -
  $=\rho[y\rightarrow a][x\rightarrow \rho(t)] = \rho[x\rightarrow \rho(t)][y\rightarrow a]$
  da $x\not=y$ - Es ergibt sich
  $A\Vdash_p(\forall y\psi)[x:=t]\Leftrightarrow A\Vdash_p\forall y(\psi[x:=t])$
  (wegen $x\not=y$) - $\Leftrightarrow A\Vdash_{pa}\psi[x:=t]$ für alle
  $a\in U_A$ - $\Leftrightarrow A\Vdash_{pa[x\rightarrow \rho_a(t)]}\psi$
  für alle $a\in U_A$ -
  $\Leftrightarrow A\Vdash_{p[x\rightarrow \rho(t)][y\rightarrow a]}\psi$
  für alle $a\in U_A$ -
  $\Leftrightarrow A\Vdash_{p[x\rightarrow \rho(t)]}\forall y\psi$ -
  $\varphi=\exists y\psi$ : analog

  \subsection{Natürliches Schließen}\label{natuxfcrliches-schlieuxdfen-1}

  Wir haben Regeln des natürlichen Schließens für aussagenlogische Formeln
  untersucht und für gut befunden. Man kann sie natürlich auch für
  prädikatenlogische Formeln anwenden.

  Beispiel: Für alle $\sum$-Formel $\varphi$ und $\psi$ gibt es eine
  Deduktion mit Hypothesen in $\{\lnot\varphi\wedge\lnot\psi\}$ und
  Konklusion $\lnot(\varphi\vee\psi)$:
  \includegraphics[width=\linewidth]{Assets/Logik-deduktion-konklusion.png}

  \subsection{Korrektheit}\label{korrektheit-1}

  Können wir durch mathematische Beweise zu falschen Aussagen kommen?
  Können wir durch das natürliche Schließen zu falschen Aussagen kommen?
  Existiert eine Menge $\Gamma$ von $\sum$-Formeln und eine $\sum$-Formel
  $\varphi$ mit $\Gamma\vdash\varphi$ und $\Gamma\not\Vdash\varphi$?

  Frage: Gilt $\Gamma\vdash\varphi\Rightarrow \Gamma\Vdash\varphi$ bzw.
  $\varphi$ ist Theorem $\Rightarrow\varphi$ ist allgemeingültig?

  Der Beweis des Korrektheitslemmas für das natürliche Schließen kann ohne
  große Schwierigkeiten erweitert werden. Man erhält

  \begin{quote}
    Lemma V0

    Sei $\sum$ eine Signatur, $\Gamma$ eine Menge von $\sum$-Formeln und
    $\varphi$ eine $\sum$-Formel. Sei weiter $D$ eine Deduktion mit
    Hypothesen in $\Gamma$ und Konklusion $\varphi$, die die Regeln des
    natürlichen Schließens der Aussagenlogik verwendet. Dann gilt
    $\Gamma\Vdash\varphi$.
  \end{quote}

  Umgekehrt ist nicht zu erwarten, dass aus $\Gamma\Vdash\varphi$ folgt,
  dass es eine Deduktion mit Hypothesen in $\Gamma$ und Konklusion
  $\varphi$ gibt, denn die bisher untersuchten Regeln erlauben keine
  Behandlung von $=,\forall$ bzw. $\exists$. Solche Regeln werden wir
  jetzt einführen.

  Zunächst kümmern wir uns um Atomformeln der Form $t_1 =t_2$. Hierfür
  gibt es die zwei Regeln $(R)$ und $(GfG)$:

  \begin{quote}
    Reflexivität (ausführlich)

    Für jeden Termt ist $\frac{}{t=t}$ eine hypothesenlose Deduktion mit
    Konklusion $t=t$. \includegraphics[width=\linewidth]{Assets/Logik-reflexivität-kurz.png}
  \end{quote}

  \begin{quote}
    Gleiches-für-Gleiches in mathematischen Beweisen

    ,,Zunächst zeige ich, dass $s$ die Eigenschaft $\varphi$ hat:\ldots{}
    Jetzt zeige ich $s=t$:\ldots{} Also haben wir gezeigt, dass $t$ die
    Eigenschaft $\varphi$ hat. qed''

    Gleiches-für-Gleiches (ausführlich) Seien $s$ und $t$ Terme und
    $\varphi$ Formel, so dass die Substitutionen $[x:=s]$ und $[x:=t]$ für
    $\varphi$ zulässig sind. Sind $D$ und $E$ Deduktionen mit Hypothesen in
    $\Gamma$ und Konklusionen $\varphi[x:=s]$ bzw. $s=t$, so ist das
    folgende eine Deduktion mit Hypothesen in $\Gamma$ und Konklusion
    $\varphi[x:=t]$:
    \includegraphics[width=\linewidth]{Assets/Logik-gleiches-für-gleiches-ausführlich.png}

    Gleiches-für-Gleiches (Kurzform)
    \includegraphics[width=\linewidth]{Assets/Logik-gleiches-für-gleiches-kurz.png} Bedingung:
    über keine Variable aus $s$ oder $t$ wird in $\varphi$ quantifiziert
  \end{quote}

  Die folgenden Beispiele zeigen, dass wir bereits jetzt die üblichen
  Eigenschaften der Gleichheit (Symmetrie, Transitivität, Einsetzen)
  folgern können.

  Beispiel: Seien $x$ Variable, $s$ Term ohne $x$ und $\varphi=(x=s)$. -
  Da $\varphi$ quantorenfrei ist, sind die Substitutionen $[x:=s]$ und
  $[x:=t]$ für $\varphi$ zulässig. - Außerdem gelten
  $\varphi[x:=s] = (s=s)$ und $\varphi[x:=t] = (t=s)$. - Also ist das
  folgende eine Deduktion:
  \includegraphics[width=\linewidth]{Assets/Logik-deduktion-beispiel.png} - Für alle
  Termesundthaben wir also $\{s=t\}\vdash t=s$.

  Beispiel: Seien $x$ Variable, $r,s$ und $t$ Terme ohne $x$ und
  $\varphi=(r=x)$. - Da $\varphi$ quantorenfrei ist, sind die
  Substitutionen $[x:=s]$ und $[x:=t]$ für $\varphi$ zulässig. - Außerdem
  gelten $\varphi[x:=s]=(r=s)$ und $\varphi[x:=t]=(r=t)$. - Also ist das
  folgende eine Deduktion:
  \includegraphics[width=\linewidth]{Assets/Logik-deduktion-beispiel-2.png} - Für alle Terme
  $r,s$ und $t$ haben wir also $\{r=s,s=t\}\vdash r=t$.

  Beispiel: Seien $x$ Variable, $s$ und $t$ Terme ohne $x$,$f$
  einstelliges Funktionssymbol und $\varphi=(f(s)=f(x))$. - Da $\varphi$
  quatorenfrei ist, sind die Substitutionen $[x:=s]$ und $[x:=t]$ für
  $\varphi$ zulässig. - Außerdem gelten $\varphi[x:=s]=(f(s)=f(s))$ und
  $\varphi[x:=t]=(f(s)=f(t))$. - Also ist das folgende eine Deduktion:
  \includegraphics[width=\linewidth]{Assets/Logik-deduktion-beispiel-3.png}

  \begin{quote}
    Lemma V1

    Sei $\sum$ eine Signatur, $\Gamma$ eine Menge von $\sum$-Formeln und
    $\varphi$ eine $\sum$-Formel. Sei weiter $D$ eine Deduktion mit
    Hypothesen in $\Gamma$ und Konklusion $\varphi$, die die Regeln des
    natürlichen Schließens der Aussagenlogik, $(R)$ und $(GfG)$ verwendet.
    Dann gilt $\Gamma\Vdash\varphi$.
  \end{quote}

  Beweis: Wir erweitern den Beweis des Korrektheitslemmas bzw. des Lemmas
  V0, der Induktion über die Größe der Deduktion $D$ verwendete. - Wir
  betrachten nur den Fall, dass $D$ die folgende Form hat:
  \includegraphics[width=\linewidth]{Assets/Logik-lemma-v1-beweis.png} - Da dies Deduktion
  ist, sind die Substitutionen $[x:=s]$ und $[x:=t]$ für $\varphi$
  zulässig, d.h. in $\varphi$ wird über keine Variable aus $s$ oder $t$
  quantifiziert. - $E$ und $F$ kleinere Deduktionen
  $\Rightarrow\Gamma\Vdash\varphi[x:=s]$ und $\Gamma\Vdash s=t$ - Seien A
  $\sum$-Struktur und $\rho$ Variableninterpretation mit $A\Vdash_p\gamma$
  für alle $\gamma\in\Gamma$. - $\Rightarrow A\Vdash_p\varphi[x:=s]$ und
  $A\Vdash_p s=t$ - $\Rightarrow A\Vdash_{p[x\rightarrow \rho(s)]}\varphi$
  und $\rho(s) =\rho(t)$ -
  $\Rightarrow A\Vdash_{p[x\rightarrow \rho(t)]}\varphi$ -
  $\Rightarrow A\Vdash_p \varphi[x:=t]$ - Da $A$ und $\rho$ beliebig waren
  mit $A\Vdash_p\gamma$ für alle $\gamma\in\Gamma$ haben wir
  $\Gamma\Vdash\varphi[x:=t]$ gezeigt.

  \subsubsection{$\forall$ in math.
    Beweisen}\label{forall-in-math.-beweisen}

  Ein mathematischer Beweis einer Aussage ``für alle $x$ gilt $\varphi$''
  sieht üblicherweise so aus: ``Sei $x$ beliebig, aber fest. Jetzt zeige
  ich $\varphi$ (hier steckt die eigentliche Arbeit). Da $x$ beliebig war,
  haben wird''für alle $x$ gilt $\varphi$" gezeigt. qed"

  \begin{quote}
    $\forall$ -Einführung

    Sei $D$ eine Deduktion mit Hypothesen in $\Gamma$ und Konklusion
    $\varphi$ und sei $x$ eine Variable, die in keiner Formel aus $\Gamma$
    frei vorkommt. Dann ist das folgende eine Deduktion mit Hypothesen in
    $\Gamma$ und Konklusion
    $\forall x\varphi: \frac{\phi}{\forall x\varphi}$

    Bedingung: $x$ kommt in keiner Hypothese frei vor
  \end{quote}

  \begin{quote}
    Lemma V2

    Sei $\sum$ eine Signatur, $\Gamma$ eine Menge von $\sum$-Formeln und
    $\varphi$ eine $\sum$-Formel. Sei weiter $D$ eine Deduktion mit
    Hypothesen in $\Gamma$ und Konklusion $\varphi$, die die Regeln des
    natürlichen Schließens der Aussagenlogik, (R), (GfG) und ($\forall$ -I)
    verwendet. Dann gilt $\Gamma\Vdash\varphi$.
  \end{quote}

  Beweis: Betrachte die folgende Deduktion $D$ - Insbesondere ist $x$
  keine freie Variable einer Formel aus $\Gamma$ und es gilt nach IV
  $\Gamma\Vdash\varphi$ - Sei nun $A$ $\sum$-Struktur und $\rho$
  Variableninterpretation mit $A\Vdash_p y$ für alle $y\in\Gamma$. - Zu
  zeigen ist $A\Vdash_p \forall x\varphi$: - Sei also $a\in U_A$ beliebig.
  - $\Rightarrow$ für alle $y\in\Gamma$ gilt
  $A\Vdash_{p[x\rightarrow a]} y$ da $x\not\in FV(y)$ und $A\Vdash_p y$ -
  $\Rightarrow A\Vdash_{\rho[x\rightarrow a]}\varphi$ - Da $a\in U_A$
  beliebig war, haben wir $A\Vdash_\rho\forall x\varphi$ gezeigt - Da $A$
  und $\rho$ beliebig waren mit $A\Vdash_\rho\Gamma$ für alle
  $\gamma\in\Gamma$ haben wir also $\Gamma\Vdash\forall x\varphi$ gezeigt.

  \subsubsection{$\forall$ -Elimination in math.
    Beweisen}\label{forall--elimination-in-math.-beweisen}

  Ein mathematischer Beweis einer Aussage ``t erfüllt $\varphi$'' kann so
  aussehen: ``Zunächst zeige ich $\forall x\varphi$ (hier steckt die
  eigentliche Arbeit). Damit erfüllt insbesondere $t$ die Aussage$\varphi$
  , d.h., wir haben''$t$ erfüllt $\varphi$" gezeigt. qed"

  \begin{quote}
    $\forall$ -Elimination

    Sei $D$ eine Deduktion mit Hypothesen in $\Gamma$ und Konklusion
    $\forall x\varphi$ und seit Term, so dass Substitution {[}x:=t{]} für
    $\varphi$ zulässig ist. Dann ist das folgende eine Deduktion mit
    Hypothesen in $\Gamma$ und Konklusion
    $\varphi[x:=t]:\frac{\forall x\varphi}{\varphi[x:=t]}$

    Bedingung: über keine Variable aus $t$ wird in $\varphi$ quantifiziert
  \end{quote}

  \begin{quote}
    Lemma V3

    Sei $\sum$ eine Signatur, $\Gamma$ eine Menge von $\sum$-Formeln und
    $\varphi$ eine $\sum$-Formel. Sei weiter $D$ eine Deduktion mit
    Hypothesen in $\Gamma$ und Konklusion $\varphi$, die die Regeln des
    natürlichen Schließens der Aussagenlogik, (R), (GfG), ($\forall$-I) und
    ($\forall$-E) verwendet. \textgreater{} Dann gilt $\Gamma\Vdash\varphi$.
  \end{quote}

  Beweis: Analog zum Beweis von Lemma V2.

  \subsubsection{$\exists$ in math.
    Beweisen}\label{exists-in-math.-beweisen}

  Ein Beweis von ``$\sigma$ gilt'' kann so aussehen: ``Zunächst zeige ich
  $\exists x\varphi$ (hier steckt Arbeit). Jetzt zeige ich, dass $\sigma$
  immer gilt, wenn$\varphi$ gilt (mehr Arbeit). Damit gilt $\sigma$. qed''

  \begin{quote}
    $\exists$ -Elimination

    Sei $\Gamma$ eine Menge von Formeln, die die Variable $x$ nicht frei
    enthalten und enthalte die Formel $\sigma$ die Variabel $x$ nicht frei.
    Wenn $D$ eine Deduktion mit Hypothesen in $\Gamma$ und Konklusion
    $\exists x\varphi$ und $E$ eine Deduktion mit Hypothesen in
    $\Gamma\cup\{\varphi\}$ und Konklusion $\sigma$ ist, dann ist das
    folgende eine Deduktion mit Hypothesen in $\Gamma$ und Konklusion
    $\sigma:\frac{\exists x\varphi \quad\quad \sigma}{\sigma}$

    Bedingung: $x$ kommt in den Hypothesen und in $\sigma$ nicht frei vor
  \end{quote}

  \begin{quote}
    Lemma V4 Sei $\sigma$ eine Signatur, $\Gamma$ eine Menge von
    $\sum$-Formeln und $\varphi$ eine $\sigma$ -Formel. Sei weiter $D$ eine
    Deduktion mit Hypothesen in $\Gamma$ und Konklusion $\varphi$, die die
    Regeln des natürlichen Schließens der Aussagenlogik, (R), (GfG),
    ($\forall$-I), ($\forall$-E) und ($\exists$-E) verwendet. Dann gilt
    $\Gamma\Vdash\varphi$.
  \end{quote}

  Beweis: Sei $D$ die folgende Deduktion - Insbesondere kommt $x$ in den
  Formeln aus $\Gamma\cup\{\sigma\}$ nicht frei vor. Außerdem gelten nach
  IV $\Gamma\Vdash\exists x\varphi$ und
  $\Gamma\cup\{\varphi\}\Vdash\sigma$. - Sei nun $A$ $\sigma$-Struktur und
  $\rho$ Variableninterpretation mit $A\Vdash_\rho\Gamma$ für alle
  $\gamma\in\Gamma$. - Zu zeigen ist $A\Vdash_\rho\sigma$: - Wegen
  $A\Vdash_\rho\exists x\varphi$ existiert $a\in U_A$ mit
  $A\Vdash_{\rho[x\rightarrow a]}\varphi$. - $x$ kommt in Formeln aus
  $\Gamma$ nicht frei vor
  $\Rightarrow A\Vdash_{\rho[x\rightarrow a]}\gamma$ für alle
  $\gamma\in\Gamma$. - Aus $\Gamma\cup\{\varphi\}\Vdash\sigma$ folgt
  $A\Vdash_{\rho[x\rightarrow a]}\sigma$. - Da $x\not\in FV(\sigma)$
  erhalten wir $A\Vdash_\rho \sigma$. - Da $A$ und $\rho$ beliebig waren
  mit $A\Vdash_\rho\gamma$ für alle $\gamma\in\Gamma$ haben wir also
  $\Gamma\Vdash\sigma$ gezeigt.

  \subsubsection{$\exists$ -Einführung in math.
    Beweisen}\label{exists--einfuxfchrung-in-math.-beweisen}

  Ein mathematischer Beweis einer Aussage ``es gibt ein $x$, das $\varphi$
  erfüllt'' sieht üblicherweise so aus: ``betrachte dieses $t$ (hier ist
  Kreativität gefragt). Jetzt zeige ich, daß $t\varphi$ erfüllt (u.U.
  harte Arbeit). Also haben wir''es gibt ein $x$, das $\varphi$ erfüllt"
  gezeigt. qed"

  \begin{quote}
    $\exists$ -Einführung

    Sei die Substitution $[x:=t]$ für die Formel $\varphi$ zulässig. Sei
    weiter $D$ eine Deduktion mit Hypothesen in $\Gamma$ und Konklusion
    $\varphi[x:=t]$. Dann ist das folgende eine Deduktion mit Hypothesen in
    $\Gamma$ und Konklusion
    $\exists x\varphi:\frac{\varphi[x:=t]}{\exists x\varphi}$

    Bedingung: über keine Variable in $t$ wird in $\varphi$ quantifiziert
  \end{quote}

  \begin{quote}
    Korrektheitslemma für das natürliche Schließen in der Prädikatenlogik

    Sei $\sigma$ eine Signatur, $\Gamma$ eine Menge von $\sum$-Formeln und
    $\varphi$ eine $\sigma$ -Formel. Sei weiter $D$ eine Deduktion mit
    Hypothesen in $\Gamma$ und Konklusion $\varphi$, die die Regeln des
    natürlichen Schließens der Aussagenlogik, (R), (GfG), ($\forall$-I),
    ($\forall$-E), ($\exists$ -E) und ($\exists$ -I) verwendet. Dann gilt
    $\Gamma\Vdash\varphi$.
  \end{quote}

  Beweis: analog zu obigen Beweisen.

  \subsubsection{Regeln des natürlichen Schließens
    (Erweiterung)}\label{regeln-des-natuxfcrlichen-schlieuxdfens-erweiterung}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          ($R$): $\frac{}{t=t}$
    \item
          (GfG): $\frac{\varphi[x:=s] \quad\quad s=t}{\varphi[x:=t]}$ (über
          keine Variable aus $s$ oder $t$ wird in $\varphi$ quantifiziert)
    \item
          ($\forall$-I): $\frac{\varphi}{\forall x\varphi}$ (x nicht frei in
          Hypothesen)
    \item
          ($\forall$-E): $\frac{\forall x\varphi}{\varphi[x:=t]}$ (über keine
          Variable aus $t$ wird in $\varphi$ quantifiziert)
    \item
          ($\exists$-I): $\frac{\varphi [x:=t]}{\exists x\varphi}$ (über keine
          Variable aus $t$ wird in $\varphi$ quantifiziert)
    \item
          ($\exists$-I): $\frac{\exists x\varphi\quad\quad \sigma}{\sigma}$ ($x$
          kommt in Hypothesen und $\sigma$ nicht frei vor)
  \end{itemize*}

  \begin{quote}
    Definition

    Für eine Menge $\Gamma$ von $\sum$-Formeln und eine $\sum$-Formel
    $\varphi$ schreiben wir $\Gamma\vdash\varphi$ wenn es eine Deduktion
    gibt mit Hypothesen in $\Gamma$ und Konklusion $\varphi$. Wir sagen
    ``$\varphi$ ist eine syntaktische Folgerung von $\Gamma$''. Eine Formel
    $\varphi$ ist ein Theorem, wenn $\varnothing\vdash\varphi$ gilt.
  \end{quote}

  Bemerkung: $\Gamma\vdash\varphi$ sagt (zunächst) nichts über den Inhalt
  der Formeln in $\Gamma\cup\{\varphi\}$ aus, sondern nur über den Fakt,
  dass $\varphi$ mithilfe des natürlichen Schließens aus den Formeln aus
  $\Gamma$ hergeleitet werden kann. Ebenso sagt ``$\varphi$ ist Theorem''
  nur, dass $\varphi$ abgeleitet werden kann, über ``Wahrheit'' sagt
  dieser Begriff (zunächst) nichts aus. Wir haben aber ``en passant'' das
  folgende gezeigt:

  \begin{quote}
    Korrektheitssatz

    Für eine Menge von $\sum$-Formeln $\Gamma$ und eine $\sum$-Formel
    $\varphi$ gilt $\Gamma\vdash\varphi \Rightarrow \Gamma\Vdash\varphi$.
  \end{quote}

  Beispiel: Seien $\varphi$ Formel und $x$ Variable. Dann gelten
  $\{\lnot\exists x\varphi\}\Vdash\forall x\lnot\varphi$ und
  $\{\forall x\lnot\varphi\}\Vdash\lnot\exists x\varphi$. - Beweis:
  \includegraphics[width=\linewidth]{Assets/Logik-korrekheitssatz.png}

  Beispiel: Seien $\varphi$ Formel und $x$ Variable. Dann gelten
  $\{\lnot\forall x\varphi\}\Vdash \exists x\lnot\varphi$ und
  $\{\exists x\lnot\varphi\}\Vdash\lnot\forall x\varphi$. - Beweis:
  \includegraphics[width=\linewidth]{Assets/Logik-beispiel-korrekheitssatz.png}

  \subsection{Vollständigkeit}\label{vollstuxe4ndigkeit-1}

  Können wir durch mathematische Beweise zu allen korrekten Aussagen
  kommen? Können wir durch das natürliche Schließen zu allen korrekten
  Aussagen kommen?

  Existiert eine Menge $\Gamma$ von $\sum$-Formeln und eine $\sum$-Formel
  $\varphi$ mit $\Gamma\Vdash\varphi$ und $\Gamma\not\vdash\varphi$?

  Frage: Gilt $\Gamma\Vdash\varphi \Rightarrow \Gamma\vdash\varphi$ bzw.
  $\varphi$ ist allgemeingültig $\Rightarrow\varphi$ ist Theorem?

  Plan: - z.z. ist $\Gamma\Vdash\varphi \Rightarrow \Gamma\vdash\varphi$.
  - dies ist äquivalent zu
  $\Gamma\not\vdash\varphi \Rightarrow \Gamma\not\Vdash\varphi$. - hierzu
  geht man folgendermaßen vor: - $\Gamma\not\vdash\varphi$ -
  $\Leftrightarrow \Gamma\cup\{\lnot\varphi\}$ konsistent -
  $\Rightarrow \exists\Delta\supseteq\Gamma\cup\{\lnot\varphi\}$ maximal
  konsistent - $\Rightarrow \exists\Delta^+ \supseteq\Delta$ maximal
  konsistent mit Konkretisierung - $\Rightarrow \Delta^+$ erfüllbar -
  $\Rightarrow \Delta$ erfüllbar -
  $\Rightarrow \Gamma\cup\{\lnot\varphi\}$ erfüllbar -
  $\Leftrightarrow \Gamma\cup\{\lnot\varphi\}$

  \begin{quote}
    Definition

    Eine Menge $\Delta$ von Formeln hat Konkretisierungen, wenn für alle
    $\exists x\varphi\in\Delta$ ein variablenloser Term $t$ existiert mit
    $\varphi[x:=t]\in\Delta$.
  \end{quote}

  \begin{quote}
    Satz

    Sei $\Delta$ eine maximal konsistente Menge von $\sum$-Formeln. Dann
    existiert eine Signatur $\sum^+ \supseteq\sum$ und eine maximal
    konsistente Menge von $\sum^+$-Formeln mit Konkretisierungen, so dass
    $\Delta\subseteq\Delta^+$.
  \end{quote}

  Beweis: Wir konstruieren induktiv Signaturen $\sum_n$, maximal
  konsistente Menge von $\sum_n$-Formeln $\Delta_n$ und konsistente Mengen
  von $\sum_{n+1}$-Formeln $\Delta'_{n+1}$ mit -
  $\sum =\sum_0 \subseteq\sum_1 \subseteq\sum_2...$ und -
  $\Delta = \Delta_0 \subseteq \Delta'_1 \subseteq\Delta_1 \subseteq\Delta'_2...$
  und setzen dann - $\sum^+ =\bigcup_{n\geq 0} \sum_n$ und
  $\Delta^+ = \bigcup_{n\geq 0} \Delta_n$

  \begin{enumerate*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          IA: $\sum_0 := \sum$ , $\Delta_0:=\Delta$
    \item
          IV: Sei $n\geq 0$ und $\Delta_n$ maximal konsistente Menge von
          $\sum_n$-Formeln. $\psi=\exists x\varphi$, ein ``neues''
          Konstantensymbol $c_{\psi}$
    \item
          IS: $\sum_{n+1}$: alle Symbole aus $\sum_n$ und, für jede Formel
          $\psi\in\Delta_n$ der Form
          $\Delta'_{n+1}:= \Delta_n\cup\{\varphi[x:=c_{\psi}]|\psi=\exists x\varphi\in\Delta_n\}$

          \begin{itemize*}
            \item
                  ohne Beweis: $\Delta'_{n+1}$ ist konsistent
            \item
                  Idee: Ist $\varphi$ $\sum_n$-Formel mit
                  $\Delta'_{n+1}\vdash\varphi$, so gilt $\Delta_n\vdash\varphi$.
            \item
                  Konsistenz von $\Delta'_{n+1}$ folgt mit $\varphi=\bot$
            \item
                  Analog zum Satz aus Vorlesung 4 existiert
                  $\Delta_{n+1}\supseteq \Delta'_{n+1}$ maximal konsistent
          \end{itemize*}
  \end{enumerate*}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Damit ist die Konstruktion der Signaturen $\sum_n$ und der maximal
          konsistenten Mengen $\Delta_n$ von $\sum_n$-Formeln abgeschlossen.
    \item
          noch z.z.: $\Delta^+$ hat Konkretisierungen und ist maximal konsistent
    \item
          $\Delta^+$ hat Konkretisierungen: Sei
          $\psi=\exists x\varphi\in\Delta^+$

          \begin{itemize*}
            \item
                  $\Rightarrow$ es gibt $n\geq 0$ mit $\psi\in\Delta_n$
            \item
                  $\Rightarrow \varphi[x:=c_{\psi}]\in\Delta'_{n+1}\subseteq \Delta_{n+1}\subseteq\Delta^+$.
          \end{itemize*}
    \item
          Konsistenz: (indirekt) angenommen, $\Delta^+\vdash\bot$

          \begin{itemize*}
            \item
                  Da jede Deduktion endlich ist, existiert $\Gamma\subseteq\Delta^+$
                  endlich mit $\Gamma\vdash\bot$.
            \item
                  $\Rightarrow$ es gibt $n\geq 0$ mit $\Gamma\subseteq\Delta_n$
            \item
                  $\Rightarrow \Delta_n\vdash\bot$ - im Widerspruch zur Konsistenz von
                  $\Delta_n$.
          \end{itemize*}
    \item
          maximale Konsistenz: (indirekt) angenommen, $\Delta^+$ ist nicht
          maximal konsistent

          \begin{itemize*}
            \item
                  $\Rightarrow$ es gibt $\Gamma\not\subseteq\Delta^+$ konsistent
            \item
                  $\Rightarrow$ es gibt $\varphi\in\Gamma\backslash\Delta^+$
            \item
                  $\Rightarrow$ $\Delta^+\cup\{\varphi\}\subseteq\Gamma$ konsistent
            \item
                  $\varphi$ ist $\sum^+$-Formel $\Rightarrow$ es gibt $n\geq 0$, so
                  dass $\varphi$ eine $\sum_n$-Formel ist.
            \item
                  $\Delta_n$ maximal konsistente Menge von $\sum_n$-Formeln
            \item
                  $\Rightarrow$ $\varphi\in\Delta_n\subseteq\Delta^+$ oder
                  $\lnot\varphi\in\Delta_n\subseteq\Delta^+$
            \item
                  $\Rightarrow$ $\lnot\varphi\in\Delta^+\subseteq\Gamma$
            \item
                  Also $\varphi,\lnot\varphi\in\Gamma$, im Widerspruch zur Konsistenz
                  von $\Gamma$.
          \end{itemize*}
  \end{itemize*}

  \begin{quote}
    Satz

    Sei $\Delta^+$ maximal konsistente Menge von $\sum^+$-Formeln mit
    Konkretisierungen. Dann ist $\Delta^+$ erfüllbar.
  \end{quote}

  Beweisidee: Sei $T$ die Menge der variablenlosen $\sum^+$-Terme. Auf $T$
  definieren wir eine Äquivalenzrelation $\sim $ durch
  $s\sim t\Leftrightarrow \Delta^+\vdash(s=t)\Leftrightarrow (s=t)\in\Delta^+$
  Sei $A$ die folgende $\sum^+$-Struktur: - $U_A:=T/\sim $ ist die Menge der
  $\sim $-Äquivalenzklassen -
  $R^A=\{([t_1],...,[t_k])|t_1 ,...,t_k\in T,R(t_1,...,t_k)\in\Delta^+\}$
  für alle Relationssymbole R aus $\sum^+$ -
  $f^A([t_1],...,[t_k]) = [f(t_1,...,t_k)]$ für alle $t_1,...,t_k\in T$
  und alle Funktionssymbole $f$ aus $\sum^+$ (Bemerkung: dies ist
  wohldefiniert) Dann gilt tatsächlich $A\Vdash\Delta^+$.

  \begin{quote}
    Satz: Vollständigkeitssatz der Prädikatenlogik

    Sei $\Gamma$ eine Menge von $\sum$-Formeln und $\varphi$ eine
    $\sum$-Formel. Dann gilt
    $\Gamma\Vdash\varphi \Rightarrow \Gamma\vdash\varphi$. Insbesondere ist
    jede allgemeingültige Formel ein Theorem.
  \end{quote}

  Beweis:indirekt - $\Gamma\not\vdash\varphi$ -
  $\Gamma\cup\{\lnot\varphi\}$ konsistent - $\Gamma\cup\{\lnot\varphi\}$
  erfüllbar - $\exists\Delta\supseteq\Gamma\cup\{\lnot\varphi\}$ maximal
  konsistent - $\exists\Delta^+\supseteq\Delta$ maximal konsistent mit
  Konkretisierungen - $\Delta^+$ erfüllbar - $\Delta$ erfüllbar -
  $\Gamma\not\Vdash\varphi$

  Bemerkung - Dieser Satz ist (im wesentlichen) der berühmte Gödelsche
  Vollständigkeitssatz von 1930. - Der obige Beweis wurde von Leon Henkin
  1949 veröffentlicht.

  Wir haben gleichzeitig gezeigt: \textgreater{} Satz \textgreater{}
  \textgreater{} Sei $\Gamma$ höchstens abzählbar unendliche und
  konsistente Menge von Formeln. Dann hat $\Gamma$ ein höchstens abzählbar
  unendliches Modell.

  Beweis: $\Gamma$ konsistent heißt $\Gamma\not\vdash\bot$. Obiger Beweis
  gibt ein Modell $A$ von $\Gamma\cup\{\lnot\bot\}$ an. Wir zeigen, dass
  diese Struktur $A$ höchstens abzählbar unendlich ist: - Sei $\sum$
  Signatur der Relations- und Funktionssymbole aus $\Gamma$. -
  $|\Gamma|\leq \mathbb{N}_0 \Rightarrow |\sum|\leq \mathbb{N}_0$ -
  $\Rightarrow |\sum_n|\leq \mathbb{N}_0$ und
  $|\Delta_n|\leq \mathbb{N}_0$ für alle $n\geq 0$ -
  $\Rightarrow |\sum^+|,|\Delta^+| \leq\mathbb{N}_0$ -
  $\Rightarrow |T| \leq\mathbb{N}_0$ - $\Rightarrow A$ hat
  $\leq\mathbb{N}_0$ viele Elemente -
  $\Rightarrow \Gamma\cup\{\lnot\bot\}$ hat ein höchstens abzählbar
  unendliches Modell - $\Rightarrow \Gamma$ hat ein höchstens abzählbar
  unendliches Modell

  \subsection{Vollständigkeit und Korrektheit für die
    Prädikatenlogik}\label{vollstuxe4ndigkeit-und-korrektheit-fuxfcr-die-pruxe4dikatenlogik}

  \begin{quote}
    Satz

    Seien $\Gamma$ eine Menge von $\sum$-Formeln und $\varphi$ eine
    $\sum$-Formel. Dann gilt
    $\Gamma\vdash\varphi\Leftrightarrow \Gamma\Vdash\varphi$. Insbesondere
    ist eine $\sum$-Formel genau dann allgemeingültig, wenn sie ein Theorem
    ist.
  \end{quote}

  Beweis: Folgt unmittelbar aus Korrektheitssatz und Vollständigkeitssatz.

  \subsubsection{Folgerung 1: Kompaktheit}\label{folgerung-1-kompaktheit}

  \begin{quote}
    Satz

    Seien $\Gamma$ eine u.U. unendliche Menge von $\sum$-Formeln und
    $\varphi$ eine $\sum$-Formel mit $\Gamma\Vdash\varphi$. Dann existiert
    $\Gamma'\subseteq\Gamma$ endlich mit $\Gamma'\Vdash\varphi$.
  \end{quote}

  Beweis: $\Gamma\Vdash\varphi$ - $\Gamma\vdash\varphi$ (nach dem
  Vollständigkeitssatz) - es gibt Deduktion von $\varphi$ mit Hypothesen
  $\gamma_1,...,\gamma_n\in\Gamma$ -
  $\Gamma'=\{\gamma_1,...,\gamma_n\}\subseteq\Gamma$ endlich mit
  $\Gamma'\vdash\varphi$ - $\Gamma'\vdash\varphi$ (nach dem
  Korrektheitssatz).

  \begin{quote}
    Folgerung (Kompaktheits- oder Endlichkeitssatz)

    Sei $\Gamma$ eine u.U. unendliche Menge von $\sum$-Formeln. Dann gilt
    $\Gamma$ erfüllbar $\Leftrightarrow \forall\Gamma'\subseteq\Gamma$
    endlich: $\Gamma'$ erfüllbar
  \end{quote}

  Beweis: - $\Gamma$ unerfüllbar -
  $\Leftrightarrow \Gamma\cup\{\lnot\bot\}$ unerfüllbar -
  $\Leftrightarrow \Gamma\Vdash\bot$ - $\Leftrightarrow$ es gibt
  $\Gamma'\subseteq\Gamma$ endlich: $\Gamma'\Vdash\bot$ -
  $\Leftrightarrow$ es gibt $\Gamma'\subseteq\Gamma$ endlich:
  $\Gamma'\cup\{\lnot\bot\}$ unerfüllbar - $\Leftrightarrow$ es gibt
  $\Gamma'\subseteq\Gamma$ endlich: $\Gamma'$ unerfüllbar

  \begin{quote}
    Satz

    Sei $\Delta$ eine u.U. unendliche Menge von $\sum$-Formeln, so dass für
    jedes $n\in\mathbb{N}$ eine endliche Struktur $A_n$ mit $A_\Vdash\Delta$
    existiert, die wenigstens $n$ Elemente hat. Dann existiert eine
    unendliche Struktur $A$ mit $A\Vdash\Delta$.
  \end{quote}

  Beweis: für $n\in\mathbb{N}$ setze
  $\varphi_n=\exists x_1 \exists x_2 ...\exists x_n \bigwedge_{1\leq i< j \leq n} x_i \not= x_j$
  - und $\Gamma =\Delta\cup\{\varphi_n | n\geq 0\}$. - Für
  $\Gamma'\subseteq\Gamma$ endlich existiert $n\in\mathbb{N}$ mit
  $\varphi_m\not\in\Gamma'$ für alle $m\geq n$ -
  $\Rightarrow A_n\Vdash\Gamma'$, d.h. jede endliche Teilmenge von
  $\Gamma$ ist erfüllbar. - $\Rightarrow$ es gibt Struktur $A$ mit
  $A\Vdash\Gamma$ - $\Rightarrow$ A hat $\geq n$ Elemente (für alle
  $n\in\mathbb{N}$)

  \subsubsection{Folgerung 2:
    Löwenheim-Skolem}\label{folgerung-2-luxf6wenheim-skolem}

  \begin{quote}
    Frage: Gibt es eine Menge $\Gamma$ von $\sum$-Formeln, so dass für alle
    Strukturen $A$ gilt:
    $A\Vdash\Gamma \Leftrightarrow A\cong (\mathbb{R},+,*, 0 , 1 )$?
  \end{quote}

  \begin{quote}
    Satz von Löwenheim-Skolem

    Sei $\Gamma$ erfüllbare und höchstens abzählbar unendliche Menge von
    $\sum$-Formeln. Dann existiert ein höchstens abzählbar unendliches
    Modell von $\Gamma$.
  \end{quote}

  Beweis: - $Gamma$ erfüllbar $\Rightarrow \Gamma\not\Vdash\bot$ -
  $\Rightarrow$ $\Gamma\not\vdash\bot$, d.h. $\Gamma$ konsistent -
  $\Rightarrow \Gamma$ hat ein höchstens abzählbar unendliches Modell.

  Die Frage auf der vorherigen Folie muß also verneint werden: -
  angenommen, $\Gamma$ wäre eine solche Menge -
  $\Rightarrow |\Gamma|\leq \mathbb{N}_0$ - $\Rightarrow \Gamma$ hat ein
  höchstens abzählbar unendliches Modell $A$ -
  $\Rightarrow A\not\cong (\mathbb{R},+,*, 0 , 1 )$

  \subsubsection{Folgerung 3:
    Semi-Entscheidbarkeit}\label{folgerung-3-semi-entscheidbarkeit}

  \begin{quote}
    Satz

    Die Menge der allgemeingültigen $\sum$-Formeln ist semi-entscheidbar.
  \end{quote}

  Beweis:Sei$\varphi$ $\sum$-Formel. Dann gilt - $\varphi$ allgemeingültig
  - $\Leftrightarrow \varphi$ Theorem - $\Leftrightarrow$ Es gibt
  hypothesenlose Deduktion mit Konklusion $\varphi$

  Ein Semi-Entscheidungsalgorithmus kann also folgendermaßen vorgehen:
  Teste für jede Zeichenkette $w$ nacheinander, ob sie hypothesenlose
  Deduktion mit Konklusion $\varphi$ ist. Wenn ja, so gib aus ``$\varphi$
  ist allgemeingültig''. Ansonsten gehe zur nächsten Zeichenkette über.

  \subsubsection{Der Satz von Church}\label{der-satz-von-church}

  Jetzt zeigen wir, daß dieses Ergebnis nicht verbessert werden kann: Die
  Menge der allgemeingültigen $\sum$-Formeln ist nicht entscheidbar. Wegen
  $\varphi$ allgemeingültig $\Leftrightarrow\lnot\varphi$ unerfüllbar
  reicht es zu zeigen, dass die Menge der erfüllbaren Sätze nicht
  entscheidbar ist. Genauer zeigen wir dies sogar für ``Horn-Formeln'':

  \begin{quote}
    Definition

    Eine Horn-Formel ist eine Konjunktion von $\sum$-Formeln der Form
    $\forall x_1 \forall x_2 ...\forall x_n((\lnot\bot \wedge\alpha_1\wedge\alpha_2\wedge...\wedge\alpha_m)\rightarrow\beta)$,
    wobei $\alpha_1,...,\alpha_m$ und $\beta$ atomare $\sum$-Formeln sind.
  \end{quote}

  Unser Beweis reduziert die unentscheidbare Menge PCP auf die Menge der
  erfüllbaren Horn-Formeln.

  Im folgenden sei also $I=((u_1,v_1),(u_2,v_2),...,(u_k,v_k))$ ein
  Korrespondenzsystem und $A$ das zugrundeliegende Alphabet. Hieraus
  berechnen wir eine Horn-Formel $\varphi_I$, die genau dann erfüllbar
  ist, wenn $I$ keine Lösung hat. Wir betrachten die Signatur
  $\sum= (\Omega,Rel,ar)$ mit - $\Omega=\{e\}\cup\{f_a|a\in A\}$ mit
  $ar(e) =0$ und $ar(f_a) =1$ für alle $a\in A$. - $Rel=\{R\}$ mit
  $ar(R)=2$.

  Zur Abkürzung schreiben wir $f_{a_1 a_2 ...a_n} (x)$ für
  $f_{a_1}(f_{a_2}(...(f_{a_n}(x))...))$ für alle $a_1,a_2,...,a_n\in A$
  und $n\geq 0$ (insbes. steht $f_{\epsilon}(x)$ für $x$).

  Zunächst betrachten wir die folgende Horn-Formel $\psi_I$: -
  $\wedge \bigwedge_{1\leq j \leq k}^{R(e,e)} \forall x,y(R(x,y)\rightarrow R(f_{u_j}(x),f_{v_j}(y)))$
  - $\wedge \bigwedge_{a\in A} \forall x(e=f_a(x)\rightarrow \bot)$

  Beispiel: Betrachte die $\sum$-Struktur $A$ mit Universum $U_A=A^*$ -
  $e^A=\epsilon$ - $f_a^A(u) =au$ -
  $R^A=\{(u_{i1} u_{i2} ...u_{in},v_{i1} v_{i2} ...v_{in})|n\geq 0 , 1\geq i_1,i_2,...,i_n\geq k\}$
  - Für $u,v\in A^*$ gilt $f_u^A(v) =uv$. - Dann gilt $A\Vdash \psi_I$.

  \begin{quote}
    Lemma

    Angenommen, das Korrespondenzsystem $I$ hat keine Lösung. Dann ist die
    Horn-Formel $\varphi_I=\psi_I \wedge \forall x(R(x,x)\rightarrow x=e)$
    erfüllbar.
  \end{quote}

  Beweis: Sei $A$ die obige Struktur mit $A\Vdash\psi_I$. - Um
  $A\Vdash\forall x(R(x,x)\rightarrow x=e)$ zu zeigen, sei $w\in U_A$
  beliebig mit $(w,w)\in R^A$. - Die Definition von $R^A$ sichert die
  Existenz von $n\geq 0$ und $1\leq i_1,i_2,...,i_n\leq k$ mit
  $u_{i1} u_{i2}...u_{in}=w=v_{i1} v_{i2} ...v_{in}$. - Da $I$ keine
  Lösung hat, folgt $n=0$ und damit $w=\epsilon$.

  \begin{quote}
    Lemma

    Sei $B$ Struktur mit $B\Vdash\psi_I$. Dann gilt
    $(f_{u_{i_1} u_{i_2} ...u_{i_n}}^B (e^B),f_{v_{i_1} v_{i_2}...v_{i_n}}^B(e^B))\in R^B$
    für alle $n\geq 0, 1\leq i_1,i_2,...,i_n \leq k$.
  \end{quote}

  Beweis: per Induktion über $n\geq 0$. - IA: für $n=0$ gelten
  $f_{u_{i_1} u_{i_2} ...u_{i_n}}^B(e^B) =e^B$ und
  $f_{v_{i_1} v_{i_2}...v_{i_n}}^B(e^B) =e^B$ - und damit
  $(f_{u_{i_1} u_{i_2} ...u_{i_n}}^B(e^B), f_{v_{i_1} v_{i_2}...v_{i_n}}^B(e^B) \in R^B$
  - wegen $B\Vdash\psi_I$. - IS: Seien $n>0$ und
  $1\leq i_1 ,i_2 ,...,i_n\leq k$. - Mit $u=u_{i2} u_{i3} ...u_{in}$ und
  $v=v_{i2} v_{i3} ...v_{in}$ gilt nach IV
  $(f_u^B(e^B),f_v^B(e^B))\in R^B$. Wegen $B\Vdash\psi_I$ folgt
  $f_{u_{i_1} u_{i_2} ...u_{i_n}}^B(e^B), f_{v_{i_1} v_{i_2}...v_{i_n}}^B(e^B) = (f_{u_{i1}}^B (f_u^B(e^B)),f_{v_{i1}}^B (f_v^B(e^B)))\in RB$.

  \begin{quote}
    Lemma

    Angenommen, $(i_1,...,i_n)$ ist eine Lösung von $I$. Dann ist die
    $\sum$-Formel $\varphi_I$ unerfüllbar.
  \end{quote}

  \begin{quote}
    Satz

    Die Menge der unerfüllbaren Horn-Formeln ist nicht entscheidbar.
  \end{quote}

  Beweis: Die Abbildung $I\rightarrow\varphi_I$ ist berechenbar.

  Nach den vorherigen Lemmata ist sie eine Reduktion von PCP auf die Menge
  der unerfüllbaren Horn-Formeln. Da PCP unentscheidbar ist (vgl.
  Automaten, Sprachen und Komplexität), ist die Menge der unerfüllbaren
  Horn-Formeln unentscheidbar.

  \begin{quote}
    Folgerung (Church 1936)

    Die Menge der allgemeingültigen $\sum$-Formeln ist nicht entscheidbar.
  \end{quote}

  Beweis: Eine $\sum$-Formel $\varphi$ ist genau dann unerfüllbar, wenn
  $\lnot\varphi$ allgemeingültig ist. Also ist
  $\varphi\rightarrow\lnot\varphi$ eine Reduktion der unentscheidbaren
  Menge der unerfüllbaren $\sum$-Formeln auf die Menge der
  allgemeingültigen $\sum$-Formeln, die damit auch unentscheidbar ist.

  Allgemeingültige $\sum$-Formeln gelten in allen Strukturen. Was
  passiert, wenn wir uns nur auf ``interessante'' StrukturenAeinschränken
  (z.B. auf eine konkrete), d.h. wenn wir die Theorie $Th(A)$ von $A$
  betrachten?

  \subsection{Theorie der natürlichen
    Zahlen}\label{theorie-der-natuxfcrlichen-zahlen}

  \begin{quote}
    Definition

    Sei $A$ eine Struktur. Dann ist $Th(A)$ die Menge der
    prädikatenlogischen $\sum$-Formeln $\varphi$ mit $A\Vdash\varphi$. Diese
    Menge heißt die(elementare) Theorie von $A$.
  \end{quote}

  Beispiel: Sei $N= (N,\leq,+,*, 0 , 1 )$. Dann gelten -
  $(\forall x\forall y:x+y=y+x)\in Th(N)$ -
  $(\forall x\exists y:x+y= 0 )\not\in Th(N)$ - aber
  $(\forall x\exists y:x+y= 0 )\in Th((Z,+, 0 ))$.

  \begin{quote}
    Lemma

    Die Menge $Th(N)$ aller Sätze $\varphi$ mit $N\Vdash\varphi$ ist nicht
    entscheidbar.
  \end{quote}

  \begin{quote}
    Zahlentheoretisches Lemma

    Für alle $n\in N,x_0,x_1,...,x_n\in N$ existieren $c,d\in N$, so dass
    für alle $0\leq i\leq n$ gilt: $x_i=c\ mod ( 1 +d*(i+ 1 ))$.
  \end{quote}

  Beweis:Setze $m= max\{n,x_0,x_1 ,...,x_n\}$ und $d=2*3*4...(m+1)$. Dann
  sind die Zahlen $1+d, 1+d*2,..., 1 +d*(n+1)$ paarweise teilerfremd. Nach
  dem Chinesischen Restsatz folgt die Existenz einer natürlichen Zahl $c$.

  Bemerkung: Es gibt $\sum$-Formeln - $mod(x_1,x_2 ,y)$ mit
  $N\Vdash_{\alpha} mod \Leftrightarrow \alpha (x_1) mod\alpha (x_2) =\alpha (y)$.
  - $\gamma(x_1 ,x_2 ,x_3 ,y)$ mit
  $N\Vdash_{\alpha} \gamma\Leftrightarrow \alpha(x_1) mod(1+\alpha(x_2)*(\alpha (x3)+1)) =\alpha (y)$.

  \begin{quote}
    Satz

    Sei $A$ eine Struktur, so dass $Th(A)$ semi-entscheidbar ist. Dann ist
    $Th(A)$ entscheidbar.
  \end{quote}

  \begin{quote}
    Korollar Die Menge $TH(N)$ der Aussagen $\varphi$ mit $N\Vdash\varphi$
    ist nicht semi-entscheidbar.
  \end{quote}

  \begin{quote}
    Korollar (1. Gödelscher Unvollständigkeitssatz)

    Sei $Gamma$ eine semi-entscheidbare Menge von Sätzen mit $N\Vdash\gamma$
    für alle $\gamma\in\Gamma$. Dann existiert ein Satz $\varphi$ mit
    $\Gamma\not\vdash\varphi$ und $\Gamma\not\vdash\lnot\varphi$ (d.h.
    ``$\Gamma$ ist nicht vollständig'').
  \end{quote}

  \subsection{2. Semi Entscheidungsverfahren für allgemeingültige
    Formeln}\label{semi-entscheidungsverfahren-fuxfcr-allgemeinguxfcltige-formeln}

  bekanntes Verfahren mittels natürlichem Schließen: Suche hypothesenlose
  Deduktion mit Konklusion $\psi$.

  Jetzt alternatives Verfahren, das auf den Endlichkeitssatz der
  Aussagenlogik zurückgreift: - Berechne aus $\sum$-Formel $\psi$ eine
  Menge E von aussagenlogischen Formeln mit $E$ unerfüllbar
  $\Leftrightarrow\lnot\psi$ unerfüllbar $\Leftrightarrow\psi$
  allgemeingültig - Suche endliche unerfüllbare Teilmenge $E'$ von $E$

  Kern des Verfahrens ist es also, aus $\sum$-Formel $\varphi$ eine Menge
  $E$ aussagenlogischer Formeln zu berechnen mit $\varphi$ unerfüllbar
  $\Leftrightarrow$ E unerfüllbar.

  Hierzu werden wir die Formel $\varphi$ zunächst in zwei Schritten
  (Gleichungsfreiheit und Skolem-Form) vereinfachen, wobei die Formel
  erfüllbar bzw unerfüllbar bleiben muss.

  \begin{quote}
    Definition

    Zwei $\sum$-Formeln $\varphi$ und $\psi$ heißen
    erfüllbarkeitsäquivalent, wenn gilt: $\varphi$ ist erfüllbar
    $\Leftrightarrow\psi$ ist erfüllbar
  \end{quote}

  Unsere Vereinfachungen müssen also erfüllbarkeitsäquivalente Formeln
  liefern.

  \subsubsection{Elimination von
    Gleichungen}\label{elimination-von-gleichungen}

  \begin{quote}
    Definition

    Eine $\sum$-Formel ist gleichungsfrei, wenn sie keine Teilformel der
    Form $s=t$ enthält.
  \end{quote}

  Ziel: aus einer $\sum$ Formel $\varphi$ soll eine
  erfüllbarkeitsäquivalente gleichungsfreue Formel $\varphi'$ berechnet
  werden

  Bemerkung: Man kann i.a. keine äquivalente gleichungsfreie Formel
  $\varphi'$ angeben, da es eine solche z.B. zu
  $\varphi=(\forall x\forall y:x=y)$ nicht gibt.

  Idee: Die Formel $\varphi'$ entsteht aus $\varphi$, indem alle
  Teilformeln der Form $x=y$ durch $GI(x,y)$ ersetzt werden, wobei $GI$
  ein neues Relationssymbol ist.

  Notationen - Sei $\sum=(\Omega,Rel,ar)$ endliche Signatur und $\varphi$
  $\sum$-Formel - $\sum_{GI} = (\Omega, Rel\bigcup^+\{GI\},ar_{GI})$ mit
  $ar_{GI}(f)$ für alle $f\in\Omega\cup Rel$ und $ar_{GI}(GI)=2$ - Für
  eine $\sum$-Formel $\varphi$ bezeichnet $\varphi_{GI}$ die
  $\sum_{GI}$-Formel, die aus $\varphi$ entsthet, indem alle Vorkommen und
  Teilformen $s=t$ durch $GI(s,t)$ ersetzt werden.

  Behauptung: $\varphi$ erfüllbar $\Rightarrow \varphi_{GI}$ erfüllbar

  Behauptung: es gilt nicht $\varphi$ erfüllbar $\Leftarrow\varphi_{GI}$
  erfüllbar

  \begin{quote}
    Definition

    Sei A eine $\sum$-Struktur und $\sim$ eine binäre Relation auf $U_A$.
    Die Relation $\sim$ heißt Kongruenz auf A, wenn gilt: - $\sim$ ist eine
    Äquivalentrelation (d.h. reflexiv, transitiv und symmetrisch) - für alle
    $f\in\Omega$ mit $k=ar(f)$ und alle $a_1,b_1,...,a_k,b_k\in U_A$ gilt
    $a_1\sim b_1,a_2\sim b_2,...,a_k\sim b_k\Rightarrow f^A(a_1,...,a_k)\sim f^A(b_1,...,b_k)$
    - für alle $R\in Rel$ mit $k=ar(R)$ und alle
    $a_1,b_1,...,a_k,b_k\in U_A$ gilt
    $a_1\sim b_1,...,a_k\sim b_k,(a_1,...,a_k)\in R^A\Rightarrow (b_1,...,b_k)\in R^A$.
  \end{quote}

  \begin{quote}
    Definition

    Sei $A$ eine $\sum$-Struktur und $\sim$ eine Kongruenz auf A. 1. Für
    $a\in U_A$ sei $[a]=\{b\in U_A|a\sim b\}$ die Äquivalenzklasse von a
    bzgl $\sim$. 2. Dann definieren wir den Quotienten $B=A\backslash \sim$
    von $A$ bzgl $\sim$ wie folgt: -
    $U_B=U_A\backslash\sim = \{[a]|a\in U_A\}$ - Für jedes $f\in\Omega$ mit
    $ar(f)=k$ und alle $a_1,...,a_k\in U_A$ setzten wir
    $f^B([a_1],...,[a_k])=[f^A(a_1,...,a_k)]$ - für jede $R\in Rel$ mit
    $ar(R)=k$ setzten wir
    $R^B=\{([a_1],[a_2],...,[a_k])|(a_1,...,a_k)\in R^A\}$ 3. Sei
    $p:Var\rightarrow U_A$ Variableninterpretation. Dann definieren die
    Variableninterpretation
    $p\backslash\sim: Var\rightarrow U_B:x\rightarrow[p(x)]$.
  \end{quote}

  Veranschaulichung:
  \includegraphics[width=\linewidth]{Assets/Logik-variableninterpretation-beispiel.png}

  \begin{quote}
    Lemma 1

    Sei A Struktur, $p:Var\rightarrow U_A$ Variableninterpretation und
    $\sim$ Kongruenz. Seien weiter $B=A\backslash\sim$ und
    $p_B=p\backslash\sim$. Dann gilt für jeden Term $:[p(t)]=p_B(t)$
  \end{quote}

  Beweis: per Induktion über den Aufbau des Terms t

  \begin{quote}
    Lemma 2

    Sei $A$ $\sum$-Struktur, $\sim$ Kongruenz und $B=A\backslash\sim$. Dann
    gilt für alle $R\in Rel$ mit $k=ar(R)$ und alle $c_1,...,c_k\in U_A$:
    $([c_1],[c_2],...,[c_k])\in R^B\Leftrightarrow (c_1,c_2,...,c_k)\in R^A$
  \end{quote}

  \begin{quote}
    Satz

    Seien $A$ $\sum_{GI}$-Struktur und $p:Var\rightarrow U_A$
    Variableninterpretation, so dass $\sim=GI^A$ Kongruenz auf A ist. Seien
    $B=A\backslash\sim$ und $p_B=p\backslash\sim$. Dann gilt für alle
    $\sum$-Formeln
    $\varphi: A\Vdash_p \varphi_{GI} \Leftrightarrow B\Vdash_{p_B} \varphi$
  \end{quote}

  Beweis: per Induktion über den Aufbau der Formel $\varphi$

  \begin{quote}
    Lemma

    Aus einer endlichen Signatur $\sum$ kann ein gleichungsfreuer Horn-Satz
    $Kong_{\sum}$ über $\sum_{GI}$ berechnet werden, so dass für alle
    $\sum_{GI}$-Strukturen $A$ gilt:
    $A\Vdash Kong_{\sum} \Leftrightarrow GI^A$ ist eine Kongruenz
  \end{quote}

  \begin{quote}
    Satz

    Aus einer endlichen Signatur $\sum$ und einer $\sum$-Formel $\varphi$
    kann eine gleichungsfreie und erfüllbarkeitsäquivalente
    $\sum_{GI}$-Formel $\varphi'$ berechnet werden. Ist $\varphi$ Horn
    Formel, so ist auch $\varphi'$ Horn Formel.
  \end{quote}

  Beweis: Setzte $\varphi' =\varphi_{GI}\wedge Kong_{\sum}$ und zeige:
  $\varphi$ erfüllbar $\Leftrightarrow \varphi'$ erfüllbar.

  \subsection{Skolemform}\label{skolemform}

  Ziel: Jede $\sum$-Formel $\varphi$ ist erfüllbarkeitsäquivalent zu einer
  $\sum$'-Formel $\varphi'=\forall x_1\forall x_2 ...\forall x_k \psi$,
  wobei $\psi$ kein Quantoren enthält, $\varphi'$ heißt in Skolemform.

  Bemerkung: Betrachte die Formel $\exists x\exists y E(x,y)$. Es gibt
  keine Formel in Skolemform, die hierzu äquivalent ist.

  2 Schritte: 1. Quantoren nach vorne (d.h. Pränexform) 2.
  Existenzquantoren eliminieren

  \begin{quote}
    Definition

    Zwei $\sum$-Formeln $\varphi$ und $\psi$ sind äquivalent
    (kurz:$\varphi\equiv\psi$), wenn für alle $\sum$-Strukturen $A$ und alle
    Variableninterpretationen $\rho$ gilt:
    $A\Vdash_{\rho} \psi \Leftrightarrow A\Vdash_{\rho}\psi$.
  \end{quote}

  \begin{quote}
    Lemma

    Seien $Q\in\{\exists ,\forall\}$ und
    $\oplus\in\{\wedge,\vee,\rightarrow,\leftarrow\}$. Sei
    $\varphi= (Qx \alpha)\oplus\beta$ und sei $y$ eine Variable, die weder
    in $\alpha$ noch in $\beta$ vorkommt. Dann gilt
    $\varphi \equiv \begin{cases} Qy(\alpha[x:=y]\oplus\beta) \text{ falls } \oplus\in\{\wedge,\vee,\leftarrow\}\\ \forall y(\alpha[x:=y]\rightarrow\beta) \text{ falls } \oplus=\rightarrow,Q=\exists \\ \exists y(\alpha[x:=y]\rightarrow\beta) \text{ falls }\oplus=\rightarrow,Q=\forall\end{cases}$
  \end{quote}

  Notwendigkeit der Bedingung ``$y$ kommt weder in $\alpha$ noch in
  $\beta$ vor'': -
  $(\exists x:f(x) \not =f(y))\wedge\beta \not\equiv\exists y: (f(y) \not =f(y)\wedge\beta)$
  -
  $(\exists x:\lnot P(x))\wedge P(y)\not\equiv \exists y: (\lnot P(y) \wedge P(y))$

  \begin{quote}
    Lemma

    Seien $Q\in\{\exists,\forall\}$ und
    $\oplus\in\{\wedge,\vee,\rightarrow,\leftarrow\}$. Sei
    $\varphi= (Qx\alpha)\oplus\beta$ und sei $y$ eine Variable, die weder in
    $\alpha$ noch in $\beta$ vorkommt. Dann gilt
    $\varphi\equiv\begin{cases} Qy(\alpha[x:=y]\oplus\beta) \text{ falls }\oplus\in\{\wedge,\vee,\leftarrow\} \\ \forall y(\alpha[x:=y]\rightarrow\beta) \text{ falls }\oplus=\rightarrow,Q=\exists \\ \exists y(\alpha[x:=y]\rightarrow\beta) \text{ falls }\oplus=\rightarrow,Q=\forall \end{cases}$
  \end{quote}

  Beweis: (für den Fall $Q=\exists$ und $\oplus=\wedge$) - Seien $A$
  $\sum$-Struktur und $\rho$ Variableninterpretation. - Für $a\in U_A$
  setze $\rho_a:=\rho[y\rightarrow a]$. - Dann gilt
  $\rho_a[x\rightarrow \rho_a(y)](z) =\rho[x\rightarrow a](z)$ für alle
  $z\not=y$

  Wir erhalten also - $A\vdash_\rho (\exists x\alpha)\wedge\beta$ -
  $\Leftrightarrow A\vdash_\rho (\exists x\alpha) $ und
  $A\vdash_\rho \beta$ - $\Leftrightarrow$ (es gibt $a\in U_A$ mit
  $A\vdash_{\rho[x\rightarrow a]}\alpha$) und (es gilt
  $A\vdash_\rho \beta$) - $\Leftrightarrow$ es gibt $a\in U_A$ mit
  ($A\vdash_{\rho[x\rightarrow a]}\alpha$ und $A\vdash_\rho \beta$) -
  $\Leftrightarrow$ es gibt $a\in U_A$ mit -
  $A\vdash_{\rho_a[x\rightarrow \rho_a(y)]}\alpha$ (da $y$ in $\alpha$
  nicht vorkommt) - $A\vdash_{\rho_a} \beta$ (da $y$ in $\beta$ nicht
  vorkommt) - $\Leftrightarrow$ es gibt $a\in U_A$ mit -
  $A\vdash_{\rho_a} \alpha[x:=y]$ - $A\vdash_{\rho_a} \beta$ -
  $\Leftrightarrow$ es gibt $a\in U_A$ mit
  $A\vdash_{\rho[y\rightarrow a]}\alpha[x:=y]\wedge\beta$ -
  $\Leftrightarrow A\vdash_\rho \exists y(\alpha[x:=y]\wedge\beta)$

  \begin{quote}
    Satz

    Aus einer endlichen Signatur $\sum$ und einer $\sum$-Formel $\varphi$
    kann eine äquivalente $\sum$-Formel
    $\varphi'=Q_1 x_1 Q_2 x_2 ...Q_k x_k \psi$ (mit
    $Q_i\in\{\exists,\forall\},\psi$ quantorenfrei und $x_i$ paarweise
    verschieden) berechnet werden. Eine Formel $\varphi'$ dieser Form heißt
    Pränexform. Ist $\varphi$ gleichungsfrei, so ist auch $\varphi'$
    gleichungsfrei.
  \end{quote}

  Beweis: Der Beweis erfolgt induktiv über den Aufbau von $\varphi$: -
  I.A. $\varphi$ ist atomare Formel: Setze $\varphi'=\varphi$. - I.S. -
  $\varphi=\lnot\psi$ : Nach I.V. kann Formel in Pränexform
  $\psi\equiv Q_1 x_1 Q_2 x_2 ...Q_m x_m \psi'$ berechnet werden. Mit
  $\forall=\exists$ und $\exists=\forall$ setze
  $\varphi'=Q_1 x_1 Q_2 x_2 ...Q_m x_m\lnot\psi'$. -
  $\varphi=\exists x\psi$: Nach I.V. kann Formel in Pränexform
  $\psi\equiv Q_1 x_1 Q_2 x_2 ...Q_m x_m \psi'$ berechnet werden. Setze
  $\varphi'= \begin{cases} \exists x Q_1 x_1 Q_2 x_2 ...Q_m x_m\psi'\text{ falls }x\not\in\{x_1,x_2,...,x_m\}\\ Q_1 x_1 Q_2 x_2 ...Q_m x_m\psi'\text{ sonst}\end{cases}$
  - $\varphi=\alpha\wedge\beta$: Nach I.V. können Formeln in Pränexform
  $\alpha\equiv Q_1 x_1 Q_2 x_2 ...Q_mx_m \alpha_0; \beta\equiv Q_1'y_1 Q_2'y_2 ...Q_n'y_n \beta_0$
  berechnet werden.

  Ziel: Berechnung einer erfüllbarkeitsäquivalenten Formel in Skolemform

  Idee: 1. wandle Formel in Pränexform um 2. eliminiere
  $\exists$-Quantoren durch Einführen neuer Funktionssymbole

  Konstruktion: Sei
  $\varphi=\forall x_1\forall x_2...\forall x_m\exists y\psi$ Formel in
  Pränexform (u.U. enthält $\psi$ weitere Quantoren). Sei $g\not\in\Omega$
  ein neues m-stelliges Funktionssymbol. Setze
  $\varphi'=\forall x_1\forall x_2...\forall x_m \psi[y:=g(x_1,...,x_m)]$.
  Offensichtlich hat $\varphi$'einen Existenzquantor weniger als
  $\varphi$. Außerdem ist $\varphi'$ keine $\sum$-Formel (denn sie
  verwendet $g\not\in\Omega$), sondern Formel über einer erweiterten
  Signatur.

  \begin{quote}
    Lemma

    Die Formeln $\varphi$ und $\varphi'$ sind erfüllbarkeitsäquivalent.
  \end{quote}

  Beweis: ``$\Leftarrow$'' Sei $A'$ Struktur und $\rho'$
  Variableninterpretation mit $A'\vdash_{\rho'}\varphi'$. Wir zeigen
  $A'\vdash_{\rho'}\varphi$. Hierzu seien $a_1,...,a_m\in U_{A'}$
  beliebig.

  \begin{quote}
    Satz

    Aus einer Formel $\varphi$ kann man eine erfüllbarkeitsäquivalente
    Formel $\varphi$ in Skolemform berechnen. Ist $\varphi$ gleichungsfrei,
    so auch $\varphi$.
  \end{quote}

  Beweis: Es kann zu $\varphi$ äquivalente Formel
  $\varphi_0 =Q_1 x_1 Q_2 x_2 ...Q_{\iota}  x_{\iota}   \psi$ in
  Pränexform berechnet werden (mit $n\leq {\iota}  $ Existenzquantoren).
  Durch wiederholte Anwendung des vorherigen Lemmas erhält man Formeln
  $\varphi_1,\varphi_2,...\varphi_n$ mit - $\varphi_i$ und $\varphi_{i+1}$
  sind erfüllbarkeitsäquivalent - $\varphi_{i+1}$ enthält einen
  Existenzquantor weniger als $\varphi_i$ - $\varphi_{i+1}$ ist in
  Pränexform - ist $\varphi_i$ gleichungsfrei, so auch $\varphi_{i+1}$

  Dann ist $\bar{\varphi}=\varphi_n$ erfüllbarkeitsäquivalente (ggf.
  gleichungsfreie) Formel in Skolemform.

  \subsection{Herbrand-Strukturen und
    Herbrand-Modelle}\label{herbrand-strukturen-und-herbrand-modelle}

  Sei $\sum= (\Omega,Rel,ar)$ eine Signatur. Wir nehmen im folgenden an,
  dass $\Omega$ wenigstens ein Konstantensymbol enthält.

  Das Herbrand-Universum $D(\sum)$ ist die Menge aller variablenfreien
  $\sum$-Terme.

  Beispiel: $\Omega =\{b,f\}$ mit $ar(b) =0$ und $ar(f) =1$. Dann gilt
  $D(\sum) =\{b,f(b),f(f(b)),f(f(f(b))),...\}$

  Eine $\sum$-Struktur $A=(UA,(fA)f\in\Omega,(RA)R\in Rel)$ ist eine
  Herbrand-Struktur, falls folgendes gilt: 1. $UA=D(\sum)$, 2. für alle
  $f\in\Omega$ mit $ar(f)=k$ und alle $t_1,t_2,...,t_k\in D(\sum)$ ist
  $f^A(t_1,t_2,...,t_k) =f(t_1,t_2,...,t_k)$.

  Für jede Herbrand-Struktur $A$, alle Variableninterpretationen $\rho$
  und alle variablenfreien Terme $t$ gilt dann $\rho(t) =t$.

  Ein Herbrand-Modell von $\varphi$ ist eine Herbrand-Struktur, die
  gleichzeitig ein Modell von $\varphi$ ist.

  \begin{quote}
    Satz

    Sei $\varphi$ eine gleichungsfreie Aussage in Skolemform. $\varphi$ ist
    genau dann erfüllbar, wenn $\varphi$ ein Herbrand-Modell besitzt.
  \end{quote}

  Beweis: - Falls $\varphi$ ein Herbrand-Modell hat, ist $\varphi$
  natürlich erfüllbar. - Sei nun $\varphi=\forall y_1...\forall y_n\psi$
  erfüllbar. Dann existieren eine $\sum$-Struktur
  $A=(U_A,(f^A)_{f\in\Omega},(R^A)_{R\in Rel})$ und eine
  Variableninterpretation $\rho$ mit $A\vdash_\rho \varphi$.

  \paragraph{Plan des Beweises}\label{plan-des-beweises}

  Wir definieren eine Herbrand-Struktur
  $B=(D(\sum),(f^B)_{f\in\Omega},(R^B)_{R\in Rel})$: - Seien $f\in\Omega$
  mit $ar(f)=k$ und $t_1,...,t_k\in D(\sum)$. Um eine Herbrand-Struktur
  $B$ zu konstruieren setzen wir $f^B(t_1,...,t_k) =f(t_1,...,t_k)$ - Sei
  $R\in Rel$ mit $ar(R)=k$ und seien $t_1,...,t_k\in D(\sum)$. Dann setze
  $(t_1,...,t_k)\in RB:\Leftrightarrow (\rho(t_1),...,\rho(t_k))\in RA$.

  Sei $\rho_B:Var \rightarrow D(\sum)$ beliebige Variableninterpretation.

  \subparagraph{Behauptung 1:}\label{behauptung-1}

  Ist $\psi$ eine quantoren- und gleichungsfreie Aussage, so gilt
  $A\vdash_{\rho}\psi \Leftrightarrow B\vdash_{\rho B} \psi$. Diese
  Behauptung wird induktiv über den Aufbau von $\psi$ gezeigt.

  \subparagraph{Intermezzo}\label{intermezzo}

  Behauptung 1 gilt nur für quantorenfreie Aussagen

  $\sum = (\Omega,Rel,ar)$ mit $\Omega =\{a\},ar(a) =0$ und
  $Rel=\{E\},ar(E) =2$. Betrachte die Formel
  $\varphi=\forall x(E(x,x)\wedge E(a,a))$ in Skolemform.
  $A\vdash_\rho \varphi$ mit $U^A=\{a^A,m\}$ und
  $E^A=\{(m,m),(a^A,a^A)\}$. Die konstruierte Herbrand-Struktur
  $B:U_B=D(\sum) =\{a\}$ und $E^B=\{(a,a)\}$.

  Betrachte nun die Formel $\psi=\forall x,y E(x,y)$. Dann gilt
  $B\vdash_{\rho B}\psi$ und $A\not\vdash_\rho \psi$.

  Für allgemeine Formeln in Skolemform (also u.U. mit Quantoren) können
  wir also Behauptung 1 nicht zeigen, sondern höchstens die folgende
  Abschwächung.

  \subparagraph{Behauptung 2:}\label{behauptung-2}

  Ist $\psi$ eine gleichungsfreie Aussage in Skolemform, so gilt
  $A\vdash_\rho \psi \Rightarrow B\vdash_{\rho B}\psi$. (hieraus folgt dann
  $B\vdash_{\rho B}\varphi$ wegen $A\vdash_\rho \varphi$)

  Diese Behauptung wird induktiv über die Anzahl $n$ der Quantoren in
  $\psi$ bewiesen.

  \subsection{Die Herbrand-Expansion}\label{die-herbrand-expansion}

  verbleibende Frage: Wie erkennt man, ob eine gleichungsfreie Aussage in
  Skolemform ein Herbrand-Modell hat?

  Beispiel: Seien $\sum=(\{a,f\},\{P,R\},ar)$ und
  $\varphi=\forall x\forall y (P(a,x)\wedge\lnot R(f(y)))$.  Jedes Herbrand-Modell A von $\varphi$ - hat als Universum das Herbrand-Universum $D(\sum)=\{a,f(a),f^2 (a),...\}=\{f^n(a)|n\geq 0\}$ - erfüllt $f^A(f^n(a))= f^{n+1} (a)$ für alle $n\geq 0$

  Um ein Herbrand-Modell zu konstruieren, müssen (bzw. können) wir für
  alle Elemente $s,t,u\in D(\sum)$ unabhängig und beliebig wählen, ob
  $(s,t)\in P^A$ und $u\in R^A$ gilt. Wir fassen dies als
  ``aussagenlogische B-Belegung'' B der ``aussagenlogischen atomaren
  Formeln'' $P(s,t)$ bzw. $R(u)$ auf.

  Jede solche aussagenlogische B-Belegung $B$ definiert dann eine
  Herbrand-Struktur $A_B$: -
  $P^{A_B} = \{(s,t)\in D(\sum)^2 |B(P(s,t))= 1\}$ -
  $R^{A_B} = \{u\in D(\sum) |B(R(u))= 1\}$

  Mit $\varphi=\forall x\forall y(P(a,x)\wedge\lnot R(f(y)))$ gilt dann
  $A_B \Vdash_\rho \varphi$ -
  $\Leftrightarrow A_B \Vdash_{\rho[x\rightarrow f^m(a)][y\rightarrow f^n(a)]} P(a,x)\wedge\lnot R(f(y))$
  f.a. $m,n\geq 0$ - $\Leftrightarrow (a,fm(a))\in P^{A_B}$ und
  $f^{n+1}(a)\not\in R^{A_B}$ f.a. $m,n\geq 0$ -
  $\Leftrightarrow B(P(a,f^m(a)))= 1$ und $B(R(f^{n+1} (a)))= 0$ f.a.
  $m,n\geq 0$ -
  $\Leftrightarrow B(P(a,f^m(a))\wedge\lnot R(f^{n+1} (a)))= 1$ f.a.
  $m,n\geq 0$

  Also hat $\varphi$ genau dann ein Herbrand-Modell, wenn es eine
  erfüllende B-Belegung $B$ der Menge aussagenlogischer Formeln
  $E(\varphi)=\{P(a,f^m(a))\wedge\lnot R(f^{n+1}(a)) | m,n\geq 0\}$ gibt.

  Beispiellösung: Setzt $B(P(s,t))= 1$ und $B(R(s))= 0$ für alle
  $s,t\in D(\sum)$.

  Diese B-Belegung erfüllt $E(\varphi)$ und ``erzeugt'' die
  Herbrand-Struktur $A_B$ mit $P^{A_B}=D(\sum)^2$ und
  $R^{A_B}=\varnothing$.

  Nach obiger Überlegung gilt $A_B\Vdash\varphi$, wir haben also ein
  Herbrand-Modell von $\varphi$ gefunden.

  Sei $\varphi=\forall y_1\forall y_2...\forall y_n\psi$ gleichungsfreie
  Aussage in Skolemform.

  Ziel: Konstruktion einer Menge aussagenlogischer Formeln, die genau dann
  erfüllbar ist, wenn $\varphi$ ein Herbrand-Modell hat.

  Die Herbrand-Expansion von $\varphi$ ist die Menge der Aussagen
  $E(\varphi)=\{\psi[y_1:=t_1][y_2:=t_2]...[y_n:=t_n]|t_1,t_2,...,t_n\in D(\sum)\}$

  Die Formeln von $E(\varphi)$ entstehen also aus $\psi$, indem die
  (variablenfreien) Terme aus $D(\sum)$ in jeder möglichen Weise in $\psi$
  substituiert werden.

  Wir betrachten die Herbrand-Expansion von $\varphi$ im folgenden als
  eine Menge von aussagenlogischen Formeln.

  Die atomaren Formeln sind hierbei von der Gestalt $P(t_1,...,t_k)$ für
  $P\in Rel$ mit $ar(P)=k$ und $t_1,...,t_k\in D(\sum)$.

  \begin{quote}
    Konstruktion

    Sei
    $B:\{P(t_1,...,t_k)|P\in Rel,k=ar(P),t_1,...,t_k\in D(\sum)\}\rightarrow B$
    eine B-Belegung. Die hiervon induzierte Herbrand-Struktur $A_B$ ist
    gegeben durch
    $P^{A_B} = \{(t_1,...,t_k)|t_1,...,t_k\in D(\sum),B(P(t_1,...,t_k))= 1\}$
    für alle $P\in Rel$ mit $ar(P)=k$.
  \end{quote}

  \begin{quote}
    Lemma

    Für jede quantoren- und gleichungsfreie Aussage $\alpha$ und jede
    Variableninterpretation $\rho$ in $A_B$ gilt
    $A_B\Vdash_\rho\alpha \Leftrightarrow B(\alpha)= 1$.
  \end{quote}

  Beweis: - per Induktion über den Aufbau von $\alpha$ - I.A. $\alpha$ ist
  atomar, d.h. $\alpha= P(t_1,...,t_k)$ mit $t_1,...,t_k$ variablenlos
  $A_B\Vdash_\rho \alpha\Leftrightarrow (\rho(t_1),\rho(t_2),...,\rho(t_k))\in P^{A_B}\Leftarrow B(\alpha)= 1$
  - I.S. -
  $\alpha=\beta\wedge\gamma: A_B\Vdash_\rho \alpha\Leftrightarrow A_B \Vdash_\rho\beta$
  und
  $A_B\Vdash_\rho\gamma \Leftrightarrow B(\beta)=B(\gamma)= 1 \Leftrightarrow B(\alpha)= 1$
  - $\alpha=\beta\vee\gamma$: analog - $\alpha=\beta\rightarrow\gamma$:
  analog - $\alpha=\lnot\beta$: analog

  \begin{quote}
    Lemma

    Sei $\varphi=\forall y_1 \forall y_2 ...\forall y_n\psi$ gleichungsfreie
    Aussage in Skolemform. Sie hat genau dann ein Herbrand-Modell, wenn die
    Formelmenge $E(\varphi)$ (im aussagenlogischen Sinn) erfüllbar ist.
  \end{quote}

  Beweis: Seien $A$ Herbrand-Struktur und $\rho$ Variableninterpretation.
  Sei $B$ die B-Belegung mit
  $B(P(t_1,...,t_k))= 1\Leftrightarrow(t_1,...,t_k)\in P^A$ für alle
  $P\in Rel$ mit $k=ar(P)$ und $t_1,...,t_k\in D(\sum)$. Dann gilt
  $A=A_B$.

  \begin{quote}
    Satz von Gödel-Herbrand-Skolem

    Sei $\varphi$ gleichungsfreie Aussage in Skolemform. Sie ist genau dann
    erfüllbar, wenn die Formelmenge $E(\varphi)$ (im aussagenlogischen Sinn)
    erfüllbar ist.
  \end{quote}

  Beweis: $\varphi$ erfüllbar $\Leftrightarrow$ $\varphi$ hat ein
  Herbrand-Modell $\Leftrightarrow$ $E(\varphi)$ ist im aussagenlogischen
  Sinne erfüllbar.

  \begin{quote}
    Satz von Herbrand

    Eine gleichungsfreie Aussage $\varphi$ in Skolemform ist genau dann
    unerfüllbar, wenn es eine endliche Teilmenge von $E(\varphi)$ gibt, die
    (im aussagenlogischen Sinn) unerfüllbar ist.

    (Jacques Herbrand (1908-1931))
  \end{quote}

  Beweis: $\varphi$ unerfüllbar $\Leftrightarrow$ $E(\varphi)$ unerfüllbar
  $\Leftrightarrow$ es gibt $M\subseteq E(\varphi)$ endlich und
  unerfüllbar

  \subsection{Algorithmus von Gilmore}\label{algorithmus-von-gilmore}

  Sei $\varphi$ gleichungsfreie Aussage in Skolemform und sei
  $\alpha_1,\alpha_2,\alpha_3,...$ eine Aufzählung von $E(\varphi)$.

  Eingabe: $\varphi$

  \begin{verbatim}
n:=0;
repeat n := n +1;
until { alpha_1, alpha_2,..., alpha_n } ist unerfüllbar;
  (dies kann mit Mitteln der Aussagenlogik, z.B. Wahrheitswertetabelle, getestet werden)
Gib "unerfüllbar" aus und stoppe.
\end{verbatim}

  Folgerung: Sei $\varphi$ eine gleichungsfreie Aussage in Skolemform.
  Dann gilt: - Wenn die Eingabeformel $\varphi$ unerfüllbar ist, dann
  terminiert der Algorithmus von Gilmore und gibt ``unerfüllbar'' aus. -
  Wenn die Eingabeformel $\varphi$ erfüllbar ist, dann terminiert der
  Algorithmus von Gilmore nicht, d.h. er läuft unendlich lange.

  Beweis: unmittelbar mit Satz von Herbrand

  Zusammenfassung: alternative Semi-Entscheidungsverfahren für die Menge
  der allgemeingültigen Formeln. - Berechne aus $\psi$ eine zu $\lnot\psi$
  erfüllbarkeitsäquivalente gleichungsfreie Formel $\varphi$ in
  Skolemform. - Suche mit dem Algorithmus von Gilmore nach einer endlichen
  Teilmenge $E'$ von $E(\varphi)$, die unerfüllbar ist.

  \subsection{Berechnung von Lösungen}\label{berechnung-von-luxf6sungen}

  Beispiel - $\gamma = \forall x,y (R(x,f(y))\wedge R(g(x),y))$ -
  $\varphi = \forall x,yR(x,y)$ - Gilt $\{\gamma\}\Vdash\varphi$? nein,
  denn $A\Vdash\gamma\wedge\lnot\varphi$ mit - $A=(\mathbb{N},f^A,g^A,R)$
  - f\textsuperscript{A(n)=g}A(n)=n+1\$ für alle $n\in\mathbb{N}$ -
  $R^A = \mathbb{N}^2 \backslash\{( 0 , 0 )\}$ - Gibt es variablenfreie
  Terme $s$ und $t$ mit $\{\gamma\}\Vdash R(s,t)$? - ja: z.B.
  $(s,t)=(g(f(a)),g(a))$ oder $(s,t)=(g(a),g(a))$ oder $(s,t)=(a,f(b))$ -
  Kann die Menge aller Termpaare $(s,t)$ (d.h. aller ``Lösungen'') mit
  $\{\gamma\}\Vdash R(s,t)$ effektiv und übersichtlich angegeben werden? -
  Wegen $\{\gamma\}\Vdash R(s,t) \Leftrightarrow\gamma\wedge\lnot R(s,t)$
  unerfüllbar ist die gesuchte Menge der variablenfreien Terme $(s,t)$
  semi-entscheidbar, d.h. durch eine Turing-Maschine beschrieben. - Im
  Rest des Logikteils der Vorlesung ``Logik und Logikprogrammierung''
  wollen wir diese Menge von Termpaaren ``besser'' beschreiben (zumindest
  in einem Spezialfall, der die Grundlage der logischen Programmierung
  bildet).

  \begin{quote}
    Erinnerung

    Eine Horn-Klausel der Prädikatenlogik ist eine Aussage der Form
    $\forall x_1\forall x_2...\forall x_n ((\lnot\bot\wedge\alpha_1 \wedge\alpha_2 \wedge...\wedge\alpha_m)\rightarrow\beta)$,
    mit $m\geq 0$, atomaren Formeln $\alpha_1,...,\alpha_m$ und $\beta$
    atomare Formel oder $\bot$.
  \end{quote}

  Aufgabe: $\varphi_1,...,\varphi_n$ gleichungsfreie Horn-Klauseln,
  $\psi(x_1,x_2,...,x_{\iota} )=R(t_1,...,t_k)$ atomare Formel, keine
  Gleichung. Bestimme die Menge der Tupel $(s_1,...,s_{\iota} )$ von
  variablenfreien Termen mit
  $\{\varphi_1,...,\varphi_n\}\Vdash\psi(s_1,...,s_{\iota} )=R(t_1,...,t_k)[x_1:=s_1]...[x_{\iota} :=s_{\iota} ]$,
  d.h., für die die folgende Formel unerfüllbar ist:
  $\bigwedge_{1\leq i\leq n} \varphi_i \wedge \lnot\psi(s_1,...,s_{\iota} ) \equiv \bigwedge_{1\leq i\leq n} \varphi_i\wedge(\psi(s_1,...,s_{\iota} )\rightarrow\bot)$

  Erinnerung - Eine Horn-Formel der Prädikatenlogik ist eine Konjunktion
  von Horn-Klauseln der Prädikatenlogik. - Eine Horn-Klausel der
  Aussagenlogik ist eine Formel der Form
  $(\lnot\bot\wedge q_1\wedge q_2 \wedge...\wedge q_m)\rightarrow r$ mit
  $m\geq 0$, atomaren Formeln $q_1,q_2,...,q_m, r$ atomare Formel od.
  $\bot$.

  Beobachtung - Wir müssen die Unerfüllbarkeit einer gleichungsfreien
  Horn-Formel der Prädikatenlogik testen. - Ist $\varphi$ gleichungsfreie
  Horn-Klausel der Prädikatenlogik, so ist $E(\varphi)$ eine Menge von
  Horn-Klauseln der Aussagenlogik.

  Schreib- und Sprechweise -
  $\{\alpha_1,\alpha_2,...,\alpha_n\}\rightarrow\beta$ für Horn-Klausel
  der Prädikatenlogik
  $(\lnot\bot\wedge\alpha_1 \wedge\alpha_2\wedge...\wedge\alpha_n)\rightarrow\beta$
  insbes. $\varnothing\rightarrow\beta$ für $\lnot\bot\rightarrow\beta$ -
  $\{(N_i\rightarrow\beta_i) | 1\leq i\leq m\}$ für Horn-Formel
  $\bigwedge_{1\leq i\leq m} (N_i\rightarrow\beta_i)$

  Folgerung: Sei $\varphi =\bigwedge_{1\leq i\leq n} \varphi_i$
  gleichungsfreie Horn-Formel der Prädikatenlogik. Dann ist $\varphi$
  genau dann unerfüllbar, wenn $\bigcup_{1\leq i\leq n} E(\varphi_i)$ im
  aussagenlogischen Sinne unerfüllbar ist.

  Beweis: Für $1\leq i\leq n$ sei
  $\varphi_i=\forall x_1^i,x_2^i,...,x_{m_i}^i \psi_i$. Zur Vereinfachung
  nehme wir an, daß die Variablen $x_j^i$ für $1\leq i\leq n$ und
  $1\leq j\leq m_i$ paarweise verschieden sind.

  Folgerung: Eine gleichungsfreie Horn-Formel der Prädikatenlogik
  $\varphi=\bigwedge_{1\leq i\leq n} \varphi_i$ ist genau dann
  unerfüllbar, wenn es eine SLD-Resolution
  $(M_0\rightarrow\bot,M_1\rightarrow\bot,...,M_m\rightarrow\bot)$ aus
  $\bigcup_{1\leq i\leq n} E(\varphi_i)$ mit $M_m =\varnothing$ gibt.

  \subsection{Substitutionen}\label{substitutionen-1}

  Eine verallgemeinerte Substitution $\sigma$ ist eine Abbildung der Menge
  der Variablen in die Menge aller Terme, so daß nur endlich viele
  Variable $x$ existieren mit $\sigma(x) \not=x$.

  Sei $Def(\sigma)=\{x\ Variable|x\not =\sigma(x)\}$ der
  Definitionsbereich der verallgemeinerten Substitution $\sigma$. Für
  einen Term $t$ definieren wir den Term $t\sigma$ (Anwendung der
  verallgemeinerten Substitution $\sigma$ auf den Term $t$) wie folgt
  induktiv: - $x\sigma=\sigma(x)$ -
  $[f(t_1 ,... ,t_k)]\sigma=f(t_1\sigma,... ,t_k\sigma)$ für Terme
  $t_1,... ,t_k,f\in\Omega$ und $k=ar(f)$ Für eine atomare Formel
  $\alpha=P(t_1 ,... ,t_k)$ (d.h. $P\in Rel,ar(P) =k,t_1 ,... ,t_k$ Terme)
  sei $\alpha\sigma = P(t_1\sigma,... ,t_k\sigma)$

  Verknüpfungvon verallgemeinerten Substitutionen: Sind $\sigma_1$ und
  $\sigma_2$ verallgemeinerte Substitutionen, so definieren wir eine neue
  verallgemeinerte Substitution $\sigma_1 \sigma_2$ durch
  $(\sigma_1 \sigma_2)(x) = (x\sigma_1)\sigma_2$.

  Beispiel: Sei $x$ Variable und $t$ Term. Dann ist $\sigma$ mit
  $\sigma(y) =\begin{cases} t \quad\text{ falls } x=y \\ y \quad\text{ sonst }\end{cases}$
  eine verallgemeinerte Substitution. Für alle Terme $s$ und alle atomaren
  Formeln $\alpha$ gilt $s\sigma=s[x:=t]$ und $\alpha\sigma=\alpha[x:=t]$.
  Substitutionen sind also ein Spezialfall der verallgemeinerten
  Substitutionen.

  Beispiel: Die verallgemeinerte Substitution $\sigma$ mit
  $Def(\sigma)=\{x,y,z\}$ und
  $\sigma(x) =f(h(x')), \sigma(y) =g(a,h(x')), \sigma(z) =h(x')$ ist
  gleich der verallgemeinerten Substitution
  $[x:=f(h(x'))] [y:=g(a,h(x'))] [z:=h(x')] = [x:=f(z)] [y:=g(a,z)] [z:=h(x')]$.
  Es kann sogar jede verallgemeinerte Substitution $\sigma$ als
  Verknüpfung von Substitutionen der Form $[x:=t]$ geschrieben werden.
  Vereinbarung: Wir sprechen ab jetzt nur von ``Substitutionen'', auch
  wenn wir ``verallgemeinerte Substitutionen'' meinen.

  \begin{quote}
    Lemma

    Seien $\sigma$ Substitution, $x$ Variable und $t$ Term, so dass - (i)
    $x\not\in Def(\sigma)$ und - (ii) $x$ in keinem der Terme $y\sigma$ mit
    $y\in Def(\sigma)$ vorkommt. Dann gilt
    $[x:=t]\sigma=\sigma[x:=t\sigma]$.
  \end{quote}

  Beispiele: Im folgenden sei $t=f(y)$. - Ist $\sigma=[x:=g(z)]$, so gilt
  $x[x:=t]\sigma=t\sigma=t\not=g(z) =g(z)[x:=t\sigma] =x\sigma[x:=t\sigma]$.
  - Ist $\sigma= [y:=g(x)]$, so gilt
  $y[x:=t]\sigma=y\sigma=g(x) \not=g(f(g(x)))= g(x) [x:=t\sigma] =y\sigma[x:=t\sigma]$.
  - Ist $\sigma= [y:=g(z)]$, so gelten
  $Def([x:=t]\sigma) =\{x,y\}=Def(\sigma[x:=t\sigma]),[x:=t]\sigma(x) =f(g(z)) =\sigma[x:=t\sigma]$
  und $[x:=t]\sigma(y) =\sigma(z) =\sigma[x:=t\sigma]$, also
  $[x:=t]\sigma=\sigma[x:=t\sigma]$.

  Beweis: Wir zeigen $y[x:=t]\sigma=y\sigma[x:=t\sigma]$ für alle
  Variablen $y$. - $y=x$: Dann gilt $y[x:=t]\sigma=t\sigma$. Außerdem
  $y\sigma=x$ wegen $y=x\not\in Def(\sigma)$ und damit
  $y\sigma[x:=t\sigma]=x[x:=t\sigma]=t\sigma$. - $y\not =x$: Dann gilt
  $y[x:=t]\sigma=y\sigma$ und ebenso $y\sigma[x:=t\sigma]=y\sigma$, da $x$
  in $y\sigma$ nicht vorkommt.

  \subsection{Unifikator/Allgemeinster
    Unifikator}\label{unifikatorallgemeinster-unifikator}

  Gegeben seien zwei gleichungsfreie Atomformeln $\alpha$ und $\beta$.
  Eine Substitution $\sigma$ heißt Unifikator von $\alpha$ und $\beta$,
  falls $\alpha\sigma=\beta\sigma$.

  Ein Unifikator $\sigma$ von $\alpha$ und $\beta$ heißt allgemeinster
  Unifikator von $\alpha$ und $\beta$, falls für jeden Unifikator
  $\sigma'$ von $\alpha$ und $\beta$ eine Substitution $\tau$ mit
  $\sigma'=\sigma \tau$ existiert.

  Aufgabe: Welche der folgenden Paare $(\alpha,\beta)$ sind unifizierbar?
  \textbar{} $\alpha$ \textbar{} $\beta$ \textbar{} Ja \textbar{} Nein
  \textbar{} \textbar{} --- \textbar{} --- \textbar{} --- \textbar{} ---
  \textbar{} \textbar{} $P(f(x))$ \textbar{} $P(g(y))$ \textbar{}
  \textbar{} \textbar{} $P(x)$ \textbar{}$P(f(y))$\textbar{}\textbar{}
  \textbar{}$Q(x,f(y))$\textbar{} $Q(f(u),z)$\textbar{}\textbar{}
  \textbar{}$Q(x,f(y))$\textbar{} $Q(f(u),f(z))$\textbar{}\textbar{}
  \textbar{}$Q(x,f(x))$\textbar{} $Q(f(y),y)$\textbar{}\textbar{}
  \textbar{}$R(x,g(x),g^2 (x))$\textbar{} $R(f(z),w,g(w))$
  \textbar{}\textbar{}

  \subsubsection{Zum allgemeinsten
    Unifikator}\label{zum-allgemeinsten-unifikator}

  Eine Variablenumbenennung ist eine Substitution $\rho$, die $Def(\rho)$
  injektiv in die Menge der Variablen abbildet.

  \begin{quote}
    Lemma

    Sind $\sigma_1$ und $\sigma_2$ allgemeinste Unifikatoren von $\alpha$
    und $\beta$, so existiert eine Variablenumbenennung $\rho$ mit
    $\sigma_2=\sigma_1 \rho$.
  \end{quote}

  Beweis: $\sigma_1$ und $\sigma_2$ allgemeinste Unifikatoren
  $\Rightarrow$ es gibt Substitutionen $\tau_1$ und $\tau_2$ mit
  $\sigma_1\tau_1 =\sigma_2$ und $\sigma_2\tau_2 =\sigma_1$. Definiere
  eine Substitution $\rho$ durch:
  $\rho(y) =\begin{cases} y\tau_1 \quad\text{ falls es x gibt, so dass y in } x\sigma_1 \text{ vorkommt}\\ y \quad\text{ sonst }\end{cases}$
  Wegen $Def(\rho)\subseteq Def(\tau_1)$ ist $Def(\rho)$ endlich, also
  $\rho$ eine Substitution. - Für alle Variablen $x$ gilt dann
  $x\sigma_1 \rho=x\sigma_1 \tau_1 =x\sigma_2$ und daher
  $\sigma_2 =\sigma_1 \rho$. - Wir zeigen, dass $\rho(y)$ Variable und
  $\rho$ auf $Def(\rho)$ injektiv ist: Sei $y\in Def(\rho)$. Dann
  existiert Variable $x$, so dass $y$ in $x\sigma_1$ vorkommt. Es gilt
  $x\sigma_1 =x\sigma_2\tau_2=x\sigma_1\tau_1\tau_2$, und damit
  $y=y\tau_1 \tau_2 =y\rho \tau_2 =\rho(y)\tau_2$, d.h. $\rho(y)$ ist
  Variable, die Abbildung $\rho:Def(\rho)\rightarrow\{z|z\ Variable\}$ ist
  invertierbar (durch $\tau_2$) und damit injektiv.

  \subsubsection{Unifikationsalgorithmus}\label{unifikationsalgorithmus}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Eingabe: Paar$(\alpha,\beta)$ gleichungsfreier Atomformeln $\sigma:=$
          Substitution mit $Def(\sigma)=\varnothing$ (d.h. Identität)
    \item
          while $\alpha\sigma\not =\beta\sigma$ do
    \item
          Suche die erste Position, an der sich $\alpha\sigma$ und $\beta\sigma$
          unterscheiden
    \item
          if keines der beiden Symbole an dieser Position ist eine Variable
    \item
          then stoppe mit ``nicht unifizierbar''
    \item
          else sei $x$ die Variable und $t$ der Term in der anderen Atomformel
          (möglicherweise auch eine Variable)

          \begin{itemize*}
            \item
                  if $x$ kommt in $t$ vor
            \item
                  then stoppe mit ``nicht unifizierbar''
            \item
                  else $\sigma:=\sigma[x:=t]$
          \end{itemize*}
    \item
          endwhile
    \item
          Ausgabe: $\sigma$
  \end{itemize*}

  \begin{quote}
    Satz

    \begin{itemize*}
      \item
            \begin{enumerate*}
              \def\labelenumi{(\Alph{enumi})}
              \item
                    Der Unifikationsalgorithmus terminiert für jede Eingabe.
            \end{enumerate*}
      \item
            \begin{enumerate*}
              \def\labelenumi{(\Alph{enumi})}
              \setcounter{enumi}{1}
              \item
                    Wenn die Eingabe nicht unifizierbar ist, so terminiert der
                    Unifikationsalgorithmus mit der Ausgabe ``nicht unifizierbar''.
            \end{enumerate*}
      \item
            \begin{enumerate*}
              \def\labelenumi{(\Alph{enumi})}
              \setcounter{enumi}{2}
              \item
                    Wenn die Eingabe $(\alpha,\beta)$ unifizierbar ist, dann findet der
                    Unifikationsalgorithmus einen allgemeinsten Unifikator von $\alpha$
                    und $\beta$.
            \end{enumerate*}
    \end{itemize*}
  \end{quote}

  \begin{enumerate*}
    \def\labelenumi{(\Alph{enumi})}
    \setcounter{enumi}{2}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          besagt insbesondere, daß zwei unifizierbare gleichungsfreie
          Atomformeln (wenigstens) einen allgemeinsten Unifikator haben. Nach
          dem Lemma oben haben sie also genau einen allgemeinsten Unifikator
          (bis auf Umbenennung der Variablen).
  \end{enumerate*}

  Die drei Teilaussagen werden in getrennten Lemmata bewiesen werden.

  \begin{quote}
    Lemma (A) Der Unifikationsalgorithmus terminiert für jede
    Eingabe($\alpha$, $\beta$).
  \end{quote}

  Beweis: Wir zeigen, daß die Anzahl der in $\alpha\sigma$ oder
  $\beta\sigma$ vorkommenden Variablen in jedem Durchlauf der
  while-Schleife kleiner wird. Betrachte hierzu einen Durchlauf durch die
  while-Schleife. Falls der Algorithmus in diesem Durchlauf nicht
  terminiert, so wird $\sigma$ auf $\sigma[x:=t]$ gesetzt. Hierbei kommt
  $x$ in $\alpha\sigma$ oder in $\beta\sigma$ vor und der Term $t$ enthält
  $x$ nicht. Also kommt $x$ weder in $\alpha\sigma[x:=t]$ noch in
  $\beta\sigma[x:=t]$ vor.

  \begin{quote}
    Lemma (B) Wenn die Eingabe nicht unifizierbar ist, so terminiert der
    Unifikationsalgorithmus mit der Ausgabe ``nicht unifizierbar''.
  \end{quote}

  Beweis: Sei die Eingabe $(\alpha,\beta)$ nicht unifizierbar. Falls die
  Bedingung $\alpha\sigma\not=\beta\sigma$ der while-Schleife irgendwann
  verletzt wäre, so wäre $(\alpha,\beta)$ doch unifizierbar (denn $\sigma$
  wäre ja ein Unifikator). Da nach Lemma (A) der Algorithmus bei Eingabe
  $(\alpha,\beta)$ terminiert, muss schließlich ``nicht unifizierbar''
  ausgegeben werden.

  \begin{quote}
    Lemma (C1) Sei $\sigma'$ ein Unifikator der Eingabe $(\alpha,\beta)$, so
    dass keine Variable aus $\alpha$ oder $\beta$ auch in einem Term aus
    $\{y\sigma'|y\in Def(\sigma')\}$ vorkommt. Dann terminiert der
    Unifikationsalgorithmus erfolgreich und gibt einen Unifikator $\sigma$
    von $\alpha$ und $\beta$ aus. Außerdem gibt es eine Substitution $\tau$
    mit $\sigma'=\sigma\tau$.
  \end{quote}

  Beweis: - Sei $N\in\mathbb{N}$ die Anzahl der Durchläufe der
  while-Schleife (ein solches $N$ existiert, da der Algorithmus nach Lemma
  (A) terminiert). - Sei $\sigma_0$ Substitution mit
  $Def(\sigma_0) =\varnothing$, d.h. die Identität. Für $1\leq i\leq N$
  sei $\sigma_i$ die nach dem $i$-ten Durchlauf der while-Schleife
  berechnete Substitution $\sigma$. - Für $1\leq i\leq N$ sei $x_i$ die im
  $i$-ten Durchlauf behandelte Variable $x$ und $t_i$ der entsprechende
  Term $t$. - Für $0\leq i\leq N$ sei $\tau_i$ die Substitution mit
  $\tau_i(x)=\sigma'(x)$ für alle
  $x\in Def(\tau_i) =Def(\sigma')\backslash\{x_1,x_2,...,x_i\}$.

  Behauptung: 1. Für alle $0\leq i\leq N$ gilt $\sigma'=\sigma_i\tau_i$.
  2. Im $i$-ten Durchlauf durch die while-Schleife $(1\leq i\leq N)$
  terminiert der Algorithmus entweder erfolgreich (und gibt die
  Substitution $\sigma_N$ aus) oder der Algorithmus betritt die beiden
  else-Zweige. 3. Für alle $0\leq i\leq N$ enthalten
  $\{\alpha\sigma_i,\beta\sigma_i\}$ und $T_i=\{y\tau_i|y\in Def(\tau_i)\}$
  keine gemeinsamen Variablen.

  Aus dieser Behauptung folgt tatsächlich die Aussage des Lemmas: - Nach
  (2) terminiert der Algorithmus erfolgreich mit der Substitution
  $\sigma_N$. Daher gilt aber $\alpha\sigma_N=\beta\sigma_N$, d.h.
  $\sigma_N$ ist ein Unifikator. - Nach (1) gibt es auch eine Substitution
  $\tau_n$ mit $\sigma'=\sigma_N\tau_n$.

  \begin{quote}
    Lemma (C) Sei die Eingabe $(\alpha,\beta)$ unifizierbar. Dann terminiert
    der Unifikationsalgorithmus erfolgreich und gibt einen allgemeinsten
    Unifikator $\sigma$ von $\alpha$ und $\beta$ aus.
  \end{quote}

  Beweis: Sei $\sigma'$ ein beliebiger Unifikator von $\alpha$ und
  $\beta$. Sei $Y=\{y_1,y_2,... ,y_n\}$ die Menge aller Variablen, die in
  $\{y\sigma'|y\in Def(\sigma')\}$ vorkommen. Sei $Z=\{z_1,z_2,...,z_n\}$
  eine Menge von Variablen, die weder in $\alpha$ noch in $\beta$
  vorkommen. Sei $\rho$ die Variablenumbenennung mit
  $Def(\rho)=Y\cup Z,\rho(y_i) =z_i$ und $\rho(z_i)=y_i$ für alle
  $1\leq i\leq n$. Dann ist auch $\sigma'\rho$ ein Unifikator von $\alpha$
  und $\beta$ und keine Variable aus $\alpha$ oder $\beta$ kommt in einem
  der Terme aus $\{y\sigma'\rho|y\in Def(\sigma')\}$ vor. Nach Lemma (C1)
  terminiert der Unifikationsalgorithmus erfolgreich mit einem Unifikator
  $\sigma$ von $\alpha$ und $\beta$, so dass es eine Substitution $\tau$
  gibt mit $\sigma'\rho=\sigma\tau$. Also gilt
  $\sigma'=\sigma(\tau\rho^{-1})$. Da $\sigma'$ ein beliebiger Unifikator
  von $\alpha$ und $\beta$ war und da die Ausgabe $\sigma$ des Algorithmus
  nicht von $\sigma'$ abhängt, ist $\sigma$ also ein allgemeinster
  Unifikator.

  \begin{quote}
    Satz

    \begin{itemize*}
      \item
            \begin{enumerate*}
              \def\labelenumi{(\Alph{enumi})}
              \item
                    Der Unifikationsalgorithmus terminiert für jede Eingabe.
            \end{enumerate*}
      \item
            \begin{enumerate*}
              \def\labelenumi{(\Alph{enumi})}
              \setcounter{enumi}{1}
              \item
                    Wenn die Eingabe nicht unifizierbar ist, so terminiert der
                    Unifikationsalgorithmus mit der Ausgabe ``nicht unifizierbar''.
            \end{enumerate*}
      \item
            \begin{enumerate*}
              \def\labelenumi{(\Alph{enumi})}
              \setcounter{enumi}{2}
              \item
                    Wenn die Eingabe $(\alpha,\beta)$ unifizierbar ist, dann findet der
                    Unifikationsalgorithmus immer einen allgemeinsten Unifikator von
                    $\alpha$ und $\beta$.
            \end{enumerate*}
    \end{itemize*}
  \end{quote}

  \begin{enumerate*}
    \def\labelenumi{(\Alph{enumi})}
    \setcounter{enumi}{2}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          besagt insbesondere, daß zwei unifizierbare gleichungsfreie
          Atomformeln(wenigstens) einen allgemeinsten Unifikator haben. Damit
          haben sie aber genau einen allgemeinsten Unifikator (bis auf
          Umbenennung der Variablen).
  \end{enumerate*}

  \subsection{Prädikatenlogische
    SLD-Resolution}\label{pruxe4dikatenlogische-sld-resolution}

  Erinnerung - Eine Horn-Klausel der Prädikatenlogik ist eine Aussage der
  Form
  $\forall x_1 \forall x_2... \forall x_n ((\lnot\bot \wedge\alpha_1 \wedge\alpha_2 \wedge...\wedge\alpha_m)\rightarrow\beta)=\Psi$
  mit $m\geq 0$, atomaren Formeln $\alpha_1,...,\alpha_m$ und $\beta$
  atomare Formel oder $\bot$. Sie ist definit, wenn $\beta\not =\bot$. -
  $E(\varphi) =\{\Psi[x_1 :=t_1 ][x_2 :=t_2 ]...[x_n:=tn]|t_1 ,t_2 ,...,t_n\in D(\sigma)\}$
  - Eine Horn-Klausel der Aussagenlogik ist eine Formel der Form
  $(\lnot\bot\wedge q_1 \wedge q_2 \wedge... \wedge q_m)\rightarrow r$ mit
  $m\geq 0$, atomaren Formeln $q_1,q_2,...,q_m,r$ atomare Formel oder
  $\bot$.

  Schreib- und Sprechweise: Für die Horn-Klausel der Prädikatenlogik
  $\forall x_1...\forall x_n(\lnot\bot \wedge \alpha_1 \wedge \alpha_2 \wedge...\wedge \alpha_m)\rightarrow\beta$
  schreiben wir kürzer
  $\{\alpha_1,\alpha_2,...,\alpha_m\}\rightarrow\beta$. insbes.
  $\varnothing\rightarrow\beta$ für
  $\forall x_1...\forall x_n(\lnot\bot\rightarrow\beta)$

  Erinnerung: Sei $\Gamma$ eine Menge von Horn-Klauseln der Aussagenlogik.
  Eine aussagenlogische SLD-Resolution aus $\Gamma$ ist eine Folge
  $(M_0 \rightarrow\bot,M_1 \rightarrow\bot,...,M_m\rightarrow\bot)$ von
  Hornklauseln mit - $(M_0\rightarrow\bot)\in\Gamma$ und - für alle
  $0\leq n<m$ existiert $(N\rightarrow q)\in\Gamma$ mit $q\in M_n$ und
  $M_{n+1} =M_n\backslash\{q\}\cup N$

  \begin{quote}
    Definition

    Sei $\Gamma$ eine Menge von gleichungsfreien Horn-Klauseln der
    Prädikatenlogik. Eine SLD-Resolution aus $\Gamma$ ist eine Folge
    $((M_0\rightarrow\bot,\sigma_0),(M_1\rightarrow\bot,\sigma_1),...,(M_m\rightarrow\bot,\sigma_m))$
    von Horn-Klauseln und Substitutionen mit -
    $(M_0\rightarrow\bot)\in\Gamma$ und $Def(\sigma_0)=\varnothing$ - für
    alle $0\leq n<m$ existieren
    $\varnothing\not=Q\subseteq M_n,(N\rightarrow\alpha)\in\Gamma$ und
    Variablenumbenennung $\rho$, so dass - $(N\cup\{\alpha\})\rho$ und $M_n$
    variablendisjunkt sind, - $\sigma_{n+1}$ ein allgemeinster Unifikator
    von $\alpha\rho$ und $Q$ ist und -
    $M_{n+1} = (M_n\backslash Q\cup N\rho)\sigma_{n+1}$.
  \end{quote}

  Ziel: Seien $\Gamma=\{\varphi_1,...,\varphi_n\}$ Menge gleichungsfreier
  Horn-Klauseln, $\Psi(x_1,x_2 ,...,x_{\iota}) =R(t_1 ,...,t_k)$ atomare
  Formel, keine Gleichung und $(s_1,...,s_{\iota})$ Tupel variablenloser
  Terme. Dann sind äquivalent: 1.
  $\Gamma\Vdash\Psi(s_1,...,s_{\iota}). 2.$ Es gibt eine SLD-Resolution $((M\_n\rightarrow\bot,\sigma\emph{n))}\{0\leq n\leq m\}$ aus $\Gamma\cup\{M_0\rightarrow\bot\}$ mit
  $M_0=\{\Psi(x_1,...,x_{\iota})\}$ und $M_m=\varnothing$ und eine
  Substitution $\tau$, so dass $s_i=x_i\sigma_0 \sigma_1 ...\sigma_m\tau$
  für alle $1\leq i\leq \iota$ gilt.

  \begin{quote}
    Lemma

    Sei $\Gamma$ Menge von gleichungsfreien Horn-Klauseln der
    Prädikatenlogik und $(M_n \rightarrow\bot,\sigma_n))_{0\leq n\leq m}$
    eine SLD-Resolution aus $\Gamma\cup\{M_0\rightarrow\bot\}$ mit
    $M_m=\varnothing$. Dann gilt
    $\Gamma\Vdash\Psi\sigma_0 \sigma_1\sigma_2...\sigma_m$ für alle
    $\Psi\in M_0$.
  \end{quote}

  Konsequenz:
  $\Gamma=\{\varphi_1,...,\varphi_n\},M_0 =\{\Psi(x_1,...,x_{\iota})\},\tau$
  Substitution, so dass
  $s_i=x_i \sigma_0 \sigma_1 \sigma_2 ...\sigma_m \tau$ variablenlos für
  alle $1\leq i \leq \iota$. Nach dem Lemma gilt also
  $\Gamma \Vdash\Psi(x_1,...,x_{\iota})\sigma_0 ...\sigma_m$ und damit
  $\Gamma\Vdash\Psi(x_1 ,...,x_{\iota} )\sigma_0 ...\sigma_m\tau=\Psi(s_1,...,s_{\iota} )$.
  Die Implikation $(2)\Rightarrow (1)$ des Ziels folgt also aus diesem
  Lemma.

  \begin{quote}
    Lemma

    Sei $\Gamma$ eine Menge von definiten gleichungsfreien Horn-Klauseln der
    Prädikatenlogik, sei $M\rightarrow\bot$ eine gleichungsfreie
    Horn-Klausel und sei $\nu$ Substitution, so dass $M\nu$ variablenlos ist
    und $\Gamma\Vdash M\nu$ gilt. Dann existieren eine prädikatenlogische
    SLD-Resolution $((M_n \rightarrow\bot,\sigma_n))_{0 \leq n\leq m}$ und
    eine Substitution $\tau$ mit $M_0=M,M_m=\varnothing$ und
    $M_0 \sigma_0 \sigma_1... \sigma_m \tau=M_{\nu}$.
  \end{quote}

  Konsequenz:
  $\Gamma=\{\varphi_1,...,\varphi_n\},M=\{\psi(x_1 ,...,x_{\iota})\},s_1,...,s_\iota\}$
  variablenlose Terme, so dass
  $\{\varphi_1 ,...,\varphi_n\}\Vdash\psi(s_1,...,s_{\iota}) =\psi(x_1 ,...,x_{\iota})\nu$
  mit $\nu(x_i)=s_i$. Dann existieren SLD-Resolution und Substitution
  $\tau$ mit
  $M_0\sigma 0...\sigma_m\tau=M\nu=\{\psi (s_1,...,s_{\iota} )\}$. Die
  Implikation $(1)\Rightarrow (2)$ des Ziels folgt also aus diesem Lemma.

  \begin{quote}
    Satz

    Sei $\Gamma$ eine Menge von definiten gleichungsfreien Horn-Klauseln der
    Prädikatenlogik, sei $M\rightarrow\bot$ eine gleichungsfreie
    Horn-Klausel und sei $\nu$ Substitution, so dass $M\nu$ variablenlos
    ist. Dann sind äquivalent: - $\Gamma\Vdash M\nu$ - Es existieren eine
    SLD-Resolution $((M_n\rightarrow\bot,\sigma_n))_{0\leq n\leq m}$ aus
    $\Gamma\cup\{M\nu\rightarrow\bot\}$ und eine Substitution $\tau$ mit
    $M_0=M,M_m=\varnothing$ und $M_0\sigma_0\sigma_1...\sigma_m\tau=M\nu$.
  \end{quote}

  Konsequenz:
  $\Gamma =\{\varphi_1,...,\varphi_n\},M_0 =\{\psi(x_1,...,x_{\iota})\}=\{R(t_1,t_2,...,t_k)\}$.
  Durch SLD-Resolutionen können genau die Tupel variablenloser Terme
  gewonnen werden, für die gilt:
  $\{\varphi_1,...,\varphi_n\}\Vdash\psi (s_1,...,s_{\iota})$

  \subsection{Zusammenfassung
    Prädikatenlogik}\label{zusammenfassung-pruxe4dikatenlogik}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Das natürliche Schließen formalisiert die ``üblichen'' Argumente in
          mathematischen Beweisen.
    \item
          Das natürliche Schließen ist vollständig und korrekt.
    \item
          Die Menge der allgemeingültigen Formeln ist semi-entscheidbar, aber
          nicht entscheidbar.
    \item
          Die Menge der Aussagen, die in $(\mathbb{N},+,*,0,1)$ gelten, ist
          nicht semi-entscheidbar.
    \item
          Die SLD-Resolution ist ein praktikables Verfahren, um die Menge der
          ``Lösungen'' $(s_1,...,s_{\iota})$ von
          $\Gamma\Vdash\psi(s_1,...,s_{\iota})$ zu bestimmen (wobei $\Gamma$
          Menge von gleichungsfreien Horn-Klauseln und $\psi$ Konjunktion von
          gleichungsfreien Atomformeln sind.
  \end{itemize*}

  \section{Logische Programmierung}\label{logische-programmierung}

  \subsection{Einführung in die Künstliche Intelligenz
    (KI)}\label{einfuxfchrung-in-die-kuxfcnstliche-intelligenz-ki}

  Ziel: Mechanisierung von Denkprozessen

  Grundidee (nach G.W. Leibniz) 1. lingua characteristica -
  Wissensdarstellungssprache 2. calculus ratiocinator -
  Wissensverarbeitungskalkül

  \textbf{Teilgebiete der KI} - Wissensrepräsentation - maschinelles
  Beweisen (Deduktion) - KI-Sprachen: Prolog, Lisp - Wissensbasierte
  Systeme - Lernen (Induktion) - Wissensverarbeitungstechnologien
  (Suchtechniken, fallbasiertes Schließen, Multiagenten-Systeme) - Sprach-
  und Bildverarbeitung

  \subsection{Logische Grundlagen}\label{logische-grundlagen}

  \subsubsection{PROLOG - ein
    ``Folgerungstool''}\label{prolog---ein-folgerungstool}

  Sei $M$ eine Menge von Aussagen, $H$ eine Hypothese.

  $H$ folgt aus $M(M \Vdash H)$, falls jede Interpretation, die zugleich
  alle Elemente aus $M$ wahr macht (jedes Modell von M), auch $H$ wahr
  macht. Für endliche Aussagenmengen $M=\{A_1, A_2, ... , A_n\}$ bedeutet
  das: $M \Vdash H$, gdw. $ag(\bigwedge_{i=1}^n A_i\rightarrow A)$ bzw.
  (was dasselbe ist) $kt(\bigwedge_{i=1}^n A_i \wedge \lnot A)$

  \subsubsection{Aussagen in PROLOG: HORN-Klauseln des
    PK1}\label{aussagen-in-prolog-horn-klauseln-des-pk1}


  \includegraphics[width=\linewidth]{Assets/Logik-prolog-horn.png}

  $A(X_1,...,X_n), A_i(X_1,...,X_n)$ quantorfreie Atomformeln, welche die
  allquantifizierten Variablen $X_1,...,X_n$ enthalten können

  Varianten / Spezialfälle 1. Regeln (vollständige HORN-Klauseln)
  $\forall X_1... \forall X_n(A(X_1,...,X_n)\leftarrow \bigwedge_{i=1}^n A_i(X_1,...,X_n))$
  2. Fakten (HORN-Klauseln mit leerem Klauselkörper)
  $\forall X_1...\forall X_n(A(X_1,...,X_n)\leftarrow true)$ 3. Fragen
  (HORN-Klauseln mit leerem Klauselkopf)
  $\forall X_1...\forall X_n(false \leftarrow \bigwedge_{i=1}^n A_i(X_1,...,X_n))$
  4. leere HORN-Klauseln (mit leeren Kopf \& leerem Körper)
  $false\leftarrow true$

  Effekte der Beschränkung auf HORN-Logik 1. Über HORN-Klauseln gibt es
  ein korrektes und vollständiges Ableitungsverfahren. -
  $\{K_1, ...,K_n\} \Vdash H$ , gdw. $\{K_1,...,K_n\} \vdash_{ROB} H$ 1.
  Die Suche nach einer Folge von Resolutionsschritten ist
  algorithmisierbar. - Das Verfahren ``Tiefensuche mit Backtrack'' sucht
  systematisch eine Folge, die zur leeren Klausel führt. - Rekursive
  und/oder metalogische Prädikate stellen dabei die Vollständigkeit in
  Frage. 3. Eine Menge von HORN-Klauseln mit nichtleeren Klauselköpfen ist
  stets erfüllbar; es lassen sich keine Widersprüche formulieren. -
  $K_1 \wedge K_2...\wedge K_n \not= false$

  Die systematische Erzeugung von (HORN-) Klauseln 1.
  Verneinungstechnischen Normalform (VTNF): $\lnot$ steht nur vor
  Atomformeln - $\lnot\lnot A\equiv A$ 2. Erzeugung der Pränexen
  Normalform (PNF): $\forall, \exists$ stehen vor dem Gesamtausdruck -
  $\forall X A(X) \rightarrow B \equiv \exists X(A(X)\rightarrow B)$ -
  $\exists X A(X) \rightarrow B \equiv \forall X(A(X)\rightarrow B)$ 3.
  Erzeugung der SKOLEM`schen Normalform (SNF): $\exists$ wird eliminiert
  Notation aller existenzquantifizierten Variablen als Funktion derjenigen
  allquantifizierten Variablen, in deren Wirkungsbereich ihr Quantor
  steht. Dies ist keine äquivalente - , wohl aber eine die
  Kontradiktorizität erhaltende Umformung. 4. Erzeugung der Konjunktiven
  Normalform (KNF) Durch systematische Anwendung des Distributivgesetzes
  $A\vee (B\wedge C)\equiv (A\vee B)\wedge(A\vee C)$ lässt sich aus der
  SNF $\forall X_1...\forall X_n A(X_1,...,X_n)$ stets die äquivalente KNF
  $\forall X_1...\forall X_n((L_1^1\vee...\vee L_1^{n_1})\wedge...\wedge(L_m^1\vee...\vee L_m^{n_m}))$
  erzeugen. Die $L_i^k$ sind unnegierte oder negierte Atomformeln und
  heißen positive bzw. negative Literale. 5. Erzeugung der Klauselform
  (KF) Jede der Elementardisjunktionen $(L_1^j \vee...\vee L_1^{j_k})$ der
  KNF kann man als äquivalente Implikation (Klausel)
  $(L_i^j \vee...\vee L_i^{j_m})\leftarrow(L_1^{j_{m+1}}\wedge ...\wedge L_1^{j_k})$
  notieren, indem man alle positiven Literale $L_i^j,...,L_i^{j_m}$
  disjunktiv verknüpft in den DANN-Teil (Klauselkopf) und alle negativen
  Literale $L_i^{j_{m+1}},...,L_i^{j_k}$ konjunktiv verknüpft in den
  WENN-Teil (Klauselkörper) notiert. 6. Sind die Klauseln aus Schritt 5.
  HORN? In dem Spezialfall, dass alle Klauselköpfe dabei aus genau einem
  Literal bestehen, war die systematische Erzeugung von HORN-Klauseln
  erfolgreich; anderenfalls gelingt sie auch nicht durch andere Verfahren.
  Heißt das etwa, die HORN-Logik ist eine echte Beschränkung der
  Ausdrucksfähigkeit? Richtig, das heißt es.

  Im Logik-Teil dieser Vorlesung lernten Sie eine Resolutionsmethode für
  Klauseln kennenlernen - \ldots{} deren Algorithmisierbarkeit allerdings
  an der ``kombinatorischen Explosion'' der Resolutionsmöglichkeiten
  scheitert, aber \ldots{} - \ldots{} in der LV ``Inferenzmethoden''
  können Sie noch ein paar ``Tricks'' kennenlernen, die ``Explosion''
  einzudämmen

  \subsubsection{Inferenz in PROLOG: Resolution nach
    ROBINSON}\label{inferenz-in-prolog-resolution-nach-robinson}

  gegeben: - Menge von Regeln und Fakten M $M=\{K_1,...,K_n\}$ - negierte
  Hypothese $\lnot H$
  $\lnot H\equiv \bigwedge_{i=1}^m H_i \equiv false \rightarrow \bigwedge_{i=1}^m H_i$

  Ziel: Beweis, dass $M \Vdash H$.
  $kt(\bigwedge_{i=1}^n K_i \wedge \lnot H)$

  Eine der Klauseln habe die Form $A\leftarrow \bigwedge_{k=1}^p B_k$.
  ($A,B_k$- Atomformeln)

  Es gebe eine Substitution (Variablenersetzung) $\nu$ für die $A$ und
  eines der $H_i$ (etwa $H_l$) vorkommenden Variablen, welche $A$ und
  $H_l$ syntaktisch identisch macht.

  $M\equiv \bigwedge_{i=1}^n K_i\wedge \lnot(\bigwedge_{i=1}^m H_i)$ ist
  kontradiktorisch ($kt\ M‘$), gdw. $M‘$ nach Ersetzen von $H$ durch
  $\bigwedge_{i=1}^{l-1}\nu(H_i)\wedge\bigwedge_{k=1}^p\nu(B_k)\wedge\bigwedge_{i=l+1}^m \nu(H_i)$
  noch immer kontradiktorisch ist.

  Jetzt wissen wir also, wie man die zu zeigende Kontradiktorizität auf
  eine andere - viel kompliziertere Kontradiktorizität zurückführen kann.
  Für $p=0$ und $m=1$ wird es allerdings trivial. Die sukzessive Anwendung
  von Resolutionen muss diesen Trivialfall systematisch herbeiführen:

  \begin{quote}
    Satz von ROBINSON

    $M'\equiv\bigwedge_{i=1}^n K_i\wedge \lnot H$ ist kontradiktorisch
    ($kt\ M‘$), gdw. durch wiederholte Resolutionen in endlich vielen
    Schritten die negierte Hypothese $\lnot H\equiv false \leftarrow H$
    durch die leere Klausel $false\leftarrow true$ ersetzt werden kann.
  \end{quote}

  Substitution - Eine (Variablen-) Substitution $\nu$ einer Atomformel $A$
  ist eine Abbildung der Menge der in $A$ vorkommenden Variablen $X$ in
  die Menge der Terme (aller Art: Konstanten, Variablen, strukturierte
  Terme). - Sie kann als Menge von Paaren $[Variable,Ersetzung]$ notiert
  werden: $\nu=\{[x,t]: x\in X, t=\nu(x)\}$ - Für strukturierte Terme wird
  die Substitution auf deren Komponenten angewandt:
  $\nu(f(t_1,...,t_n)) = f(\nu(t_1),...,\nu(t_n))$ - Verkettungsoperator
  $\circ$ für Substitutionen drückt Hintereinander-anwendung aus:
  $\sigma\circ\nu(t)=\sigma(\nu(t))$ - Substitutionen, die zwei Terme
  syntaktisch identisch machen, heißen Unifikator: $\nu$unifiziert zwei
  Atomformeln (oder Terme) $s$ und $t$ (oder: heißt Unifikator von $s$ und
  $t$), falls dessen Einsetzung $s$ und $t$ syntaktisch identisch macht.

  \paragraph{Unifikation}\label{unifikation}

  Zwei Atomformeln $p(t_{11},...,t_{1n})$ und $p_2(t_{21},...,t_{2n})$
  sind unifizierbar, gdw. - sie die gleichen Prädikatensymbole aufweisen
  ($p_1= p_2$), - sie die gleichen Stelligkeiten aufweisen ($n = m$) und -
  die Terme $t_{1i}$ und $t_{2i}$ jeweils miteinander unifizierbar sind.

  Die Unifizierbarkeit zweier Terme richtet sich nach deren Sorte: 1. Zwei
  Konstanten $t_1$ und $t_2$ sind unifizierbar, gdw. $t_1= t_2$ 2. Zwei
  strukturierte Terme $f(t_{11},...,t_{1n})$ und $f(t_{21},...,t_{2n})$
  sind unifizierbar, gdw. - sie die gleichen Funktionssymbole aufweisen
  ($f_1= f_2$), - sie die gleichen Stelligkeiten aufweisen ($n=m$) und -
  die Terme $t_{1i}$ und $t_{2i}$ jeweils miteinander unifizierbar sind.
  3. Eine Variable $t_1$ ist mit einer Konstanten oder einem
  strukturierten Term $t_2$ unifizierbar. $t_1$ wird durch $t_2$ ersetzt
  (instanziert): $t_1:= t_2$ 4. Zwei Variablen $t_1$ und $_2$ sind
  unifizierbar und werden gleichgesetzt: $t_1:=t_2$ bzw. $t_2:= t_1$

  Genügt ``irgendein'' Unifikator? - ein Beispiel -
  $K_1: p(A,B)\leftarrow q(A)\wedge r(B)$ - $K_2:q(c)\leftarrow true$ -
  $K_3:r(d)\leftarrow true$ - $\lnot H: false\leftarrow p(X,Y)$ -
  Unifikatoren für $H_1^0$ und Kopf von $K_1$: -
  $\nu^1 = \{[X,a],[Y,b],[A,a],[B,b]\}$ - $\nu^2 =\{[X,a],[Y,B],[A,a]\}$ -
  $\nu^3 =\{[X,A],[Y,b],[B,b]\}$ - $\nu^4=\{[A,X],[B,Y]\}$ \ldots{} -
  Obwohl $\{K_1, K_2, K_3\}\Vdash H$, gibt es bei Einsetzung von $\nu^1$,
  $\nu^2$ und $\nu^3$ keine Folge von Resolutionsschritten, die zur leeren
  Klausel führt. - Bei Einsetzung von $\nu^4$ hingegen gibt es eine solche
  Folge. - Die Vollständigkeit des Inferenzverfahrens hängt von der Wahl
  des ``richtigen'' Unifikators ab. - Dieser Unifikator muss möglichst
  viele Variablen variabel belassen. Unnötige Spezialisierungen versperren
  zukünftige Inferenzschritte. - Ein solcher Unifikator heißt
  \textbf{allgemeinster Unifikator} bzw. ``most general unifier''
  (m.g.u.).

  \begin{quote}
    Allgemeinster Unifikator

    Eine Substitution heißt allgemeinster Unifikator (most general unfier;
    m.g.u.) zweier (Atomformeln oder) Terme $s$ und $t$
    ($\nu= m.g.u.(s,t)$), gdw. 1. die Substitution $\nu$ ein Unifikator von
    $s$ und $t$ ist und 2. für jeden anderen Unifikator $\sigma$ von $s$ und
    $t$ eine nichtleere und nicht identische Substitution $\tau$ existiert,
    so dass $\sigma=\tau\circ\nu$ ist. graphisch betrachtet:
    \includegraphics[width=\linewidth]{Assets/Logik_allgemeinster-unifikator.png}
  \end{quote}

  Der Algorithmus zur Berechnung des m.g.u. zweier Terme $s$ und $t$
  verwendet Unterscheidungsterme: Man lese $s$ und $t$ zeichenweise
  simultan von links nach rechts. Am ersten Zeichen, bei welchem sich $s$
  und $t$ unterscheiden, beginnen die Unterscheidungsterme $s*$ und $t*$
  und umfassen die dort beginnenden (vollständigen) Teilterme.

  Algorithmus zur Bestimmung des allgemeinsten Unifikators 2er Terme

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          input: s, t
    \item
          output: Unifizierbarkeitsaussage, ggf. $\nu= m.g.u.( s , t )$
    \item
          $i:=0;\nu_i:=\varnothing;s_i:=s; t_i=t$
    \item
          Start: $s_i$ und $t_i$ identisch?
    \item
          ja $\Rightarrow$ s und t sind unifizierbar, $\nu=\nu_i=m.g.u.(s,t)$
          (fertig)
    \item
          nein $\Rightarrow$ Bilde die Unterscheidungsterme $s_i^*$ und $t_i^*$

          \begin{itemize*}
            \item
                  $s_i^*$ oder $t_i^*$ Variable?
            \item
                  nein $\Rightarrow$ $s$ und $t$ sind nicht unifizierbar (fertig)
            \item
                  ja $\Rightarrow$ sei (o.B.d.A.) $s_i^*$ eine Variable

                  \begin{itemize*}
                    \itemsep1pt\parskip0pt\parsep0pt
                    \item
                          $s_i^* \subseteq t_i^*$? (enthält $t_i^*$ die Variable $s_i^*$?)
                    \item
                          ja $\Rightarrow$ $s$ und $t$ sind nicht unifizierbar (fertig)
                    \item
                          nein $\Rightarrow$

                          \begin{itemize*}
                            \itemsep1pt\parskip0pt\parsep0pt
                            \item
                                  $\nu':=\{[s,t']: [s,t]\in\nu, t':=t|_{s*\rightarrow t*}\}\cup \{[s_i^*, t_i^*]\}$
                            \item
                                  $s':=\nu'(s_i); t':=\nu'(t_i); i:=i+1;$
                            \item
                                  $\nu_i:=\nu'; s_i:=s'; t_i:=t';$
                            \item
                                  gehe zu Start
                          \end{itemize*}
                  \end{itemize*}
          \end{itemize*}
  \end{itemize*}

  \subsection{Logische Programmierung}\label{logische-programmierung-1}

  \subsubsection{Einordnung des logischen
    Paradigmas}\label{einordnung-des-logischen-paradigmas}


  \includegraphics[width=\linewidth]{Assets/Logik-logische-programmierung-einordnung.png}

  ``deskriptives'' Programmierparadigma = 1. Problembeschreibung - Die
  Aussagenmenge $M =\{K_1,...,K_n\}$, über denen gefolgert wird, wird in
  Form von Fakten und Regeln im PK1 notiert. - Eine mutmaßliche Folgerung
  (Hypothese) $H$ wird in Form einer Frage als negierte Hypothese
  hinzugefügt. 2. (+) Programmverarbeitung - Auf der Suche eines Beweises
  für $M \Vdash H$ werden durch mustergesteuerte Prozedur-Aufrufe
  Resolutions-Schritte zusammengestellt. - Dem ``Programmierer'' werden
  (begrenzte) Möglichkeiten gegeben, die systematische Suche zu
  beeinflussen.

  \subsubsection{Syntax}\label{syntax}

  Syntax von Klauseln \textbar{} \textbar{} Syntax \textbar{} Beispiel
  \textbar{} --- \textbar{} --- \textbar{} --- \textbar{} Fakt \textbar{}
  praedikatensymbol(term,\ldots{}term). \textbar{}
  liefert(xy\_ag,motor,vw). Regel \textbar{}
  praedikatensymbol(term,\ldots{}term) :-
  praedikatensymbol(term,\ldots{}term) ,\ldots{} ,
  praedikatensymbol(term,\ldots{}term). \textbar{} konkurrenten(Fa1,Fa2)
  :- liefert(Fa1,Produkt,\emph{),liefert(Fa2,Produkt,}). Frage \textbar{}
  ?- praedikatensymbol(term,\ldots{}term) , \ldots{}
  ,praedikatensymbol(term,\ldots{}term). \textbar{} ?-
  konkurrenten(ibm,X), liefert(ibm,\_,X).

  Syntax von Termen \textbar{} \textbar{} \textbar{} Syntax \textbar{}
  Beispiele \textbar{} \textbar{} --- \textbar{} --- \textbar{} ---
  \textbar{} --- \textbar{} Konstante \textbar{} Name \textbar{}
  Zeichenfolge, beginnend mit Kleinbuchstaben, die Buchstaben, Ziffern und
  \_ enthalten kann. \textbar{} otto\_1 , tisch, hund \textbar{}\textbar{}
  beliebige Zeichenfolge in ``\ldots{}'' geschlossen \textbar{} ``Otto'',
  ``r@ho'' \textbar{}\textbar{} Sonderzeichenfolge \textbar{}
  \%\&§$€ | Zahl | Ziffernfolge, ggf. mit Vorzeichen, Dezimalpunkt und Exponentendarstellung | 3, -5, 1001, 3.14E-12 Variable | allg. | Zeichenfolge, mit Großbuchstaben oder \_ beginnend | X, Was, _alter | anonym | Unterstrich | \_ strukturierter Term | allg. | funktionssymbol( term , ... , term ) | nachbar(chef(X)) | Liste | leere Liste | [ ] | | ${[}term\textbar{}restliste{]}\$
  \textbar{} $[mueller|[mayer|[]]]$ \textbar{}\textbar{}
  $[term , term , ... , term ]$ \textbar{} $[ mueller, mayer, schulze ]$

  BACKUS-NAUR-Form - PROLOG-Programm ::= Wissensbasis Hypothese -
  Wissensbasis ::= Klausel \textbar{} Klausel Wissensbasis - Klausel ::=
  Fakt \textbar{} Regel - Fakt ::= Atomformel. - Atomformel ::=
  Prädikatensymbol (Termfolge) - Prädikatensymbol ::= Name - Name ::=
  Kleinbuchstabe \textbar{}Kleinbuchstabe Restname \textbar{}
  ``Zeichenfolge'' \textbar{} Sonderzeichenfolge - RestName ::=
  Kleinbuchstabe \textbar{} Ziffer \textbar{} \_ \textbar{} Kleinbuchstabe
  RestName \textbar{} Ziffer RestName \textbar{} \_ RestName - \ldots{}

  \subsubsection{PROLOG aus logischer
    Sicht}\label{prolog-aus-logischer-sicht}

  Was muss der Programmierer tun? - Formulierung einer Menge von Fakten
  und Regeln (kurz: Klauseln), d.h. einer Wissensbasis
  $M\equiv\{K_1,...,K_n\}$ - Formulierung einer negierten Hypothese
  (Frage, Ziel)
  $\lnot H\equiv\bigwedge_{i=1}^m H_i \equiv false\leftarrow \bigwedge_{i=1}^m H_i$

  Was darf der Programmierer erwarten? - Dass das ``Deduktionstool''
  PROLOG $M \Vdash H$ zu zeigen versucht, d.h.
  $kt(\bigwedge_{i=1}^n K_i\wedge \lnot H)$ ) - \ldots{}, indem
  systematisch die Resolutionsmethode auf $\lnot H$ und eine der Klauseln
  aus $M$ angewandt wird, solange bis $\lnot H\equiv false\leftarrow true$
  entsteht

  \paragraph{Formulierung von
    Wissensbasen}\label{formulierung-von-wissensbasen}

  \begin{enumerate*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Beispiel 1 (BSP1.PRO)
  \end{enumerate*}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Yoshihito und Sadako sind die Eltern von Hirohito.
    \item
          vater\_von(yoshihito,hirohito).
    \item
          mutter\_von(sadako,hirohito).
    \item
          Kuniyoshi und Chikako sind die Eltern von Nagako.
    \item
          vater\_von(kunioshi,nagako).
    \item
          mutter\_von(chikako,nagako).
    \item
          Akihito`s und Hitachi`s Eltern sind Hirohito und Nagako.
    \item
          vater\_von(hirohito,akihito).
    \item
          vater\_von(hirohito,hitachi).
    \item
          mutter\_von(nagako,akihito).
    \item
          mutter\_von(nagako,hitachi).
    \item
          Der Großvater ist der Vater des Vaters oder der Vater der Mutter.
    \item
          grossvater\_von(G,E) :- vater\_von(G,V), vater\_von(V,E).
    \item
          grossvater\_von(G,E) :-vater\_von(G,M),mutter\_von(M,E).
    \item
          Geschwister haben den gleichen Vater und die gleiche Mutter.
    \item
          geschwister(X,Y) :- vater\_von(V,X), vater\_von(V,Y),
          mutter\_von(M,X), mutter\_von(M,Y).
  \end{itemize*}

  Visual Prolog benötigt aber einen Deklarationsteil für Datentypen und
  Aritäten der Prädikate, der für die o.g. Wissensbasis so aussieht:

  \begin{verbatim}
domains
  person = symbol
predicates
  vater_von(person,person)        % bei nichtdeterministischen Prädikaten
  mutter_von(person,person).      % kann man "nondeterm" vor das
  grossvater_von(person,person)   % Prädikat schreiben, um die
  geschwister(person,person)      % Kompilation effizienter zu machen
clauses
  < Wissensbasis einfügen und Klauseln gleichen Kopfprädikates gruppieren>
goal
  < Frage ohne "?-" einfügen>
\end{verbatim}

  \begin{enumerate*}
    \setcounter{enumi}{1}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Beispiel 2 (BSP2.PRO)
  \end{enumerate*}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Kollegen Meier und Müller arbeiten im Raum 1, Kollege Otto im Raum 2
          und Kollege Kraus im Raum 3.
    \item
          arbeitet\_in(meier,raum\_1).
    \item
          arbeitet\_in(mueller,raum\_1).
    \item
          arbeitet\_in(otto,raum\_2).
    \item
          arbeitet\_in(kraus,raum\_3).
    \item
          Netzanschlüsse gibt es in den Räumen 2 und 3.
    \item
          anschluss\_in(raum\_2).
    \item
          anschluss\_in(raum\_3).
    \item
          Ein Kollege ist erreichbar, wenn er in einem Raum mit Netzanschluss
          arbeitet.
    \item
          erreichbar(K) :- arbeitet\_in(K,R),anschluss\_in(R).
    \item
          2 Kollegen können Daten austauschen, wenn sie im gleichen Raum
          arbeiten oder beide erreichbar sind.
    \item
          koennen\_daten\_austauschen(K1,K2) :-
          arbeitet\_in(K1,R),arbeitet\_in(K2,R).
    \item
          koennen\_daten\_austauschen(K1,K2) :- erreichbar(K1),erreichbar(K2).
  \end{itemize*}

  Deklarationsteil

  \begin{verbatim}
domains
  person, raum: symbol
predicates
  arbeitet_in(person,raum)
  ansluss_in(raum)
  erreichbar(person)
  koennen_daten_austauschen(person,person)
clauses
  ...
goal
  ...
\end{verbatim}

  \paragraph{Verarbeitung Logischer
    Programme}\label{verarbeitung-logischer-programme}

  \subparagraph{Veranschaulichung ohne
    Unifikation}\label{veranschaulichung-ohne-unifikation}


  \includegraphics[width=\linewidth]{Assets/Logik-prolog-ohne-unifikation.png}

  Tiefensuche mit Backtrack: Es werden anwendbare Klauseln für das erste
  Teilziel gesucht. Gibt es \ldots{} - \ldots{} genau eine, so wird das 1.
  Teilziel durch deren Körper ersetzt. - \ldots{} mehrere, so wird das
  aktuelle Ziel inklusive alternativ anwendbarer Klauseln im
  Backtrack-Keller abgelegt und die am weitesten oben stehende Klausel
  angewandt. - \ldots{} keine (mehr), so wird mit dem auf dem
  Backtrack-Keller liegendem Ziel die Bearbeitung fortgesetzt.

  Dies geschieht solange, bis - das aktuelle Ziel leer ist oder - keine
  Klausel (mehr) anwendbar ist und der Backtrack-Keller leer ist.

  \subparagraph{Veranschaulichung mit
    Unifikation}\label{veranschaulichung-mit-unifikation}


  \includegraphics[width=\linewidth]{Assets/Logik-prolog-mit-unifikation.png}

  Zusätzliche Markierung der Kanten mit der Variablenersetzung (dem
  Unifikator).

  \subsubsection{PROLOG aus prozeduraler
    Sicht}\label{prolog-aus-prozeduraler-sicht}

  Beispiel: die ``Hackordnung'' 1. chef\_von(mueller,mayer). 2.
  chef\_von(mayer,otto). 3. chef\_von(otto,walter). 4.
  chef\_von(walter,schulze). 5. weisungsrecht(X,Y) :- chef\_von(X,Y). 6.
  weisungsrecht(X,Y) :- chef\_von(X,Z), weisungsrecht(Z,Y).

  \begin{quote}
    Deklarative Interpretation In einem Objektbereich
    $I=\{mueller, mayer, schulze, ...\}$ bildet das Prädikat
    $weisungsrecht(X,Y)$ $[X,Y]$ auf wahr ab, gdw. - das Prädikat
    $chef_von(X,Y)$ das Paar $[X,Y]$ auf wahr abbildet oder - es ein
    $Z\in I$ gibt, so dass - das Prädikat $chef_von(X,Z)$ das Paar $[X,Z]$
    auf wahr abbildet und - das Prädikat $weisungsrecht(Z,Y)$ das Paar
    $[Z,Y]$ auf wahr abbildet.
  \end{quote}

  \begin{quote}
    Prozedurale Interpretation Die Prozedur $weisungsrecht(X,Y)$ wird
    abgearbeitet, indem 1. die Unterprozedur $chef_von(X,Y)$ abgearbeitet
    wird. Im Erfolgsfall ist die Abarbeitung beendet; anderenfalls werden 2.
    die Unterprozeduren $chef_von(X,Z)$ und $weisungsrecht(Z,Y)$
    abgearbeitet; indem systematisch Prozedurvarianten beider
    Unterprozeduren aufgerufen werden.Dies geschieht bis zum Erfolgsfall
    oder erfolgloser erschöpfender Suche.
  \end{quote}

  \begin{tabular}{ll}
    deklarative Interpretation         & prozedurale Interpretation \\\hline
    Prädikat                           & Prozedur                   \\
    Ziel                               & Prozeduraufruf             \\
    Teilziel                           & Unterprozedur              \\
    Klauseln mit gleichem Kopfprädikat & Prozedur-varianten         \\
    Klauselkopf                        & Prozedurkopf               \\
    Klauselkörper                      & Prozedurrumpf              \\
  \end{tabular}

  Die Gratwanderung zwischen Wünschenswertem und technisch Machbarem
  erfordert mitunter ``Prozedurales Mitdenken'', um 1. eine gewünschte
  Reihenfolge konstruktiver Lösungen zu erzwingen, 2. nicht terminierende
  (aber - deklarativ, d.h. logisch interpretiert - völlig korrekte)
  Programme zu vermeiden, 3. seiteneffektbehaftete Prädikate sinnvoll
  einzusetzen, 4. (laufzeit-) effizienter zu programmieren und 5. das
  Suchverfahren gezielt zu manipulieren.

  Programm inkl. Deklarationsteil (BSP3.PRO)

  \begin{verbatim}
domains
  person = symbol
predicates
  chef_von(person,person)
  weisungsrecht(person,person)
clauses
  chef_von(mueller,mayer).
  chef_von(mayer,otto).
  chef_von(otto,walter).
  chef_von(walter,schulze).
  weisungsrecht(X,Y) :- chef_von(X,Y).
  weisungsrecht(X,Y) :- chef_von(X,Z), weisungsrecht(Z,Y).
goal
  weisungsrecht(Wer,Wem).
\end{verbatim}

  Prädikate zur Steuerung der Suche nach einer Folge von
  Resolutionsschritten!

  !(cut) Das Prädikat $!/0$ ist stets wahr. In Klauselkörpern eingefügt
  verhindert es ein Backtrack der hinter $!/0$ stehenden Teilziele zu den
  vor $!/0$ stehenden Teilzielen sowie zu alternativen Klauseln des
  gleichen Kopfprädikats. Die Verarbeitung von $!/0$ schneidet demnach
  alle vor der Verarbeitung verbliebenen Lösungswege betreffenden Prozedur
  ab.

  Prädikate zur Steuerung der Suche: $!/0$
  \includegraphics[width=\linewidth]{Assets/Logik-prädikate-suche.png}

  Prädikate zur Steuerung der Suche nach einer Folge von
  Resolutionsschritten \textbf{fail} Das Prädikat $fail/0$ ist stets
  falsch. In Klauselkörpern eingefügt löst es ein Backtrack aus bzw. führt
  zum Misserfolg, falls der Backtrack-Keller leer ist, d.h. falls es keine
  verbleibenden Lösungswege (mehr) gibt.
  \includegraphics[width=\linewidth]{Assets/Logik-prädikate-suche-fail.png}
  \includegraphics[width=\linewidth]{Assets/Logik-prädikate-suche-fail-2.png}

  \subsubsection{Listen und rekursive
    Problemlösungsstrategien}\label{listen-und-rekursive-problemluxf6sungsstrategien}

  Listen 1. $[]$ ist eine Liste. 2. Wenn $T$ ein Term und $L$ eine Liste
  ist, dann ist 1. $[T|L]$ eine Liste. 2. $T.L$ eine Liste.
  (ungebräuchlich) 3. $.(T,L)$ eine Liste. (ungebräuchlich) Das erste
  Element $T$ heißt Listenkopf, $L$ heißt Listenkörper oder Restliste. 3.
  Wenn $t_1, ... ,t_n$ Terme sind, so ist $[t_1,...,t_n]$ eine Liste. 4.
  Weitere Notationsformen von Listen gibt es nicht.

  Listen als kompakte Wissensrepräsentation: ein bekanntes Beispiel
  (BSP5.PRO) - arbeiten\_in({[}meier, mueller{]}, raum\_1). -
  arbeitet\_in(meier, raum\_1). - arbeitet\_in(mueller, raum\_1). -
  arbeitet\_in(otto, raum\_2). - arbeiten\_in({[}otto{]}, raum\_2 ). -
  arbeitet\_in(kraus, raum\_3). - arbeiten\_in({[}kraus{]}, raum\_3 ). -
  anschluesse\_in({[}raum\_2, raum\_3{]}). - anschluss\_in(raum\_2). -
  anschluss\_in(raum\_3).

  \textbf{Rekursion} in der Logischen Programmierung Eine Prozedur heißt
  (direkt) rekursiv, wenn in mindestens einem der Klauselkörper ihrer
  Klauseln ein erneuter Aufruf des Kopfprädikates erfolgt. Ist der
  Selbstaufruf die letzte Atomformel des Klauselkörpers der letzten
  Klausel dieser Prozedur - bzw. wird er es durch vorheriges
  ``Abschneiden'' nachfolgender Klauseln mit dem Prädikat $!/0$ - , so
  spricht man von Rechtsrekursion ; anderenfalls von Linksrekursion. Eine
  Prozedur heißt indirekt rekursiv, wenn bei der Abarbeitung ihres
  Aufrufes ein erneuter Aufruf derselben Prozedur erfolgt.

  Wissensverarbeitung mit Listen: (BSP5.PRO) - erreichbar(K) :-
  arbeitet\_in(K,R), anschluss\_in(R). - erreichbar(K) :-
  anschluesse\_in(Rs), member(R, Rs), arbeiten\_in(Ks, R), member(K, Ks).
  - koennen\_daten\_austauschen(K1,K2) :-
  arbeitet\_in(K1,R),arbeitet\_in(K2,R). -
  koennen\_daten\_austauschen(K1,K2) :-
  arbeiten\_in(Ks,\emph{),member(K1,Ks), member(K2,Ks). -
  koennen}daten\_austauschen(K1,K2) :- erreichbar(K1),erreichbar(K2). -
  koennen\_daten\_austauschen(K1,K2) :- erreichbar(K1),erreichbar(K2).

  BSP5.PRO

  \begin{verbatim}
domains
  person, raum = symbol
  raeume = raum*
  personen = person*
predicates
  arbeiten_in(personen, raum)
  anschluesse_in(raeume)
  erreichbar(person)
  koennen_daten_austauschen(person,person)
  member(person,personen)
  member(raum,raeume)
clauses
  ... (siehe oben)
  member(E,[E|_]).
  member(E,[_|R]) :- member(E,R).
goal
  erreichbar(Wer).
\end{verbatim}

  \textbf{Unifikation 2er Listen} 1. Zwei leere Listen sind (als
  identische Konstanten aufzufassen und daher) miteinander unifizierbar.
  1. Zwei nichtleere Listen $[K_1|R_1]$ und $[K_2|R_2]$ sind miteinander
  unifizierbar, wenn ihre Köpfe ($K_1$ und $K_2$) und ihre Restlisten
  ($R_1$ und $R_2$) jeweils miteinander unifizierbar sind. 3. Eine Liste
  $L$ und eine Variable $X$ sind miteinander unifizierbar, wenn die
  Variable selbst nicht in der Liste enthalten ist. Die Variable $X$ wird
  bei erfolgreicher Unifikation mit der Liste $L$ instanziert: $X:=L$.

  \textbf{Differenzlisten:} eine intuitive Erklärung Eine Differenzliste
  $L_1 - L_2$ besteht aus zwei Listen $L_1$ und $L_2$ und wird im
  allgemeinen als $[L_1,L_2]$ oder (bei vorheriger Definition eines pre-
  bzw. infix notierten Funktionssymbols -/2) als $-(L_1,L_2)$ bzw.
  $L_1-L_2$ notiert.

  Sie wird (vom Programmierer, nicht vom PROLOG-System!) als eine Liste
  interpretiert, deren Elemente sich aus denen von $L_1$ abzüglich derer
  von $L_2$ ergeben. Differenzlisten verwendet man typischerweise, wenn
  häufig Operationen am Ende von Listen vorzunehmen sind.

  Eine Definition 1. Die Differenz aus einer leeren Liste und einer
  (beliebigen) Liste ist die leere Liste: $[] - L = []$ 2. Die Differenz
  aus einer Liste $[E|R]$ und der Liste $L$, welche $E$ enthält, ist die
  Liste $D$, wenn die Differenz aus $R$ und $L$ (abzügl. $E$) die Liste
  $D$ ist: $[E|R]-L = D$, wenn $E\in L$ und $R-(L-[E]) = D$ 3. Die
  Differenz aus einer Liste $[E|R]$ und einer Liste $L$, welche $E$ nicht
  enthält, ist die Liste $[E|D]$, wenn die Differenz aus $R$ und $L$ die
  Liste $D$ ist: $[E|R] - L = [E|D]$, wenn $E\in L$ und $R-L=D$

  Differenzlisten: Ein Interpreter
  $interpret(Differenzliste,Interpretation)$ (BSP6.PRO) 1.
  $interpret([[],_],[]).$ 2.
  $interpret([[E|R],L] , D ) :- loesche(E , L, L1),! , interpret( [ R , L1 ] , D ).$
  3. $interpret([[E|R],L] , [E|D] ) :- interpret([R,L],D).$ 4.
  $loesche(E, [E|R], R) :-!.$ 5.
  $loesche(E, [K|R], [K|L]) :- loesche(E,R,L).$

  \subsubsection{Prolog-Fallen}\label{prolog-fallen}

  \paragraph{Nicht terminierende
    Programme}\label{nicht-terminierende-programme}

  Ursache: ``ungeschickt'' formulierte (direkte oder indirekte) Rekursion

  \subparagraph{Alternierende
    Zielklauseln}\label{alternierende-zielklauseln}

  Ein aktuelles Ziel wiederholt sich und die Suche nach einer Folge von
  Resolutionsschritten endet nie: 1. $liegt_auf(X,Y) :- liegt_unter(Y,X).$
  2. $liegt_unter(X,Y) :- liegt_auf(Y,X).$ -
  $?- liegt_auf( skript, pult ).$ - logisch korrekte Antwort: nein -
  tatsächliche Antwort: keine Logische Programmierung

  oder die Suche nach Resolutionsschritten endet mit einem Überlauf des
  Backtrack-Kellers: (BSP8.PRO) 1. $liegt_auf(X,Y) :- liegt_unter(Y,X).$
  2. $liegt_auf( skript , pult ).$ 3.
  $liegt_unter(X,Y) :- liegt_auf(Y,X).$ - $?- liegt_auf( skript , pult ).$
  - logisch korrekte Antwort: ja - tatsächliche Antwort: keine

  \subparagraph{Expandierende
    Zielklauseln}\label{expandierende-zielklauseln}

  Das erste Teilziel wird in jeden Resolutionsschritt durch mehrere neue
  Teilziele ersetzt; die Suche endet mit einem Speicherüberlauf:
  (BSP9.PRO) 1. $liegt_auf( notebook , pult ).$ 2.
  $liegt_auf( skript , notebook ).$ 3.
  $liegt_auf(X,Y) :- liegt_auf(X,Z), liegt_auf(Z,Y).$ -
  $?- liegt_auf( handy , skript ).$ - logisch korrekte Antwort: nein -
  tatsächliche Antwort: keine

  Auch dieses Beispiel lässt sich so erweitern, dass die Hypothese
  offensichtlich aus der Wissensbasis folgt, die Umsetzung der
  Resolutionsmethode aber die Vollständigkeit zerstört: 1.
  $liegt_auf( notebook , pult ).$ 2. $liegt_auf( skript , notebook ).$ 3.
  $liegt_auf(X,Y) :- liegt_auf(X,Z), liegt_auf(Z,Y).$ 4.
  $liegt_auf( handy , skript ).$ - $?- liegt_auf( handy , pult ).$ -
  logisch korrekte Antwort: ja - tatsächliche Antwort: keine

  Auch dieses Beispiel zeigt, dass das Suchverfahren ``Tiefensuche mit
  Backtrack'' die Vollständigkeit des Inferenzverfahrens zerstört.

  \paragraph{Metalogische Prädikate und konstruktive
    Lösungen}\label{metalogische-pruxe4dikate-und-konstruktive-luxf6sungen}

  Das Prädikat $not/1$ hat eine Aussage als Argument und ist somit eine
  Aussage über eine Aussage, also metalogisch. I.allg. ist $not/1$
  vordefiniert, kann aber mit Hilfe von $call/1$ definiert werden.
  $call/1$ hat Erfolg, wenn sein Argument - als Ziel interpretiert -
  Erfolg hat.

  Beispiel (BSP10.PRO): 1. $fleissig(horst).$ 2. $fleissig(martin).$ 3.
  $faul(X) :- not( fleissig(X) ).$ 4. $not(X) :- call(X), !, fail.$ 5.
  $not( _ ).$ - $?- faul(horst).$ Antwort: nein - $?- faul(alex).$
  Antwort: ja - $?- faul(Wer).$ Antwort: nein

  Widerspruch \ldots{} und Beweis der Unvollständigkeit durch Metalogik

  \subsubsection{Typische Problemklassen für die Anwendung der Logischen
    Programmierung}\label{typische-problemklassen-fuxfcr-die-anwendung-der-logischen-programmierung}

  \paragraph{Rekursive
    Problemlösungsstrategien}\label{rekursive-problemluxf6sungsstrategien}

  \begin{quote}
    Botschaft 1 Man muss ein Problem nicht in allen Ebenen überblicken, um
    eine Lösungsverfahren zu programmieren. Es genügt die Einsicht, 1. wie
    man aus der Lösung eines einfacheren Problems die Lösung des präsenten
    Problems macht und 2. wie es im Trivialfall zu lösen ist.
  \end{quote}

  \textbf{Türme von Hanoi} Es sind N Scheiben von der linken Säule auf die
  mittlere Säule zu transportieren, wobei die rechte Säule als
  Zwischenablage genutzt wird. Regeln: 1. Es darf jeweils nur eine Scheibe
  transportiert werden. 2. Die Scheiben müssen mit fallendem Durchmesser
  übereinander abgelegt werden.

  (doppelt) rekursive Lösungsstrategie: - $N = 0:$ Das Problem ist gelöst.
  - $N > 0:$ 1. Man löse das Problem für N-Scheiben, die von der
  Start-Säule zur Hilfs-Säule zu transportieren sind. 2. Man lege eine
  Scheibe von der Start- zur Ziel-Säule. 3. Man löse das Problem für
  N-Scheiben, die von der Hilfs-Säule zur Ziel-Säule zu transportieren
  sind.

  Prädikate - $hanoi(N)$ löst das Problem für N Scheiben -
  $verlege(N,Start,Ziel,Hilf)$ verlegt N Scheiben von Start nach Ziel
  unter Nutzung von Hilf als Ablage

  Die Regeln zur Kodierung der Strategie (BSP11.PRO) -
  $hanoi( N ) :- verlege( N , s1 , s2 , s3 ).$ -
  $verlege( 0 , \_ , \_ , \_ ).$ - $verlege( N , S , Z , H ) :-$ -
  $N1 = N - 1,$ - $verlege( N1 , S , H , Z ),$ -
  $write("Scheibe von ", S," nach ", Z),$ - $verlege( N1 , H , Z , S ).$

  \paragraph{Sprachverarbeitung mit
    PROLOG}\label{sprachverarbeitung-mit-prolog}

  \begin{quote}
    Botschaft 2 Wann immer man Objekte mit Mustern vergleicht, z.B. 1. eine
    Struktur durch ``Auflegen von Schablonen'' identifiziert, 2.
    Gemeinsamkeiten mehrerer Objekte identifiziert, d.h. ``eine Schablone
    entwirft'' oder 3. ``gemeinsame Beispiele für mehrere Schablonen''
    sucht, mache man sich den Unifikations-Mechanismus zu nutzen.
  \end{quote}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Eine kontextfreie Grammatik (Chomsky-Typ 2) besteht aus
  \end{itemize*}

  \begin{enumerate*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          einem Alphabet A, welches die terminalen (satzbildenden) Symbole
          enthält
    \item
          einer Menge nichtterminaler (satzbeschreibender) Symbole N (=
          Vokabular abzüglich des Alphabets: $N = V \backslash A$)
    \item
          einer Menge von Ableitungsregeln $R\subseteq N\times (N\cup A)^*$
    \item
          dem Satzsymbol $S\in N$
  \end{enumerate*}

  \begin{itemize*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          \ldots{} und in PROLOG repräsentiert werden durch
  \end{itemize*}

  \begin{enumerate*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          1-elementige Listen, welche zu satzbildenden Listen komponiert werden:
          $[der],[tisch],[liegt],...$
    \item
          Namen, d.h. mit kleinem Buchstaben beginnende Zeichenfolgen:
          $nebensatz,subjekt,attribut,...$
    \item
          PROLOG-Regeln mit $l\in N$ im Kopf und $r\in(N\cup A)^*$ im Körper
    \item
          einen reservierten Namen: $satz$
  \end{enumerate*}

  Ein Ableitungsbaum beschreibt die grammatische Struktur eines Satzes.
  Seine Wurzel ist das Satzsymbol, seine Blätter in Hauptreihenfolge
  bilden den Satz.
  \includegraphics[width=\linewidth]{Assets/Logik-ableitungsbaum-beispiel.png}

  \begin{enumerate*}
    \itemsep1pt\parskip0pt\parsep0pt
    \item
          Alphabet
          $ministerium, rektorat, problem, das, loest, ignoriert, verschaerft$
    \item
          nichtterminale Symbole
          $satz, subjekt, substantiv, artikel, praedikat,objekt$
    \item
          Ableitungsregeln (in BACKUS-NAUR-Form)

          \begin{itemize*}
            \item
                  $satz ::= subjekt praedikat objekt$
            \item
                  $subjekt ::= artikel substantiv$
            \item
                  $objekt ::=  artikel substantiv$
            \item
                  $substantiv ::= ministerium | rektorat | problem$
            \item
                  $artikel ::= das$
            \item
                  $praedikat ::= loest | ignoriert | verschaerft$
          \end{itemize*}
    \item
          Satzsymbol $satz$
  \end{enumerate*}

  Verketten einer Liste von Listen

  \begin{verbatim}
% die Liste ist leer
verkette( [ ] , [ ] ) .

% das erste Element ist eine leere Liste
verkette( [ [ ] | Rest ] , L ) :-
  verkette( Rest , L ).

% das erste Element ist eine nichtleere Liste
verkette([ [K | R ] | Rest ] , [ K | L ] ) :-
  verkette( [ R | Rest ] , L ).4
\end{verbatim}

  \paragraph{Die ``Generate - and - Test''
    Strategie}\label{die-generate---and---test-strategie}

  \begin{quote}
    Botschaft 3 Es ist mitunter leichter (oder überhaupt erst möglich), für
    komplexe Probleme 1. eine potentielle Lösung zu ``erraten'' und dazu 2.
    ein Verfahren zu entwickeln, welches diese Lösung auf Korrektheit
    testet, als zielgerichtet die korrekte Lösung zu entwerfen. Hierbei kann
    man den Backtrack-Mechanismus nutzen.
  \end{quote}

  Strategie: Ein Prädikat $moegliche_loesung(L)$ generiert eine
  potentielle Lösung, welche von einem Prädikat $korrekte_loesung(L)$
  geprüft wird: - Besteht $L$ diesen Korrektheitstest, ist eine Lösung
  gefunden. - Fällt $L$ bei diesem Korrektheitstest durch, wird mit
  Backtrack das Prädikat $moegliche_loesung(L)$ um eine alternative
  potentielle Lösung ersucht. (vgl.: Lösen NP-vollständiger Probleme,
  Entscheidung von Erfüllbarkeit)

  ein Beispiel: konfliktfreie Anordnung von $N$ Damen auf einem
  $N\times N$ Schachbrett (BSP13.PRO) - eine Variante: Liste
  strukturierter Terme - $[dame(Zeile,Spalte),...,dame(Zeile,Spalte)]$ -
  $[dame(1,2), dame(2,4), dame(3,1), dame(4,3) ]$ - noch eine Variante:
  Liste von Listen - $[[Zeile, Spalte] , ... , [Zeile,Spalte] ]$ -
  $[ [1,2] , [2,4] , [3,1] , [4,3] ]$ - \ldots{} und noch eine (in die
  Wissensdarstellung etwas ``natürliche'' Intelligenz investierende, den
  Problemraum enorm einschränkende) Variante: Liste der Spaltenindizes -
  $[ Spalte_zu_Zeile_1, ..., Spalte_zu_Zeile_N ]$ - $[ 2, 4, 1, 3 ]$

  \paragraph{Heuristische
    Problemlösungsmethoden}\label{heuristische-problemluxf6sungsmethoden}

  \begin{quote}
    Botschaft 4 Heuristiken sind 1. eine Chance, auch solche Probleme einer
    Lösung zuzuführen, für die man keinen (determinierten)
    Lösungsalgorithmus kennt und 2. das klassische Einsatzgebiet zahlreicher
    KI-Tools - auch der Logischen Programmierung.
  \end{quote}

  Was ist eine Heuristik? Worin unterscheidet sich eine heuristische
  Problemlösungsmethode von einem Lösungsalgorithmus?

  Heuristiken bewerten die Erfolgsaussichten alternativer
  Problemlösungsschritte. Eine solche Bewertung kann sich z.B. ausdrücken
  in - einer quantitativen Abschätzung der ``Entfernung'' zum gewünschten
  Ziel oder der ``Kosten'' für das Erreichen des Ziels, - einer
  quantitativen Abschätzung des Nutzens und/oder der Kosten der
  alternativen nächsten Schritte, - eine Vorschrift zur Rangordnung der
  Anwendung alternativer Schritte, z.B. durch Prioritäten oder gemäß einer
  sequenziell abzuarbeitenden Checkliste.

  Ein Beispiel: Das Milchgeschäft meiner Großeltern in den 40er Jahren -
  Der Milchhof liefert Milch in großen Kannen. - Kunden können Milch nur
  in kleinen Mengen kaufen. - Es gibt nur 2 Sorten geeichter Schöpfgefäße;
  sie fassen 0.75 Liter bzw. 1.25 Liter. - Eine Kundin wünscht einen Liter
  Milch. 1. Wenn das große Gefäß leer ist, dann fülle es. 2. Wenn das
  kleine Gefäß voll ist, dann leere es. 3. Wenn beides nicht zutrifft,
  dann schütte so viel wie möglich vom großen in das kleine Gefäß.

  Prädikat $miss_ab(VolGr, VolKl, Ziel, InhGr, InhKl)$ mit - VolGr -
  Volumen des großen Gefäßes - VolKl - Volumen des kleinen Gefäßes - Ziel
  - die abzumessende (Ziel-) Menge - InhGr - der aktuelle Inhalt im großen
  Gefäß - InhKl - der aktuelle Inhalt im kleinen Gefäß

  Beispiel-Problem: $?- miss_ab( 1.25 , 0.75 , 1 , 0 , 0 )4$

  \paragraph{Pfadsuche in gerichteten
    Graphen}\label{pfadsuche-in-gerichteten-graphen}

  \begin{quote}
    Botschaft 5 1. Für die systematische Suche eines Pfades kann der
    Suchprozess einer Folge von Resolutionsschritten genutzt werden. Man
    muss den Suchprozess nicht selbst programmieren. 2. Für eine
    heuristische Suche eines Pfades gilt Botschaft 4: Sie ist das klassische
    Einsatzgebiet zahlreicher KI-Tools - auch der Logischen Programmierung.
  \end{quote}

  Anwendungen - Handlungsplanung, z.B. - Suche einer Folge von
  Bearbeitungsschritten für ein Produkt, eine Dienstleistung, einen
  ``Bürokratischen Vorgang'' - Suche eines optimalen Transportweges in
  einem Netzwerk von Straßen-, Bahn-, Flugverbindungen - Programmsynthese
  = Handlungsplanung mit \ldots{} - \ldots{} Schnittstellen für die
  Datenübergabe zwischen ``Handlungsschritten'' (= Prozeduraufrufen) und -
  \ldots{} einem hierarchischen Prozedurkonzept, welches die
  Konfigurierung von ``Programmbausteinen'' auf mehreren Hierarchie-Ebenen

  Ein Beispiel: Suche einer zeitoptimalen Flugverbindung (BSP15.PRO) -
  Repräsentation als Faktenbasis $verbindung(Start,Zeit1,Ziel,Zeit2,Tag).$
  - Start - Ort des Starts - Zeit1 - Zeit des Starts - Ziel - Ort der
  Landung - Zeit2 - Zeit der Landung - Tag - 0, falls Zeit1 und Zeit2 am
  gleichen Tag und 1 ansonsten - möglich: -
  $verbindung(fra,z(11,45),ptb,z(21,0),0).$ -
  $verbindung(fra,z(11,15),atl,z(21,25),0).$ -
  $verbindung(ptb,z(24,0),orl,z(2,14),1).$ -
  $verbindung(atl,z(23,30),orl,z(0,54),1).$

  In einer dynamischen Wissensbasis wird die bislang günstigste Verbindung
  in Form eines Faktes
  $guenstigste([ v(Von,Zeit1,Nach,Zeit2,Tag), ... ], Ankunftszeit, Tag ).$
  festgehalten und mit den eingebauten Prädikaten $assert(<Fakt>)$ - zum
  Einfügen des Faktes - und $retract (<Fakt>)$ - zum Entfernen des Faktes
  - bei Bedarf aktualisiert. Zum Beispiel
  $guenstigste([v(fra,z(11,45),ptb,z(21,00),0),v(ptb,z(24,0),orl,z(2,14),1)],z(2,14),1).$
  erklärt den Weg über Pittsburgh zum bislang günstigsten gefundenen Weg.

  \paragraph{``Logeleien'' als
    Prolog-Wissensbasen}\label{logeleien-als-prolog-wissensbasen}

  \begin{quote}
    Botschaft 6 1. ``Logeleien'' sind oft Aussagen über Belegungen von
    Variablen mit endlichem Wertebereich, ergänzt um eine Frage zu einem
    nicht explizit gegebenen Wert. 2. Dabei handelt es sich um Grunde um
    eine Deduktionsaufgabe mit einer Hypothese zu einem mutmaßlichen Wert
    der gesuchten Variablen. Deshalb ist es oft auch mit dem
    ``Deduktionstool'' Prolog lösbar, denn Prolog tut im Grunde nichts
    anderes als ein ziel-gerichtetes ``Durchprobieren'' legitimer
    Deduktionsschritte im ``Generate - and - Test'' - Verfahren.
  \end{quote}

  Beispiel das ``Zebra-Rätsel''(BSP16.PRO): 1. Es gibt fünf Häuser. 2. Der
  Engländer wohnt im roten Haus. 3. Der Spanier hat einen Hund. 4. Kaffee
  wird im grünen Haus getrunken. 5. Der Ukrainer trinkt Tee. 6. Das grüne
  Haus ist (vom Betrachter aus gesehen) direkt rechts vom weißen Haus. 7.
  Der Raucher von Atem-Gold-Zigaretten hält Schnecken als Haustiere. 8.
  Die Zigaretten der Marke Kools werden im gelben Haus geraucht. 9. Milch
  wird im mittleren Haus getrunken. 10. Der Norweger wohnt im ersten Haus.
  11. Der Mann, der Chesterfields raucht, wohnt neben dem Mann mit dem
  Fuchs. 12. Die Marke Kools wird geraucht im Haus neben dem Haus mit dem
  Pferd. 13. Der Lucky-Strike-Raucher trinkt am liebsten Orangensaft. 14.
  Der Japaner raucht Zigaretten der Marke Parliament. 15. Der Norweger
  wohnt neben dem blauen Haus.

  Jedes Haus ist in einer anderen Farbe gestrichen und jeder Bewohner hat
  eine andere Nationalität, besitzt ein anderes Haustier, trinkt ein von
  den anderen Bewohnern verschiedenes Getränk und raucht eine von den
  anderen Bewohnern verschiedene Zigarettensorte. Fragen: - Wer trinkt
  Wasser? - Wem gehört das Zebra?

  \begin{verbatim}
loesung(WT, ZB) :-
  haeuser(H), nationen(N), getraenke(G), tiere(T), zigaretten(Z),aussagentest(H,N,G,T,Z), !, wassertrinker(N,G,WT), zebrabesitzer(N,T,ZB).
tiere(X) :- permutation([fuchs, hund, schnecke, pferd, zebra],X).
nationen([norweger|R]) :- permmutation([englaender, spanier, ukrainer, japaner], R). % erfüllt damit Aussage 10
getraenke(X) :- permutation([kaffee, tee, milch, osaft, wasser], X), a9(X). % erfüllt damit Aussage 9
zigaretten(X) :- permmutation([atemgold,kools,chesterfield, luckystrike, parliament], X).
haeuser(X) :- permutation([rot, gruen, weiss, gelb, blau], X), a6(X).
% parmutation/2, fuege_ein/3: siehe BSP13-PRO
wassertrinker([WT| _ ], [wasser| _ ], WT ) :- !.
wassertrinker([ _ |R1], [ _ |R2],WT) :- wassertrinker(R1, R2, WT).
zebrabesitzer([ZB| _ ], [zebra| _ ], ZB) :- !.
zebrabesitzer([ _ |R1], [ _ |R2],ZB) :- zebrabesitzer(R1, R2, ZB).
aussagentest(H,N,G,T,Z) :-
  a2(H,N), a3(N,T), a4(H,G), a5(N,G), a7(Z,T), a8(H,Z), a11(Z,T), a12(Z,T),a13(Z,G), a14(N,Z), a15(H,N).
  
a2([rot| _ ], [englaender| _ ]) :- !
.a2([ _ |R1], [ _ |R2]) :- a2(R1, R2).
a3([spanier| _ ], [hund| _ ]) :- !.
a3([ _ |R1], [ _ |R2]) :- a3(R1, R2).
a4([gruen| _ ], [kaffee| _ ]) :- !.
a4([ _ |R1], [ _ |R2]) :- a4(R1, R2).
a5([ukrainer| _ ], [tee| _ ]) :- !.
a5([ _ |R1], [ _ |R2]) :- a5(R1, R2).
a6([weiss, gruen| _ ]) :- !.
a6([weiss| _ ]) :- !, fail.a6([ _ |R]) :- a6(R).
a7([atemgold| _ ], [schnecke| _ ]) :- !.
a7([ _ |R1], [ _ |R2]) :- a7(R1, R2).
a8([gelb| _ ], [kools| _ ]) :- !.
a8([ _ |R1], [ _ |R2]) :- a8(R1, R2).
a9([ _ , _ , milch, _ , _ ]).
a11([chesterfield| _ ], [ _ ,fuchs| _ ]) :-!.
a11([ _ , chesterfield| _ ], [fuchs| _ ]) :- !.
a11([ _ |R1], [ _ |R2]) :- a11(R1, R2).
a12([kools| _ ], [ _ , pferd| _ ]) :- !.
a12([ _ , kools| _ ], [pferd| _ ] ) :- !.
a12([ _ |R1], [ _ |R2]) :- a12(R1, R2).
a13([luckystrike| _ ], [osaft| _ ]) :- !.
a13([ _ |R1], [ _ |R2]) :- a13(R1, R2).
a14([japaner| _ ], [parliament| _ ]) :- !.
a14([ _ |R1], [ _ |R2]) :- a14(R1, R2).
%a15([blau| _ ], [ _, norweger| _ ]) :- !.
a15([ _ , blau| _ ], [norweger| _ ]) :- !.
%a15([ _ |R1], [ _ |R2]) :- a15(R1, R2).

?- loesung(Wassertrinker, Zebrabesitzer).
\end{verbatim}

  Beispiel SUDOKU (BSP17.PRO): - Liste 9-elementliger Listen, die (von
  links nach rechts) die Zeilen (von oben nach unten)repräsentieren -
  Elemente einer jeden eine Zeile repräsentierenden Liste: - Ziffer, falls
  dort im gegebenen Sudoku eine Ziffer steht - Anonyme Variable
  andernfalls

  \paragraph{Tools für die formale
    Logik}\label{tools-fuxfcr-die-formale-logik}

  \begin{quote}
    Botschaft 7 Auch in der formalen Logik gibt es Deduktionsaufgaben, bei
    der Variablenbelegungen gesucht sind, welche eine Aussage wahr machen:
    1. Meist geschieht das durch systematische Auswertung der Aussage, wozu
    das Suchverfahren von Prolog genutzt werden kann. 2. Auch hier geht es
    oft um gesuchte Werte für Variablen. Deshalb ist es oft auch mit dem
    ``Deduktionstool'' Prolog lösbar, denn Prolog tut im Grunde nichts
    anderes als ein ziel-gerichtetes ``Durchprobieren'' legitimer
    Deduktionsschritte im ``Generate - and - Test'' - Verfahren.
  \end{quote}

  Repräsentation von Aussagen als PROLOG-Term: - true, false: atom(true),
  atom(false) - $A1\wedge A2$: und(A1,A2) - $A1\vee A2$: oder(A1,A2) -
  $\lnot A$: nicht(A) - $A1\rightarrow A2$: wenndann(A1,A2) -
  $A1\leftarrow A2$: dannwenn(A1,A2) - $A1\leftrightarrow A2$: gdw(A1,A2)

  Erfüllbarkeitstest: -
  $?- erfuellbar(gdw(wenndann(nicht(oder(atom(false),atom(X))),atom(Y)), atom(Z))).$
  - X=true, Y=\_, Z=true ; steht für 2 Modelle (eines mit Y = true und
  eines mit Y = false) - X=false, Y=true, Z=true

  Ketten von Konjunktionen und Disjunktionen als PROLOG-Listen: -
  $A1\wedge A2\wedge ... \wedge An$: und verkettung({[}A1,A2, \ldots{},
  An{]}) - $A1\vee A2\vee ...\vee An$: oder verkettung({[}A1,A2, \ldots{},
  An{]})

  Erfüllbarkeitstest: - $?- erfuellbar(undverkettung([true,X,Y,true]))$ -
  X = true Y = true - $?- erfuellbar(oderverkettung([false,X,Y,false]))$ -
  X = true Y = \emph{ - X = } Y = true

  Repräsentation von Termen als PROLOG-Term: - Wert: atom() -
  $A1\wedge A2$: und(A1,A2) - $A1\vee A2$: oder(A1,A2) - $\lnot A$:
  nicht(A) - $A1\rightarrow A2$: wenndann(A1,A2) - $A1\leftarrow A2$:
  dannwenn(A1,A2) - $A1\leftrightarrow A2$: gdw(A1,A2) -
  $A1\wedge A2\wedge ... \wedge An$: und verkettung({[}A1,A2, \ldots{},
  An{]}) - $A1\vee A2\vee ...\vee An$: oder verkettung({[}A1,A2, \ldots{},
  An{]})

  Termauswertung: -
  $?- hat_wert(und(atom(0.5),oder(atom(0.7),atom(0.3))),X).$ - X=0.5

  Termauswertung unter Vorgabe des Wertebereiches: -
  $?- hat_wert([0,0.3, 0.5, 0.7, 1], und(atom(X),oder(atom(0.5),atom(0.7))),Wert).$
  - X=0, Wert=0 - X=0.3, Wert=0.3 - X=0.5, Wert=0.5 - X=0.7, Wert=0.7 -
  X=1, Wert=0.7

\end{multicols}
\end{document}