[ocl] OCL 2017 workshop Short Circuit Operators (camera ready
copy)
diff --git a/ocl/docs/publications/OCL2017ShortCircuits/.gitignore b/ocl/docs/publications/OCL2017ShortCircuits/.gitignore
new file mode 100644
index 0000000..a7f131f
--- /dev/null
+++ b/ocl/docs/publications/OCL2017ShortCircuits/.gitignore
@@ -0,0 +1,3 @@
+/ShortCircuits.aux
+/ShortCircuits.log
+/ShortCircuits.synctex.gz
diff --git a/ocl/docs/publications/OCL2017ShortCircuits/ShortCircuits.pdf b/ocl/docs/publications/OCL2017ShortCircuits/ShortCircuits.pdf
new file mode 100644
index 0000000..cf3865c
--- /dev/null
+++ b/ocl/docs/publications/OCL2017ShortCircuits/ShortCircuits.pdf
Binary files differ
diff --git a/ocl/docs/publications/OCL2017ShortCircuits/ShortCircuits.tex b/ocl/docs/publications/OCL2017ShortCircuits/ShortCircuits.tex
new file mode 100644
index 0000000..b9146b9
--- /dev/null
+++ b/ocl/docs/publications/OCL2017ShortCircuits/ShortCircuits.tex
@@ -0,0 +1,95 @@
+% This is LLNCS.DEM the demonstration file of
+% the LaTeX macro package from Springer-Verlag
+% for Lecture Notes in Computer Science,
+% version 2.4 for LaTeX2e as of 16. April 2010
+%
+\documentclass{llncs}
+%
+\usepackage{makeidx}  % allows for indexgeneration
+\usepackage[pdftex]{graphicx}
+%
+\begin{document}
+%
+\mainmatter              % start of the contributions
+%
+\title{Commutative Short Circuit Operators}
+%
+\titlerunning{Commutative Short Circuit Operators}  % abbreviated title (for running head)
+%                                     also used for the TOC unless
+%                                     \toctitle is used
+%
+\author{Edward D. Willink}
+%
+\authorrunning{Edward Willink} % abbreviated author list (for running head)
+%
+%%%% list of authors for the TOC (use if author list has to be modified)
+\tocauthor{Edward Willink}
+%
+\institute{Willink Transformations Ltd, Reading, England,\\
+\email{ed\_at\_willink.me.uk}}
+
+
+\maketitle              % typeset the title of the contribution
+Lightning presentation at the 17th International Workshop in OCL and Textual Modeling, July 20, 2017, Marburg, Germany.
+%
+\pagebreak
+%
+\section{Commutative Short Circuit Operators - E.D.Willink}
+OCL's 4-level logic has been a source of much unhappiness and while various solutions have been suggested, none have met with enthusiasm. We look at where the unhappiness comes from and thereby suggest a new solution.
+
+The OCL designers defined an underlying model in which all expressions have types. Consequently the mathematical concept of truth was reified by a \texttt{Boolean} type with associated Boolean library operations. The designers chose to avoid exceptions. This in combination with UML conformance required a \texttt{null} value for the missing value of properties with optional multiplicity, and an \texttt{invalid} value for everything bad that might be evaluated. 
+
+Unfortunately \texttt{null} and \texttt{invalid} pollute the simplicity of truths and so the Amsterdam Manifesto~\cite{amsterdam} elaborates Boolean operators with short-circuit like functionality for problems such as: 
+
+\texttt{a <> null and a.doSomething()}
+
+However the operators remain commutative and so it is suggested that all terms are evaluated in parallel until the result is knowable. A Karnaugh Map defines the mapping from the \texttt{true} (T), \texttt{false} (F), \texttt{null} ($\epsilon$) and \texttt{invalid} ($\perp$) values of \texttt{Left} and \texttt{Right} inputs to the \texttt{and} output.
+
+\begin{center}
+	\begin{tabular}{|c|c||c|c|c|} 
+		\hline
+		Left & Right & and & requires & `and2' \\ [0.5ex] 
+		\hline
+		T & T & T & T & T \\ 
+		T & F & F & F & F \\
+		T & $\perp$,$\epsilon$ & $\perp$ & $\perp$ & $\perp$ \\
+		F & - & & F & \\
+		F & T,F & F & & F \\
+		F & $\perp$,$\epsilon$ & F & & $\perp$ \\
+		$\perp$,$\epsilon$ & - & & $\perp$ & \\ 
+		$\perp$,$\epsilon$ & T,F,$\perp$,$\epsilon$ & $\perp$ & & $\perp$ \\ 
+		\hline
+	\end{tabular}
+\end{center}
+
+Parallel execution is an implementation nightmare and the intermediate \texttt{invalid} results can be inefficient. If we eliminate commutative short circuits, we find that \texttt{invalid} results are exceptional rather than normal.
+
+\texttt{a <> null requires a.doSomething()}
+
+A new \texttt{requires} operator imposes a left argument first evaluation order for \texttt{and}. This avoids the spurious \texttt{invalid} results from the right argument and clearly indicates the intent to handle non-truths. The \texttt{and} operator can then be used for truths only. Once static analysis verifies that neither left nor right input of an \texttt{and} operator can be \texttt{null} or \texttt{invalid}, an implementation may implement a regular \texttt{`and2'} operation that returns \texttt{invalid} for any \texttt{null} or \texttt{invalid} input.
+
+A new \texttt{obviates} operator is also needed to regularize \texttt{or} short circuiting.
+
+
+%Providing commutative short-circuits may have seemed like a good way to allow \texttt{undefined} and truths to co-exist, but experience has shown that truths are subverted. Exploratory evaluation of Boolean operator arguments in parallel is an implementation nightmare.
+
+%If we separate the distinct requirements for truth and \texttt{undefined} reasoning by eliminating the crazy commutative short-circuits.
+
+%Truth reasoning requires 2-valued \texttt{and}, \texttt{implies}, \texttt{not}, \texttt{or}, \texttt{xor} operators.
+
+%Undefined reasoning requires selectively 4-valued \texttt{and}, \texttt{implies}, \texttt{or} operators. Only \texttt{implies} is not commutative and easy to read. Replacing commutative 4-valued \texttt{and}, \texttt{or} by not-commutative selectively 4-valued \texttt{requires}, \texttt{obviates} can make them easier to read: \texttt{a <> null requires a.doSomething()}.
+
+%The selectively 4-valued functionality evaluates the first argument, if \texttt{null} or \texttt{invalid} execution terminates with an \texttt{invalid} result.
+
+
+
+
+\begin{thebibliography}{}
+	%
+	\bibitem{amsterdam}
+	Cook, s., Kleppe, A., Mitchell, R., Rumpe, B., Warmer, j., Wills, A.:
+	The Amsterdam Manifesto on OCL. December 1999.
+	\url{http://www4.informatik.tu-muenchen.de/publ/papers/CKR+99.pdf}
+	
+\end{thebibliography}
+\end{document}
diff --git a/ocl/docs/publications/OCL2017ShortCircuits/llncs.cls b/ocl/docs/publications/OCL2017ShortCircuits/llncs.cls
new file mode 100644
index 0000000..40eae17
--- /dev/null
+++ b/ocl/docs/publications/OCL2017ShortCircuits/llncs.cls
@@ -0,0 +1,1208 @@
+% LLNCS DOCUMENT CLASS -- version 2.19 (31-Mar-2014)

+% Springer Verlag LaTeX2e support for Lecture Notes in Computer Science

+%

+%%

+%% \CharacterTable

+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z

+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z

+%%   Digits        \0\1\2\3\4\5\6\7\8\9

+%%   Exclamation   \!     Double quote  \"     Hash (number) \#

+%%   Dollar        \$     Percent       \%     Ampersand     \&

+%%   Acute accent  \'     Left paren    \(     Right paren   \)

+%%   Asterisk      \*     Plus          \+     Comma         \,

+%%   Minus         \-     Point         \.     Solidus       \/

+%%   Colon         \:     Semicolon     \;     Less than     \<

+%%   Equals        \=     Greater than  \>     Question mark \?

+%%   Commercial at \@     Left bracket  \[     Backslash     \\

+%%   Right bracket \]     Circumflex    \^     Underscore    \_

+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|

+%%   Right brace   \}     Tilde         \~}

+%%

+\NeedsTeXFormat{LaTeX2e}[1995/12/01]

+\ProvidesClass{llncs}[2014/03/31 v2.19

+^^J LaTeX document class for Lecture Notes in Computer Science]

+% Options

+\let\if@envcntreset\iffalse

+\DeclareOption{envcountreset}{\let\if@envcntreset\iftrue}

+\DeclareOption{citeauthoryear}{\let\citeauthoryear=Y}

+\DeclareOption{oribibl}{\let\oribibl=Y}

+\let\if@custvec\iftrue

+\DeclareOption{orivec}{\let\if@custvec\iffalse}

+\let\if@envcntsame\iffalse

+\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue}

+\let\if@envcntsect\iffalse

+\DeclareOption{envcountsect}{\let\if@envcntsect\iftrue}

+\let\if@runhead\iffalse

+\DeclareOption{runningheads}{\let\if@runhead\iftrue}

+

+\let\if@openright\iftrue

+\let\if@openbib\iffalse

+\DeclareOption{openbib}{\let\if@openbib\iftrue}

+

+% languages

+\let\switcht@@therlang\relax

+\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}}

+\def\ds@francais{\def\switcht@@therlang{\switcht@francais}}

+

+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}

+

+\ProcessOptions

+

+\LoadClass[twoside]{article}

+\RequirePackage{multicol} % needed for the list of participants, index

+\RequirePackage{aliascnt}

+

+\setlength{\textwidth}{12.2cm}

+\setlength{\textheight}{19.3cm}

+\renewcommand\@pnumwidth{2em}

+\renewcommand\@tocrmarg{3.5em}

+%

+\def\@dottedtocline#1#2#3#4#5{%

+  \ifnum #1>\c@tocdepth \else

+    \vskip \z@ \@plus.2\p@

+    {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by 0pt plus 2cm

+               \parfillskip -\rightskip \pretolerance=10000

+     \parindent #2\relax\@afterindenttrue

+     \interlinepenalty\@M

+     \leavevmode

+     \@tempdima #3\relax

+     \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip

+     {#4}\nobreak

+     \leaders\hbox{$\m@th

+        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep

+        mu$}\hfill

+     \nobreak

+     \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%

+     \par}%

+  \fi}

+%

+\def\switcht@albion{%

+\def\abstractname{Abstract.}%

+\def\ackname{Acknowledgement.}%

+\def\andname{and}%

+\def\lastandname{\unskip, and}%

+\def\appendixname{Appendix}%

+\def\chaptername{Chapter}%

+\def\claimname{Claim}%

+\def\conjecturename{Conjecture}%

+\def\contentsname{Table of Contents}%

+\def\corollaryname{Corollary}%

+\def\definitionname{Definition}%

+\def\examplename{Example}%

+\def\exercisename{Exercise}%

+\def\figurename{Fig.}%

+\def\keywordname{{\bf Keywords:}}%

+\def\indexname{Index}%

+\def\lemmaname{Lemma}%

+\def\contriblistname{List of Contributors}%

+\def\listfigurename{List of Figures}%

+\def\listtablename{List of Tables}%

+\def\mailname{{\it Correspondence to\/}:}%

+\def\noteaddname{Note added in proof}%

+\def\notename{Note}%

+\def\partname{Part}%

+\def\problemname{Problem}%

+\def\proofname{Proof}%

+\def\propertyname{Property}%

+\def\propositionname{Proposition}%

+\def\questionname{Question}%

+\def\remarkname{Remark}%

+\def\seename{see}%

+\def\solutionname{Solution}%

+\def\subclassname{{\it Subject Classifications\/}:}%

+\def\tablename{Table}%

+\def\theoremname{Theorem}}

+\switcht@albion

+% Names of theorem like environments are already defined

+% but must be translated if another language is chosen

+%

+% French section

+\def\switcht@francais{%\typeout{On parle francais.}%

+ \def\abstractname{R\'esum\'e.}%

+ \def\ackname{Remerciements.}%

+ \def\andname{et}%

+ \def\lastandname{ et}%

+ \def\appendixname{Appendice}%

+ \def\chaptername{Chapitre}%

+ \def\claimname{Pr\'etention}%

+ \def\conjecturename{Hypoth\`ese}%

+ \def\contentsname{Table des mati\`eres}%

+ \def\corollaryname{Corollaire}%

+ \def\definitionname{D\'efinition}%

+ \def\examplename{Exemple}%

+ \def\exercisename{Exercice}%

+ \def\figurename{Fig.}%

+ \def\keywordname{{\bf Mots-cl\'e:}}%

+ \def\indexname{Index}%

+ \def\lemmaname{Lemme}%

+ \def\contriblistname{Liste des contributeurs}%

+ \def\listfigurename{Liste des figures}%

+ \def\listtablename{Liste des tables}%

+ \def\mailname{{\it Correspondence to\/}:}%

+ \def\noteaddname{Note ajout\'ee \`a l'\'epreuve}%

+ \def\notename{Remarque}%

+ \def\partname{Partie}%

+ \def\problemname{Probl\`eme}%

+ \def\proofname{Preuve}%

+ \def\propertyname{Caract\'eristique}%

+%\def\propositionname{Proposition}%

+ \def\questionname{Question}%

+ \def\remarkname{Remarque}%

+ \def\seename{voir}%

+ \def\solutionname{Solution}%

+ \def\subclassname{{\it Subject Classifications\/}:}%

+ \def\tablename{Tableau}%

+ \def\theoremname{Th\'eor\`eme}%

+}

+%

+% German section

+\def\switcht@deutsch{%\typeout{Man spricht deutsch.}%

+ \def\abstractname{Zusammenfassung.}%

+ \def\ackname{Danksagung.}%

+ \def\andname{und}%

+ \def\lastandname{ und}%

+ \def\appendixname{Anhang}%

+ \def\chaptername{Kapitel}%

+ \def\claimname{Behauptung}%

+ \def\conjecturename{Hypothese}%

+ \def\contentsname{Inhaltsverzeichnis}%

+ \def\corollaryname{Korollar}%

+%\def\definitionname{Definition}%

+ \def\examplename{Beispiel}%

+ \def\exercisename{\"Ubung}%

+ \def\figurename{Abb.}%

+ \def\keywordname{{\bf Schl\"usselw\"orter:}}%

+ \def\indexname{Index}%

+%\def\lemmaname{Lemma}%

+ \def\contriblistname{Mitarbeiter}%

+ \def\listfigurename{Abbildungsverzeichnis}%

+ \def\listtablename{Tabellenverzeichnis}%

+ \def\mailname{{\it Correspondence to\/}:}%

+ \def\noteaddname{Nachtrag}%

+ \def\notename{Anmerkung}%

+ \def\partname{Teil}%

+%\def\problemname{Problem}%

+ \def\proofname{Beweis}%

+ \def\propertyname{Eigenschaft}%

+%\def\propositionname{Proposition}%

+ \def\questionname{Frage}%

+ \def\remarkname{Anmerkung}%

+ \def\seename{siehe}%

+ \def\solutionname{L\"osung}%

+ \def\subclassname{{\it Subject Classifications\/}:}%

+ \def\tablename{Tabelle}%

+%\def\theoremname{Theorem}%

+}

+

+% Ragged bottom for the actual page

+\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil

+\global\let\@textbottom\relax}}

+

+\renewcommand\small{%

+   \@setfontsize\small\@ixpt{11}%

+   \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@

+   \abovedisplayshortskip \z@ \@plus2\p@

+   \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@

+   \def\@listi{\leftmargin\leftmargini

+               \parsep 0\p@ \@plus1\p@ \@minus\p@

+               \topsep 8\p@ \@plus2\p@ \@minus4\p@

+               \itemsep0\p@}%

+   \belowdisplayskip \abovedisplayskip

+}

+

+\frenchspacing

+\widowpenalty=10000

+\clubpenalty=10000

+

+\setlength\oddsidemargin   {63\p@}

+\setlength\evensidemargin  {63\p@}

+\setlength\marginparwidth  {90\p@}

+

+\setlength\headsep   {16\p@}

+

+\setlength\footnotesep{7.7\p@}

+\setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@}

+\setlength\intextsep   {8mm\@plus 2\p@ \@minus 2\p@}

+

+\setcounter{secnumdepth}{2}

+

+\newcounter {chapter}

+\renewcommand\thechapter      {\@arabic\c@chapter}

+

+\newif\if@mainmatter \@mainmattertrue

+\newcommand\frontmatter{\cleardoublepage

+            \@mainmatterfalse\pagenumbering{Roman}}

+\newcommand\mainmatter{\cleardoublepage

+       \@mainmattertrue\pagenumbering{arabic}}

+\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi

+      \@mainmatterfalse}

+

+\renewcommand\part{\cleardoublepage

+                 \thispagestyle{empty}%

+                 \if@twocolumn

+                     \onecolumn

+                     \@tempswatrue

+                   \else

+                     \@tempswafalse

+                 \fi

+                 \null\vfil

+                 \secdef\@part\@spart}

+

+\def\@part[#1]#2{%

+    \ifnum \c@secnumdepth >-2\relax

+      \refstepcounter{part}%

+      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%

+    \else

+      \addcontentsline{toc}{part}{#1}%

+    \fi

+    \markboth{}{}%

+    {\centering

+     \interlinepenalty \@M

+     \normalfont

+     \ifnum \c@secnumdepth >-2\relax

+       \huge\bfseries \partname~\thepart

+       \par

+       \vskip 20\p@

+     \fi

+     \Huge \bfseries #2\par}%

+    \@endpart}

+\def\@spart#1{%

+    {\centering

+     \interlinepenalty \@M

+     \normalfont

+     \Huge \bfseries #1\par}%

+    \@endpart}

+\def\@endpart{\vfil\newpage

+              \if@twoside

+                \null

+                \thispagestyle{empty}%

+                \newpage

+              \fi

+              \if@tempswa

+                \twocolumn

+              \fi}

+

+\newcommand\chapter{\clearpage

+                    \thispagestyle{empty}%

+                    \global\@topnum\z@

+                    \@afterindentfalse

+                    \secdef\@chapter\@schapter}

+\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne

+                       \if@mainmatter

+                         \refstepcounter{chapter}%

+                         \typeout{\@chapapp\space\thechapter.}%

+                         \addcontentsline{toc}{chapter}%

+                                  {\protect\numberline{\thechapter}#1}%

+                       \else

+                         \addcontentsline{toc}{chapter}{#1}%

+                       \fi

+                    \else

+                      \addcontentsline{toc}{chapter}{#1}%

+                    \fi

+                    \chaptermark{#1}%

+                    \addtocontents{lof}{\protect\addvspace{10\p@}}%

+                    \addtocontents{lot}{\protect\addvspace{10\p@}}%

+                    \if@twocolumn

+                      \@topnewpage[\@makechapterhead{#2}]%

+                    \else

+                      \@makechapterhead{#2}%

+                      \@afterheading

+                    \fi}

+\def\@makechapterhead#1{%

+% \vspace*{50\p@}%

+  {\centering

+    \ifnum \c@secnumdepth >\m@ne

+      \if@mainmatter

+        \large\bfseries \@chapapp{} \thechapter

+        \par\nobreak

+        \vskip 20\p@

+      \fi

+    \fi

+    \interlinepenalty\@M

+    \Large \bfseries #1\par\nobreak

+    \vskip 40\p@

+  }}

+\def\@schapter#1{\if@twocolumn

+                   \@topnewpage[\@makeschapterhead{#1}]%

+                 \else

+                   \@makeschapterhead{#1}%

+                   \@afterheading

+                 \fi}

+\def\@makeschapterhead#1{%

+% \vspace*{50\p@}%

+  {\centering

+    \normalfont

+    \interlinepenalty\@M

+    \Large \bfseries  #1\par\nobreak

+    \vskip 40\p@

+  }}

+

+\renewcommand\section{\@startsection{section}{1}{\z@}%

+                       {-18\p@ \@plus -4\p@ \@minus -4\p@}%

+                       {12\p@ \@plus 4\p@ \@minus 4\p@}%

+                       {\normalfont\large\bfseries\boldmath

+                        \rightskip=\z@ \@plus 8em\pretolerance=10000 }}

+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%

+                       {-18\p@ \@plus -4\p@ \@minus -4\p@}%

+                       {8\p@ \@plus 4\p@ \@minus 4\p@}%

+                       {\normalfont\normalsize\bfseries\boldmath

+                        \rightskip=\z@ \@plus 8em\pretolerance=10000 }}

+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%

+                       {-18\p@ \@plus -4\p@ \@minus -4\p@}%

+                       {-0.5em \@plus -0.22em \@minus -0.1em}%

+                       {\normalfont\normalsize\bfseries\boldmath}}

+\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%

+                       {-12\p@ \@plus -4\p@ \@minus -4\p@}%

+                       {-0.5em \@plus -0.22em \@minus -0.1em}%

+                       {\normalfont\normalsize\itshape}}

+\renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use

+                  \string\subparagraph\space with this class}\vskip0.5cm

+You should not use \verb|\subparagraph| with this class.\vskip0.5cm}

+

+\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00}

+\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01}

+\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02}

+\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03}

+\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04}

+\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05}

+\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06}

+\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07}

+\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08}

+\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09}

+\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}

+

+\let\footnotesize\small

+

+\if@custvec

+\def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}}

+{\mbox{\boldmath$\textstyle#1$}}

+{\mbox{\boldmath$\scriptstyle#1$}}

+{\mbox{\boldmath$\scriptscriptstyle#1$}}}

+\fi

+

+\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}}

+\def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil

+\penalty50\hskip1em\null\nobreak\hfil\squareforqed

+\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi}

+

+\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip

+\halign{\hfil

+$\displaystyle##$\hfil\cr\gets\cr\to\cr}}}

+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets

+\cr\to\cr}}}

+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets

+\cr\to\cr}}}

+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr

+\gets\cr\to\cr}}}}}

+\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil

+$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}}

+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr

+\noalign{\vskip1.2pt}=\cr}}}

+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr

+\noalign{\vskip1pt}=\cr}}}

+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr

+<\cr

+\noalign{\vskip0.9pt}=\cr}}}}}

+\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil

+$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}}

+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr

+\noalign{\vskip1.2pt}=\cr}}}

+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr

+\noalign{\vskip1pt}=\cr}}}

+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr

+>\cr

+\noalign{\vskip0.9pt}=\cr}}}}}

+\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip

+\halign{\hfil

+$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}}

+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr

+>\cr\noalign{\vskip-1pt}<\cr}}}

+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr

+>\cr\noalign{\vskip-0.8pt}<\cr}}}

+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr

+>\cr\noalign{\vskip-0.3pt}<\cr}}}}}

+\def\bbbr{{\rm I\!R}} %reelle Zahlen

+\def\bbbm{{\rm I\!M}}

+\def\bbbn{{\rm I\!N}} %natuerliche Zahlen

+\def\bbbf{{\rm I\!F}}

+\def\bbbh{{\rm I\!H}}

+\def\bbbk{{\rm I\!K}}

+\def\bbbp{{\rm I\!P}}

+\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l}

+{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}}

+\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox

+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}

+{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox

+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}

+{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox

+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}

+{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox

+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}}

+\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm

+Q$}\hbox{\raise

+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}

+{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise

+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}

+{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise

+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}

+{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise

+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}}

+\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm

+T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}

+{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox

+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}

+{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox

+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}

+{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox

+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}}

+\def\bbbs{{\mathchoice

+{\setbox0=\hbox{$\displaystyle     \rm S$}\hbox{\raise0.5\ht0\hbox

+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox

+to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}

+{\setbox0=\hbox{$\textstyle        \rm S$}\hbox{\raise0.5\ht0\hbox

+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox

+to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}

+{\setbox0=\hbox{$\scriptstyle      \rm S$}\hbox{\raise0.5\ht0\hbox

+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox

+to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}}

+{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox

+to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox

+to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}

+\def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}

+{\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}

+{\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}}

+{\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}}

+

+\let\ts\,

+

+\setlength\leftmargini  {17\p@}

+\setlength\leftmargin    {\leftmargini}

+\setlength\leftmarginii  {\leftmargini}

+\setlength\leftmarginiii {\leftmargini}

+\setlength\leftmarginiv  {\leftmargini}

+\setlength  \labelsep  {.5em}

+\setlength  \labelwidth{\leftmargini}

+\addtolength\labelwidth{-\labelsep}

+

+\def\@listI{\leftmargin\leftmargini

+            \parsep 0\p@ \@plus1\p@ \@minus\p@

+            \topsep 8\p@ \@plus2\p@ \@minus4\p@

+            \itemsep0\p@}

+\let\@listi\@listI

+\@listi

+\def\@listii {\leftmargin\leftmarginii

+              \labelwidth\leftmarginii

+              \advance\labelwidth-\labelsep

+              \topsep    0\p@ \@plus2\p@ \@minus\p@}

+\def\@listiii{\leftmargin\leftmarginiii

+              \labelwidth\leftmarginiii

+              \advance\labelwidth-\labelsep

+              \topsep    0\p@ \@plus\p@\@minus\p@

+              \parsep    \z@

+              \partopsep \p@ \@plus\z@ \@minus\p@}

+

+\renewcommand\labelitemi{\normalfont\bfseries --}

+\renewcommand\labelitemii{$\m@th\bullet$}

+

+\setlength\arraycolsep{1.4\p@}

+\setlength\tabcolsep{1.4\p@}

+

+\def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}%

+                                                    {{\contentsname}}}

+ \def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}}

+ \def\lastand{\ifnum\value{auco}=2\relax

+                 \unskip{} \andname\

+              \else

+                 \unskip \lastandname\

+              \fi}%

+ \def\and{\stepcounter{@auth}\relax

+          \ifnum\value{@auth}=\value{auco}%

+             \lastand

+          \else

+             \unskip,

+          \fi}%

+ \@starttoc{toc}\if@restonecol\twocolumn\fi}

+

+\def\l@part#1#2{\addpenalty{\@secpenalty}%

+   \addvspace{2em plus\p@}%  % space above part line

+   \begingroup

+     \parindent \z@

+     \rightskip \z@ plus 5em

+     \hrule\vskip5pt

+     \large               % same size as for a contribution heading

+     \bfseries\boldmath   % set line in boldface

+     \leavevmode          % TeX command to enter horizontal mode.

+     #1\par

+     \vskip5pt

+     \hrule

+     \vskip1pt

+     \nobreak             % Never break after part entry

+   \endgroup}

+

+\def\@dotsep{2}

+

+\let\phantomsection=\relax

+

+\def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else

+{}\fi}

+

+\def\addnumcontentsmark#1#2#3{%

+\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline

+                     {\thechapter}#3}{\thepage}\hyperhrefextend}}%

+\def\addcontentsmark#1#2#3{%

+\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}}%

+\def\addcontentsmarkwop#1#2#3{%

+\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}}%

+

+\def\@adcmk[#1]{\ifcase #1 \or

+\def\@gtempa{\addnumcontentsmark}%

+  \or    \def\@gtempa{\addcontentsmark}%

+  \or    \def\@gtempa{\addcontentsmarkwop}%

+  \fi\@gtempa{toc}{chapter}%

+}

+\def\addtocmark{%

+\phantomsection

+\@ifnextchar[{\@adcmk}{\@adcmk[3]}%

+}

+

+\def\l@chapter#1#2{\addpenalty{-\@highpenalty}

+ \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup

+ \parindent \z@ \rightskip \@tocrmarg

+ \advance\rightskip by 0pt plus 2cm

+ \parfillskip -\rightskip \pretolerance=10000

+ \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip

+ {\large\bfseries\boldmath#1}\ifx0#2\hfil\null

+ \else

+      \nobreak

+      \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern

+      \@dotsep mu$}\hfill

+      \nobreak\hbox to\@pnumwidth{\hss #2}%

+ \fi\par

+ \penalty\@highpenalty \endgroup}

+

+\def\l@title#1#2{\addpenalty{-\@highpenalty}

+ \addvspace{8pt plus 1pt}

+ \@tempdima \z@

+ \begingroup

+ \parindent \z@ \rightskip \@tocrmarg

+ \advance\rightskip by 0pt plus 2cm

+ \parfillskip -\rightskip \pretolerance=10000

+ \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip

+ #1\nobreak

+ \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern

+ \@dotsep mu$}\hfill

+ \nobreak\hbox to\@pnumwidth{\hss #2}\par

+ \penalty\@highpenalty \endgroup}

+

+\def\l@author#1#2{\addpenalty{\@highpenalty}

+ \@tempdima=15\p@ %\z@

+ \begingroup

+ \parindent \z@ \rightskip \@tocrmarg

+ \advance\rightskip by 0pt plus 2cm

+ \pretolerance=10000

+ \leavevmode \advance\leftskip\@tempdima %\hskip -\leftskip

+ \textit{#1}\par

+ \penalty\@highpenalty \endgroup}

+

+\setcounter{tocdepth}{0}

+\newdimen\tocchpnum

+\newdimen\tocsecnum

+\newdimen\tocsectotal

+\newdimen\tocsubsecnum

+\newdimen\tocsubsectotal

+\newdimen\tocsubsubsecnum

+\newdimen\tocsubsubsectotal

+\newdimen\tocparanum

+\newdimen\tocparatotal

+\newdimen\tocsubparanum

+\tocchpnum=\z@            % no chapter numbers

+\tocsecnum=15\p@          % section 88. plus 2.222pt

+\tocsubsecnum=23\p@       % subsection 88.8 plus 2.222pt

+\tocsubsubsecnum=27\p@    % subsubsection 88.8.8 plus 1.444pt

+\tocparanum=35\p@         % paragraph 88.8.8.8 plus 1.666pt

+\tocsubparanum=43\p@      % subparagraph 88.8.8.8.8 plus 1.888pt

+\def\calctocindent{%

+\tocsectotal=\tocchpnum

+\advance\tocsectotal by\tocsecnum

+\tocsubsectotal=\tocsectotal

+\advance\tocsubsectotal by\tocsubsecnum

+\tocsubsubsectotal=\tocsubsectotal

+\advance\tocsubsubsectotal by\tocsubsubsecnum

+\tocparatotal=\tocsubsubsectotal

+\advance\tocparatotal by\tocparanum}

+\calctocindent

+

+\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}}

+\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}}

+\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}}

+\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}}

+\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}}

+

+\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn

+ \fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}}

+ \@starttoc{lof}\if@restonecol\twocolumn\fi}

+\def\l@figure{\@dottedtocline{1}{0em}{1.5em}}

+

+\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn

+ \fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}}

+ \@starttoc{lot}\if@restonecol\twocolumn\fi}

+\let\l@table\l@figure

+

+\renewcommand\listoffigures{%

+    \section*{\listfigurename

+      \@mkboth{\listfigurename}{\listfigurename}}%

+    \@starttoc{lof}%

+    }

+

+\renewcommand\listoftables{%

+    \section*{\listtablename

+      \@mkboth{\listtablename}{\listtablename}}%

+    \@starttoc{lot}%

+    }

+

+\ifx\oribibl\undefined

+\ifx\citeauthoryear\undefined

+\renewenvironment{thebibliography}[1]

+     {\section*{\refname}

+      \def\@biblabel##1{##1.}

+      \small

+      \list{\@biblabel{\@arabic\c@enumiv}}%

+           {\settowidth\labelwidth{\@biblabel{#1}}%

+            \leftmargin\labelwidth

+            \advance\leftmargin\labelsep

+            \if@openbib

+              \advance\leftmargin\bibindent

+              \itemindent -\bibindent

+              \listparindent \itemindent

+              \parsep \z@

+            \fi

+            \usecounter{enumiv}%

+            \let\p@enumiv\@empty

+            \renewcommand\theenumiv{\@arabic\c@enumiv}}%

+      \if@openbib

+        \renewcommand\newblock{\par}%

+      \else

+        \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%

+      \fi

+      \sloppy\clubpenalty4000\widowpenalty4000%

+      \sfcode`\.=\@m}

+     {\def\@noitemerr

+       {\@latex@warning{Empty `thebibliography' environment}}%

+      \endlist}

+\def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw

+     {\let\protect\noexpand\immediate

+     \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}

+\newcount\@tempcntc

+\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi

+  \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do

+    {\@ifundefined

+       {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries

+        ?}\@warning

+       {Citation `\@citeb' on page \thepage \space undefined}}%

+    {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}%

+     \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne

+       \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}%

+     \else

+      \advance\@tempcntb\@ne

+      \ifnum\@tempcntb=\@tempcntc

+      \else\advance\@tempcntb\m@ne\@citeo

+      \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}}

+\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else

+               \@citea\def\@citea{,\,\hskip\z@skip}%

+               \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else

+               {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else

+                \def\@citea{--}\fi

+      \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi}

+\else

+\renewenvironment{thebibliography}[1]

+     {\section*{\refname}

+      \small

+      \list{}%

+           {\settowidth\labelwidth{}%

+            \leftmargin\parindent

+            \itemindent=-\parindent

+            \labelsep=\z@

+            \if@openbib

+              \advance\leftmargin\bibindent

+              \itemindent -\bibindent

+              \listparindent \itemindent

+              \parsep \z@

+            \fi

+            \usecounter{enumiv}%

+            \let\p@enumiv\@empty

+            \renewcommand\theenumiv{}}%

+      \if@openbib

+        \renewcommand\newblock{\par}%

+      \else

+        \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%

+      \fi

+      \sloppy\clubpenalty4000\widowpenalty4000%

+      \sfcode`\.=\@m}

+     {\def\@noitemerr

+       {\@latex@warning{Empty `thebibliography' environment}}%

+      \endlist}

+      \def\@cite#1{#1}%

+      \def\@lbibitem[#1]#2{\item[]\if@filesw

+        {\def\protect##1{\string ##1\space}\immediate

+      \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}

+   \fi

+\else

+\@cons\@openbib@code{\noexpand\small}

+\fi

+

+\def\idxquad{\hskip 10\p@}% space that divides entry from number

+

+\def\@idxitem{\par\hangindent 10\p@}

+

+\def\subitem{\par\setbox0=\hbox{--\enspace}% second order

+                \noindent\hangindent\wd0\box0}% index entry

+

+\def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third

+                \noindent\hangindent\wd0\box0}% order index entry

+

+\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax}

+

+\renewenvironment{theindex}

+               {\@mkboth{\indexname}{\indexname}%

+                \thispagestyle{empty}\parindent\z@

+                \parskip\z@ \@plus .3\p@\relax

+                \let\item\par

+                \def\,{\relax\ifmmode\mskip\thinmuskip

+                             \else\hskip0.2em\ignorespaces\fi}%

+                \normalfont\small

+                \begin{multicols}{2}[\@makeschapterhead{\indexname}]%

+                }

+                {\end{multicols}}

+

+\renewcommand\footnoterule{%

+  \kern-3\p@

+  \hrule\@width 2truecm

+  \kern2.6\p@}

+  \newdimen\fnindent

+  \fnindent1em

+\long\def\@makefntext#1{%

+    \parindent \fnindent%

+    \leftskip \fnindent%

+    \noindent

+    \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1}

+

+\long\def\@makecaption#1#2{%

+  \small

+  \vskip\abovecaptionskip

+  \sbox\@tempboxa{{\bfseries #1.} #2}%

+  \ifdim \wd\@tempboxa >\hsize

+    {\bfseries #1.} #2\par

+  \else

+    \global \@minipagefalse

+    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%

+  \fi

+  \vskip\belowcaptionskip}

+

+\def\fps@figure{htbp}

+\def\fnum@figure{\figurename\thinspace\thefigure}

+\def \@floatboxreset {%

+        \reset@font

+        \small

+        \@setnobreak

+        \@setminipage

+}

+\def\fps@table{htbp}

+\def\fnum@table{\tablename~\thetable}

+\renewenvironment{table}

+               {\setlength\abovecaptionskip{0\p@}%

+                \setlength\belowcaptionskip{10\p@}%

+                \@float{table}}

+               {\end@float}

+\renewenvironment{table*}

+               {\setlength\abovecaptionskip{0\p@}%

+                \setlength\belowcaptionskip{10\p@}%

+                \@dblfloat{table}}

+               {\end@dblfloat}

+

+\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname

+  ext@#1\endcsname}{#1}{\protect\numberline{\csname

+  the#1\endcsname}{\ignorespaces #2}}\begingroup

+    \@parboxrestore

+    \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par

+  \endgroup}

+

+% LaTeX does not provide a command to enter the authors institute

+% addresses. The \institute command is defined here.

+

+\newcounter{@inst}

+\newcounter{@auth}

+\newcounter{auco}

+\newdimen\instindent

+\newbox\authrun

+\newtoks\authorrunning

+\newtoks\tocauthor

+\newbox\titrun

+\newtoks\titlerunning

+\newtoks\toctitle

+

+\def\clearheadinfo{\gdef\@author{No Author Given}%

+                   \gdef\@title{No Title Given}%

+                   \gdef\@subtitle{}%

+                   \gdef\@institute{No Institute Given}%

+                   \gdef\@thanks{}%

+                   \global\titlerunning={}\global\authorrunning={}%

+                   \global\toctitle={}\global\tocauthor={}}

+

+\def\institute#1{\gdef\@institute{#1}}

+

+\def\institutename{\par

+ \begingroup

+ \parskip=\z@

+ \parindent=\z@

+ \setcounter{@inst}{1}%

+ \def\and{\par\stepcounter{@inst}%

+ \noindent$^{\the@inst}$\enspace\ignorespaces}%

+ \setbox0=\vbox{\def\thanks##1{}\@institute}%

+ \ifnum\c@@inst=1\relax

+   \gdef\fnnstart{0}%

+ \else

+   \xdef\fnnstart{\c@@inst}%

+   \setcounter{@inst}{1}%

+   \noindent$^{\the@inst}$\enspace

+ \fi

+ \ignorespaces

+ \@institute\par

+ \endgroup}

+

+\def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or

+   {\star\star\star}\or \dagger\or \ddagger\or

+   \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger

+   \or \ddagger\ddagger \else\@ctrerr\fi}}

+

+\def\inst#1{\unskip$^{#1}$}

+\def\fnmsep{\unskip$^,$}

+\def\email#1{{\tt#1}}

+\AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}%

+\@ifpackageloaded{babel}{%

+\@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}%

+\@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}%

+\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}%

+\@ifundefined{extrasngerman}{}{\addto\extrasngerman{\switcht@deutsch}}%

+}{\switcht@@therlang}%

+\providecommand{\keywords}[1]{\par\addvspace\baselineskip

+\noindent\keywordname\enspace\ignorespaces#1}%

+}

+\def\homedir{\~{ }}

+

+\def\subtitle#1{\gdef\@subtitle{#1}}

+\clearheadinfo

+%

+%%% to avoid hyperref warnings

+\providecommand*{\toclevel@author}{999}

+%%% to make title-entry parent of section-entries

+\providecommand*{\toclevel@title}{0}

+%

+\renewcommand\maketitle{\newpage

+\phantomsection

+  \refstepcounter{chapter}%

+  \stepcounter{section}%

+  \setcounter{section}{0}%

+  \setcounter{subsection}{0}%

+  \setcounter{figure}{0}

+  \setcounter{table}{0}

+  \setcounter{equation}{0}

+  \setcounter{footnote}{0}%

+  \begingroup

+    \parindent=\z@

+    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%

+    \if@twocolumn

+      \ifnum \col@number=\@ne

+        \@maketitle

+      \else

+        \twocolumn[\@maketitle]%

+      \fi

+    \else

+      \newpage

+      \global\@topnum\z@   % Prevents figures from going at top of page.

+      \@maketitle

+    \fi

+    \thispagestyle{empty}\@thanks

+%

+    \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}%

+    \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}%

+    \instindent=\hsize

+    \advance\instindent by-\headlineindent

+    \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else

+       \addcontentsline{toc}{title}{\the\toctitle}\fi

+    \if@runhead

+       \if!\the\titlerunning!\else

+         \edef\@title{\the\titlerunning}%

+       \fi

+       \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}%

+       \ifdim\wd\titrun>\instindent

+          \typeout{Title too long for running head. Please supply}%

+          \typeout{a shorter form with \string\titlerunning\space prior to

+                   \string\maketitle}%

+          \global\setbox\titrun=\hbox{\small\rm

+          Title Suppressed Due to Excessive Length}%

+       \fi

+       \xdef\@title{\copy\titrun}%

+    \fi

+%

+    \if!\the\tocauthor!\relax

+      {\def\and{\noexpand\protect\noexpand\and}%

+      \protected@xdef\toc@uthor{\@author}}%

+    \else

+      \def\\{\noexpand\protect\noexpand\newline}%

+      \protected@xdef\scratch{\the\tocauthor}%

+      \protected@xdef\toc@uthor{\scratch}%

+    \fi

+    \addtocontents{toc}{\noexpand\protect\noexpand\authcount{\the\c@auco}}%

+    \addcontentsline{toc}{author}{\toc@uthor}%

+    \if@runhead

+       \if!\the\authorrunning!

+         \value{@inst}=\value{@auth}%

+         \setcounter{@auth}{1}%

+       \else

+         \edef\@author{\the\authorrunning}%

+       \fi

+       \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}%

+       \ifdim\wd\authrun>\instindent

+          \typeout{Names of authors too long for running head. Please supply}%

+          \typeout{a shorter form with \string\authorrunning\space prior to

+                   \string\maketitle}%

+          \global\setbox\authrun=\hbox{\small\rm

+          Authors Suppressed Due to Excessive Length}%

+       \fi

+       \xdef\@author{\copy\authrun}%

+       \markboth{\@author}{\@title}%

+     \fi

+  \endgroup

+  \setcounter{footnote}{\fnnstart}%

+  \clearheadinfo}

+%

+\def\@maketitle{\newpage

+ \markboth{}{}%

+ \def\lastand{\ifnum\value{@inst}=2\relax

+                 \unskip{} \andname\

+              \else

+                 \unskip \lastandname\

+              \fi}%

+ \def\and{\stepcounter{@auth}\relax

+          \ifnum\value{@auth}=\value{@inst}%

+             \lastand

+          \else

+             \unskip,

+          \fi}%

+ \begin{center}%

+ \let\newline\\

+ {\Large \bfseries\boldmath

+  \pretolerance=10000

+  \@title \par}\vskip .8cm

+\if!\@subtitle!\else {\large \bfseries\boldmath

+  \vskip -.65cm

+  \pretolerance=10000

+  \@subtitle \par}\vskip .8cm\fi

+ \setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}%

+ \def\thanks##1{}\@author}%

+ \global\value{@inst}=\value{@auth}%

+ \global\value{auco}=\value{@auth}%

+ \setcounter{@auth}{1}%

+{\lineskip .5em

+\noindent\ignorespaces

+\@author\vskip.35cm}

+ {\small\institutename}

+ \end{center}%

+ }

+

+% definition of the "\spnewtheorem" command.

+%

+% Usage:

+%

+%     \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font}

+% or  \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font}

+% or  \spnewtheorem*{env_nam}{caption}{cap_font}{body_font}

+%

+% New is "cap_font" and "body_font". It stands for

+% fontdefinition of the caption and the text itself.

+%

+% "\spnewtheorem*" gives a theorem without number.

+%

+% A defined spnewthoerem environment is used as described

+% by Lamport.

+%

+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

+

+\def\@thmcountersep{}

+\def\@thmcounterend{.}

+

+\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}}

+

+% definition of \spnewtheorem with number

+

+\def\@spnthm#1#2{%

+  \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}}

+\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}}

+

+\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname

+   {\@definecounter{#1}\@addtoreset{#1}{#3}%

+   \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand

+     \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}%

+   \expandafter\xdef\csname #1name\endcsname{#2}%

+   \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}%

+                              \global\@namedef{end#1}{\@endtheorem}}}

+

+\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname

+   {\@definecounter{#1}%

+   \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%

+   \expandafter\xdef\csname #1name\endcsname{#2}%

+   \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}%

+                               \global\@namedef{end#1}{\@endtheorem}}}

+

+\def\@spothm#1[#2]#3#4#5{%

+  \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}%

+  {\expandafter\@ifdefinable\csname #1\endcsname

+  {\newaliascnt{#1}{#2}%

+  \expandafter\xdef\csname #1name\endcsname{#3}%

+  \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}%

+  \global\@namedef{end#1}{\@endtheorem}}}}

+

+\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@

+\refstepcounter{#1}%

+\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}}

+

+\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}%

+                    \ignorespaces}

+

+\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname

+       the#1\endcsname}{#5}{#3}{#4}\ignorespaces}

+

+\def\@spbegintheorem#1#2#3#4{\trivlist

+                 \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4}

+

+\def\@spopargbegintheorem#1#2#3#4#5{\trivlist

+      \item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5}

+

+% definition of \spnewtheorem* without number

+

+\def\@sthm#1#2{\@Ynthm{#1}{#2}}

+

+\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname

+   {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}%

+    \expandafter\xdef\csname #1name\endcsname{#2}%

+    \global\@namedef{end#1}{\@endtheorem}}}

+

+\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@

+\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}}

+

+\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces}

+

+\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1}

+       {#4}{#2}{#3}\ignorespaces}

+

+\def\@Begintheorem#1#2#3{#3\trivlist

+                           \item[\hskip\labelsep{#2#1\@thmcounterend}]}

+

+\def\@Opargbegintheorem#1#2#3#4{#4\trivlist

+      \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }}

+

+\if@envcntsect

+   \def\@thmcountersep{.}

+   \spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape}

+\else

+   \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape}

+   \if@envcntreset

+      \@addtoreset{theorem}{section}

+   \else

+      \@addtoreset{theorem}{chapter}

+   \fi

+\fi

+

+%definition of divers theorem environments

+\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily}

+\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily}

+\if@envcntsame % alle Umgebungen wie Theorem.

+   \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}}

+\else % alle Umgebungen mit eigenem Zaehler

+   \if@envcntsect % mit section numeriert

+      \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}}

+   \else % nicht mit section numeriert

+      \if@envcntreset

+         \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}

+                                   \@addtoreset{#1}{section}}

+      \else

+         \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}

+                                   \@addtoreset{#1}{chapter}}%

+      \fi

+   \fi

+\fi

+\spn@wtheorem{case}{Case}{\itshape}{\rmfamily}

+\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily}

+\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape}

+\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape}

+\spn@wtheorem{example}{Example}{\itshape}{\rmfamily}

+\spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily}

+\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape}

+\spn@wtheorem{note}{Note}{\itshape}{\rmfamily}

+\spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily}

+\spn@wtheorem{property}{Property}{\itshape}{\rmfamily}

+\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape}

+\spn@wtheorem{question}{Question}{\itshape}{\rmfamily}

+\spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily}

+\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily}

+

+\def\@takefromreset#1#2{%

+    \def\@tempa{#1}%

+    \let\@tempd\@elt

+    \def\@elt##1{%

+        \def\@tempb{##1}%

+        \ifx\@tempa\@tempb\else

+            \@addtoreset{##1}{#2}%

+        \fi}%

+    \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname

+    \expandafter\def\csname cl@#2\endcsname{}%

+    \@tempc

+    \let\@elt\@tempd}

+

+\def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist

+      \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5}

+                  \def\@Opargbegintheorem##1##2##3##4{##4\trivlist

+      \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }}

+      }

+

+\renewenvironment{abstract}{%

+      \list{}{\advance\topsep by0.35cm\relax\small

+      \leftmargin=1cm

+      \labelwidth=\z@

+      \listparindent=\z@

+      \itemindent\listparindent

+      \rightmargin\leftmargin}\item[\hskip\labelsep

+                                    \bfseries\abstractname]}

+    {\endlist}

+

+\newdimen\headlineindent             % dimension for space between

+\headlineindent=1.166cm              % number and text of headings.

+

+\def\ps@headings{\let\@mkboth\@gobbletwo

+   \let\@oddfoot\@empty\let\@evenfoot\@empty

+   \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%

+                  \leftmark\hfil}

+   \def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}%

+                 \llap{\thepage}}

+   \def\chaptermark##1{}%

+   \def\sectionmark##1{}%

+   \def\subsectionmark##1{}}

+

+\def\ps@titlepage{\let\@mkboth\@gobbletwo

+   \let\@oddfoot\@empty\let\@evenfoot\@empty

+   \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%

+                  \hfil}

+   \def\@oddhead{\normalfont\small\hfil\hspace{\headlineindent}%

+                 \llap{\thepage}}

+   \def\chaptermark##1{}%

+   \def\sectionmark##1{}%

+   \def\subsectionmark##1{}}

+

+\if@runhead\ps@headings\else

+\ps@empty\fi

+

+\setlength\arraycolsep{1.4\p@}

+\setlength\tabcolsep{1.4\p@}

+

+\endinput

+%end of file llncs.cls