\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}

\usepackage[utf8]{inputenc} % this is needed for umlauts
\usepackage[ngerman]{babel} % this is needed for umlauts
\usepackage[T1]{fontenc}    % this is needed for correct output of umlauts in pdf
\usepackage{amssymb,amsmath,amsfonts} % nice math rendering
\usepackage{braket} % needed for \Set
\usepackage{algorithm,algpseudocode}

\algnewcommand\True{\textbf{true}\space} 
\algnewcommand\False{\textbf{false}\space} 
\algnewcommand{\LineComment}[1]{\State \(\triangleright\) #1}
\begin{document}
\begin{preview}
    \begin{algorithm}[H]
        \begin{algorithmic}
        \Require Klauselmenge $K$ in KNF (jede Klausel wird durch ein mit den
        Werten $\Set{-1,0,1}$ Array
        repräsentiert, dessen Länge gleich der Anzahl $n$ der Symbole ist),\\
            zu beweisende Aussage ist $\alpha$,\\
            $\beta := \neg \alpha$ in KNF
		\Procedure{Resolutionsalgorithmus}{$K$, $\beta$}
			\State $\gamma \gets K \cup \Set{\beta}$
			\State $foundMatch \gets$ \True
			\While{$foundMatch$}
		        \State $foundMatch \gets$ \False

				\LineComment{Finde zwei Klauseln, bei denen ein Symbol verneint bzw. nicht-verneint vorkommt. Wende darauf die Resolutionsregel an}
		        \For{$i \in \Set{1, \dots, |\gamma|-1}$}
		            \For{$j \in \Set{i+1, \dots |\gamma|}$}
		                \For{$k \in \Set{0, \dots, n-1}$}
		                    \If{$\gamma_i[k] \cdot \gamma_j[k] == (-1)$}
		                        \State $foundMatch \gets$ \True
		                        \State $tmp \gets $ Array der Länge $n$
		                        \For{$l \in \Set{0, \dots, n-1}$}
		                            \If{$\gamma_i[l] \cdot \gamma_j[l] == (-1)$ and
		                                $l \neq k$}
		                                \State $tmp \gets $ leere Klausel
		                                \State break
		                            \ElsIf{$\gamma_i[l] \neq 0$}
		                                \State $tmp[l] \gets \gamma_i[l]$
		                            \Else
		                                \State $tmp[l] \gets \gamma_j[l]$
		                            \EndIf
		                        \EndFor
		                        \State $\gamma \gets (\gamma \cup \Set{tmp}) \setminus
		                                \Set{\gamma_i, \gamma_j}$
		                        \State break
		                    \EndIf
		                \EndFor

		                \If{$foundMatch$}
		                    \State break
		                \EndIf
		            \EndFor

	                \If{$foundMatch$}
	                    \State break
	                \EndIf
		        \EndFor
			\EndWhile
		\EndProcedure
        \end{algorithmic}
    \caption{Resolutionsalgorithmus}
    \label{alg:resolutionsalgorithmus}
    \end{algorithm}
\end{preview}
\end{document}
