diff --git a/.gitignore b/.gitignore
index 7f1600a9f22850274faef28668d938aeb10276e7..c2246aefbb5deb63a35e7c03a12377bd74b6f7ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
-omdoc-semantics/macros
-omdoc-semantics/tikz
 auto
+*.log
+*.aux
+
diff --git a/omdoc-semantics/activdocs.tex b/omdoc-semantics/activdocs.tex
index 6e9cefe9bab7877b0e1fb538967bd3bc29b61d76..d6e216ceecd9dbe5ee27ca90745a43dcf0dd8c65 100644
--- a/omdoc-semantics/activdocs.tex
+++ b/omdoc-semantics/activdocs.tex
@@ -1,6 +1,3 @@
-\svnInfo $Id: activdocs.tex 166 2013-11-29 19:08:20Z kohlhase $
-\svnKeyword $HeadURL: https://svn.kwarc.info/repos/miancu/omdoc-semantics/activdocs.tex $
- 
 In the \emph{active documents paradigm} \cite{adp}, we postulated that documents naturally
 come in cross-referenced document and content structures, where both sides combine to make
 the documents active.Therefore, we envision documents stored in a \emph{document commons}
diff --git a/omdoc-semantics/intro.tex b/omdoc-semantics/intro.tex
index 0bffd432e5263251f7fca0bad5ca3515509336aa..e39053e9349b133ccee4c0c21c9474705529b955 100644
--- a/omdoc-semantics/intro.tex
+++ b/omdoc-semantics/intro.tex
@@ -1,6 +1,3 @@
-\svnInfo $Id: intro.tex 195 2014-07-31 13:11:55Z miancu $
-\svnKeyword $HeadURL: https://svn.kwarc.info/repos/miancu/omdoc-semantics/intro.tex $
-
 Mathematical knowledge is rich in content, sophisticated in structure and technical in
 presentation.  Its conservation, dissemination, and utilization constitutes a challenge
 for the community and an attractive area of inquiry. Moreover, mathematics plays a
diff --git a/omdoc-semantics/macros/a0poster.cls b/omdoc-semantics/macros/a0poster.cls
new file mode 100644
index 0000000000000000000000000000000000000000..c3ca11d2caa59f0eebfd051d3e1e28274a5b0609
--- /dev/null
+++ b/omdoc-semantics/macros/a0poster.cls
@@ -0,0 +1,275 @@
+%% 
+%% This is file `a0poster.cls'
+%% 
+%% Copyright (C) 1997-2004 Gerlinde Kettl and Matthias Weiser
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% � �http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% Problems, bugs and comments to 
+%% tex@kettl.de
+%% 
+
+\ProvidesClass{a0poster}[2004/01/31 v1.22b a0poster class (GK, MW)]
+\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+\LoadClass{article}
+
+\newif\ifportrait
+\newif\ifanullb
+\newif\ifanull
+\newif\ifaeins
+\newif\ifazwei
+\newif\ifadrei
+\newif\ifposterdraft
+
+\newcount\xkoord
+\newcount\ykoord
+\newcount\xscale
+\newcount\yscale
+
+\DeclareOption{a0b}{
+\anullbtrue
+\xkoord=2594 % big points (1 bp=1/72 inch)
+\ykoord=3370 % big points (1 bp=1/72 inch)
+\xscale=2
+\yscale=2
+}
+\DeclareOption{a0}{
+\anulltrue\anullbfalse
+\xkoord=2380 % big points (1 bp=1/72 inch)
+\ykoord=3368 % big points (1 bp=1/72 inch)
+\xscale=2
+\yscale=2
+}
+\DeclareOption{a1}{
+\aeinstrue\anullbfalse
+\xkoord=1684 % big points (1 bp=1/72 inch)
+\ykoord=2380 % big points (1 bp=1/72 inch)
+\xscale=3
+\yscale=3
+}
+\DeclareOption{a2}{
+\azweitrue\anullbfalse
+\xkoord=1190 % big points (1 bp=1/72 inch)
+\ykoord=1684 % big points (1 bp=1/72 inch)
+\xscale=4
+\yscale=4
+
+}
+\DeclareOption{a3}{
+\adreitrue\anullbfalse
+\xkoord=842  % big points (1 bp=1/72 inch)
+\ykoord=1190 % big points (1 bp=1/72 inch)
+\xscale=6
+\yscale=6
+}
+\DeclareOption{landscape}{
+\portraitfalse
+}
+\DeclareOption{portrait}{
+\portraittrue
+}
+\DeclareOption{draft}{   %% Just for downward compatibility
+\posterdrafttrue
+}
+\DeclareOption{posterdraft}{ %% To avoid collisions with the graphics package
+\posterdrafttrue
+}
+\DeclareOption{final}{
+\posterdraftfalse
+}
+\DeclareOption*{\PackageWarning{a0poster}{Unknown Option \CurrentOption}}
+\ExecuteOptions{landscape,a0b,final}
+\ProcessOptions\relax
+
+\ifanullb
+   \setlength{\paperwidth}{119cm}
+   \setlength{\paperheight}{87cm}
+   \setlength{\textwidth}{114cm}
+   \setlength{\textheight}{87cm}
+\else\ifanull
+        \setlength{\paperwidth}{118.82cm}
+        \setlength{\paperheight}{83.96cm}
+        \setlength{\textwidth}{114.82cm}
+        \setlength{\textheight}{79.96cm}
+     \else\ifaeins
+             \setlength{\paperwidth}{83.96cm}
+             \setlength{\paperheight}{59.4cm}
+             \setlength{\textwidth}{79.96cm}
+             \setlength{\textheight}{55.4cm}
+          \else\ifazwei
+                  \setlength{\paperwidth}{59.4cm}
+                  \setlength{\paperheight}{41.98cm}
+                  \setlength{\textwidth}{55.4cm}
+                  \setlength{\textheight}{37.98cm}
+               \else\ifadrei
+                       \setlength{\paperwidth}{41.98cm}
+                       \setlength{\paperheight}{29.7cm}
+                       \setlength{\textwidth}{37.98cm}
+                       \setlength{\textheight}{25.7cm}
+                    \else\relax
+                    \fi
+               \fi
+          \fi
+     \fi
+\fi
+
+
+\ifportrait
+   \newdimen\tausch
+   \setlength{\tausch}{\paperwidth}
+   \setlength{\paperwidth}{\paperheight}
+   \setlength{\paperheight}{\tausch}
+   \setlength{\tausch}{\textwidth}
+   \setlength{\textwidth}{\textheight}
+   \setlength{\textheight}{\tausch}
+\else\relax
+\fi
+
+%% Setting proper dimensions for a DIN A0 printer
+
+\setlength{\headheight}{0 cm}
+\setlength{\headsep}{0 cm}
+\setlength{\topmargin}{0 cm}
+\setlength{\oddsidemargin}{0 cm}
+
+\catcode`\%=11
+\newwrite\Ausgabe
+\immediate\openout\Ausgabe=a0header.ps
+\write\Ausgabe{%%BeginFeature *PageSize ISOA0/ISO A0}
+\ifposterdraft\write\Ausgabe{2 dict dup /PageSize [595 842] put dup /ImagingBBox null put}
+\else\write\Ausgabe{2 dict dup /PageSize [\number\xkoord\space \number\ykoord] put dup /ImagingBBox null put}\fi
+\write\Ausgabe{setpagedevice}
+\ifposterdraft\write\Ausgabe{38 84 translate}
+\write\Ausgabe{0.\number\xscale\space 0.\number\yscale\space scale}\else\relax\fi
+\write\Ausgabe{%%EndFeature}
+\closeout\Ausgabe
+\catcode`\%=14
+
+\special{header=./a0header.ps}
+
+\input{a0size.sty}
+
+\renewcommand{\tiny}{\fontsize{12}{14}\selectfont}
+\renewcommand{\scriptsize}{\fontsize{14.4}{18}\selectfont}   
+\renewcommand{\footnotesize}{\fontsize{17.28}{22}\selectfont}
+\renewcommand{\small}{\fontsize{20.74}{25}\selectfont}
+\renewcommand{\normalsize}{\fontsize{24.88}{30}\selectfont}
+\renewcommand{\large}{\fontsize{29.86}{37}\selectfont}
+\renewcommand{\Large}{\fontsize{35.83}{45}\selectfont}
+\renewcommand{\LARGE}{\fontsize{43}{54}\selectfont}
+\renewcommand{\huge}{\fontsize{51.6}{64}\selectfont}
+\renewcommand{\Huge}{\fontsize{61.92}{77}\selectfont}
+\newcommand{\veryHuge}{\fontsize{74.3}{93}\selectfont}
+\newcommand{\VeryHuge}{\fontsize{89.16}{112}\selectfont}
+\newcommand{\VERYHuge}{\fontsize{107}{134}\selectfont}
+
+\setlength\smallskipamount{6pt plus 2pt minus 2pt}
+\setlength\medskipamount{12pt plus 4pt minus 4pt}
+\setlength\bigskipamount{24pt plus 8pt minus 8pt}
+
+\setlength\abovecaptionskip{25pt}
+\setlength\belowcaptionskip{0pt}
+\setlength\abovedisplayskip{25pt plus 6pt minus 15 pt}
+\setlength\abovedisplayshortskip{0pt plus 6pt}
+\setlength\belowdisplayshortskip{13pt plus 7pt minus 6pt}
+\setlength\belowdisplayskip\abovedisplayskip
+
+\normalsize
+
+%%Florian Rabe's extensions; based on macros by Christoph Lange
+% tikz with some arrorws, colors, and default style
+\usepackage{tikz}
+\usepackage{pgflibraryarrows}
+\definecolor{light-yellow}{rgb}{1,1,0.8} 
+\definecolor{dark-blue}{rgb}{0.1,0,0.7}
+\tikzstyle{every picture}=[scale=3,line width=3]
+\tikzstyle{default}=[very thick,font=\sffamily,>=triangle 60]
+% font and other styles
+\def\defaulttextfont{\Large}
+\setlength{\columnsep}{1.9cm}
+\setlength{\columnseprule}{1pt}
+% boxes for title, abstract etc.
+\newenvironment{authorbox}[1]{\begin{minipage}[c]{#1}\centering\Large\bf}{\end{minipage}}
+\newcommand{\logobox}[2]{\begin{minipage}[c]{#1}\centering\includegraphics[width=\textwidth]{#2}\end{minipage}}
+\newcommand{\yellowbox}[1]{%
+    \renewcommand{\rmdefault}{lmr}%
+    \setlength{\fboxrule}{0.1cm}%
+    \setlength{\fboxsep}{.5cm}%
+    {\begin{center}%
+    \fcolorbox{black}{light-yellow}%
+    {\parbox{0.99\textwidth}%
+    {\vspace{0.5cm} \bf \Large #1
+    \vspace{0.5cm}}}\end{center}}%
+    \renewcommand{\rmdefault}{ptm}}
+\newcommand{\colored}[1]{\textcolor{DarkRed}{#1}}
+%macros for titlepage
+\newcommand{\poster@title}{}
+\renewcommand{\title}[1]{\renewcommand{\poster@title}{#1}}
+\newcommand{\poster@author}{}
+\renewcommand{\author}[1]{\renewcommand{\poster@author}{#1}}
+\newcommand{\poster@institute}{}
+\newcommand{\institute}[1]{\renewcommand{\poster@institute}{#1}}
+\newcommand{\poster@email}{}
+\newcommand{\email}[1]{\renewcommand{\poster@email}{#1}}
+\newcommand{\poster@abstract}{}
+\renewcommand{\abstract}[1]{\renewcommand{\poster@abstract}{#1}}
+\renewcommand{\titlepage}{
+\begin{center}
+  \begin{minipage}[c]{0.15\textwidth}\centering\includegraphics[width=\textwidth]{images/Jacobs_LOGO_RGB}\end{minipage}%
+  \begin{minipage}[c]{0.7\textwidth} 
+    \begin{center}
+      {\veryHuge \bf
+        \begin{tabular}[t]{c}
+          \poster@title
+        \end{tabular}}\\
+      \vspace{1cm}
+      \begin{authorbox}{0.7\textwidth}
+        \poster@author \hspace{1cm} \texttt{<\poster@email>}\\
+        \poster@institute
+      \end{authorbox}
+    \end{center}
+\end{minipage}%
+  % SECOND LOGO
+  \begin{minipage}[c]{0.15\textwidth}\centering\includegraphics[width=.7\textwidth]{images/kwarc}\end{minipage}%
+\end{center}
+\vspace{0.5cm} \yellowbox{\poster@abstract}
+\vspace{0.5cm} \defaulttextfont
+}
+%(re)define beamer macros so that slides can be copied into poster as is
+\renewenvironment{frame}{}{\medskip}
+\newcommand{\frametitle}[1]{\begin{center}\bf #1\end{center}\medskip}
+%%end extensions
+
+\AtBeginDocument{
+\ifanullb
+   \ifportrait\special{papersize=91.51cm,120cm}\else\special{papersize=120cm,91.51cm}\fi
+\else\ifanull
+        \ifportrait\special{papersize=83.96cm,118.82cm}\else\special{papersize=118.82cm,83.96cm}\fi
+     \else\ifaeins
+             \ifportrait\special{papersize=59.4cm,83.96cm}\else\special{papersize=83.96cm,59.4cm}\fi
+          \else\ifazwei
+                  \ifportrait\special{papersize=41.98cm,59.4cm}\else\special{papersize=59.4cm,41.98cm}\fi
+               \else\ifadrei
+                      \ifposterdraft
+                       \ifportrait\special{papersize=29.7cm,41.35cm}\else\special{papersize=41.98cm,29.0cm}\fi
+                      \else
+                       \ifportrait\special{papersize=29.7cm,41.98cm}\else\special{papersize=41.98cm,29.7cm}\fi
+                      \fi
+                    \else\relax
+                    \fi
+               \fi
+          \fi
+     \fi
+\fi
+\pagestyle{empty}
+}
+
+\endinput
+%% 
+%% End of file `a0poster.cls'.
diff --git a/omdoc-semantics/macros/a0size.sty b/omdoc-semantics/macros/a0size.sty
new file mode 100644
index 0000000000000000000000000000000000000000..b3788c017e17431e716c3c71618b2750d2a1dfe9
--- /dev/null
+++ b/omdoc-semantics/macros/a0size.sty
@@ -0,0 +1,252 @@
+%% 
+%% This is file `a0size.sty' (v1.22b) included in the a0poster package
+%% 
+%% Copyright (C) 1997-2004 Gerlinde Kettl and Matthias Weiser
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% � �http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% Problems, bugs and comments to 
+%% tex@kettl.de
+%% 
+ 
+\ProvidesFile{a0size.sty}[2004/01/31 v1.22b a0poster class (GK, MW)]
+
+\DeclareFontShape{OT1}{cmr}{m}{n}
+   {  <5> <6> <7> <8> <9> <10> <12> gen * cmr
+      <10.95> cmr10
+      <14.4>  cmr12
+      <17.28><20.74><24.88>cmr17
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmr17}{}
+
+\DeclareFontShape{OT1}{cmr}{m}{sl}
+    {
+      <5><6><7>cmsl8%
+      <8> <9> gen * cmsl
+      <10><10.95>cmsl10%
+      <12><14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmsl12}{}
+
+\DeclareFontShape{OT1}{cmr}{m}{it}
+    {
+      <5><6><7>cmti7%
+      <8>cmti8%
+      <9>cmti9%
+      <10><10.95>cmti10%
+      <12><14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmti12}{}
+
+\DeclareFontShape{OT1}{cmr}{m}{sc}
+    {
+      <5><6><7><8><9><10><10.95><12>
+      <14.4><17.28><20.74><24.88> 
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmcsc10}{}
+
+\DeclareFontShape{OT1}{cmr}{m}{ui}
+   {
+      <5><6><7><8><9><10><10.95><12>
+      <14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmu10}{}
+      
+\DeclareFontShape{OT1}{cmr}{b}{n}
+     {
+      <5><6><7><8><9><10><10.95><12>
+      <14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmb10}{}
+
+\DeclareFontShape{OT1}{cmr}{bx}{n}
+   {
+      <5> <6> <7> <8> <9> gen * cmbx
+      <10><10.95> cmbx10
+      <12><14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbx12}{}
+       
+\DeclareFontShape{OT1}{cmr}{bx}{sl}
+      {
+      <5> <6> <7> <8> <9>
+      <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbxsl10}{}
+
+\DeclareFontShape{OT1}{cmr}{bx}{it}
+      {
+      <5> <6>  <7>  <8> <9>
+      <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbxti10}{}
+
+\DeclareFontShape{OT1}{cmss}{m}{n}
+     {
+      <5><6><7><8>cmss8
+      <9>cmss9
+      <10><10.95>cmss10
+      <12><14.4>cmss12
+      <17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmss17}{}
+
+\DeclareFontShape{OT1}{cmss}{m}{sl}
+    {
+      <5><6><7><8>cmssi8 <9> cmssi9
+      <10><10.95>cmssi10
+      <12><14.4>cmssi12
+      <17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmssi17}{}
+
+\DeclareFontShape{OT1}{cmss}{sbc}{n}
+     {
+      <5> <6> <7> <8> <9> cmssdc10
+      <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmssdc10}{}
+
+\DeclareFontShape{OT1}{cmss}{bx}{n}
+     {
+      <5> <6> <7> <8> <9> cmssbx10
+      <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmssbx10}{}
+
+\DeclareFontShape{OT1}{cmtt}{m}{n}
+     {
+      <5><6><7><8>cmtt8 <9> cmtt9
+      <10><10.95>cmtt10
+      <12><14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmtt12}{}
+      
+\DeclareFontShape{OT1}{cmtt}{m}{it}
+     {
+      <5> <6> <7> <8> <9>
+      <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmitt10}{}     
+     
+\DeclareFontShape{OT1}{cmtt}{m}{sl}
+     {
+      <5> <6> <7> <8> <9>
+      <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmsltt10}{}
+     
+\DeclareFontShape{OT1}{cmtt}{m}{sc}
+     {
+      <5> <6> <7> <8> <9>
+      <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmtcsc10}{}     
+
+\DeclareFontShape{OML}{cmm}{m}{it}
+    { <5> <6> <7> <8> <9> gen * cmmi
+      <10><10.95>cmmi10
+      <12><14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmmi12}{}
+
+\DeclareFontShape{OML}{cmm}{b}{it}{%
+      <5> <6> <7> <8> <9> gen * cmmib
+      <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmmib10}{}
+
+
+\DeclareFontShape{OMS}{cmsy}{m}{n}{%
+      <5> <6> <7> <8> <9> <10> gen * cmsy
+      <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmsy10}{}
+
+\DeclareFontShape{OMS}{cmsy}{b}{n}{%
+      <5> <6> <7> <8> <9> gen * cmbsy
+      <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbsy10}{}
+
+\DeclareFontShape{OMX}{cmex}{m}{n}{%
+      <-8>sfixed * cmex7
+      <8> cmex8
+      <9> cmex9
+      <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> 
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmex10}{}
+
+\DeclareFontShape{U}{cmr}{m}{n}
+   {  <5> <6> <7> <8> <9> <10> <12> gen * cmr
+      <10.95> cmr10
+      <14.4>  cmr12
+      <17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmr17}{}
+
+\DeclareFontShape{U}{cmr}{m}{sl}
+    {
+      <5><6><7>cmsl8%
+      <8> <9> gen * cmsl
+      <10><10.95>cmsl10%
+      <12><14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmsl12}{}
+
+\DeclareFontShape{U}{cmr}{m}{it}
+    {
+      <5><6><7>cmti7%
+      <8>cmti8%
+      <9>cmti9%
+      <10><10.95>cmti10%
+      <12><14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmti12}{}
+
+\DeclareFontShape{U}{cmr}{m}{sc}
+    {
+      <5><6><7><8><9><10><10.95><12>
+      <14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmcsc10}{}
+
+\DeclareFontShape{U}{cmr}{m}{ui}
+   {
+      <5><6><7><8><9><10><10.95><12>%
+      <14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmu10}{}
+
+\DeclareFontShape{U}{cmr}{b}{n}
+     {
+      <5><6><7><8><9><10><10.95><12>
+      <14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmb10}{}
+
+\DeclareFontShape{U}{cmr}{bx}{n}
+   {
+      <5> <6> <7> <8> <9> gen * cmbx
+      <10><10.95> cmbx10
+      <12><14.4><17.28><20.74><24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbx12}{}
+
+\DeclareFontShape{U}{cmr}{bx}{sl}
+      {
+      <5> <6> <7> <8> <9>
+      <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbxsl10}{}
+
+\DeclareFontShape{U}{cmr}{bx}{it}
+      {
+      <5> <6>  <7>  <8> <9>
+      <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> 
+      <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> cmbxti10}{}
+
+%% Copied from exscale.sty
+%% Copyright (C) 1992-1995 Frank Mittelbach and Rainer Sch\"opf,
+%% all rights reserved.
+
+\DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n}
+\newdimen\big@size
+\addto@hook\every@math@size{\setbox\z@\vbox{\hbox{$($}\kern\z@}%
+   \global\big@size 1.2\ht\z@}
+\def\bBigg@#1#2{%
+   {\hbox{$\left#2\vcenter to#1\big@size{}\right.\n@space$}}}
+\def\big{\bBigg@\@ne}
+\def\Big{\bBigg@{1.5}}
+\def\bigg{\bBigg@\tw@}
+\def\Bigg{\bBigg@{2.5}}
+
+%% End of copy
+
+\DeclareMathSizes{24.88}{24.88}{20.74}{14.4}
+\DeclareMathSizes{29.86}{29.86}{20.74}{14.4}
+\DeclareMathSizes{35.83}{35.83}{24.88}{17.28}
+\DeclareMathSizes{43.00}{43.00}{35.83}{24.88}
+\DeclareMathSizes{51.6}{51.6}{35.83}{24.88}
+\DeclareMathSizes{61.92}{61.92}{43}{29.86}
+\DeclareMathSizes{74.3}{74.3}{51.6}{35.83}
+\DeclareMathSizes{89.16}{89.16}{61.92}{43}
+\DeclareMathSizes{107}{107}{74.3}{51.6}
+
+%% End of a0size.sty 
diff --git a/omdoc-semantics/macros/basics-slides.sty b/omdoc-semantics/macros/basics-slides.sty
new file mode 100644
index 0000000000000000000000000000000000000000..1b218c5650d04a7617af79a7f05daf5ee83be61a
--- /dev/null
+++ b/omdoc-semantics/macros/basics-slides.sty
@@ -0,0 +1,34 @@
+\setbeamercolor{block title}{bg=blue!30}
+\setbeamercolor{block body}{bg=blue!10}
+\setbeamertemplate{blocks}[rounded]
+\setbeamercolor{title}{bg=blue!20}
+
+
+% customize header and footer
+%\setbeamertemplate{headline}{}
+%\setbeamertemplate{headline}{\begin{beamercolorbox}{title}\scriptsize\insertnavigation{\textwidth}\end{beamercolorbox}}
+\setbeamercolor{headline}{bg=blue!10,fg=black}
+\setbeamertemplate{headline}{\begin{beamercolorbox}{headline}\small\hfill\insertsection \hfill\insertframenumber\end{beamercolorbox}}
+\setbeamertemplate{footline}{}
+\setbeamertemplate{navigation symbols}{}
+
+\newenvironment{blockitems}[1]{\begin{block}{#1}\begin{itemize}\small}{\end{itemize}\end{block}}
+\newenvironment{blockenum}[1]{\begin{block}{#1}\begin{enumerate}\small}{\end{enumerate}\end{block}}
+
+% line end comment
+\newcommand{\lec}[2][blue]{\strut\hfil\strut\null\nobreak\hfill\hbox{{\color{#1}#2}}\par}
+\newcommand{\glec}[1]{\strut\hfil\strut\null\nobreak\hfill\hbox{{\color{gray}#1}}\par}
+
+% make slides appear in toc
+\let\basics@beamer@frametitle\frametitle
+\renewcommand{\frametitle}[1]{\basics@beamer@frametitle{#1}\subsection{#1}}
+
+\newcommand{\highlight}[2]{{\color{#1}#2}}
+\newcommand{\hlA}[1]{\highlight{red}{#1}}
+\newcommand{\hlB}[1]{\highlight{purple}{#1}}
+\definecolor{olive}{rgb}{0,0.4,0}
+\newcommand{\hlC}[1]{\highlight{olive}{#1}}
+\newcommand{\hlD}[1]{\highlight{gray}{#1}}
+\newcommand{\hlE}[1]{\highlight{blue}{#1}}
+
+\renewcommand{\mmt}{MMT}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/basics.sty b/omdoc-semantics/macros/basics.sty
new file mode 100644
index 0000000000000000000000000000000000000000..ce997f8eed67fcd07bbe49c2d66cac5a6fafea20
--- /dev/null
+++ b/omdoc-semantics/macros/basics.sty
@@ -0,0 +1,167 @@
+\newcommand{\tb}{\hspace*{.5cm}}
+\newcommand{\tbiff}{\tb\miff\tb}
+\newcommand{\tbimpl}{\tb\impl\tb}
+\newcommand{\mpag}[2]{\begin{minipage}{#1}#2\end{minipage}}
+\newcommand{\mpage}[1]{\begin{minipage}{\textwidth}#1\end{minipage}}
+
+% shortcut for centered tabular
+\newenvironment{ctabular}[1]{\begin{center}\begin{tabular}{#1}}{\end{tabular}\end{center}}
+
+\newenvironment{tabularfigure}[3]
+ {\def\@mycaption{#2}\def\@mylabel{#3}\begin{figure}[htb]\centering\begin{tabular}{#1}}
+ {\end{tabular}\caption{\@mycaption}\label{\@mylabel}\end{figure}}
+
+%change figure/table placement
+% General parameters, for ALL pages:
+%\renewcommand{\topfraction}{0.9}	% max fraction of floats at top
+%\renewcommand{\bottomfraction}{0.8}	% max fraction of floats at bottom
+%Parameters for TEXT pages (not float pages):
+\setcounter{topnumber}{2}
+%\setcounter{bottomnumber}{2}
+%\setcounter{totalnumber}{4}     % 2 may work better
+%\setcounter{dbltopnumber}{2}    % for 2-column pages
+%\renewcommand{\dbltopfraction}{0.9}	% fit big float above 2-col. text
+%\renewcommand{\textfraction}{0.07}	% allow minimal text w. figs
+%Parameters for FLOAT pages (not text pages):
+%\renewcommand{\floatpagefraction}{0.7} % N.B.: floatpagefraction MUST be less than topfraction !!
+%\renewcommand{\dblfloatpagefraction}{0.7}
+% remember to use [htp] or [htpb] for placement
+
+% ifnonempty{a}{b} = if (a == empty) empty else b
+\newcommand{\ifnonempty}[3][]{\def\@empty{}\def\@test{#2}\ifx\@test\@empty#1\else#3\fi}
+% fold{a}{b1,...,bn} = b1 a ... a bn
+\newcommand{\fold}[2]{\let\@tmpop=\relax\@for\@I:=#2\do{\@tmpop\@I\let\@tmpop=#1}}
+
+\renewcommand{\epsilon}{\varepsilon}
+\renewcommand{\phi}{\varphi}
+\renewcommand{\theta}{\vartheta}
+\newcommand{\N}{\mathbb{N}}
+\newcommand{\n}{\mathbb{N}^*}
+\newcommand{\R}{\mathbb{R}}
+\newcommand{\Q}{\mathbb{Q}}
+\newcommand{\Z}{\mathbb{Z}}
+\newcommand{\C}{\mathbb{C}}
+\newcommand{\app}{\approx}
+\newcommand{\sq}{\subseteq}
+\newcommand{\impl}{\Rightarrow}
+\newcommand{\Arr}{\Rightarrow}
+\newcommand{\Darr}{\Leftrightarrow}
+\newcommand{\arr}{\rightarrow}
+\newcommand{\larr}{\leftarrow}
+\newcommand{\darr}{\leftrightarrow}
+\newcommand{\harr}{\hookrightarrow}
+\newcommand{\marr}{\mapsto}
+\newcommand{\caret}{\hat{\;}}
+\newcommand{\nin}{\not\in}
+\newcommand{\sm}{\setminus}
+\newcommand{\es}{\varnothing}
+\newcommand{\pwr}{\mathcal{P}}
+\newcommand{\rewrites}{\rightsquigarrow}
+
+%semantics of genfrac: #1, #2 delimiters; #3 line tickness; #4 scriptsize (0-3); #5, #6 items
+\newcommand{\myatop}[3][]{\genfrac{}{}{0pt}{#1}{#2}{#3}} %two items on top of each other, optional argument: 0-3 for normal-small script
+\newcommand{\myatopp}[3]{\myatop{\myatop[0]{#1}{#2}}{#3}} %three items on top of each other
+\newcommand{\myatoppp}[4]{\myatop{\myatop[0]{\myatop[0]{#1}{#2}}{#3}}{#4}} %four items on top of each other
+\newcommand{\ov}[1]{\overline{#1}}
+\newcommand{\und}[1]{\underline{#1}}
+\newcommand{\cas}[1]{\begin{cases}#1\end{cases}}
+\newcommand{\bcas}[1]{\left.\cas{#1}\right\}}
+\newcommand{\mifc}{&\mathrm{if}\;}
+\newcommand{\mothw}{&\mathrm{otherwise}}
+\newcommand{\mathll}[2][l]{\providecommand{\nl}[1][.2cm]{\\[##1]}\begin{array}{#1}#2\end{array}}
+\newcommand{\eqns}[2][=]{\providecommand{\nl}[1][.2cm]{\\[##1]}\begin{array}{l@{\;#1\;}l@{\tb}l}#2\end{array}}
+\newcommand{\Ceq}[1]{\;\stackrel{#1}{=}\;}
+\newcommand{\op}[1]{\mathit{#1}}
+\newenvironment{myeqnarray}[1][=] %\nl for new line right of the = symbol
+ {\newcommand{\nl}{\\\multicolumn{1}{c}{}&}\begin{equation*}\begin{array}{l@{\;#1\;}l@{\tb}l}}
+ {\end{array}\end{equation*}}
+\newcommand{\rul}[3][]{\frac{#2}{#3}#1}
+% column vector \vect{a\\b\\c}
+\newcommand{\vect}[1]{\left(\begin{array}{c}#1\end{array}\right)}
+
+% code for defining LFS-style flexary commands: \curriedvec{3}{a}{b}{c}
+%\newcount\foldindex
+%\newcommand{\curriedvec}[1]{\left(\array{c}\global\foldindex#1\curriedvec@next}
+%\newcommand{\curriedvec@next}[1]{#1\global\advance\foldindex-1\ifnum\foldindex>1\\\expandafter\curriedvec@next\else\endarray\right)\fi}
+
+%Mathematical Text
+\newcommand{\mof}{\;\mathrm{of}\;}
+\newcommand{\mif}{\;\mathrm{if}\;}
+\newcommand{\mthen}{\;\mathrm{then}\;}
+\newcommand{\mfor}{\;\mathrm{for}\;}
+\newcommand{\mand}{\;\mathrm{and}\;}
+\newcommand{\msome}{\;\mathrm{some}\;}
+\newcommand{\mall}{\;\mathrm{all}\;}
+\newcommand{\mforall}{\;\mathrm{for}\;\mathrm{all}\;}
+\newcommand{\mforsome}{\;\mathrm{for}\;\mathrm{some}\;}
+\newcommand{\mnot}{\;\mathrm{not}\;}
+\newcommand{\mno}{\;\mathrm{no}\;}
+\newcommand{\mor}{\;\mathrm{or}\;}
+\newcommand{\minn}{\;\mathrm{in}\;}
+\newcommand{\mwith}{\;\mathrm{with}\;}
+\newcommand{\mwhere}{\;\mathrm{where}\;}
+\newcommand{\mexists}{\;\mathrm{exists}\;}
+\newcommand{\miff}{\;\mathrm{iff}\;}
+\newcommand{\mimplies}{\;\mathrm{implies}\;}
+\newcommand{\msuchthat}{\;\mathrm{such}\;\mathrm{that}\;}
+\newcommand{\motherwise}{\;\mathrm{otherwise}\;}
+\newcommand{\mtext}[1]{\;\mathrm{#1}\;}
+
+%categories, general
+\newcommand{\id}[1]{\op{id}_{#1}}
+\newcommand{\�}[2]{{#2}\circ {#1}}
+\newcommand{\oo}[3]{{#3}\circ {#2}\circ {#1}}
+\newcommand{\ooo}[4]{{#4}\circ {#3}\circ {#2}\circ {#1}}
+\newcommand{\obj}[1]{|#1|}
+\newcommand{\sli}[2]{#1\backslash #2}
+\newcommand{\slii}[2]{#1/#2}
+\newcommand{\catop}[1]{{{#1}^{op}}}
+
+\newcommand{\catfont}[1]{\mathcal{#1}}
+\newcommand{\Set}{\catfont{SET}}
+\newcommand{\Cat}{\catfont{CAT}}
+\newcommand{\Poset}{\catfont{POSET}}
+\newcommand{\Rel}{\catfont{REL}}
+\newcommand{\Class}{\catfont{CLASS}}
+\newcommand{\Ins}{\catfont{INS}}
+\newcommand{\Logics}{\catfont{LOG}}
+
+%for tikz
+\newcommand{\arrowtip}{angle 45}
+\newcommand{\arrowtipepi}{triangle 45}
+\newcommand{\arrowtipmono}{right hook}
+\newcommand{\refledge}[2]{(#1) .. controls +(-.5,.75) and +(.5,.75) .. node[above]{#2} (#1)} % reflexive edge
+
+%institutions
+\newcommand{\I}{\mathbb{I}}
+\newcommand{\insfont}[1]{\mathbf{#1}}
+\newcommand{\Sig}[1][]{{\insfont{Sig}^{#1}}}
+\newcommand{\Con}[1][]{{\insfont{Con}^{#1}}}
+\newcommand{\Sen}[1][]{{\insfont{Sen}^{#1}}}
+\newcommand{\Mod}[1][]{{\insfont{Mod}^{#1}}}
+\newcommand{\Pf}[1][]{{\insfont{Pf}\,^{#1}}}
+\newcommand{\Th}[1][]{{\insfont{Th}^{#1}}}
+\newcommand{\Syn}[1][]{{\insfont{Syn}^{#1}}}
+\newcommand{\Jud}[1][]{{\insfont{Jud}^{#1}}}
+
+\newcommand{\der}{\vdash}
+\newcommand{\dera}[4][]{#2\der^{#1}_{#3}#4}
+\newcommand{\moda}[4][]{#2\models^{#1}_{#3}#4}
+\newcommand{\nmoda}[4][]{#2\not\models^{#1}_{#3}#4}
+
+% CFGs
+\newenvironment{grammar}{\[\begin{array}{l@{\tb\bbc\tb}l@{\tb}l}}{\end{array}\]}
+\newcommand{\bnf}[1]{#1}
+\newcommand{\bbc}{\bnf{::=}}
+\newcommand{\bnfalt}{\ensuremath{\;\bnf{|}\;}}
+\providecommand{\alt}{\ensuremath{\;\bnf{|}\;}} % already used by beamer
+\newcommand{\opt}[1]{\bnf{[}#1\bnf{]}}
+\newcommand{\bnfbracket}[1]{\bnf{(}#1\bnf{)}}
+\newcommand{\rep}[1]{#1^{\bnf{\ast}}}
+
+\RequirePackage{xspace}
+\newcommand{\mmt}{\texorpdfstring{{\normalfont\scshape{Mmt}}\xspace}{MMT\ }}
+\newcommand{\omdoc}{{\scshape{OMDoc}}\xspace}
+\newcommand{\mathml}{{\scshape{MathML}}\xspace}
+\newcommand{\openmath}{{\scshape{OpenMath}}\xspace}
+
diff --git a/omdoc-semantics/macros/bib/Morphisms.bib b/omdoc-semantics/macros/bib/Morphisms.bib
new file mode 100644
index 0000000000000000000000000000000000000000..424bbfcafd5fce1729e8cdca314a118726a61545
--- /dev/null
+++ b/omdoc-semantics/macros/bib/Morphisms.bib
@@ -0,0 +1,635 @@
+@Article{Alagi02,
+  author =	 {Suad Alagi},
+  title =	 {Institutions: integrating objects, {XML} and
+                  databases},
+  journal =	 {Information and Software Technology},
+  year =	 {2002},
+  Volume =	 44,
+  Pages =	 {207-216},
+  Abstract =	 {A general model theory based on institutions is
+                  proposed as a formal framework for investigating
+                  typed object-oriented, XML and other data models
+                  equipped with integrity constraints. A major
+                  challenge in developing such a unified model theory
+                  is in the requirement that it must be able to handle
+                  major structural differences between the targeted
+                  models as well as the significant differences in the
+                  logic bases of their associated constraint
+                  languages. A distinctive feature of this model
+                  theory is that it is transformation-oriented. It is
+                  based on structural transformations within a
+                  particular category of models or across different
+                  categories with a fundamental requirement that the
+                  associated constraints are managed in such a way
+                  that the database integrity is preserved. },
+  keywords =	 {ModelTheory Morphisms},
+}
+
+
+
+@incollection{ArraisFiadeiro96,
+  author =	 {M. Arrais and J. L. Fiadeiro},
+  title =	 {Unifying theories in different institutions},
+  PAGES =	 {81--101},
+  BOOKTITLE =	 {Recent Trends in Data Type Specifications. 11th
+                  Workshop on Specification of Abstract Data Types},
+  EDITOR =	 {M. Haveraaen and O. Owe and O.-J. Dahl},
+  Publisher =	 {Springer Verlag},
+  SERIES =	 {Lecture Notes in Computer Science},
+  VOLUME =	 {1130},
+  year =	 1996,
+  keywords =	 {Morphisms},
+}
+xxx
+
+
+
+@INCOLLECTION{AstesianoCerioli92,
+  AUTHOR =	 "E. Astesiano and M. Cerioli",
+  TITLE =	 "Relationships between Logical Frameworks",
+  BOOKTITLE =	 "Proc. 8th ADT workshop",
+  EDITOR =	 {M. Bidoit and C. Choppy},
+  SERIES =	 "Lecture Notes in Computer Science",
+  VOLUME =	 655,
+  PAGES =	 {126--143},
+  PUBLISHER =	 {Springer Verlag},
+  keywords =	 {Logics Morphisms},
+  YEAR =	 1992
+}
+xx
+
+
+@incollection{Borzyszkowski99,
+  author =	 {T. Borzyszkowski},
+  title =	 {Moving specification structures between logical
+                  systems},
+  series =	 "Lecture Notes in Computer Science",
+  editor =	 "J. L. Fiadeiro",
+  booktitle =	 {Recent Trends in Algebraic Development Techniques,
+                  13th International Workshop, WADT'98, Lisbon,
+                  Portugal, April 1998, Selected Papers},
+  publisher =	 "Springer",
+  pages =	 {16--30},
+  volume =	 {1589},
+  year =	 "1999",
+  keywords =	 {Morphisms ProofTheory},
+}
+
+
+
+@PHDTHESIS{Cerioli93,
+  AUTHOR =	 {M. Cerioli},
+  TITLE =	 {Relationships between Logical Formalisms},
+  SCHOOL =	 {TD-4/93, Universit\`a di Pisa-Genova-Udine},
+  YEAR =	 1993,
+  keywords =	 {Logics Morphisms},
+}
+
+
+
+@inproceedings{CerioliMeseguer93,
+  author =	 "M. Cerioli and J. Meseguer",
+  title =	 "{May I Borrow Your Logic?}",
+  year =	 1993,
+  volume =	 "711",
+  series =	 "Lecture Notes in Computer Science",
+  publisher =	 "Springer Verlag, Berlin",
+  Editor =	 {A. Borzyszkowski and S. Sokolowski},
+  booktitle =	 "Mathematical Foundations of Computer Science",
+  pages =	 "342--351",
+  keywords =	 {Morphisms},
+}
+
+
+
+@Article{CerioliMeseguer97,
+  Author =	 {Cerioli, M. and Meseguer, J.},
+  Title =	 {May {I} Borrow Your Logic? (Transporting Logical
+                  Structures along Maps)},
+  Journal =	 "Theoretical Computer Science",
+  volume =	 173,
+  pages =	 {311--347},
+  Year =	 1997,
+  keywords =	 {Morphisms},
+}
+
+
+@techreport{DimitrakosBicarreguiMaibaum99,
+  author =	 "Theodosis Dimitrakos and Juan Bicarregui and
+                  T.S.E. Maibaum",
+  title =	 "Integrating Heterogeneous Formalisms: Framework and
+                  Application",
+  note =	 {Technical Report, Rutherford Appleton Laboratory},
+  year =	 1999,
+  keywords =	 {Morphisms},
+  url =		 "citeseer.nj.nec.com/413478.html"
+}
+
+
+
+@unpublished{GoguenRosu01,
+  author =	 {J. Goguen and G. Rosu},
+  title =	 {Institution morphisms},
+  note =	 {Formal aspects of computing, to appear},
+   volume = {13},
+   year = {2002},
+   pages = {274-307},
+  keywords =	 {Morphisms},
+}
+
+
+@article{HarperSannellaTarlecki94,
+  author =	 {Robert Harper and Donald Sannella and Andrzej
+                  Tarlecki},
+  title =	 {Structured Presentations and Logic Representations},
+  journal =	 {Annals of Pure and Applied Logic},
+  volume =	 67,
+  pages =	 {113--160},
+  year =	 1994,
+  url =		 {ftp://ftp.dcs.ed.ac.uk/pub/dts/apal.ps},
+  postscript =	 {apal.ps},
+  abstract =	 {The purpose of a logical framework such as LF is to
+                  provide a language for defining logical systems
+                  suitable for use in a logic-independent proof
+                  development environment. All inferential activity in
+                  an object logic (in particular, proof search) is to
+                  be conducted in the logical framework via the
+                  representation of that logic in the framework. An
+                  important tool for controlling search in an object
+                  logic, the need for which is motivated by the
+                  difficulty of reasoning about large and complex
+                  systems, is the use of structured theory
+                  presentations. In this paper a rudimentary language
+                  of structured theory presentations is presented, and
+                  the use of this structure in proof search for an
+                  arbitrary object logic is explored. The behaviour of
+                  structured theory presentations under representation
+                  in a logical framework is studied, focusing on the
+                  problem of ``lifting'' presentations from the object
+                  logic to the metalogic of the framework. The topic
+                  of imposing structure on logic presentations, so
+                  that logical systems may themselves be defined in a
+                  modular fashion, is also briefly considered.},
+  comment =	 {Reviewed in MR~95i:03024; this is the extended final
+                  version of
+                  SannellaDT:structure-representation89/89a},
+  keywords =	 {Morphisms},
+}
+
+
+
+@ARTICLE{KreowskiMossakowski95,
+  TITLE =	 {Equivalence and Difference of Institutions:
+                  Simulating Horn Clause Logic With Based Algebras},
+  AUTHOR =	 {H.-J. Kreowski and T. Mossakowski},
+  JOURNAL =	 { Mathematical Structures in Computer Science},
+  VOLUME =	 {5},
+  YEAR =	 1995,
+  pages =	 {189--215},
+  keywords =	 {Morphisms},
+}
+
+
+
+@INCOLLECTION{MartiOlietMeseguer95,
+  AUTHOR =	 {N. Mart\'{\i}-Oliet and J. Meseguer},
+  TITLE =	 {From Abstract Data Types to Logical Frameworks},
+  YEAR =	 1995,
+  keywords =	 {Metaformalisms Morphisms},
+  editor =	 {Egidio Astesiano and Gianna Reggio and Andrzej
+                  Tarlecki},
+  title =	 {Recent Trends in Data Type Specification, 10th
+                  Workshop on Specification of Abstract Data Types
+                  Joint with the 5th COMPASS Workshop, S. Margherita,
+                  Italy, May 30 - June 3, 1994, Selected Papers},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 906,
+  publisher =	 {Springer},
+  pages =	 {48--80},
+}
+
+
+
+@Article{MartiniWolter98,
+  author =	 "A. Martini and U. Wolter",
+  title =	 "A systematic study of mappings between institutions",
+  journal =	 "Lecture Notes in Computer Science",
+  volume =	 "1376",
+  pages =	 "300--315",
+  year =	 "1998",
+  coden =	 "LNCSD9",
+  ISSN =	 "0302-9743",
+  bibdate =	 "Sat Oct 10 14:40:24 MDT 1998",
+  acknowledgement =ack-nhfb,
+  keywords =	 {Morphisms},
+}
+
+
+
+@Article{MartiniWolter99,
+  author =	 "Alfio Martini and Uwe Wolter",
+  title =	 "A Single Perspective on Arrows between Institutions",
+  journal =	 "Lecture Notes in Computer Science",
+  volume =	 "1548",
+  pages =	 "486--501",
+  year =	 "1999",
+  coden =	 "LNCSD9",
+  ISSN =	 "0302-9743",
+  bibdate =	 "Tue Feb 5 11:53:33 MST 2002",
+  url =
+                  "http://link.springer-ny.com/link/service/series/0558/bibs/1548/15480486.htm; http://link.springer-ny.com/link/service/series/0558/papers/1548/15480486.pdf",
+  acknowledgement =ack-nhfb,
+  keywords =	 {Morphisms},
+}
+
+
+
+@INCOLLECTION{Meseguer89,
+  AUTHOR =	 "J. Meseguer",
+  TITLE =	 "General Logics",
+  BOOKTITLE =	 "Logic Colloquium 87",
+  PAGES =	 {275--329},
+  PUBLISHER =	 "North Holland",
+  YEAR =	 1989,
+  keywords =	 {Metaformalisms Morphisms},
+}
+
+
+
+@article{Meseguer92,
+  AUTHOR =	 {J.~Meseguer},
+  TITLE =	 {Conditional Rewriting as a Unified Model of
+                  Concurrency},
+  JOURNAL =	 {Theoretical Computer Science},
+  VOLUME =	 {96},
+  NUMBER =	 {1},
+  PAGES =	 {73--156},
+  YEAR =	 {1992},
+  keywords =	 {Logics Morphisms},
+}
+
+
+@incollection{Meseguer98,
+  author =	 {J. Meseguer},
+  title =	 {Membership Algebra as a Logical Framework for
+                  Equational Specification},
+  booktitle =	 {Recent trends in algebraic development
+                  techniques. Proc.\ 12th International Workshop},
+  editor =	 {F. {Parisi Presicce}},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 {1376},
+  pages =	 {18--61},
+  publisher =	 {Springer},
+  year =	 {1998},
+  keywords =	 {Morphisms},
+}
+
+
+@article{Mossakowski02,
+  author =	 {Till Mossakowski},
+  title =	 {Relating {\CASL} with Other Specification Languages:
+                  the Institution Level},
+  year =	 2002,
+volume = {286},
+pages = {367--475},
+  journal =	 {Theoretical Computer Science},
+  keywords =	 {Morphisms},
+}
+
+
+
+@INCOLLECTION{Mossakowski95,
+  AUTHOR =	 "T. Mossakowski",
+  TITLE =	 {Equivalences among various logical frameworks of
+                  partial algebras},
+  BOOKTITLE =	 {Computer Science Logic. 9th Workshop,
+                  CSL'95. Paderborn, Germany, September 1995, Selected
+                  Papers},
+  EDITOR =	 {H. Kleine B\"uning},
+  SERIES =	 {Lecture Notes in Computer Science},
+  VOLUME =	 1092,
+  PUBLISHER =	 {Springer Verlag},
+  PAGES =	 {403--433},
+  YEAR =	 1996,
+  keywords =	 {Morphisms},
+}
+
+
+
+@INCOLLECTION{Mossakowski96b,
+  AUTHOR =	 "T. Mossakowski",
+  TITLE =	 {Different Types of Arrow Between Logical Frameworks},
+  BOOKTITLE =	 {Proc. ICALP 96},
+  editor =	 {F. Meyer auf der Heide and B. Monien},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 1099,
+  Publisher =	 {Springer Verlag},
+  pages =	 {158--169},
+  year =	 1996,
+  keywords =	 {Morphisms},
+}
+
+
+
+@phdthesis{Mossakowski96c,
+  AUTHOR =	 "T. Mossakowski",
+  title =	 {Representations, hierarchies and graphs of
+                  institutions},
+  school =	 {Bremen University},
+  note =	 {Revised version: Logos Verlag, 2001},
+  year =	 1996,
+  keywords =	 {Logics Morphisms},
+}
+
+
+
+@INCOLLECTION{Mossakowski99,
+  author =	 "T. Mossakowski",
+  title =	 "Translating {OBJ3} to {\CASL}: the institution
+                  level",
+  series =	 "Lecture Notes in Computer Science",
+  editor =	 "J. L. Fiadeiro",
+  booktitle =	 {Recent Trends in Algebraic Development Techniques,
+                  13th International Workshop, WADT'98, Lisbon,
+                  Portugal, April 1998, Selected Papers},
+  volume =	 {1589},
+  pages =	 {198--214},
+  publisher =	 "Springer-Verlag",
+  year =	 "1999",
+  keywords =	 {Morphisms},
+}
+
+
+
+@INCOLLECTION{SalibraScollo92,
+  AUTHOR =	 "A. Salibra and G. Scollo",
+  TITLE =	 "A soft stairway to institutions",
+  BOOKTITLE =	 "Proc. 8th ADT workshop",
+  EDITOR =	 {M. Bidoit and C. Choppy},
+  SERIES =	 "Lecture Notes in Computer Science",
+  VOLUME =	 655,
+  PAGES =	 {310--329},
+  PUBLISHER =	 {Springer Verlag},
+  YEAR =	 1992,
+  keywords =	 {Metaformalisms Morphisms},
+}
+xxxx
+
+
+@InCollection{SalibraScollo93b,
+  author =	 {A. Salibra and G. Scollo},
+  title =	 {Compactness and L{\"o}wenheim-Skolem properties in
+                  pre-institution categories},
+  booktitle =	 {Algebraic Methods in Logic and in Computer Science},
+  keywords =	 {Morphisms Metatheorems},
+  pages =	 {67--94},
+  year =	 {1993},
+  editor =	 {C.Rauszer},
+  volume =	 {28},
+  series =	 {Banach Center Publications},
+}
+
+
+
+@Article{SalibraScollo96,
+  title =	 "Interpolation and compactness in categories of
+                  pre-institutions",
+  author =	 "Antonino Salibra and Giuseppe Scollo",
+  pages =	 "261--286",
+  journal =	 "Mathematical Structures in Computer Science",
+  month =	 jun,
+  year =	 "1996",
+  volume =	 "6",
+  number =	 "3",
+  references =	 "\cite{JACM::GoguenB1992} \cite{TCS::MancaSS1990}
+                  \cite{IC::SannellaT1988} \cite{TCS::Tarlecki1985}",
+  keywords =	 {Morphisms Metatheorems},
+}
+
+
+
+@inbook{SannellaTarlecki-ch10,
+  Author =	 {D. Sannella and A. Tarlecki},
+  Title =	 {Working with multiple logical systems, In:
+                  Foundations of Algebraic Specifications and Formal
+                  Program Development},
+  publisher =	 {Cambridge University Press, to appear},
+  note =	 {See
+                  \verb|http://zls.mimuw.edu.pl/~tarlecki/book/index.html|},
+  chapter =	 10,
+  keywords =	 {Morphisms},
+}
+
+
+
+@phdthesis{Scollo93,
+  author =	 {G. Scollo},
+  title =	 {On the engineering of logics},
+  year =	 {1993},
+  note =	 {University of Twente, Enschede},
+  keywords =	 {Metaformalisms Morphisms},
+}
+
+
+
+@UNPUBLISHED{Tarlecki87,
+  AUTHOR =	 {A. Tarlecki},
+  TITLE =	 {Institution representation},
+  NOTE =	 {draft note},
+  YEAR =	 1987,
+  keywords =	 {Morphisms},
+}
+
+
+
+@incollection{Tarlecki96a,
+  Author =	 {A. Tarlecki},
+  Title =	 {Moving between logical systems},
+  BOOKTITLE =	 {Recent Trends in Data Type Specifications. 11th
+                  Workshop on Specification of Abstract Data Types},
+  EDITOR =	 {M. Haveraaen and O. Owe and O.-J. Dahl},
+  Publisher =	 {Springer Verlag},
+  SERIES =	 {Lecture Notes in Computer Science},
+  VOLUME =	 {1130},
+  PAGES =	 {478--502},
+  year =	 1996,
+  keywords =	 {Morphisms Combination},
+}
+
+
+@misc{Tarlecki97,
+  author =	 "Andrzej Tarlecki",
+  title =	 "Limits and colimits in some categories of
+                  institutions",
+  keywords =	 {Metatheorems Morphisms Combination},
+  abstract =	 {This paper presents a number of concepts of a
+                  mapping between logical systems modelled as
+                  institutions, discusses their mutual merits and
+                  demerits, and sketches their role in the process of
+                  system specification and development. Some simple
+                  properties of the resulting categories of
+                  institutions are given. 1 Introduction We have to
+                  live with a multitude of logical systems used in
+                  various approaches to software specification and
+                  development. The proliferation of logical systems in
+                  the area is not just researchers' fancy, but results
+                  from the very practical needs to capture various
+                  aspects of software systems and to cater for various
+                  programming paradigms. Each of them leads to a
+                  different... },
+  url =		 "citeseer.nj.nec.com/tarlecki97limit.html",
+}
+
+
+
+@InCollection{WolterEtal95,
+  key =		 "Wolter, {\em et al.}",
+  author =	 "U. Wolter and K. Didrich and F. Cornelius and
+                  M. Klar and R. Wess{\"a}ly and H. Ehrig",
+  title =	 "How to cope with the Spectrum of {\sc Spectrum}",
+  pages =	 "173--189",
+  annote =	 "17 references.",
+  editor =	 "Manfred Broy and Stefan J{\"a}hnichen",
+  booktitle =	 "{KORSO}: Methods, Languages and Tools for the
+                  Construction of Correct Software",
+  publisher =	 "Springer-Verlag",
+  address =	 "New York, NY",
+  series =	 "Lecture Notes in Computer Science",
+  volume =	 "1009",
+  year =	 "1995",
+  keywords =	 {Logics Morphisms},
+  abstract =	 {The specification language SPECTRUM [BFG+ 93] melts
+                  a wide range of concepts into a single language
+                  frame: three-valued first-order logic, polymorphism,
+                  type classes, higher-order functions, infinite
+                  objects. The desire of identifying and relating
+                  sub-languages satisfying certain constraints given
+                  by syntactical and pragmatic considerations
+                  appears. In this paper we consider the constructive
+                  oriented algebraic sub-language ACT ONE as an
+                  example of a specification sub-language of
+                  SPECTRUM. As a candidate for an implementation
+                  language of SPECTRUM we focus on the functional
+                  language OPAL. The overall intention is to establish
+                  a semantically compatible embedding of ACT ONE and
+                  OPAL into SPECTRUM. However, in this paper we will
+                  not describe all aspects of this embedding. As a
+                  first step of our ongoing work we will relate the
+                  underlying logical systems using the concept of
+                  institutions, i.e. we will relate the loose
+                  semantics of ACT ONE and OPAL specifications with
+                  the loose semantics of SPECTRUM specifications. A
+                  general framework for modelling the interconnections
+                  of different logical systems under development at
+                  the TU Berlin will be sketched. },
+}
+
+
+
+@InProceedings{Scollo02,
+  author =	 "G. Scollo",
+  title =	 "Graph colouring institutions (Extended Abstract)",
+  editor =	 "M. Wirsing and D. Pattinson and R. Hennicker",
+  booktitle =	 "WADT 2002, 16th International Workshop on Algebraic
+                  Development Techniques", 
+  location =	 "Frauenchiemsee, Germany",
+  month =	 sep,
+  year =	 "2002",
+  pages =	 "21--22",
+  howpublished = "Technical Report 0207, Institut f{\"u}r Informatik,
+                  LMU M{\"u}nchen",
+  note =	 "This paper proposes an institution design problem, which is
+                  solved in \cite{Scollo03a}, as well the problem of designing
+                  an isomorphism between the subject institutions, that is
+                  solved in \cite{Scollo03b}. ", 
+  keywords =	 {Logics Morphisms},
+  abstract =	 {Maximal planar graphs with vertex resp.\ edge colouring
+                  are naturally casted as (deceiptively similar) institutions.
+                  One then tries to embody Tait's equivalence algorithms into
+                  morphisms between them, and is lead to a partial redesign
+                  of those institutions. This paper aims at elucidating the
+                  pragmatic questions which arise in this case study. }, 
+}
+
+
+
+@InProceedings{Scollo03a,
+  author =	 "G. Scollo",
+  title =	 "Graph colouring institutions",
+  editor =	 "R. Berghammer and B. M{\"o}ller",
+  booktitle =	 "7th Seminar RelMiCS and 2nd Workshop Kleene Algebra",
+  location =	 "Bad Malente, Germany",
+  month =	 may,
+  year =	 "2003",
+  pages =	 "288--297",
+  howpublished = "Christian-Albrechts-Universit{\"a}t zu Kiel",
+  ps  =		 "http://www.informatik.uni-kiel.de/~relmics7/submitted/Scollo/GCI03.ps",
+  pdf =		 "http://www.informatik.uni-kiel.de/~relmics7/submitted/Scollo/GCI03.pdf",
+  note =	 "This paper solves the institution design problem proposed
+                  in \cite{Scollo02}, but leaves open the isomorphism design
+                  problem, which is solved in \cite{Scollo03b}. ",
+  keywords =	 {Logics Morphisms},
+  abstract =	 {Maximal planar graphs with vertex resp.\ edge colouring
+                  are naturally casted as (deceiptively similar) institutions.
+                  One then tries to embody Tait's equivalence algorithms into
+                  morphisms between them, and is lead to a partial redesign
+                  of those institutions. This paper aims at introducing a few
+                  pragmatic questions which arise in this case study, which
+                  also showcases the use of relational concepts and notations
+                  in the design of the subject institutions. },
+}
+
+
+
+@misc{Scollo03b,
+  author =	 "G. Scollo",
+  title =	 "An institution isomorphism for planar graph colouring",
+  institution =	 "Universit\`{a} di Verona, Dip.\ Informatica",
+  type =	 "Draft",
+  year =	 "2003",
+  month =	 jun,
+  note =	 "Submitted for publication. This paper is a revised and
+                  extended version of \cite{Scollo03a}, and contains a
+                  concise outline of a solution to the isomorphism design
+                  problem proposed there. The detailed solution is available
+                  in \cite{Scollo03c}. ", 
+  keywords =	 {Logics Morphisms},
+  abstract =	 {Maximal planar graphs with vertex resp.\ edge colouring
+                  are naturally casted as (deceiptively similar) institutions.
+                  One then tries to embody Tait's equivalence algorithms into
+                  morphisms between them, and is lead to a partial redesign
+                  of those institutions. This paper aims at introducing a few
+                  pragmatic questions which arise in this case study, which
+                  also showcases the use of relational concepts and notations
+                  in the design of the subject institutions, and gives an
+                  outline of a solution to the problem of designing an
+                  isomorphism between them. },
+}
+
+
+
+@TechReport{Scollo03c,
+  author =	 "G. Scollo",
+  title =	 "Morphism-driven design of graph colouring institutions",
+  institution =	 "Universit\`{a} di Verona, Dip.\ Informatica",
+  type =	 "Research Report",
+  number =	 "DI RR 03/2003",
+  year =	 "2003",
+  month =	 mar,
+  pdf =		 "http://www.di.univr.it/~scollo/papers/dirr0303.pdf",
+  note =	 "Submitted for publication. This paper solves the isomorphism
+                  design problem posed in \cite{Scollo02,Scollo03a}, giving
+                  the details of the solution outlined in \cite{Scollo03b}. ",
+  keywords =	 {Logics Morphisms},
+  abstract =	 {Maximal planar graphs with vertex resp.\ edge colouring
+                  are naturally casted as (deceiptively similar) institutions.
+                  One then tries to embody Tait's equivalence algorithms into
+                  morphisms between them, and is lead to a partial redesign
+                  of those institutions. This paper aims at elucidating the
+                  pragmatic questions which arise in this case study, which
+                  also showcases the use of relational concepts and notations
+                  in the design of the subject institutions, that is driven
+                  by the design of an isomorphism between them. },
+}
+
+
diff --git a/omdoc-semantics/macros/bib/flirts.bib b/omdoc-semantics/macros/bib/flirts.bib
new file mode 100644
index 0000000000000000000000000000000000000000..61d0c3db08f0f27fbcab598222737a458e08abc9
--- /dev/null
+++ b/omdoc-semantics/macros/bib/flirts.bib
@@ -0,0 +1,3141 @@
+@InProceedings{AgustiCullellEtAl91,
+  author =	 "J. Agust{\'i}-Cullell and F. Esteva and P. Garcia
+                  and L. Godo",
+  title =	 "Formalizing Multiple-Valued Logics as Institutions",
+  pages =	 "269--278",
+  ISBN =	 "3-540-54346-5",
+  editor =	 "Bernadette Bouchon-Meunier and Ronald R. Yager and
+                  Lotfi A. Zadeh",
+  booktitle =	 "Proceedings of Uncertainty in Knowledge Bases
+                  ({IPMU} '90)",
+  month =	 jul,
+  series =	 "LNCS",
+  volume =	 "521",
+  publisher =	 "Springer",
+  address =	 "Berlin, Germany",
+  year =	 "1991",
+  keywords =	 {Logics},
+}
+
+@Article{Alagi02,
+  author =	 {Suad Alagi},
+  title =	 {Institutions: integrating objects, {XML} and
+                  databases},
+  journal =	 {Information and Software Technology},
+  year =	 {2002},
+  Volume =	 44,
+  Pages =	 {207-216},
+  Abstract =	 {A general model theory based on institutions is
+                  proposed as a formal framework for investigating
+                  typed object-oriented, XML and other data models
+                  equipped with integrity constraints. A major
+                  challenge in developing such a unified model theory
+                  is in the requirement that it must be able to handle
+                  major structural differences between the targeted
+                  models as well as the significant differences in the
+                  logic bases of their associated constraint
+                  languages. A distinctive feature of this model
+                  theory is that it is transformation-oriented. It is
+                  based on structural transformations within a
+                  particular category of models or across different
+                  categories with a fundamental requirement that the
+                  associated constraints are managed in such a way
+                  that the database integrity is preserved. },
+  keywords =	 {ModelTheory Morphisms},
+}
+
+@incollection{ArraisFiadeiro96,
+  author =	 {M. Arrais and J. L. Fiadeiro},
+  title =	 {Unifying theories in different institutions},
+  PAGES =	 {81--101},
+  BOOKTITLE =	 {Recent Trends in Data Type Specifications. 11th
+                  Workshop on Specification of Abstract Data Types},
+  EDITOR =	 {M. Haveraaen and O. Owe and O.-J. Dahl},
+  Publisher =	 {Springer Verlag},
+  SERIES =	 {Lecture Notes in Computer Science},
+  VOLUME =	 {1130},
+  year =	 1996,
+  keywords =	 {Morphisms},
+}
+
+@article{Aspinall95,
+  author =	 "D. Aspinall",
+  title =	 "Types, Subtypes, and {ASL+}",
+  journal =	 "Lecture Notes in Computer Science",
+  volume =	 "906",
+  pages =	 "116--??",
+  year =	 "1995",
+  keywords =	 {ModelTheory},
+  abstract =	 {ASL+ is a formalism for specification and
+                  programming in-the-large, based on an arbitrary
+                  institution. It has rules for proving the
+                  satisfaction and refinement of specifications, which
+                  can be seen as a type theory with subtyping,
+                  including contravariant refinement for
+                  \Pi-abstracted specifications and a notion of
+                  stratified equality for higher-order objects. We
+                  describe the syntax of the language and a partial
+                  equivalence relation semantics. This style of
+                  semantics is familiar from subtyping calculi, but a
+                  novelty here is the use of a hierarchy of typed
+                  domains instead of a single untyped domain. },
+  url =		 "citeseer.nj.nec.com/aspinall95types.html"
+}
+
+@PhdThesis{Aspinall97,
+  author =	 {David Aspinall},
+  title =	 {Type Systems for Modular Programming and
+                  Specification},
+  school =	 {Edinburgh},
+  year =	 {1997},
+  keywords =	 {ModelTheory},
+}
+
+@INCOLLECTION{AstesianoCerioli92,
+  AUTHOR =	 "E. Astesiano and M. Cerioli",
+  TITLE =	 "Relationships between Logical Frameworks",
+  BOOKTITLE =	 "Proc. 8th ADT workshop",
+  EDITOR =	 {M. Bidoit and C. Choppy},
+  SERIES =	 "Lecture Notes in Computer Science",
+  VOLUME =	 655,
+  PAGES =	 {126--143},
+  PUBLISHER =	 {Springer Verlag},
+  keywords =	 {Logics Morphisms},
+  YEAR =	 1992
+}
+
+@incollection{AstesianoCerioli94,
+  Author =	 {Astesiano, E. and Cerioli, M.},
+  Title =	 {Multiparadigm Specification Languages: a First
+                  Attempt at Foundations},
+  booktitle =	 {Semantics of Specification Languages (SoSl 93)},
+  editor =	 {C.M.D.J. Andrews and J.F. Groote},
+  series =	 {Workshops in Computing},
+  publisher =	 {Springer Verlag},
+  pages =	 {168--185},
+  year =	 1994,
+  keywords =	 {Heterogeneity},
+}
+
+@Article{Barwise74,
+  title =	 "Axioms for Abstract Model Theory",
+  author =	 "Jon Barwise",
+  journal =	 "Annals of Mathematical Logic",
+  volume =	 "7",
+  pages =	 "221--265",
+  year =	 "1974",
+  keywords =	 {Metaformalisms},
+}
+
+@INCOLLECTION{Baumeister91,
+  AUTHOR =	 "H. Baumeister",
+  TITLE =	 "Unifying Initial and Loose Semantics of
+                  Parameterized Specifications in an Arbitrary
+                  Institution",
+  BOOKTITLE =	 "TAPSOFT 91 Vol. 1: CAAP 91",
+  EDITOR =	 {S. Abramsky and T.S.E. Maibaum},
+  SERIES =	 "Lecture Notes in Computer Science",
+  VOLUME =	 493,
+  PAGES =	 {103--120},
+  PUBLISHER =	 {Springer Verlag},
+  YEAR =	 1991,
+  keywords =	 {ModelTheory},
+}
+
+@Incollection{Baumeister95,
+  author =	 "H. Baumeister",
+  title =	 "Relations as Abstract Datatypes: An Institution to
+                  Specify Relations Between Algebras",
+  Publisher =	 {Springer Verlag},
+  editor =	 {Peter D. Mosses and Mogens Nielsen and Michael
+                  I. Schwartzbach},
+  booktitle =	 {TAPSOFT'95: Theory and Practice of Software
+                  Development, 6th International Joint Conference},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 "915",
+  pages =	 "756--771",
+  year =	 "1995",
+  coden =	 "LNCSD9",
+  ISSN =	 "0302-9743",
+  keywords =	 {ModelTheory},
+}
+
+@phdthesis{Baumeister98,
+  author =	 "H. Baumeister",
+  title =	 "Relations between Abstract Datatypes modeled as
+                  Abstract Datatypes",
+  school =	 "Universit{\"a}t des Saarlandes",
+  year =	 "1998",
+  keywords =	 {ModelTheory},
+}
+
+@InCollection{Baumeister99,
+  author =	 "Hubert Baumeister",
+  title =	 "Relating Abstract Datatypes and Z-Schemata",
+  editor =	 "Didier Bert and Christine Choppy",
+  booktitle =	 "Recent Trends in Algebraic Development Techniques -
+                  Selected Papers",
+  publisher =	 "Springer-Verlag",
+  series =	 "Lecture Notes in Computer Science",
+  volume =	 "1827",
+  pages =	 "366--382",
+  year =	 "2000",
+  keywords =	 {Logics},
+}
+
+@InProceedings{BeierlelncsVoss87,
+  author =	 "C. Beierle and A. Voss",
+  title =	 "Viewing Implementations as an Institution",
+  pages =	 "196--218",
+  ISBN =	 "3-540-18508-9",
+  editor =	 "D. E. Rydeheard {D.H. Pitt, A. Poign{\'e}}",
+  booktitle =	 "Proceedings of the Conference on Category Theory and
+                  Computer Science",
+  address =	 "Edinburgh, UK",
+  month =	 sep,
+  year =	 "1987",
+  series =	 "LNCS",
+  volume =	 "283",
+  publisher =	 "Springer",
+  keywords =	 {ModelTheory},
+}
+
+@Article{BernotBidoitKnapik95,
+  author =	 {Gilles Bernot and Michel Bidoit and Teodor Knapik},
+  title =	 {Observational specifications and the
+                  indistinguishability assumption},
+  journal =	 {Theoretical Computer Science},
+  year =	 {1995},
+  keywords =	 {Logics},
+  volume =	 {139},
+  pages =	 {275--314},
+  abstract =	 {To establish the correctness of some software
+                  w.r.t. its formal specification is widely recognized
+                  as a difficult task. A first simplification is
+                  obtained when the semantics of an algebraic
+                  specification is defined as the class of all
+                  algebras which correspond to the correct
+                  realizations of the specification. A software is
+                  then declared correct if some algebra of this class
+                  corresponds to it. We approach this goal by defining
+                  an observational satisfaction relation which is less
+                  restrictive than the usual satisfaction
+                  relation. Based on this notion we provide an
+                  institution for observational specifications. The
+                  idea is that the validity of an equational axiom
+                  should depend on an observational equality, instead
+                  of the usual equality. We show that it is not
+                  reasonable to expect an observational equality to be
+                  a congruence. We define an observational algebra as
+                  an algebra equipped with an observational equality
+                  which is an equivalence relation but not necessarily
+                  a congruence. We assume that two values can be
+                  declared indistinguishable when it is impossible to
+                  establish they are different using some available
+                  observations. This is what we call the
+                  Indistinguishability Assumption . Since term
+                  observation seems sufficient for data type
+                  specifications, we define an indistinguishability
+                  relation on the carriers of an algebra w.r.t. the
+                  observation of an arbitrary set of terms. From a
+                  careful case study it follows that this requires to
+                  take into account the continuations of suspended
+                  evaluations of observation terms. Since our
+                  indistinguishability relation is not transitive, it
+                  is only an intermediate step to define an
+                  observational equality. Our approach is motivated by
+                  several examples. },
+}
+
+@incollection{BernotCoudertLeGall96,
+  author =	 "G. Bernot and S. Coudert and P. {Le Gall}",
+  title =	 "Towards Heterogeneous Formal Specifications",
+  series =	 "Lecture Notes in Computer Science",
+  booktitle =	 "AMAST 96",
+  volume =	 "1101",
+  pages =	 "458--472",
+  year =	 "1996",
+  keywords =	 {Heterogeneity},
+}
+
+@misc{BicarreguiDimitrakos00,
+  author =	 "Juan Bicarregui and Theo Dimitrakos",
+  title =	 "Interpolation in practical formal development",
+  booktitle =	 {FAPR2000, International Conference on Pure and
+                  Applied Practical Reasoning, London},
+  year =	 2000,
+  keywords =	 {ProofTheory},
+  url =		 "citeseer.nj.nec.com/293777.html"
+}
+
+@incollection{BidoitCengarleHennicker99,
+  author =	 "Michel Bidoit and Mar\'{\i}a Victoria Cengarle and
+                  Rolf Hennicker",
+  title =	 "Proof systems for structured specifications and
+                  their refinements",
+  booktitle =	 "Algebraic Foundations of Systems Specification",
+  publisher =	 "Springer",
+  editor =	 "Egidio Astesiano and Hans-J{\"o}rg Kreowski and
+                  Bernd Krieg-Br{\"u}ckner",
+  pages =	 "385--433",
+  year =	 "1999",
+  keywords =	 {ProofTheory},
+  abstract =	 {Introduction Reasoning about speci cations is one of
+                  the fundamental activities in the process of formal
+                  program development. This ranges from proving the
+                  consequences of a speci cation, during the
+                  prototyping or testing phase for a requirements
+                  speci cation, to proving the correctness of re
+                  nements (or implementations) of speci cations. The
+                  main proof techniques for algebraic speci- cations
+                  have their origin in equational Horn logic and term
+                  rewriting. These proof methods have been well
+                  studied in the case of nonstructured speci cations
+                  (see Chapters 9 and 10). For large systems of speci
+                  cations built using the structuring operators of
+                  speci cation languages, relatively few proof...},
+  url =		 "citeseer.nj.nec.com/bidoit99proof.html",
+}
+
+@misc{BidoitHennicker,
+  author =	 "Michel Bidoit and Rolf Hennicker",
+  title =	 "On Observability and Reachability",
+  url =		 "citeseer.nj.nec.com/500492.html",
+  keywords =	 {Logics},
+  abstract =	 {Observability and reachability are important
+                  concepts in formal software development. While
+                  observability concepts allow to specify the required
+                  observable behavior of a program or system,
+                  reachability concepts are used to describe the
+                  underlying data in terms of data type
+                  constructors. In this paper we show that there is a
+                  duality between observability and reachability, both
+                  from a methodological and from a formal point of
+                  view. In particular, we establish a correspondence
+                  between observer operations and data type
+                  constructors, observational algebras and
+                  constructor-based algebras, and observational and
+                  inductive properties of specifications. Our study is
+                  based on the...},
+}
+
+@incollection{BidoitHennicker02,
+  author =	 {Michel Bidoit and Rolf Hennicker},
+  title =	 {On the Integration of Observability and Reachability
+                  Concepts},
+  pages =	 {21--36},
+  editor =	 {Mogens Nielsen and Uffe Engberg},
+  booktitle =	 {Foundations of Software Science and Computation
+                  Structures, 5th International Conference, FOSSACS
+                  2002. Held as Part of the Joint European Conferences
+                  on Theory and Practice of Software, ETAPS 2002
+                  Grenoble, France, April 8-12, 2002, Proceedings},
+  publisher =	 {Springer},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 {2303},
+  year =	 {2002},
+  isbn =	 {3-540-43366-X},
+  keywords =	 {Logics},
+  url =
+                  "http://www.lsv.ens-cachan.fr/Publis/RAPPORTS_LSV/rr-lsv-2002-2.rr.ps",
+  otherurl =	 "citeseer.nj.nec.com/bidoit02integration.html",
+  abstract =	 "This paper focuses on the integration of
+                  reachability and observability concepts within an
+                  algebraic, institution-based framework. We develop
+                  the essential notions that are needed to construct
+                  an institution which takes into account both the
+                  generation- and observation-oriented aspects of
+                  software systems. Thereby the underlying paradigm is
+                  that the semantics of a specification should be as
+                  loose as possible to capture all its correct
+                  realizations. We also consider the so-called
+                  ``idealized models'' of a specification which are
+                  useful to study the behavioral properties a user can
+                  observe when he/she is experimenting with the
+                  system. Finally, we present sound and complete proof
+                  systems that allow us to derive behavioral
+                  properties from the axioms of a given
+                  specification.",
+}
+
+@inproceedings{BidoitHennicker93,
+  author =	 "Michel Bidoit and Rolf Hennicker",
+  title =	 "A General Framework for Modular Implementations of
+                  Modular System Specifications",
+  booktitle =	 "{TAPSOFT}",
+  pages =	 "199-214",
+  year =	 "1993",
+  keywords =	 {ModelTheory},
+  abstract =	 {We investigate the impact of modularity on the
+                  semantics and on the implementation of software
+                  specifications. Based on the stratified loose
+                  semantics approach we develop a suitable
+                  specification framework which meets our basic
+                  requirements: the independent construction of
+                  implementations for the single constituent parts
+                  (modules) of a system specification and the
+                  encapsulated development of each implementation part
+                  using the principle of stepwise refinement. Our
+                  paper is not aimed at providing an elaborated
+                  specification language but rather to concentrate on
+                  the modularity issues of system development. Hence,
+                  only few but powerful constructs are provided which
+                  can be seen as a kernel for ...},
+  url =		 "citeseer.nj.nec.com/bidoit93general.html",
+}
+
+@inproceedings{BidoitHennickerKurz01,
+  author =	 "Michel Bidoit and Rolf Hennicker and Alexander Kurz",
+  title =	 "On the Duality between Observability and
+                  Reachability",
+  booktitle =	 "Foundations of Software Science and Computation
+                  Structure",
+  pages =	 "72-87",
+  year =	 "2001",
+  url =
+                  "http://www.lsv.ens-cachan.fr/Publis/RAPPORTS_LSV/rr-lsv-2001-7.rr.ps",
+  otherurl =	 "citeseer.nj.nec.com/bidoit01duality.html",
+  keywords =	 {Logics},
+  abstract =	 "Observability and reachability are important
+                  concepts in formal software development. While
+                  observability concepts allow to specify the required
+                  observable behavior of a program or system,
+                  reachability concepts are used to describe the
+                  underlying data in terms of datatype
+                  constructors. In this paper, we show that there is a
+                  duality between observability and reachability, both
+                  from a methodological and from a formal point of
+                  view. In particular, we establish a correspondence
+                  between observer operations and datatype
+                  constructors, observational algebras and
+                  constructor-based algebras, and observational and
+                  inductive properties of specifications. Our study is
+                  based on the observational logic
+                  institution~\cite{hb:ol} and on a novel treatment of
+                  reachability which introduces the constructor-based
+                  logic institution. Both institutions are tailored to
+                  capture the semantically correct realizations of a
+                  specification from the observational and
+                  reachability points of view. The duality between the
+                  observability and reachability concepts is then
+                  formalized in a category-theoretic setting.",
+}
+
+@article{BidoitSannellaTarlecki02,
+  author =	 {Michel Bidoit and Donald Sannella and Andrzej
+                  Tarlecki},
+  title =	 {Architectural Specifications in {CASL}},
+  journal =	 {Formal Aspects of Computing},
+  year =	 {2002},
+  volume =	 13,
+  pages =	 {252--273},
+  url =		 {ftp://ftp.dcs.ed.ac.uk/pub/dts/archs.ps},
+  dvi =		 {archs.dvi},
+  postscript =	 {archs.ps},
+  pdf =		 {archs.pdf},
+  abstract =	 {One of the most novel features of CASL, the Common
+                  Algebraic Specification Language, is the provision
+                  of so-called architectural specifications for
+                  describing the modular structure of software
+                  systems. A brief discussion of refinement of CASL
+                  specifications provides the setting for a
+                  presentation of the rationale behind architectural
+                  specifications. This is followed by some details of
+                  the features provided in CASL for architectural
+                  specifications, hints concerning their semantics,
+                  and simple results justifying their usefulness in
+                  the development process.},
+  note =	 {This is an extended version of
+                  SannellaDT:arch-specs98 that supercedes Report
+                  ECS-LFCS-99-407, Laboratory for Foundations of
+                  Computer Science, Univ.\ of Edinburgh (1999)}
+}
+
+@Article{BidoitTarlecki96,
+  author =	 "M. Bidoit and A. Tarlecki",
+  title =	 "Behavioural Satisfaction and Equivalence in Concrete
+                  Model Categories",
+  journal =	 "Lecture Notes in Computer Science",
+  volume =	 "1059",
+  pages =	 "241--256",
+  year =	 "1996",
+  ISSN =	 "0302-9743",
+  keywords =	 {Metaformalisms},
+  abstract =	 {We use the well-known framework of concrete
+                  categories to show how much of standard universal
+                  algebra may be done in an abstract and still rather
+                  intuitive way. This is used to recast the unifying
+                  view of behavioural semantics of speci cations based
+                  on behavioural satisfaction and, respectively, on
+                  behavioural equivalence of models abstracting away
+                  from many particular features of standard
+                  algebras. We also give an explicit representation of
+                  behavioural equivalence between models in terms of
+                  behavioural correspondences.},
+}
+
+@ARTICLE{BlackburnRijke97,
+  author =	 "P. Blackburn and M. de Rijke",
+  title =	 "Why combine logics?",
+  journal =	 "Studia Logica",
+  year =	 1997,
+  volume =	 59,
+  pages =	 {5--27},
+  keywords =	 {Combination},
+}
+
+@Incollection{Borzyszkowski98,
+  author =	 "T. Borzyszkowski",
+  title =	 "Correctness of a logical system for structured
+                  specifications",
+  booktitle =	 {Recent trends in algebraic development
+                  techniques. Proc.\ 12th International Workshop},
+  editor =	 {F. {Parisi Presicce}},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 "1376",
+  pages =	 "107--121",
+  year =	 "1998",
+  coden =	 "LNCSD9",
+  ISSN =	 "0302-9743",
+  keywords =	 {ProofTheory},
+}
+
+@inproceedings{Borzyszkowski00,
+  author =	 "Tomasz Borzyszkowski",
+  title =	 "Higher-Order Logic and Theorem Proving for
+                  Structured Specifications",
+  booktitle =	 "Workshop on Algebraic Development Techniques 1999",
+  pages =	 "401-418",
+  year =	 "2000",
+  editor =	 "Christine Choppy and Didier Bert and Peter Mosses",
+  series =	 "LNCS",
+  volume =	 "1827",
+  keywords =	 {Logics},
+}
+
+@article{Borzyszkowski02,
+  author =	 {T.~Borzyszkowski},
+  title =	 {Logical systems for structured specifications},
+  journal =	 {Theoretical Computer Science},
+  volume =	 {286},
+  year =	 2002,
+  pages =        {197-245},
+  keywords =	 {ProofTheory},
+}
+
+@inbook{BurstallDiaconescu94,
+  AUTHOR =	 {R. Burstall and R. Diaconescu},
+  TITLE =	 {Hiding and behaviour: an institutional approach},
+  BOOKTITLE =	 {A Classical Mind: Essays Dedicated to C.A.R. Hoare},
+  editor =	 {A. William Roscoe},
+  pages =	 {75--92},
+  PUBLISHER =	 {Prentice-Hall},
+  keywords =	 {ModelTheory},
+  YEAR =	 {1994}
+}
+
+@TechReport{CaleiroEtAl00,
+  address =	 "1049-001 Lisboa, Portugal",
+  author =	 "C. Caleiro and W. A. Carnielli and M. E. Coniglio
+                  and A. Sernadas and C. Sernadas",
+  institution =	 "Section of Computer Science, Department of
+                  Mathematics, Instituto Superior T\'ecnico",
+  note =	 "Submitted for publication",
+  title =	 "Fibring non-truth-functional logics: Completeness
+                  preservation",
+  type =	 "Preprint",
+  year =	 "2000",
+  ps =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/00-CCCSS-fiblog8.ps",
+  pdf =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/00-CCCSS-fiblog8.pdf",
+  st =		 "s",
+  proj =	 "fiblog",
+  keywords =	 {Combination},
+}
+
+@incollection{CaleiroEtAl01,
+  title =	 {Combining Logics: Parchments Revisited},
+  author =	 {C.Caleiro and P.Mateus and J.Ramos and A.Sernadas},
+  Editor =	 {M. Cerioli and G. Reggio},
+  Booktitle =	 {Recent Trends in Algebraic Development Techniques,
+                  15th International Workshop, WADT'01, Genova, Italy},
+  series =	 "Lecture Notes in Computer Science",
+  publisher =	 "Springer-Verlag",
+  pages =	 {48--70},
+  volume =	 2267,
+  keywords =	 {Combination},
+}
+
+@InCollection{CaleiroSernadasSernadas99a,
+  author =	 "C. Caleiro and C. Sernadas and A. Sernadas",
+  title =	 "Parameterisation of Logics",
+  editor =	 "J. Fiadeiro",
+  booktitle =	 "Recent Trends in Algebraic Development Techniques -
+                  Selected Papers",
+  publisher =	 "Springer-Verlag",
+  series =	 "Lecture Notes in Computer Science",
+  volume =	 "1589",
+  pages =	 "48--62",
+  year =	 "1999",
+  ps =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/98-CSS-paramlog.ps",
+  st =		 "p",
+  proj =	 "fiblog,acl,logcomp",
+  keywords =	 {Combination},
+}
+
+@TechReport{CaleiroSernadasSernadas99b,
+  author =	 "C. Caleiro and C. Sernadas and A. Sernadas",
+  title =	 "Mechanisms for combining logics",
+  type =	 "Research Report",
+  institution =	 "Section of Computer Science, Department of
+                  Mathematics, Instituto Superior T\'ecnico",
+  address =	 "1049-001 Lisboa, Portugal",
+  year =	 "1999",
+  ps =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/99-CSS-comblog.ps",
+  st =		 "i",
+  proj =	 "fiblog,acl,logcomp",
+  keywords =	 {Combination},
+}
+
+@Article{CazuanescuRosu97,
+  title =	 "Weak inclusion systems",
+  author =	 "Virgil Emil C{\u{a}}z{\u{a}}nescu and Grigore
+                  Ro{\c{s}}u",
+  pages =	 "195--206",
+  journal =	 "Mathematical Structures in Computer Science",
+  month =	 apr,
+  year =	 "1997",
+  volume =	 "7",
+  number =	 "2",
+  references =	 "\cite{JACM::GoguenB1992} \cite{TCS::Tarlecki1985}",
+  keywords =	 {Metaformalisms},
+}
+
+@PHDTHESIS{Cerioli93,
+  AUTHOR =	 {M. Cerioli},
+  TITLE =	 {Relationships between Logical Formalisms},
+  SCHOOL =	 {TD-4/93, Universit\`a di Pisa-Genova-Udine},
+  YEAR =	 1993,
+  keywords =	 {Logics Morphisms},
+}
+
+
+@InProceedings(CerioliReggio93,
+  Author =	 {Cerioli, M. and Reggio, G.},
+  Title =	 {Algebraic-Oriented Institutions},
+  BookTitle =	 {Algebraic Methodology and Software Technology
+                  (AMAST'93)},
+  Publisher =	 {Springer},
+  Editor =	 {Nivat, M. and Rattray, C. and Rus, T. and Scollo,
+                  G.},
+  Series =	 {Workshops in Computing},
+  Pages =	 "103--210",
+  pages =	 {Metaformalisms},
+  Year =	 1994
+)
+
+@Article{CerioliReggio94,
+  author =	 "M. Cerioli and G. Reggio",
+  title =	 "Institutions for very abstract specifications",
+  journal =	 "Lecture Notes in Computer Science",
+  volume =	 "785",
+  pages =	 "113--127",
+  year =	 "1994",
+  coden =	 "LNCSD9",
+  ISSN =	 "0302-9743",
+  keywords =	 {Combination},
+}
+
+@Incollection{CerioliZucca97,
+  author =	 {M. Cerioli and E. Zucca},
+  title =	 {Implementation of Derived Programs (Almost) for
+                  Free},
+  booktitle =	 {Recent trends in algebraic development
+                  techniques. Proc.\ 12th International Workshop},
+  editor =	 {F. {Parisi Presicce}},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 {1376},
+  publisher =	 {Springer},
+  Year =	 1998,
+  pages =	 {141--155},
+  keywords =	 {ModelTheory Metaformalisms},
+}
+
+@InCollection{Cirstea02,
+  author =	 {Corina Cirstea},
+  title =	 {Institutionalising Many-Sorted Coalgebraic Modal
+                  Logic},
+  booktitle =	 {CMCS 2002},
+  publisher =	 {Elsevier Science},
+  year =	 {2002},
+  series =	 {Electronic Notes in Theoretical Computer Science},
+  keywords =	 {Logics},
+}
+
+@article{ClassenGrosse-RhodeWolter95,
+  author =	 {Cla{\ss}en, I. and Gro{\ss}e--Rhode, M. and Wolter,
+                  U.},
+  title =	 {Categorical Concepts for Parameterized Partial
+                  Specifications},
+  journal =	 {Math. Struct. in Comp. Science},
+  year =	 {1995},
+  volume =	 {5},
+  pages =	 {153--188},
+  keywords =	 {Logics},
+  note =	 {A preliminary version appeared as Tech. Report
+                  92-42, Technische Universit{\"a}t Berlin, FB
+                  Informatik, 1992}
+}
+
+@TechReport{ConiglioEtAl00,
+  author =	 "M. E. Coniglio and A. T. Martins and A. Sernadas and
+                  C. Sernadas",
+  title =	 "Fibring (Para)consistent Logics",
+  type =	 "Research Report",
+  institution =	 "Section of Computer Science, Department of
+                  Mathematics, Instituto Superior T\'ecnico",
+  address =	 "1049-001 Lisboa, Portugal",
+  year =	 "2000",
+  note =	 "Extended abstract. Presented at II World Congress on
+                  Paraconsistency - WCP'00",
+  ps =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/00-CMSS-fiblog6.ps",
+  pdf =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/00-CMSS-fiblog6.pdf",
+  st =		 "c",
+  proj =	 "fiblog,logcomp",
+  keywords =	 {Combination},
+}
+
+@TechReport{ConiglioSernadasSernadas02,
+  author =	 "M. E. Coniglio and A. Sernadas and C. Sernadas",
+  institution =	 "Section of Computer Science, Department of
+                  Mathematics, Instituto Superior T\'ecnico",
+  address =	 "1049-001 Lisboa, Portugal",
+  note =	 "Submitted for publication",
+  title =	 "Topos-theoretic semantics of fibring",
+  type =	 "Preprint",
+  year =	 "2002",
+  ps =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/02-CSS-fiblog14.ps",
+  pdf =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/02-CSS-fiblog14.pdf",
+  st =		 "s",
+  proj =	 "fiblog",
+  keywords =	 {Combination},
+}
+
+@article{CorneliusEtAl95,
+  author =	 {Cornelius, F. and Ehrig, H. and Orejas, F. and
+                  Baldamus, M.},
+  title =	 {Abstract and behaviour module specifications},
+  journal =	 {Mathematical Structures in Computer Science},
+  volume =	 9,
+  pages =	 {21--62},
+  year =	 {1999},
+  abstract =	 {The theory of algebraic module specifications and
+                  modular systems developed mainly in the framework of
+                  equational algebraic specifications is shown to be
+                  almost independent of the und erlying kind of
+                  specifications. In fact, it is shown in this paper
+                  that the theory can be formulated entirely on the
+                  level of specification frames using indexed
+                  categories. In this framework it is called abstract
+                  module specifications. Main results concerning
+                  correctness and compositionality of abstract module
+                  specifications can be obtained if the category of
+                  abstract specifications has certain kinds of
+                  pushouts which allow amalgamations and/or extensions
+                  on the semantical level, as well as suitable free
+                  constructions. The theory of abstract module
+                  specifications is applied to the behaviour
+                  specification frame in the sense of Nivela and
+                  Orejas leading to behaviour module specifications.},
+  keywords =	 {ModelTheory},
+}
+
+@Incollection{CostaLourenco01,
+  author =	 "J. F{\'e}lix Costa and H. Louren{\c{c}}o",
+  title =	 "Canonical Institutions of Behaviour",
+  Editor =	 {M. Cerioli and G. Reggio},
+  Booktitle =	 {Recent Trends in Algebraic Development Techniques,
+                  15th International Workshop, WADT'01, Genova, Italy},
+  series =	 "Lecture Notes in Computer Science",
+  publisher =	 "Springer-Verlag",
+  year =	 {2002},
+  volume =	 "2267",
+  pages =	 "71--84",
+  year =	 "2001",
+  ISSN =	 "0302-9743",
+  url =
+                  "http://link.springer-ny.com/link/service/series/0558/bibs/2267/22670071.htm; http://link.springer-ny.com/link/service/series/0558/papers/2267/22670071.pdf",
+  keywords =	 {Logics},
+}
+
+@incollection{CoudertBernotLeGall99,
+  author =	 "S. Coudert and G. Bernot and P. {Le Gall}",
+  title =	 "Hierarchical Heterogeneous Specifications",
+  series =	 "Lecture Notes in Computer Science",
+  editor =	 "J. L. Fiadeiro",
+  booktitle =	 {Recent Trends in Algebraic Development Techniques,
+                  13th International Workshop, WADT'98, Lisbon,
+                  Portugal, April 1998, Selected Papers},
+  publisher =	 "Springer",
+  pages =	 {106--120},
+  volume =	 {1589},
+  year =	 "1999",
+  keywords =	 {Heterogeneity},
+}
+
+@article{Diaconescu00,
+  author =	 "Razvan Diaconescu",
+  title =	 "Category-based constraint logic",
+  journal =	 "Mathematical Structures in Computer Science",
+  volume =	 "10",
+  number =	 "3",
+  pages =	 "373-407",
+  year =	 "2000",
+  keywords =	 {ModelTheory Logics},
+  url =		 "citeseer.nj.nec.com/diaconescu99categorybased.html",
+}
+
+@article{Diaconescu01,
+  author =	 {R. Diaconescu},
+  title =	 {Grothendieck institutions},
+  journal =	 {Applied categorical structures},
+  volume = {10},
+  year = {2002},
+  pages = {383--402},
+  keywords =	 {Heterogeneity},
+}
+
+@misc{Diaconescu94,
+  author =	 "R. Diaconescu",
+  title =	 "Category-based Semantics for Equational and
+                  Constraint Logic Programming",
+  text =	 "Razvan Diaconescu. Category-based Semantics for
+                  Equational and Constraint Logic Programming. PhD
+                  thesis, University of Oxford, 1994.",
+  year =	 "1994",
+  keywords =	 {Metaformalisms Logics},
+  url =		 "citeseer.nj.nec.com/diaconescu94categorybased.html"
+}
+
+@inproceedings{Diaconescu95a,
+  author =	 "Razvan Diaconescu",
+  title =	 "A Category-Based Equational Logic Semantics to
+                  Constraint Programming",
+  BOOKTITLE =	 {Recent Trends in Data Type Specifications. 11th
+                  Workshop on Specification of Abstract Data Types},
+  EDITOR =	 {M. Haveraaen and O. Owe and O.-J. Dahl},
+  Publisher =	 {Springer Verlag},
+  VOLUME =	 {1130},
+  series =	 {Lecture Notes in Computer Science},
+  year =	 1996,
+  pages =	 "200-221",
+  keywords =	 {Metaformalisms Logics},
+  url =
+                  "citeseer.nj.nec.com/article/diaconescu96categorybased.html"
+}
+
+@article{Diaconescu95b,
+  author =	 "Razvan Diaconescu",
+  title =	 "Completeness of Category-Based Equational Deduction",
+  journal =	 "Mathematical Structures in Computer Science",
+  volume =	 "5",
+  number =	 "1",
+  pages =	 "9-40",
+  year =	 "1995",
+  keywords =	 {Metaformalisms Logics},
+  url =		 "citeseer.nj.nec.com/315755.html"
+}
+
+@article{Diaconescu96,
+  author =	 "R\u{a}zvan Diaconescu",
+  title =	 "Category-Based Modularisation for Equational Logic
+                  Programming",
+  journal =	 "Acta Informatica",
+  volume =	 "33",
+  pages =	 "477--510",
+  year =	 "1996",
+  keywords =	 {Metaformalisms Logics},
+  url =		 "citeseer.nj.nec.com/diaconescu96categorybased.html"
+}
+
+@article{Diaconescu97,
+  AUTHOR =	 {R. Diaconescu},
+  TITLE =	 {Extra Theory Morphisms for Institutions: logical
+                  semantics for multi-paradigm languages},
+  pages =	 {427--453},
+  volume =	 {6},
+  journal =	 {J. Applied Categorical Structures},
+  year =	 1998,
+  keywords =	 {Heterogeneity},
+}
+
+@article{DiaconescuFutatsugi02,
+  author =	 "R. Diaconescu and K. Futatsugi",
+  title =	 "Logical foundations of {CafeOBJ}",
+  journal =	 {Theoretical computer science},
+  volume =	 {285},
+  pages =	 {289--318},
+  year =	 {2002},
+  keywords =	 {ModelTheory Logics Heterogeneity},
+}
+
+@INPROCEEDINGS{DiaconescuGoGuenStefaneas91,
+  AUTHOR =	 {Diaconescu, R{\u{a}}zvan and Goguen, Joseph and
+                  Stefaneas, Petros},
+  TITLE =	 {Logical Support for Modularisation},
+  BOOKTITLE =	 {Proceedings of a Workshop on Logical Frameworks},
+  EDITOR =	 {Huet, Gerard and Plotkin, Gordon},
+  YEAR =	 {1991},
+  HOWPUBLISHED = {Programming Research Group, Oxford University},
+  keywords =	 {ModelTheory},
+}
+
+@misc{Dimitrakos97,
+  author =	 "T. Dimitrakos",
+  title =	 "Modularity and interpolation in a development
+                  workspace",
+  text =	 "T. Dimitrakos. Modularity and interpolation in a
+                  development workspace. Technical report, Imperial
+                  College, 1997.",
+  year =	 "1997",
+  keywords =	 {ProofTheory},
+  url =		 "citeseer.nj.nec.com/dimitrakos97modularity.html"
+}
+
+@techreport{DimitrakosBicarreguiMaibaum99,
+  author =	 "Theodosis Dimitrakos and Juan Bicarregui and
+                  T.S.E. Maibaum",
+  title =	 "Integrating Heterogeneous Formalisms: Framework and
+                  Application",
+  note =	 {Technical Report, Rutherford Appleton Laboratory},
+  year =	 1999,
+  keywords =	 {Morphisms},
+  url =		 "citeseer.nj.nec.com/413478.html"
+}
+
+@article{DimitrakosMaibaum00,
+  author =	 "Theodosis Dimitrakos and Tom Maibaum",
+  title =	 "On a generalised modularisation theorem",
+  journal =	 "Information Processing Letters",
+  volume =	 "74",
+  number =	 "1-2",
+  pages =	 "65--71",
+  year =	 "2000",
+  keywords =	 {ProofTheory},
+  url =		 "citeseer.nj.nec.com/dimitrakos00generalised.html"
+}
+
+@techreport{DimitrakosMaibauma,
+  author =	 "T. Dimitrakos and T.S.E. Maibaum",
+  title =	 "Development Workspaces: an introduction",
+  keywords =	 {ProofTheory},
+  url =		 "citeseer.nj.nec.com/417497.html"
+}
+
+@inbook{DimitrakosMaibaumb,
+  author =	 "T. Dimitrakos and T.S.E. Maibaum",
+  title =	 "Notes on Refinement, Interpolation and Uniformity.",
+  pages =	 {108-116},
+  year =	 {1997},
+  booktitle =	 {International Conference on Automated Software
+                  Engineering (ASE '97), November 2-5},
+  keywords =	 {ProofTheory},
+  url =		 "citeseer.nj.nec.com/410195.html"
+}
+
+@techreport{DimitrakosMaibaumc,
+  author =	 "Theodosis Dimitrakos and Tom Maibaum ",
+  title =	 "Hiding information via abstraction",
+  keywords =	 {ProofTheory},
+  url =		 "citeseer.nj.nec.com/411997.html"
+}
+
+@techreport{Diskin94,
+  author =	 {Z. Diskin},
+  title =	 {Algebraizing Institutions: Incorporating Algebraic
+                  Logic Methodology into the institution Framework for
+                  Builing Specifications},
+  institution =	 {Laboratory for Database Design, Riga, Latvija},
+  year =	 1994,
+  keywords =	 {Metaformalisms},
+}
+
+@Incollection{DocheWiels00,
+  author =	 "Marielle Doche and Virginie Wiels",
+  title =	 "Extended Institutions for Testing",
+  journal =	 "Lecture Notes in Computer Science",
+  volume =	 "1816",
+  editor =	 {Teodor Rus},
+  booktitle =	 {Algebraic Methodology and Software Technology. 8th
+                  International Conference, AMAST 2000},
+  pages =	 "514--528",
+  year =	 "2000",
+  ISSN =	 "0302-9743",
+  url =
+                  "http://link.springer-ny.com/link/service/series/0558/bibs/1816/18160514.htm; http://link.springer-ny.com/link/service/series/0558/papers/1816/18160514.pdf",
+  keywords =	 {Metaformalisms},
+}
+
+@incollection{DuranMeseguer99,
+  author =	 "Francisco Dur\'an and Jos\'e Meseguer",
+  title =	 "Structured Theories and Institutions",
+  editor =	 {Martin Hofmann and Giuseppe Rosolini and Dusko
+                  Pavlovic},
+  booktitle =	 {CTCS '99 Conference on Category Theory and Computer
+                  Science},
+  series =	 {Electronic Notes in Theoretical Computer Science},
+  volume =	 29,
+  year =	 1999,
+  keywords =	 {ModelTheory},
+  url =		 "citeseer.nj.nec.com/465777.html"
+}
+
+@book{EhrichGogollaLipeck89,
+  author =	 {Ehrich, H.-D. and Gogolla, M. and Lipeck, U.W.},
+  title =	 {Algebraische Spezifikation abstrakter Datentypen},
+  publisher =	 {Teubner, Stuttgart},
+  year =	 1989,
+  keywords =	 {Metaformalisms Logics}
+}
+
+@TechReport{EhrigBaldamusCornelius91,
+  title =	 "Abstract Module Specifications in the Framework of
+                  Specification Logics and Applications to Behavioural
+                  Module Specifications",
+  author =	 "Harmut Ehrig and Michael Baldamus and Felix
+                  Cornelius and Fernando Orejas",
+  year =	 "1991",
+  key =		 {ModelTheory},
+  institution =	 "Technical University of Berlin",
+}
+
+@InProceedings{EhrigBaldamusOrejas92,
+  author =	 "H.~Ehrig and M.~Baldamus and F.~Orejas",
+  title =	 "New {C}oncepts of {A}malgamation and {E}xtension for
+                  a {G}eneral {T}heory of Specifications",
+  booktitle =	 "Recent Trends in Data Type Specification,
+                  Proceedings ADT--COMPASS--Workshop Durdan'91",
+  year =	 "1992",
+  pages =	 "199--221",
+  SERIES =	 {Lecture Notes in Computer Science},
+  PUBLISHER =	 {Springer},
+  key =		 {ModelTheory},
+  volume =	 "655"
+,
+}
+
+@InProceedings{EhrigEtAl95,
+  author =	 "Hartmut Ehrig and Martin Grosse-Rhode and Uwe
+                  Wolter",
+  title =	 "On the Role of Category Theory in the Area of
+                  Algebraic Specifications",
+  editor =	 "M. Haveraaen and O. Owe and O. J. Dahl",
+  booktitle =	 "Recent Trends in Data Type Specification",
+  series =	 "Lecture Notes in Computer Science",
+  publisher =	 "Springer-Verlag",
+  year =	 "1995",
+  pages =	 "17--48",
+  volume =	 "1130",
+  keywords =	 {Categories},
+  abstract =	 {Paradigm and main concepts of category theory in
+                  view of application in theoretical computer science
+                  are summarized. In more detail we present three
+                  selected problems in the area of algebraic
+                  specifications concerning a unified framework for
+                  specification logics, partial algebras, and models
+                  for cncurrent systems, which are solved using
+                  concepts, constructions and results of category
+                  theory. In order to solve two of the problems we
+                  point out the idea of classifying categories, that
+                  allows to present categories of algebras as functor
+                  categories and to derive a number of important
+                  results in a unified way. },
+}
+
+@ARTICLE{EhrigGrosseRhode94,
+  AUTHOR =	 "H. Ehrig and M. Gro\ss{}e--{R}hode",
+  TITLE =	 "Functorial theory of parameterized specifications in
+                  a general specification framework",
+  JOURNAL =	 "Theoretical Computer Science",
+  VOLUME =	 135,
+  PAGES =	 {221--266},
+  YEAR =	 1994,
+  abstract =	 {A general specification framework based on the
+                  notion of indexed categories is introduced in order
+                  to study the structural aspects of specifications
+                  independent of the underlying logics. Similar to
+                  institutions this concept of specification frames
+                  allows to formulate a unified structural theory of
+                  various kinds of algebraic specifications which have
+                  been studied separately in the literature before. In
+                  contrast to institutions we do not require to have
+                  satisfaction relations and conditions which allows
+                  to handle also behavioural specifications and
+                  semantics and various concepts of constraints in
+                  this framework. In this framework we generalize the
+                  well-known theory of parameterized algebraic
+                  specifications with initial semantics from the
+                  equational case to specification frames satisfying
+                  mainly three basic axioms. The existence of
+                  pushouts, free constructions and
+                  amalgamation. Moreover, an axiomatic treatment of
+                  restriction is presented which allows to study in
+                  addition to refinement also implementations of
+                  parameterized specifications including
+                  restrictions. Finally we present an axiomatic
+                  framework for functorial semantics which opens the
+                  way to apply the theory not only to initial
+                  semantics but also to other kinds of functorial
+                  semantics, including final and specific kinds of
+                  loose semantics. },
+  keywords =	 {ModelTheory},
+}
+
+@INCOLLECTION{EhrigJimenezOrejas93,
+  AUTHOR =	 {H. Ehrig and R. M. Jimenez and F. Orejas},
+  TITLE =	 {Compositionality Results for Different Types of
+                  Parameterization and Parameter Passing in
+                  Specification Languages},
+  BOOKTITLE =	 {TAPSOFT 93},
+  EDITOR =	 {M.-C. Gaudel and J.-P. Jouannaud},
+  SERIES =	 {Lecture Notes in Computer Science},
+  PUBLISHER =	 {Springer Verlag},
+  VOLUME =	 668,
+  PAGES =	 {31--45},
+  YEAR =	 1993,
+  keywords =	 {ModelTheory},
+}
+
+@InProceedings{EhrigJimenezOrejas93,
+  author =	 "H.~Ehrig and A.M.~Jimenez and F.~Orejas",
+  title =	 "Compositionality {R}esults for {D}ifferent {T}ypes
+                  of {P}arametrization and {P}arameter {P}assing in
+                  {S}pecification {L}anguages",
+  booktitle =	 "Proc. TAPSOFT'93",
+  year =	 "1993",
+  volume =	 "668",
+  SERIES =	 {Lecture Notes in Computer Science},
+  PUBLISHER =	 {Springer Verlag},
+  pages =	 "31--45",
+  month =	 "April",
+  key =		 {ModelTheory},
+}
+
+@incollection{EhrigKreowski99,
+  AUTHOR =	 {H. Ehrig and H.-J. Kreowski},
+  TITLE =	 {Refinement and Implementation},
+  BOOKTITLE =	 {Algebraic Foundations of Systems Specifications},
+  PUBLISHER =	 {Springer Verlag},
+  pages =	 {201--242},
+  keywords =	 {ModelTheory},
+  EDITOR =	 {E.~Astesiano and H.-J.~Kreowski and
+                  B.~Krieg--Br\"uckner},
+  YEAR =	 {1999},
+}
+
+@BOOK{EhrigMahr90,
+  AUTHOR =	 "H. Ehrig and B. Mahr",
+  TITLE =	 "Fundamentals of Algebraic Specification 2",
+  PUBLISHER =	 "Springer Verlag, Heidelberg",
+  YEAR =	 1990,
+  keywords =	 {ModelTheory},
+}
+
+@incollection{Fiadeiro96,
+  author =	 "J. L. Fiadeiro",
+  title =	 "On the Emergence of Properties in Component-Based
+                  Systems",
+  booktitle =	 "Algebraic Methodology and Software
+                  Technology. Proceedings - 1996",
+  volume =	 "1101",
+  series =	 {Lecture Notes in Computer Science},
+  publisher =	 "Springer-Verlag",
+  address =	 "Berlin, Germany",
+  editor =	 "M. Wirsing and M. Nivat",
+  pages =	 "421--443",
+  year =	 "1996",
+  keywords =	 {Logics},
+  abstract =	 {When several components are interconnected to form a
+                  complex system, they may exhibit more properties
+                  (individually) than they had when considered in
+                  isolation. When we consider a category SPEC of
+                  component specifications taken as theories in some
+                  logic, properties are expressed as sentences of the
+                  underlying logic, and emergence of properties can be
+                  characterised by the fact that the morphisms that
+                  connect component specifications to the system
+                  specification are not conservative. Depending on the
+                  relationship that can be established between SPEC
+                  and a corresponding category PROG of programs, we
+                  show that such emergence phenomena can be
+                  interpreted in more than one way: (1)...},
+  url =		 "citeseer.nj.nec.com/fiadeiro96emergence.html"
+}
+
+@InProceedings{FiadeiroCosta94,
+  author =	 "J. L. Fiadeiro and J. F. Costa",
+  title =	 "Institutions for Behaviour Specification",
+  editor =	 "E. Astesiano and G. Reggio and A. Tarlecki",
+  booktitle =	 "Recent Trends in Data Type Specification",
+  series =	 "Lecture Notes in Computer Science",
+  publisher =	 "Springer-Verlag",
+  year =	 "1994",
+  pages =	 "273--289",
+  annote =	 "incomplete",
+  keywords =	 {Logics},
+}
+
+@article{FiadeiroCosta96,
+  author =	 "Jose Luiz Fiadeiro and Jose Felix Costa",
+  title =	 "Mirror, Mirror in my Hand: A Duality between
+                  Specifications and Models of Process Behaviour",
+  journal =	 "Mathematical Structures in Computer Science",
+  volume =	 "6",
+  number =	 "4",
+  pages =	 "353-373",
+  year =	 "1996",
+  keywords =	 {Logics},
+  abstract =	 {Since Pnueli's seminal paper in 1977, Temporal Logic
+                  has been used as a formalism for specifying and
+                  verifying the correctness of reactive systems. In
+                  this paper, we show that, besides its expressive
+                  power, Temporal Logic enjoys a very strong
+                  structural property: it is categorical on
+                  processes. That is, we show how temporal
+                  specifications (as theories) can be embedded in
+                  categories of process behaviour, and out of this
+                  adjunction we build an institution which is
+                  categorical in the sense of Meseguer. This
+                  characterisation means that temporal logic is, in a
+                  sense, "sound and complete" with respect to process
+                  specification and interconnection techniques.},
+  url =		 "citeseer.nj.nec.com/fiadeiro96mirror.html"
+}
+
+@misc{FiadeiroLopesMaibaum97,
+  author =	 "J. Fiadeiro and A. Lopes and T. Maibaum",
+  title =	 "Synthesising Interconnections",
+  pages =	 {240--264},
+  editor =	 {Richard S. Bird and Lambert G. L. T. Meertens},
+  title =	 {Algorithmic Languages and Calculi, IFIP TC2 WG2.1
+                  International Workshop on Algorithmic Languages and
+                  Calculi, 17-22 February 1997, Alsace, France},
+  booktitle =	 {Algorithmic Languages and Calculi},
+  publisher =	 {Chapman {\&} Hall},
+  series =	 {IFIP Conference Proceedings},
+  volume =	 {95},
+  year =	 {1997},
+  isbn =	 {0-412-82050-1},
+  keywords =	 {Logics},
+  abstract =	 {In the context of the modular and incremental
+                  development of complex systems, viewed as
+                  interconnections of interacting components, new
+                  dimensions and new problems arise in the calculation
+                  of programs from specifications. A particularly
+                  important aspect for extending existing methods to
+                  address composite systems is the ability, given
+                  programs that realise component specifications, to
+                  synthesise the interconnections between them in such
+                  a way that the system specification is
+                  realised. Taking our cue from earlier work on
+                  General Systems Theory (Goguen, 1973) and more
+                  recent work on parallel program design (Fiadeiro and
+                  Maibaum, 1996), we discuss, characterise and provide
+                  solutions for the... },
+  url =		 "citeseer.nj.nec.com/272104.html"
+}
+
+@INCOLLECTION{FiadeiroSernadas88,
+  AUTHOR =	 {J. Fiadeiro and A. Sernadas},
+  TITLE =	 {Structuring theories on consequence},
+  EDITOR =	 {D.~Sannella and A.~Tarlecki},
+  BOOKTITLE =	 {Recent Trends in Data Type Specification, 5th
+                  Workshop on Specification of Abstract Data Types},
+  SERIES =	 {Lecture Notes in Computer Science},
+  PUBLISHER =	 {Springer Verlag},
+  PAGES =	 {44--72},
+  VOLUME =	 332,
+  YEAR =	 1988,
+  keywords =	 {Metaformalisms},
+}
+
+@ARTICLE{Gabbay95,
+  author =	 "D. Gabbay",
+  title =	 "Fibred semantics and the weaving of logics: part 1",
+  journal =	 "Journal of Symbolic Logic",
+  volume =	 61,
+  number =	 4,
+  year =	 1996,
+  pages =	 "1057--1120",
+  keywords =	 {Combination},
+}
+
+@INCOLLECTION{Gabbay96,
+  author =	 "D. Gabbay",
+  title =	 "An overview of fibred semantics and the combination
+                  of logics",
+  booktitle =	 "Frontiers of Combining Systems",
+  editor =	 "F. Baader and K. Schulz",
+  publisher =	 "Kluwer Academic Publishers",
+  year =	 1996,
+  pages =	 "1--55",
+  keywords =	 {Combination},
+}
+
+@InProceedings{Goguen86,
+  author =	 "J. A. Goguen",
+  title =	 "One, none, a hundred thousand specification
+                  languages",
+  booktitle =	 "Information Processing 86",
+  publisher =	 "North Holland",
+  editor =	 "H.-J. Kugler",
+  pages =	 "995--1003",
+  annote =	 "Report bei Loeckx",
+  year =	 "1986",
+}
+
+@InCollection{Goguen89a,
+  author =	 "J. A. Goguen",
+  title =	 "{Principles of Parameterized Programming}",
+  editor =	 "T. J. Biggerstaff and C. Richter",
+  booktitle =	 "{Software Reusability}",
+  publisher =	 "acm press",
+  year =	 "1989",
+  volume =	 "I --- Concepts and Models",
+  publisher =	 "acm press",
+  year =	 "1989",
+  chapter =	 "7",
+  key =		 {ModelTheory},
+  pages =	 "159--225",
+}
+
+@InProceedings{Goguen91a,
+  author =	 "Joseph A. Goguen",
+  title =	 "Types as Theories",
+  booktitle =	 "Proc. of Symposium on General Topology and
+                  Applications",
+  publisher =	 "Oxford University Press",
+  year =	 "1991",
+  keywords =	 {ModelTheory},
+}
+
+@article{Goguen91b,
+  author =	 "Joseph A. Goguen",
+  title =	 "A Categorical Manifesto",
+  journal =	 "Mathematical Structures in Computer Science",
+  volume =	 "1",
+  number =	 "1",
+  pages =	 "49-67",
+  year =	 "1991",
+  keywords =	 {Categories},
+  url =		 "citeseer.nj.nec.com/goguen91categorical.html"
+}
+
+@article{Goguen92,
+  author =	 "Joseph A. Goguen",
+  title =	 "Sheaf Semantics for Concurrent Interacting Objects",
+  journal =	 "Mathematical Structures in Computer Science",
+  volume =	 "2",
+  number =	 "2",
+  pages =	 "159--191",
+  year =	 "1992",
+  url =		 "citeseer.nj.nec.com/goguen92sheaf.html",
+  abstract =	 {This paper uses concepts from sheaf theory to
+                  explicate phenomena in concurrent systems, including
+                  object, inheritance, deadlock, and non-interference,
+                  as used in computer security. The approach is very
+                  general, and applies not only to concurrent object
+                  oriented systems, but also to systems of
+                  differential equations, electrical circuits,
+                  hardware description languges, and much more. Time
+                  can be discrete or continuous, linear or branching,
+                  and distribution is allowed over space as well as
+                  time. Concepts from category theory help to achieve
+                  this generality: objects are modeled by sheaves;
+                  inheritance by sheaf morphisms; systems by diagrams;
+                  and interconnections by diagrams of diagrams.},
+  keywords =	 {Metaformalisms},
+}
+
+@InProceedings{Goguen96,
+  author =	 "J. Goguen",
+  title =	 "Parameterized Programming and Software Architecture",
+  editor =	 "Murali Sitaraman",
+  booktitle =	 "Proceedings of the Fourth International Conference
+                  on Software Reuse",
+  year =	 "1996",
+  publisher =	 "IEEE Computer Society Press",
+  pages =	 "2--11",
+  referencedby = "\cite{1997:icse:karhinen}, \cite{1997:ssr:karhinen}",
+  key =		 {ModelTheory},
+  annote =	 "incomplete",
+}
+
+@ARTICLE{GoguenBurstall84a,
+  AUTHOR =	 "J. A. Goguen and R. M. Burstall",
+  TITLE =	 "Some Fundamentals Algebraic Tools for the Semantics
+                  of Computation. {P}art 1: Comma Categories,
+                  Colimits, Signatures and Theories",
+  JOURNAL =	 "Theoretical Computer Science",
+  VOLUME =	 31,
+  PAGES =	 {175--209},
+  YEAR =	 1984,
+  keywords =	 {Metaformalisms},
+}
+
+@ARTICLE{GoguenBurstall84b,
+  AUTHOR =	 "J. A. Goguen and R. M. Burstall",
+  TITLE =	 "Some Fundamentals Algebraic Tools for the Semantics
+                  of Computation. {P}art 2: Signed and Abstract
+                  Theories",
+  JOURNAL =	 "Theoretical Computer Science",
+  VOLUME =	 31,
+  PAGES =	 {263--295},
+  YEAR =	 1984,
+  keywords =	 {Categories},
+}
+
+@INCOLLECTION{GoguenBurstall85,
+  AUTHOR =	 "J. A. Goguen and R. M. Burstall",
+  EDITOR =	 {D. Pitt et al.},
+  TITLE =	 "A Study in the Foundations of Programming
+                  Methodology: Specifications, Institutions, Charters
+                  and Parchments",
+  BOOKTITLE =	 {Category Theory and Computer Programming},
+  SERIES =	 "Lecture Notes in Computer Science",
+  PUBLISHER =	 {Springer Verlag},
+  VOLUME =	 240,
+  PAGES =	 {313-333},
+  YEAR =	 1985,
+  keywords =	 {Metaformalisms},
+}
+
+@ARTICLE{GoguenBurstall92,
+  AUTHOR =	 "J. A. Goguen and R. M. Burstall",
+  TITLE =	 "Institutions: Abstract Model Theory for
+                  Specification and Programming",
+  JOURNAL =	 "Journal of the Association for Computing Machinery",
+  VOLUME =	 39,
+  PAGES =	 {95--146},
+  NOTE =	 {Predecessor in: LNCS 164, 221--256, 1984.},
+  YEAR =	 1992,
+  keywords =	 {Metaformalisms},
+}
+
+@incollection{GoguenDiaconescu94,
+  author =	 "J. A. Goguen and R. Diaconescu",
+  title =	 "Towards an Algebraic Semantics for the Object
+                  Paradigm",
+  booktitle =	 "{RECENT} trends in data type specification: workshop
+                  on specification of abstract data types: {COMPASS}:
+                  selected papers",
+  publisher =	 "Springer Verlag",
+  address =	 "Berlin, Germany",
+  year =	 "1994",
+  keywords =	 {Logics},
+  url =		 "citeseer.nj.nec.com/318274.html"
+}
+
+@unpublished{GoguenRosu01,
+  author =	 {J. Goguen and G. Rosu},
+  title =	 {Institution morphisms},
+  note =	 {Formal aspects of computing, to appear},
+   volume = {13},
+   year = {2002},
+   pages = {274-307},
+  keywords =	 {Morphisms},
+}
+
+@InCollection{GoguenTracz00,
+  key =		 "Goguen \& Tracz",
+  author =	 "Joseph A. Goguen and Will Tracz",
+  title =	 "An Implementation-Oriented Semantics for Module
+                  Composition",
+  booktitle =	 "Foundations of Component-Based Systems",
+  editor =	 "Gary T. Leavens and Murali Sitaraman",
+  year =	 "2000",
+  publisher =	 "Cambridge University Press",
+  address =	 "New York, NY",
+  ISBN =	 "0-521-77164-1",
+  chapter =	 "11",
+  pages =	 "231--263",
+  annote =	 "29 references.",
+  url =		 "citeseer.nj.nec.com/206136.html",
+  keywords =	 {ModelTheory},
+}
+
+@article{HarperSannellaTarlecki94,
+  author =	 {Robert Harper and Donald Sannella and Andrzej
+                  Tarlecki},
+  title =	 {Structured Presentations and Logic Representations},
+  journal =	 {Annals of Pure and Applied Logic},
+  volume =	 67,
+  pages =	 {113--160},
+  year =	 1994,
+  url =		 {ftp://ftp.dcs.ed.ac.uk/pub/dts/apal.ps},
+  postscript =	 {apal.ps},
+  abstract =	 {The purpose of a logical framework such as LF is to
+                  provide a language for defining logical systems
+                  suitable for use in a logic-independent proof
+                  development environment. All inferential activity in
+                  an object logic (in particular, proof search) is to
+                  be conducted in the logical framework via the
+                  representation of that logic in the framework. An
+                  important tool for controlling search in an object
+                  logic, the need for which is motivated by the
+                  difficulty of reasoning about large and complex
+                  systems, is the use of structured theory
+                  presentations. In this paper a rudimentary language
+                  of structured theory presentations is presented, and
+                  the use of this structure in proof search for an
+                  arbitrary object logic is explored. The behaviour of
+                  structured theory presentations under representation
+                  in a logical framework is studied, focusing on the
+                  problem of ``lifting'' presentations from the object
+                  logic to the metalogic of the framework. The topic
+                  of imposing structure on logic presentations, so
+                  that logical systems may themselves be defined in a
+                  modular fashion, is also briefly considered.},
+  comment =	 {Reviewed in MR~95i:03024; this is the extended final
+                  version of
+                  SannellaDT:structure-representation89/89a},
+  keywords =	 {Morphisms},
+}
+
+@unpublished{Hilberdink95,
+  author =	 {H. Hilberdink},
+  title =	 {The End of Syntax. {T}he End of Algebra},
+  note =	 {Manuscripts, St. Peter's College, Oxford},
+  YEAR =	 1995,
+  keywords =	 {Metaformalisms},
+}
+
+@Article{JimenezOrejasEhrig95,
+  author =	 {R. M. Jimenez and F. Orejas and H. Ehrig},
+  title =	 {Compositionality and compatibility of
+                  parameterization and parameter passing in
+                  specification languages},
+  journal =	 {MSCS},
+  year =	 {1995},
+  keywords =	 {ModelTheory},
+  volume =	 {5},
+  number =	 {2},
+  pages =	 {283--314},
+  abstract =	 {In this paper we continue previous work by Sannella,
+                  Sokolowski and Tarlecki on parameterization in
+                  specification languages. Within the loose approach,
+                  we define specification and model level semantics
+                  for two kinds of parameterizations (parameterized
+                  specifications and specifications of parameterized
+                  data types) and describe, in a compositional manner,
+                  parameter passing at both levels. Moreover, the
+                  specification and the model level semantics of
+                  parameter passing are shown to be compatible. We
+                  also show that the results obtained do not only
+                  apply to the loose approach but can also be directly
+                  applicable to the initial framework, and in general
+                  to any other kind of monomorphic framework (i.e., a
+                  framework where all specifications are
+                  monomorphic). In particular, the results obtained
+                  generalize and extend previous results for the
+                  initial approach. Finally, to obtain our results,
+                  new categorical constructions of multiple pushouts,
+                  amalgamations and extensions, which generalize
+                  standard notions of pushouts, amalgamations and
+                  extensions, had to be introduced. },
+}
+
+@inproceedings{KahrsSannellaTarlecki94,
+  author =	 {Stefan Kahrs and Donald Sannella and Andrzej
+                  Tarlecki},
+  title =	 {Interfaces and {E}xtended {ML}},
+  booktitle =	 {Proc.\ {ACM} Workshop on Interface Definition
+                  Languages},
+  location =	 {Portland},
+  pages =	 {111--118},
+  publisher =	 {{ACM} {SIGPLAN} Notices 29(8)},
+  year =	 1994,
+  url =		 {ftp://ftp.dcs.ed.ac.uk/pub/dts/interfaces.ps},
+  postscript =	 {interfaces.ps},
+  abstract =	 {This is a position paper giving our views on the
+                  uses and makeup of module interfaces. The position
+                  espoused is inspired by our work on the Extended ML
+                  (EML) formal software development framework and by
+                  ideas in the algebraic foundations of specification
+                  and formal development. The present state of
+                  interfaces in EML is outlined and set in the context
+                  of plans for a more general EML-like framework with
+                  axioms in interfaces taken from an arbitrary logical
+                  system formulated as an \emph{institution}. Some
+                  more speculative plans are sketched concerning the
+                  simultaneous use of multiple institutions in
+                  specification and development.},
+  keywords =	 {Heterogeneity},
+}
+
+@ARTICLE{KreowskiMossakowski95,
+  TITLE =	 {Equivalence and Difference of Institutions:
+                  Simulating Horn Clause Logic With Based Algebras},
+  AUTHOR =	 {H.-J. Kreowski and T. Mossakowski},
+  JOURNAL =	 { Mathematical Structures in Computer Science},
+  VOLUME =	 {5},
+  YEAR =	 1995,
+  pages =	 {189--215},
+  keywords =	 {Morphisms},
+}
+
+@incollection{Kurz02,
+  author =	 {Alexander Kurz},
+  title =	 {Logics Admitting Final Semantics},
+  pages =	 {238--249},
+  editor =	 {Mogens Nielsen and Uffe Engberg},
+  booktitle =	 {Foundations of Software Science and Computation
+                  Structures, 5th International Conference, FOSSACS
+                  2002. Held as Part of the Joint European Conferences
+                  on Theory and Practice of Software, ETAPS 2002
+                  Grenoble, France, April 8-12, 2002, Proceedings},
+  publisher =	 {Springer},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 {2303},
+  year =	 {2002},
+  isbn =	 {3-540-43366-X},
+  keywords =	 {Metatheorems},
+}
+
+@inproceedings{LopesFiadeiro97,
+  author =	 "Antonia Lopes and Jose Luiz Fiadeiro",
+  title =	 "Preservation and Reflection in Specification",
+  booktitle =	 "Algebraic Methodology and Software Technology",
+  pages =	 "380-394",
+  year =	 "1997",
+  keywords =	 {Logics},
+  abstract =	 {We extend the traditional notion of specification
+                  based on theories and interpretations between
+                  theories to model situations, typical of open,
+                  reactive systems, in which properties exhibited
+                  locally by an object no longer hold when that object
+                  is interconnected as a component of a larger
+                  system. The proposed notion of specification is
+                  based on the observation, due to Winskel, that while
+                  some assertions are preserved across morphisms of
+                  labelled transition systems, other are
+                  reflected. The distinction between these two classes
+                  of assertions leads us to the definition of two
+                  categories of specifications, one that supports
+                  horizontal structuring and another that supports
+                  vertical...},
+  url =		 "citeseer.nj.nec.com/lopes97preservation.html"
+}
+
+@InCollection{LourenSernadas99b,
+  author =	 "H. {Louren{\c c}o} and A. Sernadas",
+  title =	 "An Institution of Hybrid Systems",
+  editor =	 "Didier Bert and Christine Choppy",
+  booktitle =	 "Recent Trends in Algebraic Development Techniques -
+                  Selected Papers",
+  publisher =	 "Springer-Verlag",
+  series =	 "Lecture Notes in Computer Science",
+  volume =	 "1827",
+  pages =	 "219--236",
+  year =	 "2000",
+  ps =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/99-LS-hybint.ps",
+  st =		 "p",
+  proj =	 "problog,acl,logcomp",
+  keywords =	 {Logics},
+}
+
+@Article{LucioOrejasPino99,
+  author =	 {Paqui Lucio and Fernando Orejas and Elvira Pino},
+  title =	 {An algebraic framework for the definition of
+                  compositional semantics of normal logic programs},
+  journal =	 {The Journal of Logic Programming},
+  year =	 {1999},
+  key =		 {ModelTheory Logics},
+  volume =	 {40},
+  number =	 {1},
+  pages =	 {89-123},
+  abstract =	 {The aim of our work is the definition of
+                  compositional semantics for modular units over the
+                  class of normal logic programs. In this sense, we
+                  propose a declarative semantics for normal logic
+                  programs in terms of model classes that is monotonic
+                  in the sense that Mod(P \cup P') \subseteq Mod(P),
+                  for any programs P and P', and we show that in the
+                  model class associated to every program there is a
+                  least model that can be seen as the semantics of the
+                  program, which may be built upwards as the least fix
+                  point of a continuous immediate consequence
+                  operator. In addition, it is proved that this least
+                  model is "typical" for the class of models of
+                  Clark-Kunen's completion of the program. This means
+                  that our semantics is equivalent to Clark-Kunen's
+                  completion. Moreover, following the approach defined
+                  in a previous paper, it is shown that our semantics
+                  constitutes a "specification frame" equipped with
+                  the adequate categorical constructions needed to
+                  define compositional and fully abstract
+                  (categorical) semantics for a number of program
+                  units. In particular, we provide a categorical
+                  semantics of arbitrary normal logic program
+                  fragments which is compositional and fully abstract
+                  with respect to the (standard) union. },
+}
+
+@TechReport{MaibaumFiadeiroSadler90,
+  key =		 "Maibaum \& Fiadeiro \& Sadler",
+  author =	 "T. Maibaum and J. Fiadeiro and M. Sadler",
+  title =	 "Stepwise program development in $\pi$-institutions",
+  institution =	 "Imperial College of Science, Technology and
+                  Medicine, Department of Computing",
+  year =	 "1990",
+  keywords =	 {ProofTheory},
+}
+
+@INCOLLECTION{MartiOlietMeseguer94,
+  AUTHOR =	 {N. Mart\'{\i}-Oliet and J. Meseguer},
+  TITLE =	 {General Logics and Logical Frameworks},
+  BOOKTITLE =	 {What is a Logical System?},
+  EDITOR =	 {D. M. Gabbay},
+  PUBLISHER =	 {Oxford University Press},
+  YEAR =	 1994,
+  keywords =	 {Metaformalisms},
+}
+
+@INCOLLECTION{MartiOlietMeseguer95,
+  AUTHOR =	 {N. Mart\'{\i}-Oliet and J. Meseguer},
+  TITLE =	 {From Abstract Data Types to Logical Frameworks},
+  YEAR =	 1995,
+  keywords =	 {Metaformalisms Morphisms},
+  editor =	 {Egidio Astesiano and Gianna Reggio and Andrzej
+                  Tarlecki},
+  title =	 {Recent Trends in Data Type Specification, 10th
+                  Workshop on Specification of Abstract Data Types
+                  Joint with the 5th COMPASS Workshop, S. Margherita,
+                  Italy, May 30 - June 3, 1994, Selected Papers},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 906,
+  publisher =	 {Springer},
+  pages =	 {48--80},
+}
+
+@Article{MartiniWolter98,
+  author =	 "A. Martini and U. Wolter",
+  title =	 "A systematic study of mappings between institutions",
+  journal =	 "Lecture Notes in Computer Science",
+  volume =	 "1376",
+  pages =	 "300--315",
+  year =	 "1998",
+  coden =	 "LNCSD9",
+  ISSN =	 "0302-9743",
+  bibdate =	 "Sat Oct 10 14:40:24 MDT 1998",
+  acknowledgement =ack-nhfb,
+  keywords =	 {Morphisms},
+}
+
+@Article{MartiniWolter99,
+  author =	 "Alfio Martini and Uwe Wolter",
+  title =	 "A Single Perspective on Arrows between Institutions",
+  journal =	 "Lecture Notes in Computer Science",
+  volume =	 "1548",
+  pages =	 "486--501",
+  year =	 "1999",
+  coden =	 "LNCSD9",
+  ISSN =	 "0302-9743",
+  bibdate =	 "Tue Feb 5 11:53:33 MST 2002",
+  url =
+                  "http://link.springer-ny.com/link/service/series/0558/bibs/1548/15480486.htm; http://link.springer-ny.com/link/service/series/0558/papers/1548/15480486.pdf",
+  acknowledgement =ack-nhfb,
+  keywords =	 {Morphisms},
+}
+
+@TECHREPORT{Mayoh85,
+  AUTHOR =	 {B. Mayoh},
+  TITLE =	 {Galleries and institutions},
+  TYPE =	 {Report {DAIMI} {PB}-191},
+  INSTITUTION =	 {Aarhus University},
+  YEAR =	 1985,
+  keywords =	 {Metaformalisms},
+}
+
+@INCOLLECTION{Meseguer89,
+  AUTHOR =	 "J. Meseguer",
+  TITLE =	 "General Logics",
+  BOOKTITLE =	 "Logic Colloquium 87",
+  PAGES =	 {275--329},
+  PUBLISHER =	 "North Holland",
+  YEAR =	 1989,
+  keywords =	 {Metaformalisms Morphisms},
+}
+
+@article{Meseguer92,
+  AUTHOR =	 {J.~Meseguer},
+  TITLE =	 {Conditional Rewriting as a Unified Model of
+                  Concurrency},
+  JOURNAL =	 {Theoretical Computer Science},
+  VOLUME =	 {96},
+  NUMBER =	 {1},
+  PAGES =	 {73--156},
+  YEAR =	 {1992},
+  keywords =	 {Logics Morphisms},
+}
+
+@incollection{Meseguer98,
+  author =	 {J. Meseguer},
+  title =	 {Membership Algebra as a Logical Framework for
+                  Equational Specification},
+  booktitle =	 {Recent trends in algebraic development
+                  techniques. Proc.\ 12th International Workshop},
+  editor =	 {F. {Parisi Presicce}},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 {1376},
+  pages =	 {18--61},
+  publisher =	 {Springer},
+  year =	 {1998},
+  keywords =	 {Morphisms},
+}
+
+@incollection{Mossakowski00c,
+  Author =	 {T. Mossakowski},
+  Title =	 {Specification in an arbitrary institution with
+                  symbols},
+  Editor =	 {C. Choppy and D. Bert and P. Mosses},
+  Booktitle =	 {Recent Trends in Algebraic Development Techniques,
+                  14th International Workshop, WADT'99, Bonas, France},
+  series =	 "Lecture Notes in Computer Science",
+  publisher =	 "Springer-Verlag",
+  volume =	 {1827},
+  year =	 2000,
+  pages =	 {252--270},
+  keywords =	 {Metaformalisms ModelTheory},
+}
+
+@incollection{Mossakowski01,
+  Author =	 {T. Mossakowski},
+  Title =	 {Heterogeneous development graphs and heterogeneous
+                  borrowing},
+  Booktitle =	 {Foundations of Software Science and Computation
+                  Structures},
+  Editor =	 {M. Nielsen and U. Engberg},
+  series =	 "Lecture Notes in Computer Science",
+  publisher =	 "Springer-Verlag",
+  volume =	 {2303},
+  pages =	 {326--341},
+  year =	 {2002},
+  keywords =	 {Heterogeneity},
+}
+
+@unpublished{Mossakowski02b,
+  Author =	 {T. Mossakowski},
+  Title =	 {Comorphism-based Grothendieck logics},
+  Note =	 {Submitted},
+  keywords =	 {Heterogeneity},
+}
+
+@article{Mossakowski02,
+  author =	 {Till Mossakowski},
+  title =	 {Relating {\CASL} with Other Specification Languages:
+                  the Institution Level},
+  year =	 2002,
+volume = {286},
+pages = {367--475},
+  journal =	 {Theoretical Computer Science},
+  keywords =	 {Morphisms},
+}
+
+@INCOLLECTION{Mossakowski94,
+  AUTHOR =	 "T. Mossakowski",
+  TITLE =	 {A Hierarchy of Institutions separated by properties
+                  of parameterized abstract data types},
+  EDITOR =	 {E. Astesiano and G. Reggio and A. Tarlecki},
+  BOOKTITLE =	 {Recent Trends in Data Type
+                  Specification. Proceedings},
+  SERIES =	 {Lecture Notes in Computer Science},
+  PUBLISHER =	 {Springer Verlag, London},
+  VOLUME =	 906,
+  PAGES =	 {389--405},
+  YEAR =	 1995,
+  keywords =	 {Metatheorems},
+}
+
+@INCOLLECTION{Mossakowski95,
+  AUTHOR =	 "T. Mossakowski",
+  TITLE =	 {Equivalences among various logical frameworks of
+                  partial algebras},
+  BOOKTITLE =	 {Computer Science Logic. 9th Workshop,
+                  CSL'95. Paderborn, Germany, September 1995, Selected
+                  Papers},
+  EDITOR =	 {H. Kleine B\"uning},
+  SERIES =	 {Lecture Notes in Computer Science},
+  VOLUME =	 1092,
+  PUBLISHER =	 {Springer Verlag},
+  PAGES =	 {403--433},
+  YEAR =	 1996,
+  keywords =	 {Morphisms},
+}
+
+@INCOLLECTION{Mossakowski96a,
+  AUTHOR =	 "T. Mossakowski",
+  TITLE =	 "Using limits of parchments to systematically
+                  construct institutions of partial algebras",
+  BOOKTITLE =	 {Recent Trends in Data Type Specifications. 11th
+                  Workshop on Specification of Abstract Data Types},
+  EDITOR =	 {M. Haveraaen and O. Owe and O.-J. Dahl},
+  Publisher =	 {Springer Verlag},
+  VOLUME =	 {1130},
+  series =	 {Lecture Notes in Computer Science},
+  PAGES =	 {379--393},
+  year =	 1996,
+  keywords =	 {Combination},
+}
+
+@INCOLLECTION{Mossakowski96b,
+  AUTHOR =	 "T. Mossakowski",
+  TITLE =	 {Different Types of Arrow Between Logical Frameworks},
+  BOOKTITLE =	 {Proc. ICALP 96},
+  editor =	 {F. Meyer auf der Heide and B. Monien},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 1099,
+  Publisher =	 {Springer Verlag},
+  pages =	 {158--169},
+  year =	 1996,
+  keywords =	 {Morphisms},
+}
+
+@phdthesis{Mossakowski96c,
+  AUTHOR =	 "T. Mossakowski",
+  title =	 {Representations, hierarchies and graphs of
+                  institutions},
+  school =	 {Bremen University},
+  note =	 {Revised version: Logos Verlag, 2001},
+  year =	 1996,
+  keywords =	 {Logics Morphisms},
+}
+
+@INCOLLECTION{Mossakowski99,
+  author =	 "T. Mossakowski",
+  title =	 "Translating {OBJ3} to {\CASL}: the institution
+                  level",
+  series =	 "Lecture Notes in Computer Science",
+  editor =	 "J. L. Fiadeiro",
+  booktitle =	 {Recent Trends in Algebraic Development Techniques,
+                  13th International Workshop, WADT'98, Lisbon,
+                  Portugal, April 1998, Selected Papers},
+  volume =	 {1589},
+  pages =	 {198--214},
+  publisher =	 "Springer-Verlag",
+  year =	 "1999",
+  keywords =	 {Morphisms},
+}
+
+@incollection{MossakowskiEtAl00,
+  Author =	 {T. Mossakowski and S. Autexier and D. Hutter},
+  Title =	 {Extending Development Graphs With Hiding},
+  Editor =	 {H. Hu\ss{}mann},
+  Booktitle =	 {Fundamental Approaches to Software Engineering},
+  Year =	 {2001},
+  series =	 "Lecture Notes in Computer Science",
+  publisher =	 "Springer-Verlag",
+  volume =	 {2029},
+  pages =	 {269--283},
+  keywords =	 {ProofTheory},
+}
+
+@incollection{MossakowskiKlin01,
+  Author =	 {T. Mossakowski and B. Klin},
+  Title =	 {Institution Independent Static Analysis for {\CASL}},
+  Editor =	 {M. Cerioli and G. Reggio},
+  Booktitle =	 {Recent Trends in Algebraic Development Techniques,
+                  15th International Workshop, WADT'01, Genova, Italy},
+  series =	 "Lecture Notes in Computer Science",
+  publisher =	 "Springer-Verlag",
+  year =	 {2002},
+  pages =	 {221--237},
+  volume =	 {2267},
+  keywords =	 {ProofTheory},
+}
+
+@INCOLLECTION{MossakowskiTarleckiPawlowski97a,
+  Author =	 {T. Mossakowski and A. Tarlecki and W. Paw\l{}owski},
+  Title =	 {Combining and Representing Logical Systems},
+  BOOKTITLE =	 {Category Theory and Computer Science, 7th
+                  Int. Conf.},
+  EDITOR =	 {E. Moggi and G. Rosolini},
+  SERIES =	 {Lecture Notes in Computer Science},
+  PUBLISHER =	 {Springer Verlag},
+  VOLUME =	 1290,
+  pages =	 {177--196},
+  YEAR =	 1997,
+  keywords =	 {Combination},
+}
+
+@INCOLLECTION(MossakowskiTarleckiPawlowski97b,
+  Author =	 {T. Mossakowski and A. Tarlecki and W. Paw\l{}owski},
+  Title =	 {Combining and Representing Logical Systems Using
+                  Model-Theoretic Parchments},
+  booktitle =	 {Recent trends in algebraic development
+                  techniques. Proc.\ 12th International Workshop},
+  editor =	 {F. {Parisi Presicce}},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 {1376},
+  pages =	 {349--364},
+  publisher =	 {Springer},
+  year =	 {1998},
+  keywords =	 {Combination},
+)
+
+@INCOLLECTION{Mosses89,
+  AUTHOR =	 {P. D. Mosses},
+  TITLE =	 {Unified Algebras and Institutions},
+  SERIES =	 {Proceedings of the 4th Annual IEEE Symposium on
+                  Logic in Computer Science},
+  PAGES =	 {304--312},
+  YEAR =	 1989,
+  keywords =	 {Logics},
+}
+
+@Misc{NielsenPletat86,
+  title =	 "Polymorphism in an Institutional Framework",
+  author =	 "Mogens Nielsen and Udo Pletat",
+  year =	 "1986",
+  note =	 "Technical University of Denmark",
+  keywords =	 {Logics},
+}
+
+@incollection{Orejas99,
+  AUTHOR =	 {F. Orejas},
+  TITLE =	 {Structuring and Modularity},
+  BOOKTITLE =	 {Algebraic Foundations of Systems Specifications},
+  PUBLISHER =	 {Springer Verlag},
+  pages =	 {159--200},
+  keywords =	 {ModelTheory},
+  EDITOR =	 {E.~Astesiano and H.-J.~Kreowski and
+                  B.~Krieg--Br\"uckner},
+  YEAR =	 {1999},
+}
+
+@Article{OrejasPinoEhrig97,
+  title =	 "Institutions for logic programming",
+  author =	 "Fernando Orejas and Elvira Pino and Hartmut Ehrig",
+  pages =	 "485--511",
+  journal =	 "Theoretical Computer Science",
+  month =	 "28~" # feb,
+  year =	 "1997",
+  volume =	 "173",
+  number =	 "2",
+  preliminary =	 "mfcs::OrejasPE1994",
+  references =	 "\cite{TCS::FalaschiLPM1989}
+                  \cite{POPL::GaifmanS1989} \cite{LICS::GaifmanS1989}
+                  \cite{JACM::goguenB1992} \cite{POPL::JaffarL1987}
+                  \cite{JLOGP::Miller1989} \cite{LICS::Stuckey1991}",
+  key =		 {ModelTheory Logics},
+  abstract =	 {The compositionality of the semantics of logic
+                  programs with respect to (different varieties of)
+                  program union has been studied recently by a number
+                  of researchers. The approaches used can be
+                  considered quite ad hoc in the sense that they
+                  provide, from scratch, the semantic constructions
+                  needed to ensure compositionality and, in some
+                  cases, full abstraction in the given framework. In
+                  this paper, we study the application of general
+                  algebraic methods for obtaining, systematically,
+                  this kind of results. In particular, the method
+                  proposed consists in studying the adequate
+                  institution for describing the given class of logic
+                  programs and, then, in using general
+                  institution-independent results to prove
+                  compositionality and full abstraction. This is done
+                  in detail for the class of definite logic programs
+                  with respect to three kinds of composition
+                  operations: \Omega-union, standard union and module
+                  composition. In addition two different institutions
+                  are considered: the standard institution of Horn
+                  clause logic and a new institution that better
+                  captures the input/output operational behaviour of
+                  logic programs. Finally, a similar solution is
+                  sketched for other classes of logic programs. },
+}
+
+@Article{Pawlowski01,
+  author =	 "Wies{\l}aw Paw{\l}owski",
+  title =	 "Presentations for Abstract Context Institutions",
+  journal =	 "Lecture Notes in Computer Science",
+  volume =	 "2267",
+  pages =	 "256--279",
+  year =	 "2001",
+  ISSN =	 "0302-9743",
+  url =
+                  "http://link.springer-ny.com/link/service/series/0558/bibs/2267/22670256.htm; http://link.springer-ny.com/link/service/series/0558/papers/2267/22670256.pdf",
+  keywords =	 {Metaformalisms},
+}
+
+@incollection{Pawlowski95a,
+  author =	 {W. Paw{\l}owski},
+  title =	 {Context Institutions},
+  BOOKTITLE =	 {Recent Trends in Data Type Specifications. 11th
+                  Workshop on Specification of Abstract Data Types},
+  EDITOR =	 {M. Haveraaen and O. Owe and O.-J. Dahl},
+  Publisher =	 {Springer Verlag},
+  SERIES =	 {Lecture Notes in Computer Science},
+  VOLUME =	 {1130},
+  PAGES =	 {436--457},
+  year =	 1996,
+  keywords =	 {Metaformalisms},
+}
+
+@incollection(Pawlowski98,
+  author =	 {W. Paw{\l}owski},
+  title =	 {Context Parchments},
+  booktitle =	 {Recent trends in algebraic development
+                  techniques. Proc.\ 12th International Workshop},
+  editor =	 {F. {Parisi Presicce}},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 {1376},
+  pages =	 {381--401},
+  publisher =	 {Springer},
+  year =	 {1998},
+  keywords =	 {Metaformalisms},
+)
+
+@INCOLLECTION{Poigne89,
+  AUTHOR =	 {A. Poign\'{e}},
+  TITLE =	 {Foundations are Rich Institutions, but Institutions
+                  are Poor Foundations},
+  BOOKTITLE =	 {Categorical Methods in Computer Science, With
+                  Aspects from Topology},
+  EDITOR =	 {H. Ehrig et al.},
+  SERIES =	 {Lecture Notes in Computer Science},
+  PUBLISHER =	 {Springer Verlag},
+  VOLUME =	 393,
+  PAGES =	 {82--101},
+  YEAR =	 1989,
+  keywords =	 {Metaformalisms},
+}
+
+@PHDTHESIS{Posegga88,
+  AUTHOR =	 {Michael Posegga},
+  TITLE =	 {Algebraic model theories: a contribution to the
+                  generalization of the notion ``logical system''},
+  SCHOOL =	 {Humboldt Universit\"at Berlin???},
+  NOTE =	 {Report der Akademie der Wissenschaften der DDR,
+                  1988-4},
+  YEAR =	 1988,
+  keywords =	 {Metaformalisms},
+}
+
+@Article{RasgaEtAl01,
+  abstract =	 "We give a categorial characterization of how
+                  labelled deduction systems for logics with a
+                  propositional basis behave under unconstrained
+                  fibring and under fibring that is constrained by
+                  symbol sharing. At the semantic level, we introduce
+                  a general semantics for our systems and then give a
+                  categorial characterization of fibring of
+                  models. Based on this, we establish the conditions
+                  under which our systems are sound and complete with
+                  respect to the general semantics for the
+                  corresponding logics, and establish requirements on
+                  logics and systems so that completeness is preserved
+                  by both forms of fibring.",
+  author =	 "Jo{\~a}o Rasga and Am{\'\i}lcar Sernadas and
+                  Cristina Sernadas and Luca Vigan{\`o}",
+  journal =	 "Journal of Logic and Computation",
+  language =	 "USenglish",
+  note =	 "To appear",
+  title =	 "Fibring Labelled Deduction Systems",
+  year =	 "2001",
+  keywords =	 {Combination},
+}
+
+@InProceedings{Reggio91,
+  author =	 "G. Reggio",
+  title =	 "Entities: An Institution for Dynamic Systems",
+  pages =	 "246--265",
+  ISBN =	 "3-540-54496-8",
+  editor =	 "Hartmut Ehrig and Klaus P. Jantke and Fernando
+                  Orejas and Horst Reichel",
+  booktitle =	 "Proceedings of Recent Trends in Data Type
+                  Specification",
+  month =	 apr,
+  series =	 "LNCS",
+  volume =	 "534",
+  publisher =	 "Springer",
+  address =	 "Berlin, Germany",
+  year =	 "1991",
+  pages =	 "246--265",
+  keywords =	 {Logics},
+}
+
+@Article{Rosu94,
+  author =	 "G. Rosu",
+  title =	 "The Institution of Order-Sorted Equational Logic",
+  journal =	 "Bulletin of the European Association for Theoretical
+                  Computer Science",
+  volume =	 "53",
+  pages =	 "250--255",
+  month =	 jun,
+  year =	 "1994",
+  note =	 "Technical Contributions",
+  keywords =	 {Logics},
+}
+
+@Article{Rosu99,
+  author =	 "G. Rosu",
+  title =	 "{Kan} Extensions of Institutions",
+  journal =	 "J.UCS: Journal of Universal Computer Science",
+  volume =	 "5",
+  number =	 "8",
+  pages =	 "482--??",
+  day =		 "28",
+  month =	 aug,
+  year =	 "1999",
+  ISSN =	 "0948-6968",
+  url =
+                  "http://www.jucs.org/jucs_5_8/kan_extensions_of_institutions",
+  acknowledgement =ack-nhfb,
+  keywords =	 {Metatheorems},
+}
+
+@INCOLLECTION{SalibraScollo92,
+  AUTHOR =	 "A. Salibra and G. Scollo",
+  TITLE =	 "A soft stairway to institutions",
+  BOOKTITLE =	 "Proc. 8th ADT workshop",
+  EDITOR =	 {M. Bidoit and C. Choppy},
+  SERIES =	 "Lecture Notes in Computer Science",
+  VOLUME =	 655,
+  PAGES =	 {310--329},
+  PUBLISHER =	 {Springer Verlag},
+  YEAR =	 1992,
+  keywords =	 {Metaformalisms Morphisms},
+}
+
+@TechReport{SalibraScollo92,
+  author =	 "A. Salibra and G. Scollo",
+  title =	 "Compactness and Loewenheim-Skolem Properties in
+                  Categories of Pre-Institutions",
+  address =	 "Liens",
+  year =	 "1992",
+  keywords =	 {Metatheorems},
+}
+
+@Article{SalibraScollo93a,
+  author =	 {A. Salibra and G. Scollo},
+  title =	 {A reduction scheme by pre-institution
+                  transformations, (abstract)},
+  journal =	 {Journal of Symbolic Logic},
+  year =	 {1993},
+  key =		 {Morphisms},
+  volume =	 {58},
+  pages =	 {1130-1131},
+}
+
+@InCollection{SalibraScollo93b,
+  author =	 {A. Salibra and G. Scollo},
+  title =	 {Compactness and L\"{o}wenheim-Skolem properties in
+                  pre-institution categories},
+  booktitle =	 {Algebraic Methods in Logic and in Computer Science},
+  keywords =	 {Morphisms Metatheorems},
+  pages =	 {67--94},
+  year =	 {1993},
+  editor =	 {C.Rauszer},
+  volume =	 {28},
+  series =	 {Banach Center Publications},
+}
+
+@Article{SalibraScollo96,
+  title =	 "Interpolation and compactness in categories of
+                  pre-institutions",
+  author =	 "Antonino Salibra and Giuseppe Scollo",
+  pages =	 "261--286",
+  journal =	 "Mathematical Structures in Computer Science",
+  month =	 jun,
+  year =	 "1996",
+  volume =	 "6",
+  number =	 "3",
+  references =	 "\cite{JACM::GoguenB1992} \cite{TCS::MancaSS1990}
+                  \cite{IC::SannellaT1988} \cite{TCS::Tarlecki1985}",
+  keywords =	 {Morphisms Metatheorems},
+}
+
+@phdthesis{Sannella82,
+  author =	 {Donald Sannella},
+  title =	 {Semantics, Implementation and Pragmatics of {C}lear,
+                  a Program Specification Language},
+  school =	 {Department of Computer Science, University of
+                  Edinburgh},
+  year =	 1982,
+  abstract =	 {Specifications are necessary for communicating
+                  decisions and intentions and for documenting results
+                  at many stages of the program development
+                  process. Informal specifications are typically used
+                  today, but they are imprecise and often
+                  ambiguous. Formal specifications are precise and
+                  exact but are more difficult to write and
+                  understand. We present work aimed toward enabling
+                  the practical use of formal specifications in
+                  program development, concentrating on the Clear
+                  language for structured algebraic specification. Two
+                  different but equivalent denotational semantics for
+                  Clear are given. One is a version of a semantics due
+                  to Burstall and Goguen with a few corrections, in
+                  which the category-theoretic notion of a colimit is
+                  used to define Clear's structuring operations
+                  independently of the underlying ``institution''
+                  (logical formalism). The other semantics defines the
+                  same operations by means of straightforward
+                  set-theoretic constructions; it is not
+                  institution-independent but it can be modified to
+                  handle all institutions of apparent interest. Both
+                  versions of the semantics have been implemented. The
+                  set-theoretic implementation is by far the more
+                  useful of the two, and includes a parser and
+                  typechecker. An implementation is useful for
+                  detecting syntax and type errors in specifications,
+                  and can be used as a front end for systems which
+                  manipulate specifications. Several large
+                  specifications which have been processed by the
+                  set-theoretic implementation are presented. A
+                  semi-automatic theorem prover for Clear built on top
+                  of the Edinburgh LCF system is described. It takes
+                  advantage of the structure of Clear specifications
+                  to restrict the available information to that which
+                  seems relevant to proving the theorem at hand. If
+                  the system is unable to prove a theorem
+                  automatically the user can attempt the proof
+                  interactively using the high-level primitives and
+                  inference rules provided. We lay a theoretical
+                  foundation for the use of Clear in systematic
+                  program development by investigating a new notion of
+                  the implementation of a specification by a
+                  lower-level specification. This notion extends to
+                  handle parameterised specifications. We show that
+                  this implementation relation is transitive and
+                  commutes with Clear's structuring operations under
+                  certain conditions. This means that a large
+                  specification can be refined to a program in a
+                  gradual and modular fashion, where the correctness
+                  of the individual refinements guarantees the
+                  correctness of the resulting program.},
+  comment =	 {Report CST-17-82},
+  keywords =	 {ModelTheory},
+}
+
+@article{SannellaSokolowskiTarlecki92,
+  author =	 {Donald Sannella and Stefan Soko{\l}owski and Andrzej
+                  Tarlecki},
+  title =	 {Toward Formal Development of Programs from Algebraic
+                  Specifications: Parameterisation Revisited},
+  journal =	 {Acta Informatica},
+  volume =	 29,
+  number =	 8,
+  pages =	 {689--736},
+  comment =	 {Reviewed in CR 9405-0310, CR 9503-0176; an early
+                  version of this, with an extended example in an
+                  appendix, appeared as report 6/90, Univ. Bremen,
+                  1990},
+  year =	 1992,
+  url =		 {ftp://ftp.dcs.ed.ac.uk/pub/dts/param.ps},
+  postscript =	 {param.ps},
+  abstract =	 {Parameterisation is an important mechanism for
+                  structuring programs and specifications into modular
+                  units. The interplay between parameterisation (of
+                  programs and of specifications) and specification
+                  (of parameterised and of non-parameterised programs)
+                  is analysed, exposing important semantic and
+                  methodological differences between specifications of
+                  parameterised programs and parameterised
+                  specifications. The extension of parameterisation
+                  mechanisms to the higher-order case is considered,
+                  both for parameterised programs and parameterised
+                  specifications, and the methodological consequences
+                  of such an extension are explored. A specification
+                  formalism with parameterisation of an arbitrary
+                  order is presented. Its denotational-style semantics
+                  is accompanied by an inference system for proving
+                  that an object satisfies a specification. The
+                  formalism includes the basic specification-building
+                  operations of the ASL specification language and is
+                  institution independent.},
+  keywords =	 {ModelTheory},
+}
+
+@inbook{SannellaTarlecki-ch10,
+  Author =	 {D. Sannella and A. Tarlecki},
+  Title =	 {Working with multiple logical systems, In:
+                  Foundations of Algebraic Specifications and Formal
+                  Program Development},
+  publisher =	 {Cambridge University Press, to appear},
+  note =	 {See
+                  \verb|http://zls.mimuw.edu.pl/~tarlecki/book/index.html|},
+  chapter =	 10,
+  keywords =	 {Morphisms},
+}
+
+@inproceedings{SannellaTarlecki86,
+  author =	 {Donald Sannella and Andrzej Tarlecki},
+  title =	 {Extended {ML}: An Institution-Independent Framework
+                  for Formal Program Development},
+  booktitle =	 {Proc.\ Workshop on Category Theory and Computer
+                  Programming},
+  location =	 {Guildford},
+  publisher =	 {Springer},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 240,
+  pages =	 {364--389},
+  year =	 1986,
+  url =		 {ftp://ftp.dcs.ed.ac.uk/pub/dts/abstract-eml.ps},
+  postscript =	 {abstract-eml.ps},
+  abstract =	 {The Extended ML specification language provides a
+                  framework for the formal stepwise development of
+                  modular programs in the Standard ML programming
+                  language from specifications. The object of this
+                  paper is to equip Extended ML with a semantics which
+                  is completely independent of the logical system used
+                  to write specifications, building on Goguen and
+                  Burstall's work on the notion of an
+                  \emph{institution} as a formalisation of the concept
+                  of a logical system. One advantage of this is that
+                  it permits freedom in the choice of the logic used
+                  in writing specifications; an intriguing side-effect
+                  is that it enables Extended ML to be used to develop
+                  programs in languages other than Standard ML since
+                  we view programs as simply Extended ML
+                  specifications which happen to include only
+                  ``executable'' axioms. The semantics of Extended ML
+                  is defined in terms of the primitive
+                  specification-building operations of the ASL kernel
+                  specification language which itself has an
+                  institution-independent semantics. It is not
+                  possible to give a semantics for Extended ML in an
+                  institutional framework without extending the notion
+                  of an institution; the new notion of an
+                  \emph{institution with syntax} is introduced to
+                  provide an adequate foundation for this
+                  enterprise. An institution with syntax is an
+                  institution with three additions: the category of
+                  signatures is assumed to form a concrete category;
+                  an additional functor is provided which gives
+                  concrete syntactic representations of sentences; and
+                  a natural transformation associates these concrete
+                  objects with the ``abstract'' sentences they
+                  represent. We use the first addition to ``lift''
+                  certain necessary set-theoretic constructions to the
+                  category of signatures, and the other two additions
+                  to deal with the low-level semantics of axioms.},
+  comment =	 {Reviewed in MR~88f:68100; somewhat obsolete with
+                  respect to the current design of Extended ML but the
+                  technicalities are still relevant},
+  keywords =	 {Metaformalisms},
+}
+
+@article{SannellaTarlecki87,
+  author =	 {Donald Sannella and Andrzej Tarlecki},
+  title =	 {On Observational Equivalence and Algebraic
+                  Specification},
+  journal =	 {Journal of Computer and System Sciences},
+  volume =	 34,
+  pages =	 {150--178},
+  year =	 1987,
+  abstract =	 {The properties of a simple and natural notion of
+                  observational equivalence of algebras and the
+                  corresponding specification-building operation are
+                  studied. We begin with a definition of observational
+                  equivalence which is adequate to handle reachable
+                  algebras only, and show how to extend it to cope
+                  with unreachable algebras and also how it may be
+                  generalised to make sense under an arbitrary
+                  institution. Behavioural equivalence is treated as
+                  an important special case of observational
+                  equivalence, and its central role in program
+                  development is shown by means of an example.},
+  comment =	 {Reviewed in MR 88j:68118 and CR 8808-0615; this is
+                  the final complete version of
+                  SannellaDT:observational-equivalence85},
+  keywords =	 {ModelTheory},
+}
+
+@article{SannellaTarlecki88a,
+  author =	 {Donald Sannella and Andrzej Tarlecki},
+  title =	 {Toward Formal Development of Programs from Algebraic
+                  Specifications: Implementations Revisited},
+  journal =	 {Acta Informatica},
+  volume =	 25,
+  pages =	 {233--281},
+  year =	 1988,
+  url =		 {ftp://ftp.dcs.ed.ac.uk/pub/dts/impl.ps},
+  postscript =	 {impl.ps},
+  abstract =	 {The program development process is viewed as a
+                  sequence of implementation steps leading from a
+                  specification to a program. Based on an elementary
+                  notion of refinement, two notions of implementation
+                  are studied: constructor implementations which
+                  involve a construction ``on top of'' the
+                  implementing specification, and abstractor
+                  implementations which additionally provide for
+                  abstraction from some details of the implemented
+                  specification. These subsume most formal notions of
+                  implementation in the literature. Both kinds of
+                  implementations satisfy a vertical composition and a
+                  (modified) horizontal composition property. All the
+                  definitions and results are shown to generalise to
+                  the framework of an arbitrary institution, and a way
+                  of changing institutions during the implementation
+                  process is introduced. All this is illustrated by
+                  means of simple concrete examples.},
+  comment =	 {This is the final version of
+                  SannellaDT:implementations-revisited87},
+  keywords =	 {ModelTheory},
+}
+
+@article{SannellaTarlecki88b,
+  author =	 {Donald Sannella and Andrzej Tarlecki},
+  title =	 {Specifications in an Arbitrary Institution},
+  journal =	 {Information and Computation},
+  volume =	 76,
+  pages =	 {165--210},
+  year =	 1988,
+  abstract =	 {A formalism for constructing and using axiomatic
+                  specifications in an arbitrary logical system is
+                  presented. This builds on the framework provided by
+                  Goguen and Burstall's work on the notion of an
+                  \emph{institution} as a formalisation of the concept
+                  of a logical system for writing specifications. We
+                  show how to introduce free variables into the
+                  sentences of an arbitrary institution and how to add
+                  quantifiers which bind them. We use this foundation
+                  to define a set of primitive operations for building
+                  specifications in an arbitrary institution based
+                  loosely on those in the ASL kernel specification
+                  language. We examine the set of operations which
+                  results when the definitions are instantiated in
+                  institutions of total and partial first-order logic
+                  and compare these with the operations found in
+                  existing specification languages. We present proof
+                  rules which allow proofs to be conducted in
+                  specifications built using the operations we
+                  define. Finally, we introduce a simple mechanism for
+                  defining and applying parameterised specifications
+                  and briefly discuss the program development
+                  process.},
+  comment =	 {Reviewed in MR 89d:68056 and Zbl 654.68017; an early
+                  short version was
+                  SannellaDT:specs-arbitrary-institution84},
+  keywords =	 {ModelTheory},
+}
+
+@Article{Schobbens93,
+  author =	 {Pierre-Yves Schobbens},
+  title =	 {Exceptions for algebraic specifications: on the
+                  meaning of "but"},
+  journal =	 {Science of Computer Programming},
+  year =	 {1993},
+  key =		 {Metaformalisms},
+  volume =	 {20},
+  pages =	 {73--111},
+  abstract =	 {When building large specifications from
+                  requirements, the structure of the specification
+                  becomes a central problem: the specification
+                  language should allow a decomposition that closely
+                  reflects the structure of requirements. In this
+                  paper, we propose a decomposition into defaults
+                  (general rules) and exceptions to these general
+                  rules that fits the requirements found in some
+                  application domains. It is complementary, and builds
+                  upon, the modular decomposition proposed by the
+                  algebraic specification school. Its definition is
+                  based on abstract model theory, leading to the
+                  definition of default institutions. },
+}
+
+@Incollection{SchroederEtAl01a,
+  author =	 "Lutz Schr{\"o}der and Till Mossakowski and Andrzej
+                  Tarlecki and Bartek Klin and Piotr Hoffman",
+  title =	 "Semantics of Architectural Specifications in {CASL}",
+  Editor =	 {H. Hu\ss{}mann},
+  Booktitle =	 {Fundamental Approaches to Software Engineering},
+  series =	 "Lecture Notes in Computer Science",
+  publisher =	 "Springer-Verlag",
+  volume =	 "2029",
+  pages =	 "253--268",
+  year =	 "2001",
+  ISSN =	 "0302-9743",
+  url =
+                  "http://link.springer-ny.com/link/service/series/0558/bibs/2029/20290253.htm; http://link.springer-ny.com/link/service/series/0558/papers/2029/20290253.pdf",
+  keywords =	 {ModelTheory},
+}
+
+@phdthesis{Scollo93,
+  author =	 {G. Scollo},
+  title =	 {On the engineering of logics},
+  year =	 {1993},
+  note =	 {University of Twente, Enschede},
+  keywords =	 {Metaformalisms Morphisms},
+}
+
+@Article{Sernadas00a,
+  author =	 "Am\'ilcar Sernadas",
+  title =	 "Review of {\em Fibring Logics}, by {D}ov
+                  {M}. {G}abbay",
+  journal =	 "Journal of Logic, Language, and Information",
+  year =	 "2000",
+  volume =	 "9",
+  number =	 "4",
+  pages =	 "511--513",
+  xref =	 "Review of gabbay:1999a.",
+  topic =	 "fibred-semantics;modal-logic;",
+  keywords =	 {Combination},
+}
+
+@InCollection{SernadasCostaSernadas94,
+  author =	 "A. Sernadas and J. F. Costa and C. Sernadas",
+  title =	 "An Institution of Object Behaviour",
+  booktitle =	 "Recent Trends in Data Type Specification",
+  editor =	 "H. Ehrig and F. Orejas",
+  publisher =	 "Springer-Verlag",
+  series =	 "Lecture Notes in Computer Science",
+  year =	 "1994",
+  pages =	 "337--350",
+  volume =	 "785",
+  ps =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/94-SCS-iob.ps",
+  st =		 "p",
+  keywords =	 {Logics},
+}
+
+@incollection{SernadasEtAl00,
+  author =	 {A. Sernadas and C. Sernadas and C. Caleiro and
+                  T. Mossakowski},
+  booktitle =	 {Frontiers of Combining Systems 2},
+  editor =	 {D. Gabbay and Rijke, M. de},
+  pages =	 {295--316},
+  publisher =	 {Research Studies Press},
+  title =	 {Categorical Fibring of Logics with Terms and Binding
+                  Operators},
+  year =	 {2000},
+  series =	 {Studies in Logic and Computation},
+  keywords =	 {Combination},
+}
+
+@InCollection{SernadasSernadas86,
+  author =	 "C. Sernadas and A. Sernadas",
+  title =	 "Conceptual Modeling Abstractions as Parameterized
+                  Theories in Institutions",
+  booktitle =	 "Database Semantics, N-H",
+  year =	 "1986",
+  keywords =	 {ModelTheory},
+}
+
+@TechReport{SernadasSernadas93,
+  author =	 "A. Sernadas and C. Sernadas",
+  title =	 "Denotational Semantics of Object Specification
+                  Within an Arbitrary Temporal Logic Institution",
+  type =	 "Research Report",
+  institution =	 "Section of Computer Science, Department of
+                  Mathematics, Instituto Superior T\'ecnico",
+  address =	 "1049-001 Lisboa, Portugal",
+  year =	 "1993",
+  note =	 "Presented at IS-CORE Workshop 93",
+  ps =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/93-SS-osli.ps",
+  st =		 "c",
+  keywords =	 {Metaformalisms ModelTheory},
+}
+
+@techreport{SernadasSernadas95,
+  author =	 {A. Sernadas and C. Sernadas},
+  title =	 {Theory Spaces},
+  type =	 {Research Report, {DMIST}, 1096 {L}isboa, {P}ortugal},
+  note =	 {Presented at ISCORE'95 and ADT/COMPASS'95},
+  year =	 1995,
+  keywords =	 {Metaformalisms},
+}
+
+@article{SernadasSernadasCaleiro97a,
+  author =	 {A. Sernadas and C. Sernadas and C. Caleiro},
+  title =	 {Fibring of logics as a categorial construction},
+  journal =	 {Journal of Logic and Computation},
+  volume =	 {8},
+  pages =	 {1--31},
+  year =	 {1998},
+  keywords =	 {Combination},
+}
+
+@article{SernadasSernadasCaleiro97b,
+  author =	 {A. Sernadas and C. Sernadas and C. Caleiro},
+  title =	 {Synchronization of Logics},
+  journal =	 {Studia Logica},
+  volume =	 59,
+  number =	 2,
+  year =	 1997,
+  pages =	 {217-247},
+  keywords =	 {Combination},
+}
+
+@incollection{SernadasSernadasCaleiro97c,
+  author =	 {A. Sernadas and C. Sernadas and C. Caleiro},
+  title =	 {Synchronization of Logics with Mixed Rules:
+                  Completeness Preservation},
+  booktitle =	 {AMAST97},
+  publisher =	 {Springer-Verlag},
+  year =	 1997,
+  volume =	 "1349",
+  pages =	 "465--478",
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 {1349},
+  keywords =	 {Combination},
+}
+
+@article{SernadasSernadasCaleiro97d,
+  author =	 {A. Sernadas and C. Sernadas and C. Caleiro},
+  title =	 {Fibring of Logics as a Categorial Construction},
+  year =	 1998,
+  journal =	 {Journal of Logic and Computation},
+  volume =	 9,
+  pages =	 {149--179},
+  year =	 1999,
+  keywords =	 {Combination},
+}
+
+@InProceedings{SernadasSernadasVelenca94,
+  author =	 "A. Sernadas and C. Sernadas and J. M. Valenca",
+  title =	 "A Theory-Based Topological Notion of Institution",
+  editor =	 "E. Astesiano and G. Reggio and A. Tarlecki",
+  booktitle =	 "Recent Trends in Data Type Specification",
+  series =	 "Lecture Notes in Computer Science",
+  publisher =	 "Springer-Verlag",
+  year =	 "1994",
+  pages =	 "420--436",
+  volume =	 906,
+  keywords =	 {Metaformalisms},
+}
+
+@TechReport{SernadasSernadasZanardo01,
+  author =	 "A. Sernadas and C. Sernadas and A. Zanardo",
+  institution =	 "Section of Computer Science, Department of
+                  Mathematics, Instituto Superior T\'ecnico",
+  address =	 "1049-001 Lisboa, Portugal",
+  note =	 "Submitted for publication",
+  title =	 "Fibring modal first-order logics: Completeness
+                  preservation",
+  type =	 "Preprint",
+  year =	 "2001",
+  ps =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/01-SSZ-fiblog4.ps",
+  pdf =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/01-SSZ-fiblog4.pdf",
+  st =		 "s",
+  proj =	 "fiblog",
+  keywords =	 {Combination},
+}
+
+@techreport{Stefaneas92,
+  author =	 {P. Stefaneas},
+  title =	 {The first order parchment},
+  institution =	 {Oxford University Computing Laboratory},
+  type =	 {Report {PRG}-{TR}-16-92},
+  year =	 1992,
+  keywords =	 {Metaformalisms},
+}
+
+@ARTICLE{Tarlecki85,
+  AUTHOR =	 "A. Tarlecki",
+  TITLE =	 "On the Existence of Free Models in Abstract
+                  Algebraic Institutions",
+  JOURNAL =	 "Theoretical Computer Science ",
+  VOLUME =	 37,
+  PAGES =	 {269--304},
+  YEAR =	 1985,
+  keywords =	 {Metatheorems},
+}
+
+@ARTICLE{Tarlecki86a,
+  AUTHOR =	 "A. Tarlecki",
+  TITLE =	 "Quasi-varieties in Abstract Algebraic Institutions",
+  JOURNAL =	 "Journal of Computer and System Sciences",
+  VOLUME =	 33,
+  PAGES =	 {333--360},
+  YEAR =	 1986,
+  keywords =	 {ModelTheory Metatheorems},
+}
+
+@incollection{Tarlecki86b,
+  Author =	 {A. Tarlecki},
+  Title =	 {Bits and pieces of the theory of institutions},
+  booktitle =	 {Proc.\ Intl.\ Workshop on Category Theory and
+                  Computer Programming, Guildford 1985},
+  editor =	 {D. Pitt and S. Abramsky and A. Poign\'e and
+                  D. Rydeheard},
+  series =	 {Lecture Notes in Computer Science},
+  volume =	 240,
+  pages =	 {334--363},
+  publisher =	 {Springer-Verlag},
+  year =	 1986,
+  keywords =	 {Metatheorems Combination},
+}
+
+@UNPUBLISHED{Tarlecki87,
+  AUTHOR =	 {A. Tarlecki},
+  TITLE =	 {Institution representation},
+  NOTE =	 {draft note},
+  YEAR =	 1987,
+  keywords =	 {Morphisms},
+}
+
+@techreport{Tarlecki96b,
+  Author =	 {A. Tarlecki},
+  Title =	 {Structural properties of some categories of
+                  institutions},
+  Institution =	 {Warsaw University},
+  Year =	 {1996},
+  keywords =	 {Metatheorems},
+  url =		 "citeseer.nj.nec.com/tarlecki96structural.html",
+  abstract =	 {This is a technical paper stating and proving
+                  completeness and cocompleteness results for various
+                  categories of institutions. 1 Introduction This is a
+                  technical companion report to [Tar96], where an
+                  overview of various notions of a mapping between
+                  institutions is given and some structural properties
+                  of the resulting categories of institutions are
+                  indicated. The main goal of the current report is to
+                  provide technical statements of these results and to
+                  prove them in sufficient detail. Some of the results
+                  given here have been only hinted at in [Tar96], some
+                  of them are repeated from [Tar96], and some are
+                  known from the earlier literature. },
+}
+
+@misc{Tarlecki97,
+  author =	 "Andrzej Tarlecki",
+  title =	 "Limits and colimits in some categories of
+                  institutions",
+  keywords =	 {Metatheorems Morphisms Combination},
+  abstract =	 {This paper presents a number of concepts of a
+                  mapping between logical systems modelled as
+                  institutions, discusses their mutual merits and
+                  demerits, and sketches their role in the process of
+                  system specification and development. Some simple
+                  properties of the resulting categories of
+                  institutions are given. 1 Introduction We have to
+                  live with a multitude of logical systems used in
+                  various approaches to software specification and
+                  development. The proliferation of logical systems in
+                  the area is not just researchers' fancy, but results
+                  from the very practical needs to capture various
+                  aspects of software systems and to cater for various
+                  programming paradigms. Each of them leads to a
+                  different... },
+  url =		 "citeseer.nj.nec.com/tarlecki97limit.html",
+}
+
+@InProceedings{Tarlecki98,
+  author =	 {A. Tarlecki},
+  title =	 {Towards Heterogeneous Specifications},
+  booktitle =	 {Frontiers of Combining Systems 2, 1998},
+  editor =	 {D. Gabbay and Rijke, M. de},
+  publisher =	 {Research Studies Press},
+  year =	 {2000},
+  pages =	 {337--360},
+  series =	 {Studies in Logic and Computation},
+  keywords =	 {Heterogeneity},
+}
+
+@incollection{Tarlecki99,
+  AUTHOR =	 {A. Tarlecki},
+  TITLE =	 {Institutions: An abstract framework for formal
+                  specifications},
+  BOOKTITLE =	 {Algebraic Foundations of Systems Specifications},
+  PUBLISHER =	 {Springer Verlag},
+  pages =	 {105--130},
+  EDITOR =	 {E.~Astesiano and H.-J.~Kreowski and
+                  B.~Krieg--Br\"uckner},
+  keywords =	 {Metaformalisms},
+  YEAR =	 {1999},
+}
+
+@ARTICLE{TarleckiGoguenBurstall91,
+  AUTHOR =	 "A. Tarlecki and R. M. Burstall and J. A. Goguen",
+  TITLE =	 "Some Fundamentals Algebraic Tools for the Semantics
+                  of Computation. {P}art 3: Indexed Categories",
+  JOURNAL =	 "Theoretical Computer Science",
+  VOLUME =	 91,
+  PAGES =	 {239--264},
+  YEAR =	 1991,
+  keywords =	 {Categories},
+}
+
+@Article{VelosoFiadeiroVeloso02,
+  author =	 {Paulo A. S. Veloso and Jos\`e L. Fiadeiro and Sheila
+                  R. M. Veloso},
+  title =	 {On local modularity and interpolation in entailment
+                  systems},
+  journal =	 {Information Processing Letters},
+  year =	 {2002},
+  keywords =	 {ProofTheory},
+  volume =	 {82},
+  number =	 {4},
+  pages =	 {203--211},
+  abstract =	 {We generalise and clarify connections between
+                  variants of modularity (preservation of
+                  faithfulness) and interpolation by localising them
+                  to a diagram in an entailment system. The variants
+                  of modularity arise naturally from the idea of
+                  building specifications in steps. We establish, by
+                  an algebraic approach, connections between these
+                  variants and (the existence of) versions of
+                  interpolating specifications. We also extend these
+                  correspondences to specification and interpolating
+                  families, and clarify the role of pushout diagrams
+                  in this context. },
+}
+
+@Article{VelosoVeloso01,
+  author =	 "Paulo A. S. Veloso and Sheila R. M. Veloso",
+  title =	 "On local modularity variants and
+                  {$\Pi$}-institutions",
+  journal =	 "Information Processing Letters",
+  volume =	 "77",
+  number =	 "5--6",
+  pages =	 "247--253",
+  day =		 "31",
+  month =	 mar,
+  year =	 "2001",
+  coden =	 "IFPLAT",
+  abstract =	 {We examine some variants of modularity (preservation
+                  of faithfulness) by localizing them to a commutative
+                  diagram in a \Pi-institution. We address, by means
+                  of an algebraic approach, the question of when a
+                  specification is modular for a given pair of
+                  specifications. Motivated by design considerations,
+                  we extend this notion to families, which leads to
+                  simpler variants, with decoupled connections. },
+  ISSN =	 "0020-0190",
+  bibdate =	 "Wed Apr 18 07:11:20 MDT 2001",
+  url =
+                  "http://www.elsevier.nl/gej-ng/10/23/20/68/32/28/abstract.html; http://www.elsevier.nl/gej-ng/10/23/20/68/32/28/article.pdf",
+  acknowledgement =ack-nhfb,
+  keywords =	 {ProofTheory},
+}
+
+@INCOLLECTION{Wolter95,
+  author =	 {Wolter, U.},
+  title =	 {Institutional Frames},
+  BOOKTITLE =	 {Recent Trends in Data Type
+                  Specification. Proceedings},
+  EDTIOR =	 {E. Astesiano and G. Reggio and A. Tarlecki},
+  SERIES =	 {Lecture Notes in Computer Science},
+  PUBLISHER =	 {Springer Verlag, London},
+  VOLUME =	 906,
+  year =	 {1995},
+  pages =	 {469--482},
+  keywords =	 {Metaformalisms},
+}
+
+@techreport{WolterEtAl94,
+  author =	 {Wolter, U. and Klar, M. and Wess{\"a}ly, R. and
+                  Cornelius, F.},
+  title =	 {{Four Institutions -- A Unified Presentation of
+                  Logical Systems for Specification}},
+  institution =	 {TU Berlin, Fachbereich Informatik},
+  year =	 {1994},
+  number =	 {Bericht-Nr. 94-24},
+  keywords =	 {Logics},
+}
+
+@InCollection{WolterEtal95,
+  key =		 "Wolter, {\em et al.}",
+  author =	 "U. Wolter and K. Didrich and F. Cornelius and
+                  M. Klar and R. Wess{\"a}ly and H. Ehrig",
+  title =	 "How to cope with the Spectrum of {\sc Spectrum}",
+  pages =	 "173--189",
+  annote =	 "17 references.",
+  editor =	 "Manfred Broy and Stefan J{\"a}hnichen",
+  booktitle =	 "{KORSO}: Methods, Languages and Tools for the
+                  Construction of Correct Software",
+  publisher =	 "Springer-Verlag",
+  address =	 "New York, NY",
+  series =	 "Lecture Notes in Computer Science",
+  volume =	 "1009",
+  year =	 "1995",
+  keywords =	 {Logics Morphisms},
+  abstract =	 {The specification language SPECTRUM [BFG+ 93] melts
+                  a wide range of concepts into a single language
+                  frame: three-valued first-order logic, polymorphism,
+                  type classes, higher-order functions, infinite
+                  objects. The desire of identifying and relating
+                  sub-languages satisfying certain constraints given
+                  by syntactical and pragmatic considerations
+                  appears. In this paper we consider the constructive
+                  oriented algebraic sub-language ACT ONE as an
+                  example of a specification sub-language of
+                  SPECTRUM. As a candidate for an implementation
+                  language of SPECTRUM we focus on the functional
+                  language OPAL. The overall intention is to establish
+                  a semantically compatible embedding of ACT ONE and
+                  OPAL into SPECTRUM. However, in this paper we will
+                  not describe all aspects of this embedding. As a
+                  first step of our ongoing work we will relate the
+                  underlying logical systems using the concept of
+                  institutions, i.e. we will relate the loose
+                  semantics of ACT ONE and OPAL specifications with
+                  the loose semantics of SPECTRUM specifications. A
+                  general framework for modelling the interconnections
+                  of different logical systems under development at
+                  the TU Berlin will be sketched. },
+}
+
+@Article{ZanardoSernadasSernadas01,
+  author =	 "A. Zanardo and A. Sernadas and C. Sernadas",
+  title =	 "Fibring: Completeness preservation",
+  journal =	 "Journal of Symbolic Logic",
+  volume =	 "66",
+  number =	 "1",
+  pages =	 "414--439",
+  year =	 "2001",
+  ps =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/99-ZSS-fiblog3.ps",
+  pdf =
+                  "http://www.cs.math.ist.utl.pt/ftp/pub/SernadasA/99-ZSS-fiblog3.pdf",
+  st =		 "p",
+  proj =	 "fiblog,acl,logcomp",
+  keywords =	 {Combination},
+}
+
+@Article{Zucca99,
+  author =	 {Elena Zucca},
+  title =	 {From static to dynamic abstract data-types: an
+                  institution transformation},
+  journal =	 {Theoretical Computer Science},
+  year =	 {1999},
+  key =		 {ModelTheory Metaformalisms},
+  volume =	 {216},
+  pages =	 {109--157},
+  abstract =	 {We show how to extend in a canonical way a given
+                  formalism for specifying (static) data types (like
+                  usual algebraic specification frameworks) with
+                  dynamic features. What we obtain in this way is a
+                  corresponding formalism for specifying dynamic
+                  data-types based on the "state-as-algebra" approach:
+                  a dynamic data-type models a dynamically evolving
+                  system in which any state can be viewed as a static
+                  data type in the underlying formalism, and the
+                  dynamic evolution is given by operations handling
+                  configurations. Formally, our construction is a
+                  functor between two appropriate categories of
+                  (specialized) institutions. },
+}
+
+
+
+
+@misc{ orejas-heterogeneous,
+  author = "Fernando Orejas and Elvira Pino",
+  title = "Heterogeneous Modular Systems",
+  keywords =	 {Heterogeneity},
+  url = "citeseer.nj.nec.com/orejas02heterogeneous.html" }
+
+@InProceedings{Scollo02,
+  author =	 "G. Scollo",
+  title =	 "Graph colouring institutions (Extended Abstract)",
+  editor =	 "M. Wirsing and D. Pattinson and R. Hennicker",
+  booktitle =	 "WADT 2002, 16th International Workshop on Algebraic
+                  Development Techniques", 
+  location =	 "Frauenchiemsee, Germany",
+  month =	 sep,
+  year =	 "2002",
+  pages =	 "21--22",
+  howpublished = "Technical Report 0207, Institut f{\"u}r Informatik,
+                  LMU M{\"u}nchen",
+  note =	 "This paper proposes an institution design problem, which is
+                  solved in \cite{Scollo03a}, as well the problem of designing
+                  an isomorphism between the subject institutions, that is
+                  solved in \cite{Scollo03b}. ", 
+  keywords =	 {Logics Morphisms},
+  abstract =	 {Maximal planar graphs with vertex resp.\ edge colouring
+                  are naturally casted as (deceiptively similar) institutions.
+                  One then tries to embody Tait's equivalence algorithms into
+                  morphisms between them, and is lead to a partial redesign
+                  of those institutions. This paper aims at elucidating the
+                  pragmatic questions which arise in this case study. }, 
+}
+
+@InProceedings{Scollo03a,
+  author =	 "G. Scollo",
+  title =	 "Graph colouring institutions",
+  editor =	 "R. Berghammer and B. M{\"o}ller",
+  booktitle =	 "7th Seminar RelMiCS and 2nd Workshop Kleene Algebra",
+  location =	 "Bad Malente, Germany",
+  month =	 may,
+  year =	 "2003",
+  pages =	 "288--297",
+  howpublished = "Christian-Albrechts-Universit{\"a}t zu Kiel",
+  ps  =		 "http://www.informatik.uni-kiel.de/~relmics7/submitted/Scollo/GCI03.ps",
+  pdf =		 "http://www.informatik.uni-kiel.de/~relmics7/submitted/Scollo/GCI03.pdf",
+  note =	 "This paper solves the institution design problem proposed
+                  in \cite{Scollo02}, but leaves open the isomorphism design
+                  problem, which is solved in \cite{Scollo03b}. ",
+  keywords =	 {Logics Morphisms},
+  abstract =	 {Maximal planar graphs with vertex resp.\ edge colouring
+                  are naturally casted as (deceiptively similar) institutions.
+                  One then tries to embody Tait's equivalence algorithms into
+                  morphisms between them, and is lead to a partial redesign
+                  of those institutions. This paper aims at introducing a few
+                  pragmatic questions which arise in this case study, which
+                  also showcases the use of relational concepts and notations
+                  in the design of the subject institutions. },
+}
+
+@misc{Scollo03b,
+  author =	 "G. Scollo",
+  title =	 "An institution isomorphism for planar graph colouring",
+  institution =	 "Universit\`{a} di Verona, Dip.\ Informatica",
+  type =	 "Draft",
+  year =	 "2003",
+  month =	 jun,
+  note =	 "Submitted for publication. This paper is a revised and
+                  extended version of \cite{Scollo03a}, and contains a
+                  concise outline of a solution to the isomorphism design
+                  problem proposed there. The detailed solution is available
+                  in \cite{Scollo03c}. ", 
+  keywords =	 {Logics Morphisms},
+  abstract =	 {Maximal planar graphs with vertex resp.\ edge colouring
+                  are naturally casted as (deceiptively similar) institutions.
+                  One then tries to embody Tait's equivalence algorithms into
+                  morphisms between them, and is lead to a partial redesign
+                  of those institutions. This paper aims at introducing a few
+                  pragmatic questions which arise in this case study, which
+                  also showcases the use of relational concepts and notations
+                  in the design of the subject institutions, and gives an
+                  outline of a solution to the problem of designing an
+                  isomorphism between them. },
+}
+
+@TechReport{Scollo03c,
+  author =	 "G. Scollo",
+  title =	 "Morphism-driven design of graph colouring institutions",
+  institution =	 "Universit\`{a} di Verona, Dip.\ Informatica",
+  type =	 "Research Report",
+  number =	 "DI RR 03/2003",
+  year =	 "2003",
+  month =	 mar,
+  pdf =		 "http://www.di.univr.it/~scollo/papers/dirr0303.pdf",
+  note =	 "Submitted for publication. This paper solves the isomorphism
+                  design problem posed in \cite{Scollo02,Scollo03a}, giving
+                  the details of the solution outlined in \cite{Scollo03b}. ",
+  keywords =	 {Logics Morphisms},
+  abstract =	 {Maximal planar graphs with vertex resp.\ edge colouring
+                  are naturally casted as (deceiptively similar) institutions.
+                  One then tries to embody Tait's equivalence algorithms into
+                  morphisms between them, and is lead to a partial redesign
+                  of those institutions. This paper aims at elucidating the
+                  pragmatic questions which arise in this case study, which
+                  also showcases the use of relational concepts and notations
+                  in the design of the subject institutions, that is driven
+                  by the design of an isomorphism between them. },
+}
diff --git a/omdoc-semantics/macros/bib/historical.bib b/omdoc-semantics/macros/bib/historical.bib
new file mode 100644
index 0000000000000000000000000000000000000000..f7ed8529a0fbfb151d2104d4e91daac7a4da7aab
--- /dev/null
+++ b/omdoc-semantics/macros/bib/historical.bib
@@ -0,0 +1,393 @@
+@book{logicism,
+  author = "G. Frege",
+  title = "{Die Grundlagen der Arithmetik, Eine logisch-mathematische Untersuchung {\"u}ber den Begriff der Zahl}",
+  year = 1884,
+  note = "English title: Foundations of Arithmetic, A Logico-Mathematical Enquiry into the Concept of Number",
+}
+
+@book{predicativism,
+  author = "H. Weyl",
+  title = "{Das Kontinuum, Kritische Untersuchungen {\"u}ber die Grundlagen der Analysis}",
+  year = 1918,
+  note = "English title: The Continuum: A Critical Examination of the Foundation of Analysis",
+}
+
+@incollection{predicativism2,
+  author = "S. Feferman",
+  year = 2005,
+  title = "Predicativity",
+  editor = "S. Shapiro",
+  booktitle = "{The Oxford Handbook of Philosophy of Mathematics and Logic}",
+  pages = "590--624",
+  publisher = "{Oxford University Press}"
+}
+  
+@InCollection{sep_philosophy,
+	author    =	{L. Horsten},
+	title     =	"{Philosophy of Mathematics}",
+	booktitle =	"{The Stanford Encyclopedia of Philosophy}",
+	publisher = "{The Metaphysics Research Lab, Stanford}",
+	editor    =	{E. Zalta},
+	url       =	{\url{http://plato.stanford.edu/archives/spr2008/entries/philosophy-mathematics/}},
+	year      =	{2008}
+}
+
+@Book{begriffsschrift,
+  author = 	 "G. Frege",
+  title = 	 "{Begriffsschrift: eine der arithmetischen nachgebildete Formelsprache des reinen Denkens}",
+  year =	 1879,
+}
+
+@Article{peirce85,
+  author = 	 "C. Peirce",
+  title = 	 "{On the Algebra of Logic: A Contribution to the Philosophy of Notation}",
+  journal =	 "{American Journal of Mathematics}",
+  year =	 1885,
+  volume =	 7,
+  pages =	 "180--202",
+}
+
+@Article{peanoaxioms,
+ author = {G. Peano},
+ title = "{The principles of arithmetic, presented by a new method}",
+ year = {1889},
+}
+
+@Book{principia,
+  author = 	 "A. Whitehead and B. Russell",
+  title = 	 "{Principia Mathematica}",
+  year =	 1913,
+  publisher = "{Cambridge University Press}",
+}
+
+@Article{typetheoryrussell,
+  author = "B. Russell",
+  title = "{Mathematical Logic as Based on the Theory of Types}",
+  journal = "{American Journal of Mathematics}",
+  volume = 30,
+  pages = "222--262",
+  year = 1908,
+}
+
+@Book{principlesrussell,
+  author = "B. Russell",
+  title = "{Principles of Mathematics}",
+  year = 1903,
+}
+
+@Article{russellparadox,
+  author = "B. Russll",
+  title = "Recent work in the philosophy of mathematics",
+  journal = "International Monthly",
+  year = "1901",
+}
+
+@Article{grundlagen,
+ author = {G. Cantor},
+ title = "{Grundlagen einer allgemeinen Mannigfaltigkeitslehre. Ein mathematisch-philosophischer Versuch in der Lehre des Unendlichen}",
+ journal = "{Mathematische Annalen}",
+ year = {1883},
+}
+
+@Article{zermelo,
+ author = {E. Zermelo},
+ title = "{Untersuchungen �ber die Grundlagen der Mengenlehre I}",
+ journal = "{Mathematische Annalen}",
+ year = {1908},
+ volume = 65,
+ pages = "261--281",
+ note = "{English title: Investigations in the foundations of set theory I}",
+}
+
+@InCollection{wienerpairs,
+  author =	"N. Wiener",
+  title =	"{A Simplification of the Logic of Relations}",
+  booktitle =	"{From Frege to G{\"o}del}",
+  editor = "J. van Heijenoort",
+  pages =	"224--227",
+  publisher =	"Harvard Univ. Press",
+  year = 	"1967",
+}
+
+@Article{fraenkel,
+ author = {A. Fraenkel},
+ title = "{Zu den Grundlagen der Cantor-Zermeloschen Mengenlehre}",
+ journal = "Mathematische Annalen",
+ pages = "230--237",
+ volume = 86,
+ year = {1922},
+ note = "{English title: On the Foundation of Cantor-Zermelo Set Theory}",
+}
+
+@Article{vonneumann,
+  author =	"J. von Neumann",
+  title =	"{Eine Axiomatisierung der Mengenlehre}",
+  journal =	"{Journal f{\"u}r die reine und angewandte Mathematik}",
+  volume =	"154",
+  pages =	"219--240",
+  year = 	"1925",
+}
+
+@article{bernays,
+  author = "P. Bernays",
+  title  = "{A System of Axiomatic Set Theory -- Part I}",
+  journal = "Journal of Symbolic Logic",
+  volume = 2,
+  number = 1,
+  pages  = "65--77",
+  year = "1937",
+}
+
+@Article{goedelsettheory,
+  author = "K. G{\"o}del",
+  title = "{The Consistency of Continuum Hypothesis}",
+  journal = "{Annals of Mathematics Studies}",
+  publisher = "{Princeton University Press}",
+  volume = 3,
+  pages = "33--101",
+  year = "1940",
+}
+
+@Article{tarskisettheory,
+ author = "A. Tarski",
+ title = "{{\"U}ber Unerreichbare Kardinalzahlen}",
+ journal = "Fundamenta Mathematicae",
+ volume = 30,
+ pages = "176--183",
+ year = 1938,
+}
+
+@InCollection{bourbakiunivers,
+  author = "N. Bourbaki",
+  title = "{Univers}",
+  editors = "{M. Artin and A. Grothendieck and J. Verdier}",
+  booktitle = "{S{\'e}minaire de G{\'e}om{\'e}trie Alg{\'e}brique du Bois Marie - Th{\'e}orie des topos et cohomologie {\'e}tale des sch{\'e}mas}",
+  year = 1964,
+  pages = "185--217",
+  publisher = "Springer",
+}
+
+@PhDThesis{brouwer,
+  author = "L. Brouwer",
+  title = "Over de grondslagen der wiskunde",
+  school = "Universiteit van Amsterdam",
+  country = "Netherlands",
+  year = "1907",
+  note = "{English title: On the Foundations of Mathematics}"
+}
+
+@Article{brouwersettheory,
+  author = "L. Brouwer",
+  title = "{Begr{\"u}ndung der Mengenlehre unabh{\"a}ngig vom logischen Satz vom ausgeschlossenen Dritten. Erster Teil, Allgemeine Mengenlehre.}",
+  journal = "Koninklijke Akademie van Wetenschappen te Amsterdam",
+  year = 1918,
+  number = 5,
+  pages = "1--43",
+}
+
+@Article{brouwersettheory2,
+  author = "L. Brouwer",
+  title = "{Begr{\"u}ndung der Mengenlehre unabh{\"a}ngig vom logischen Satz vom ausgeschlossenen Dritten. Zweiter Teil, Theorie der Punktmengen}",
+  journal = "Koninklijke Akademie van Wetenschappen te Amsterdam",
+  year = 1919,
+  number = 7,
+  pages = "1--33",
+}
+
+@Article{lambdacalculus,
+  author =	"A. Church",
+  title =	"{An Unsolvable Problem of Elementary Number Theory}",
+  journal =	"{American Journal of Mathematics}",
+  volume =	"58",
+  year = 	"1936",
+}
+
+@Article{churchtypes,
+  author =	"A. Church",
+  title =	"{A Formulation of the Simple Theory of Types}",
+  journal =	"{Journal of Symbolic Logic}",
+  year = 	"1940",
+  volume =	"5",
+  number =	"1",
+  pages =	"56--68",
+}
+
+@InCollection{sytemfgirard,
+  author =	"J. Girard",
+  title =	"{Une extension de l'interpretation de {G{\"o}del} {\`a} l'analyse, et son application {\`a} l'{\'e}limination des coupures dans l'analyse et la th{\'e}orie des types}",
+  publisher =	"North-Holland",
+  editor =	"J. Fenstad",
+  booktitle =	"2nd Scandinavian Logic Symposium",
+  year = 	"1971",
+  pages =	"63--92",
+}
+
+@InProceedings{systemfreynolds,
+  author =	"J. Reynolds",
+  title =	"{Towards a Theory of Type Structure}",
+  booktitle =	"Paris Colloq. on Programming",
+  publisher =	"Springer",
+  year = 	"1974",
+  pages =	"408--425",
+}
+@InCollection{reynolds_poly,
+	author =	"J. Reynolds",
+	title =	"{Types, Abstraction, and Parametric Polymorphism}",
+	booktitle =	"Information Processing",
+	publisher =	"North-Holland",
+	address =	"Amsterdam",
+	year = 	"1983",
+	pages =	"513--523",
+}
+@Article{lcf,
+  author =	"R. Milner",
+  title =	"Logic for computable functions: descriptions of a machine implementation",
+  journal =	"ACM SIGPLAN Notices",
+  volume =	"7",
+  pages =	"1--6",
+  year = 	"1972",
+}
+@Article{calcconstructions,
+  author =	"T. Coquand and G. Huet",
+  title =	"{The Calculus of Constructions}",
+  journal =	"{Information and Computation}",
+  volume =	"76",
+  number =	"2/3",
+  year = 	"1988",
+  pages =	"95--120",
+}
+
+@PhdThesis{coquand:cc,
+  author =	"T. Coquand",
+  title =	"Une Th{\'e}orie des Constructions",
+  school =	"Universit{\'e} Paris VII",
+  year = 	"1985",
+}
+
+@InCollection{martinlof,
+  author =       "P. Martin-{L\"o}f",
+  booktitle =    "{Proceedings of the '73 Logic Colloquium}",
+  title =        "{An Intuitionistic Theory of Types: Predicative Part}",
+  publisher =    "North-Holland",
+  year =         "1974",
+  pages = "73--118"
+}
+
+@Article{henkintypes,
+  author =	"L. Henkin",
+  title =	"{Completeness in the Theory of Types}",
+  journal =	"{Journal of Symbolic Logic}",
+  volume =	"15",
+  number =	"2",
+  year = 	"1950",
+  pages =	"81--91",
+}
+
+@Article{hilbertsproblems,
+  author = "D. Hilbert",
+  title = "{Mathematische Probleme}",
+  journal = "{Nachrichten von der K{\"o}niglichen Gesellschaft der Wissenschaften zu G{\"o}ttingen}",
+  pages = "253--297",
+  year = 1900,
+}
+
+@Article{hilbertsprogram,
+  author = "D. Hilbert",
+  title = "{{\"U}ber das Unendliche}",
+  journal = "{Mathematische Annalen}",
+  volume = 95,
+  pages = "161--90",
+  year = 1926,
+}
+
+@Article{goedelcompleteness,
+  author =	"K. G{\"o}del",
+  journal =	"{Monatshefte f{\"u}r Mathematik und Physik}",
+  title =	"{Die Vollst{\"a}ndigkeit der Axiome des Logischen Funktionenkalk{\"u}ls}",
+  volume =	"37",
+  pages =	"349--360",
+  year = 	"1930",
+  note = "{English title: The Completeness of the Axioms of the Logical Calculus of Functions}",
+}
+
+@Article{goedelincompleteness,
+  author =	"K. G{\"o}del",
+  journal =	"{Monatshefte f{\"u}r Mathematik und Physik}",
+  title =	"{{\"U}ber formal unentscheidbare S{\"a}tze der Principia Mathematica und verwandter Systeme}",
+  volume =	"38",
+  pages =	"173--198",
+  year = 	"1931",
+  note = "{English title: On Formally Undecidable Propositions Of Principia Mathematica And Related Systems}",
+}
+
+@Article{gentzen,
+  author = "G. Gentzen",
+  title = "{Untersuchungen �ber das logische Schlie{\ss}en}",
+  year = 1934,
+  journal = "Math. Z.",
+  volume = 39,
+  note = "{English title: Investigations into Logical Deduction}",
+}
+
+@InCollection{kripke65intuitionistic,
+ author =	"S. Kripke",
+ title =	"{Semantical Analysis of Intuitionistic Logic I}",
+ booktitle =	"{Formal Systems and Recursive Functions}",
+ editor =	"J. Crossley and M. Dummett",
+ publisher =	"North-Holland",
+ pages =	"92--130",
+ year = 	"1965",
+}
+
+@Article{lukasiewicz,
+  author = "J. {\L}ukasiewicz",
+  title = "{O logice trojwartosciowej}",
+  journal = "Ruch Filozoficny",
+  volume = "5",
+  pages = "170--171",
+  year = 1920,
+  note = "{English title: On three-valued logic}"
+}
+
+@article{banach_tarski_paradox,
+  author = {S. Banach and A. Tarski},
+  title = "Sur la d{\'e}composition des ensembles de points en parties respectivement congruentes",
+  journal = "{Fundamenta Mathematicae}",
+  volume = 6,
+  pages = "244-�277",
+  year = 1924
+}
+  
+@Article{fuzzy,
+  author = "L. Zadeh",
+  title = "{Fuzzy sets}",
+  journal = "Information and Control",
+  volume = "8",
+  pages = "338--353",
+  number = 3,
+  year = 1965,
+}
+
+@InCollection{paraconsistent,
+  author =	"G. Priest",
+  title =	"Paraconsistent Logic",
+  booktitle =	"{Handbook of Philosophical Logic}",
+  editor =	"D. Gabbay",
+  publisher =	"Kluwer",
+  year = 	"2002",
+}
+
+@Book{sourcebook,
+  author = "J. van Heijenoort",
+  year = "1967",
+  title = "{From Frege To G�del: A Source Book in Mathematical Logic, 1879-1931}",
+  publisher = "Harvard Univ. Press",
+}
+
+@misc{encyclopediaphilosophy,
+  author = "E. Zalta",
+  title = "The Stanford Encyclopedia of Philosophy",
+  note = "\url{http://plato.stanford.edu/}",
+  publisher = "{The Metaphysics Research Lab, Stanford University}",
+  year = 2008
+}
diff --git a/omdoc-semantics/macros/bib/institutions.bib b/omdoc-semantics/macros/bib/institutions.bib
new file mode 100644
index 0000000000000000000000000000000000000000..08bda64554bb2f47c60b69c1661e169c57d0da74
--- /dev/null
+++ b/omdoc-semantics/macros/bib/institutions.bib
@@ -0,0 +1,356 @@
+%foundation
+@InProceedings{settheory_maclane,
+  author =	"S. Mac Lane",
+  title =	"{One universe as a foundation for category theory}",
+  booktitle =	"{Reports of the Midwest Category Seminar III}",
+  editor =	"S. Mac Lane",
+  year = 	"1969",
+  pages =	"192--200",
+  publisher =	"Springer",
+}
+
+@InProceedings{settheory_feferman,
+  author =	"S. Feferman",
+  title =	"{Set-theoretical foundations of category theory}",
+  booktitle =	"{Reports of the Midwest Category Seminar III}",
+  editor =	"S. Mac Lane",
+  year = 	"1969",
+  pages =	"201--247",
+  publisher =	"Springer",
+}
+
+@incollection{initialsemantics,
+    author = "J. Goguen and J. Thatcher and E. Wagner",
+    title = "An initial algebra approach to the specification, correctness and implementation of abstract data types",
+    booktitle = "Current Trends in Programming Methodology",
+    editor = "R. Yeh",
+    volume = "4",
+    pages = "80--149",
+    year = "1978",
+    publisher = "Prentice Hall"
+}
+
+@PhdThesis{lawvere,
+  author =	"F. Lawvere",
+  title =	"Functional Semantics of Algebraic Theories",
+  school =	"Columbia University",
+  year = 	"1963",
+}
+
+@Article{weakinclusionsystems,
+  title =	"Weak inclusion systems",
+  author =	"V. C{\u{a}}z{\u{a}}nescu and G. Ro{\c{s}}u",
+  pages =	"195--206",
+  journal =	"Mathematical Structures in Computer Science",
+  year = 	"1997",
+  volume =	"7",
+  number =	"2",
+}% weak inclusion systems
+
+%institutions
+@Article{institutions,
+  author =       "J. Goguen and R. Burstall",
+  title =        "Institutions: Abstract Model Theory for Specification
+                 and Programming",
+  journal =      "Journal of the Association for Computing Machinery",
+  volume =       "39(1)",
+  pages =        "95--146",
+  year =         "1992",
+}
+
+@Article{institutions2,
+  author =       "J. Goguen and G. Rosu",
+  title =        "Institution morphisms",
+  journal =      "Formal Aspects of Computing",
+  volume =       "13",
+  pages =        "274--307",
+  year =         "2002",
+}
+
+
+
+@book{institutionindependent,
+	author = "R. Diaconescu",
+	year = "2008",
+	title = "{Institution-independent Model Theory}",
+	publisher = "Birkh{\"a}user",
+}
+
+@article{tarlecki_free,
+ title = "On the existence of free models in abstract algebraic institutions",
+ author = "A. Tarlecki",
+ journal = "Theoretical Computer Science",
+ volume = "37",
+ year = "1985",
+ pages = "269--301"
+}
+
+@InCollection{whatisalogicmossa,
+  author =       "T. Mossakowski and J. Goguen and R. Diaconescu and A. Tarlecki",
+  booktitle =    "Logica Universalis",
+  editor =       "J. B{\'e}ziau",
+  pages =        "113--133",
+  publisher =    "Birkh{\"a}user Verlag",
+  title =        "What is a Logic?",
+  year =         "2005"
+}
+
+@Article{mossakowski_translation,
+	title =	"{What is a Logic Translation?}",
+	author =	"T. Mossakowski and R. Diaconescu and A. Tarlecki",
+	journal =	"Logica Universalis",
+	year = 	"2009",
+	number =	"1",
+	volume =	"3",
+	pages =	"95--124",
+}
+
+@Article{diaconescu02grothendieck,
+  title =	"Grothendieck Institutions",
+  author =	"R. Diaconescu",
+  journal =	"Applied Categorical Structures",
+  year = 	"2002",
+  number =	"4",
+  volume =	"10",
+  pages =	"383--402",
+}
+% institution morphism modifications
+
+@Article{specificationarbitrary,
+  author =	"D. Sannella and A. Tarlecki",
+  title =	"{Specifications in an arbitrary institution}",
+  journal =	"Information and Control",
+  year = 	"1988",
+  volume =	"76",
+  pages =	"165--210",
+}%mature version of asl
+
+@InProceedings{specificationarbitrarysymbols,
+  title =	"{Specifications in an Arbitrary Institution with Symbols}",
+  booktitle = "Workshop on Recent Trends in Algebraic Development Techniques",
+  author =	"T. Mossakowski",
+  publisher =	"Springer",
+  year = 	"1999",
+  editor =	"D. Bert and C. Choppy and P. Mosses",
+  pages =	"252--270",
+}
+
+@Article{stratifiedinstitutions,
+  author =	"M. Aiguier and R. Diaconescu",
+  title =	"Stratified institutions and elementary homomorphisms",
+  journal =	"Information Processing Letters",
+  volume =	"103",
+  number =	"1",
+  pages =	"5--13",
+  year = 	"2007",
+}
+
+@InProceedings{parchments,
+  author =	"J. Goguen and R. Burstall",
+  title =	"{A study in the foundations of programming methodology: specifications, institutions, charters and parchments}",
+  booktitle =	"Workshop on Category Theory and Computer Programming",
+  editor = "D. Pitt and S. Abramsky and A. Poign{\'e} and D. Rydeheard",
+  publisher =	"Springer",
+  pages =	"313--333",
+  year = 	"1986",
+}
+
+@InProceedings{lambdaparchments,
+  title =	"{Combining and Representing Logical Systems}",
+  author =	"T. Mossakowski and A. Tarlecki and W. Pawlowski",
+  booktitle =	"Category Theory and Computer Science",
+  publisher =	"Springer",
+  year = 	"1997",
+  editor =	"E. Moggi and G. Rosolini",
+  pages =	"177--196",
+}
+
+@InProceedings{parchments_combine,
+	title =	"{Combining and representing logical systems using model-theoretic parchments}",
+	author =	"T. Mossakowski and A. Tarlecki and W. Pawlowski",
+	booktitle =	"Recent Trends in Algebraic Development Techniques",
+	publisher =	"Springer",
+	year = 	"1997",
+	editor =	"F. Parisi-Presicce",
+	pages =	"349--364",
+}
+
+@InProceedings{Mos:CBGL:02,
+  title =	"{Comorphism-Based Grothendieck Logics}",
+  author =	"T. Mossakowski",
+  booktitle =	"Mathematical Foundations of Computer Science",
+  publisher =	"Springer",
+  year = 	"2002",
+  editor =	"K. Diks and W. Rytter",
+  pages =	"593--604",
+}
+
+@InProceedings{hiddenmodules,
+  title =	"{Composing Hidden Information Modules over Inclusive Institutions}",
+  author =	"J. Goguen and G. Rosu",
+  booktitle =	"{From Object-Orientation to Formal Methods, Essays in Memory of Ole-Johan Dahl}",
+  publisher =	"Springer",
+  year = 	"2004",
+  editor =	"O. Owe and S. Krogdahl and T. Lyche",
+  pages =	"96--123",
+}
+
+%inclusion_systems, pushouts, conservative extensions
+@InCollection{support_modularization,
+  author = "R. Diaconescu and J. Goguen and P. Stefaneas",
+  title =  "{Logical Support for Modularization}",
+  booktitle = "Logical Environments",
+  pages =  "83--130",
+  publisher = "Cambridge Press",
+  year = "1993",
+  editor = "G. Huet and G. Plotkin",
+}
+@Article{weak_inclusion_systems,
+  title =	"{Weak inclusion systems}",
+  author =	"V. C{\u{a}}z{\u{a}}nescu and G. Ro{\c{s}}u",
+  pages =	"195--206",
+  journal =	"Mathematical Structures in Computer Science",
+  year = 	"1997",
+  volume =	"7",
+  number =	"2",
+}
+@InProceedings{petria,
+  title =	"{An Institutional Version of G{\"o}del's Completeness Theorem}",
+  author =	"M. Petria",
+  booktitle =	"Algebra and Coalgebra in Computer Science, Second International Conference, {CALCO}",
+  publisher =	"Springer",
+  year = 	"2007",
+  editor =	"T. Mossakowski and U. Montanari and M. Haveraaen",
+  pages =	"409--424",
+}
+
+@InCollection{generallogics,
+  author =       "J. Meseguer",
+  title =        "General Logics",
+  booktitle =    "Proceedings, Logic Colloquium, 1987",
+  publisher =    "North-Holland",
+  editor =       "H.-D. Ebbinghaus and others",
+  pages =        "275--329",
+  year =         "1989",
+}
+
+@InCollection{generallogics2,
+  author =	"N. Mart{\'\i}-Oliet and J. Meseguer",
+  title =	"{General Logics and Logical Frameworks}",
+  booktitle =	"{What is a Logical System?}",
+  editor =	"D. M. Gabbay",
+  publisher =	"Oxford University Press",
+  year = 	"1994",
+}
+
+@InProceedings{generallogics_rewriting,
+  author =	"N. Mart{\'i}-Oliet and J. Meseguer",
+  title =	"{Rewriting Logic as a Logical and Semantic Framework}",
+  booktitle =	"{Rewriting Logic and its Applications}",
+  year = 	"1996",
+  pages =	"352--358",
+  series =	"Electronic Notes in Theoretical Computer Science",
+  volume =	"4",
+}
+
+@InProceedings{structuring_consequence,
+  title =	"{Structuring Theories on Consequence}",
+  author =	"J. Fiadeiro and A. Sernadas",
+  booktitle = "Recent Trends in Data Type Specification",
+  publisher =	"Springer",
+  year = 	"1987",
+  volume =	"332",
+  editor =	"D. Sannella and A. Tarlecki",
+  pages =	"44--72",
+}
+
+@incollection{Tarlecki96moving,
+  Author = {A. Tarlecki},
+  Title =	 "{Moving between logical systems}",
+  BOOKTITLE = "{Recent Trends in Data Type Specifications. 11th Workshop on Specification of Abstract Data Types}",
+  EDITOR = {M. Haveraaen and O. Owe and O.-J. Dahl},
+  Publisher = {Springer Verlag},
+  SERIES = {Lecture Notes in Computer Science},
+  VOLUME = {1130},
+  PAGES =	{478--502},
+  year = 1996,
+}
+
+@Article{inswprfs,
+  author =       "R. Diaconescu",
+  title =        "Proof Systems for Institutional Logic",
+  journal =      "Journal of Logic and Computation",
+  volume =       "16",
+  number =	 "3",
+  pages =        "339--357",
+  year =         "2006",
+}
+
+@InProceedings{tarlecki:towards,
+  author =	"A. Tarlecki",
+  title =	"{Towards Heterogeneous Specifications}",
+  booktitle =	"Frontiers of Combining Systems 2",
+  editor =	"D. Gabbay and M. de Rijke",
+  year = 	"1998",
+  pages =	"337--360",
+  series =	"Studies in Logic and Computation",
+}
+
+@misc{habilmossa,
+  title = "{Heterogeneous Specification and the Heterogeneous Tool Set}",
+  author = "T. Mossakowski",
+  note = "Habilitation thesis, see \url{http://www.informatik.uni-bremen.de/~till/}",
+  year = "2005",
+}
+
+@Article{devgraphshiding,
+  title =	"{Development graphs - Proof management for structured specifications}",
+  author =	"T. Mossakowski and S. Autexier and D. Hutter",
+  journal =	"J. Log. Algebr. Program",
+  year = 	"2006",
+  number =	"1--2",
+  volume =	"67",
+  pages =	"114--145",
+}
+
+@InProceedings{devgraphs,
+  title =	"{Towards an Evolutionary Formal Software-Development Using CASL}",
+  author =	"S. Autexier and D. Hutter and H. Mantel and A. Schairer",
+  publisher =	"Springer",
+  year = 	"1999",
+  volume =	"1827",
+  booktitle =	"WADT",
+  editor =	"D. Bert and C. Choppy and P. Mosses",
+  pages =	"73--88",
+  series =	"Lecture Notes in Computer Science",
+}
+
+@InCollection{hetdevgraphs,
+  author =	"T. Mossakowski",
+  title =	"{Heterogeneous development graphs and heterogeneous borrowing}",
+  booktitle =	"Foundations of Software Science and Computation Structures",
+  publisher =	"Springer",
+  year = 	"2000",
+  editor =	"M. Nielsen and U. Engberg",
+  pages =	"326--341",
+}
+
+@Article{borrowing,
+  Author =	 {M. Cerioli and J. Meseguer},
+  Title =	 "{May I Borrow Your Logic? (Transporting Logical Structures along Maps)}",
+  Journal =	 "Theoretical Computer Science",
+  volume =	 173,
+  pages =	 {311--347},
+  Year =	 1997,
+}
+
+@inproceedings{institution_hol,
+  author = "T. Borzyszkowski",
+  title =	 "{Higher-Order Logic and Theorem Proving for Structured Specifications}",
+  booktitle = "{Workshop on Algebraic Development Techniques}",
+  pages =	 "401--418",
+  year =	 "2000",
+  editor =	 "C. Choppy and D. Bert and P. Mosses",
+  series =	 "LNCS",
+}
+
diff --git a/omdoc-semantics/macros/bib/modal.bib b/omdoc-semantics/macros/bib/modal.bib
new file mode 100644
index 0000000000000000000000000000000000000000..b0e9c3451006f53a274c03b2aa25494bab94e355
--- /dev/null
+++ b/omdoc-semantics/macros/bib/modal.bib
@@ -0,0 +1,384 @@
+@Article{Ber26,
+    Author       = "P. Bernays",
+    Year         = "1926",
+    Title        = "{Axiomatische Untersuchungen des Aussagenkalk{\"u}ls der
+                    Principia Mathematica}",
+    Journal      = "Mathematiche Zeitschrift",
+    Volume       = "25",
+    Pages        = "305-320",
+    Comment      = ""
+}
+
+@inproceedings{rabe:moloss:06,
+ author    = "F. Rabe",
+ title     =  "{Towards Determining the Subset Relation between Propositional Modal Logics}",
+ booktitle = "{Proceedings of the FLoC 06 Workshop on Empirically Successful Computerized Reasoning, 3rd International Joint Conference on Automated Reasoning}",
+ editor    = "G. Sutcliffe and R. Schmidt and S. Schulz",
+ year      = "2006",
+ series    = "CEUR Workshop Proceedings",
+ volume    = "192",
+ pages     = "126--140",
+}
+
+@misc{rabe:moloss:impl,
+ author    = "F. Rabe",
+ title     =  "{Determining the Subset Relation between Propositional Modal Logics}",
+ note     = "See \url{http://kwarc.eecs.iu-bremen.de/frabe/Research/moloss/index.html}",
+ year = "2006",
+}
+
+@Book{Luk63,
+    Author       = "J. {\L}ukasiewicz",
+    Year         = "1963",
+    Title        = "{Elements of Mathematical Logic}",
+    Publisher    = "Pergamon Press",
+    Comment      = "TPTPRef, English translation of the second Edition (1958)
+                    of Elementy logiki matematycznej, PWN, Warsaw."
+}
+
+@Book{HB34,
+    Author       = "D. Hilbert and P. Bernays",
+    Year         = "1934",
+    Title        = "{Grundlagen der Mathematik}",
+    Publisher    = "Julius Springer Verlag",
+}                   
+
+@Book{Ros53,
+    Author       = "J. Rosser",
+    Year         = "1953",
+    Title        = "{Logic for Mathematicians}",
+    Publisher    = "McGraw-Hill",
+    Comment      = ""
+}
+
+@Book{RW10,
+    Author       = "B. Russell and A. Whitehead",
+    Year         = "1910",
+    Title        = "{Principia Mathmatica}",
+    Publisher    = "Cambridge University Press",
+    Comment      = ""
+}
+
+@Book{FM98,
+    Author       = "M. Fitting and R. Mendelsohn",
+    Year         = "1998",
+    Title        = "{First-Order Modal Logic}",
+    Publisher    = "Kluwer",
+    Comment      = ""
+}
+
+@Unpublished{FitML-URL,
+    Author       = "B. Fitelson",
+    Year         = "2002",
+    Title        = "{Automated Reasoning in Modal Logics}",
+    Note         = "\url{http://fitelson.org/modal.htm}",
+    Comment      = ""
+}
+
+@Book{overviewmodal,
+  author =       "G. Hughes and M. Cresswell",
+  title =        "{A New Introduction to Modal Logic}",
+  publisher =    "Routledge",
+  year =         "1996"
+}
+
+@Book{overviewmodal2,
+  author =       "G. Hughes and M. Cresswell",
+  title =        "{A Companion to Modal Logic}",
+  publisher =    "Methuen \& Co. Ltd",
+  address =      "London",
+  year =         "1984"
+}
+
+@InProceedings{sahlqvist,
+  author ="H. Sahlqvist",
+  booktitle ="{Proceedings of the Third Scandinavian Logic Symposium}",
+  editor ="S. Kanger",
+  pages ="110--143",
+  publisher ="North-Holland",
+  title ="{Completeness and Correspondence in the First and Second Order Semantics for Modal Logic}",
+  year = "1975",
+}
+
+@misc{moloss,
+    author = "F. Rabe",
+    title = "{Determining the Subset Relation between Propositional Modal Logics}",
+    note = "\url{http://kwarc.eecs.iu-bremen.de/frabe/Research/moloss}"
+}
+
+@InProceedings{ksat,
+  author ="F. Giunchiglia and R. Sebastiani",
+  title ="{Building decision procedures for modal logics from propositional decision procedures: the case study of  modal K}",
+  pages ="583--597",
+  editor ="M. McRobbie and J. Slaney",
+  booktitle ="{Proceedings of the Thirteenth International Conference on Automated Deduction ({CADE}-96)}",
+  publisher ="Springer",
+  year = "1996",
+}
+
+@misc{modlogchal,
+	author = "G. Sutcliffe",
+	title = "{The Modal Logic \$100 Challenge}",
+	year = "2006",
+	note = "See \url{http://www.cs.miami.edu/~tptp/HHDC/}"
+}
+
+@misc{halleck_logic,
+	author = "John Halleck",
+	title = "{Logic Systems}",
+        year = {2006},
+        howpublished = {WWW pages},
+	note = "See \url{http://www.cc.utah.edu/~nahaj/logic/structures/systems/index.html}"
+}
+
+@article{modal_undecidable_example,
+    author = "J. Halpern and M. Vardi",
+    title = "{The complexity of reasoning about knowledge and time}",
+    journal = "{Journal of Computer and System Sciences}",
+    pages = "195--237",
+    volume = "38",
+    number = "1",
+    year = "1989",
+}
+
+@article{modal_sat,
+    author = "E. Giunchiglia and F. Giunchiglia and A. Tacchella",
+    title = "{SAT-Based Decision Procedures for Classical Modal Logics}",
+    journal = "{Journal of Automated Reasoning}",
+    volume = "28",
+    number = "2",
+    pages = "143--171",
+    year = "2002",
+}
+
+@article{modal_incomplete_example,
+    author = "S. Thomason",
+    title = "{An incompleteness theorem in modal logic}",
+    journal = "Theoria",
+    volume = "40",
+    pages = "30--34",
+    year = "1974",
+}
+
+@article{modal_completeness_overview,
+    author = "J. Halpern and Y. Moses",
+    title = "{A guide to completeness and complexity for modal logics of knowledge and belief}",
+    journal = "{Artificial Intelligence}",
+    volume = "54",
+    pages = "319--379",
+    year = "1992",
+}
+
+@article{modal_kripke,
+    author = "S. Kripke",
+    title = "{Semantical analysis of modal logic I. Normal modal propositional calculi}",
+    journal = "{Zeitschrift f{\"u}r Mathematische Logik und Grundlagen der Mathematik}",
+    volume = "9",
+    pages = "67-�96",
+    year = "1963",
+}
+
+@article{modal_filtration,
+    author = "E. Lemmon",
+    title = "{Algebraic Semantics for Modal Logics II}",
+    journal = "{The Journal of Symbolic Logic}",
+    volume = "31",
+    pages = "191-�218",
+    year = "1966",
+}
+
+
+@inproceedings{scan, 
+  author = "D. Gabbay and H. Ohlbach",
+  title = "Quantifier elimination in second-order predicate logic",
+  booktitle = "Principles of Knowledge Representation and Reasoning (KR92)",
+  year = 1992,
+  editor = "Bernhard Nebel and Charles Rich and William Swartout",
+  pages = "425--435",
+  publisher = "Morgan Kaufmann",
+  abstract = {An algorithm is presented which eliminates second-order 
+    quantifiers over predicate variables in formulae of type
+    $\exists P_1 ,..., P_n\ F$ where $F$ is an arbitrary formula of 
+    first--order predicate logic. The resulting formula is equivalent to 
+    the original formula - if the algorithm terminates. 
+    The algorithm can for example be applied to do interpolation, to eliminate the second--order quantifiers in circumscription, 
+    to compute the correlations between structures and power 
+    structures, to compute semantic properties corresponding to Hilbert 
+    axioms in non classical logics and to compute model theoretic 
+    semantics for new logics.},
+  keywords = {Quantifier Elimination, Resolution},
+  source = "ftp://pub/guide/staff/ohlbach/publications/conferences/scan.dvi.gz"
+}
+
+
+@inproceedings{scan2,
+    author = "V. Goranko and U. Hustadt and R. Schmidt and D. Vakarelov",
+    title = "{SCAN is complete for all Sahlqvist formulae}",
+    booktitle = "{Relational and Kleene-Algebraic Methods in Computer Science}",
+    editor = "R. Berghammer and B. Moller and G. Struth",
+    year = "2004",
+    pages = "149--162",
+}
+
+@article{McKinsey41,
+    author = "J. C. McKinsey",
+    title = "{A solution of the decision problem for the Lewis systems S2 and S4 with an application to topology}",
+    journal = "{The Journal of Symbolic Logic}",
+    volume = "6",
+    number = "4",
+    pages = "117--134",
+    month = "December",
+    year = "1941"
+}
+
+@book{modal_tools,
+    author = "M. Kracht",
+    title = "{Tools and Techniques in Modal Logic}",
+    publisher = "Elsevier",
+    year = "1999",
+}
+
+@article{modal_replacement_thomas,
+    author = "I. Thomas",
+    title = "{Replacement in Some Modal Systems}",
+    journal = "{The Journal of Symbolic Logic}",
+    volume = "33",
+    number = "4",
+    pages = "569--570",
+    year = "1968",
+}
+
+@article{modal_replacement_general,
+    author = "J. Porte",
+    title = "{Congruences in Lemmon's S0.5}",
+    journal = "{Notre Dame Journal of Formal Logic}",
+    volume = "21",
+    number = "4",
+    pages = "672--678",
+    year = "1980",
+}
+
+@book{modal_lewis,
+    author = "C. Lewis",
+    title = "{A Survey of Symbolic Logic}",
+    publisher = "University of California Press",
+    year = "1918",
+}
+
+@book{lewi:symb32,
+   author =    {C. Lewis and C. Langford},
+   title =     {Symbolic Logic},
+   publisher = {The Century Co},
+   address =   {New York and London},
+   year =      1932,
+}
+
+@article{jonsson-tarski-51,
+   author = {B. J\'onsson and A. Tarski},
+   title  = {Boolean algebras with operators, {I}},
+   journal = {Amer. J. Math.},
+   volume  = {73},
+   year = {1951},
+   pages = {891--939}
+}
+@article{jonsson-tarski-52,
+   author = {B. J\'onsson and A. Tarski},
+   title  = {Boolean algebras with operators, {II}},
+   journal = {Amer. J. Math.},
+   volume  = {74},
+   year = {1952},
+   pages = {127--162}
+}
+
+% added by Petr when rewriting introduction
+
+@article{wos-mccune-2002,
+  title      = {Short Single Axioms for Boolean Algebra},
+  author     = {W. McCune and R. Veroff and B. Fitelson and K. Harris and A. Feist and L. Wos},
+  journal    = {Journal of Automated Reasoning archive},
+  volume     = {29},
+  number     = {1},
+  year       = {2002},
+  pages      = {1--16}, 
+  ISSN       = {0168-7433}
+}
+@book{blackburn-rijke-venema,
+  author    = {P. Blackburn and M. de Rijke and Y. Venema},
+  title     = {Modal logic},
+  year      = {2001},
+  isbn      = {0-521-80200-8},
+  publisher = {Cambridge University Press},
+  address   = {New York, NY, USA},
+}
+@article{schmidt-decidability,
+ author = {R. Schmidt},
+ title = {Decidability by Resolution for Propositional Modal Logics},
+ journal = {J. Autom. Reason.},
+ volume = {22},
+ number = {4},
+ year = {1999},
+ issn = {0168-7433},
+ pages = {379--396},
+ doi = {http://dx.doi.org/10.1023/A:1006043519663},
+ publisher = {Kluwer Academic Publishers},
+ address = {Hingham, MA, USA},
+ }
+@article{gore97relations,
+    author = "Rajeev Gor\'e and Wolfgang Heinle and Alain Heuerding",
+    title = "Relations Between Propositional Normal Modal Logics: An Overview",
+    journal = "Journal of Logic and Computation",
+    volume = "7",
+    number = "5",
+    pages = "649--658",
+    year = "1997"
+}
+
+@misc{SchmidtHustadt06a,
+  author = {R. Schmidt and U. Hustadt},
+  year = {2006},
+  title = {{First-Order Resolution Methods for Modal Logics}},
+  note = {{To appear in Volume in memoriam of Harald Ganzinger}},
+}
+
+@article{ohlbach97functional,
+    author = "H. Ohlbach and R. Schmidt",
+    title = "Functional Translation and Second-Order Frame Properties of Modal Logics",
+    journal = "Journal of Logic and Computation",
+    volume = "7",
+    number = "5",
+    pages = "581--603",
+    year = "1997"
+}
+
+@inproceedings{WosMcCune92,
+ author = {W. McCune and L. Wos},
+ title = {Experiments in Automated Deduction with Condensed Detachment},
+ booktitle = {CADE-11: Proceedings of the 11th International Conference on Automated Deduction},
+ year = {1992},
+ pages = {209--223},
+ publisher = {Springer},
+}
+
+@article{Kracht90splitting,
+    author = "M. Kracht",
+    title = "An almost general splitting theorem for modal logic",
+    journal = "	Studia Logica",
+    volume = "49",
+    number = "4",
+    pages = "455--470",
+    year = "1990"
+}
+
+@book{Rybakov97,
+	title = "{Admissibility of Logical Inference Rules}",
+	author = "V. Rybakov",
+	year = "1997",
+	publisher = {North-Holland}
+}
+
+@misc{Iemhoff07admissible,
+    author = "R. Iemhoff and G. Metcalfe ",
+    title = "Proof theory for admissible rules",
+    year = "2007",
+    note = "Preprint submitted to \url{http://www.phil.uu.nl/preprints/lgps/}"
+}
diff --git a/omdoc-semantics/macros/bib/other.bib b/omdoc-semantics/macros/bib/other.bib
new file mode 100644
index 0000000000000000000000000000000000000000..fb4a6834cd5fc5c454603f3391053ebe9018711c
--- /dev/null
+++ b/omdoc-semantics/macros/bib/other.bib
@@ -0,0 +1,73 @@
+@misc{makkai_folds,
+	author = "M. Makkai",
+	title = "First Order Logic with Dependent Sorts ({FOLDS})",
+	year = 1997,
+	note= "Unpublished"
+}
+
+@inproceedings{dsl_belo,
+	author = "J. Belo",
+	title = "{Dependently Sorted Logic}",
+  booktitle = "{TYPES 2008}",
+  publisher = "Springer",
+  year = "2008",
+  editor = "M .Miculan and I. Scagnetto and F. Honsell",
+  pages = "33--50",
+}
+
+@incollection{paramodulation,
+    author = "R. Nieuwenhuis and A. Rubio",
+    title = "{Paramodulation-Based Theorem Proving}",
+    booktitle = "Handbook of Automated Reasoning",
+    pages = "371--443",
+    year = "2001",
+    publisher = "Elsevier"
+}
+
+@InProceedings{modules_prolog,
+  title =	"{Modules for Prolog Revisited}",
+  author =	"R. Haemmerl{\'e} and F. Fages",
+  booktitle =	"{22nd International Conference on Logic Programming}",
+  publisher =	"Springer",
+  year = 	"2006",
+  editor =	"S. Etalle and M. Truszczynski",
+  pages =	"41--55",
+}
+
+@misc{slava:proposal,
+  author = "V. Zholudev",
+  title = "{Towards Distributed Mathematical Knowledge Management}",
+  year = 2008,
+  note = "PhD research proposal, Jacobs University Bremen",
+}
+
+@ARTICLE{odlyzko,
+  author = {A. Odlyzko},
+  title = "{Tragic loss or good riddance? The impending demise of traditional scholarly journals}",
+  journal = "{International Journal of Human-Computer Studies}",
+  year = {1995},
+  volume = {42},
+  pages = {71--122}
+}
+
+@misc{zblmath,
+  Key = {ZBMATH},
+  title = "{Zentralblatt MATH (ZBMATH)}",
+  note = "\url{http://www.zentralblatt-math.org}",
+  year = "1931"
+}
+
+@misc{arxiv,
+  key = {ArXiv},
+  title = "{{\tt{arXiv.org}} e-print archive}",
+  note = "{\url{http://www.arxiv.org}}",
+  year = 1994,
+}
+
+@Article{solomon:fsg,
+  author = 	{R. Solomon},
+  title = 	"{On Finite Simple Groups and Their Classification}",
+  journal = {Notices of the AMS},
+  year = 	  1995,
+  pages =   {231--239},
+}
diff --git a/omdoc-semantics/macros/bib/plainyr-rev.bst b/omdoc-semantics/macros/bib/plainyr-rev.bst
new file mode 100644
index 0000000000000000000000000000000000000000..698265e4071cf282a639792a113936636543ebb5
--- /dev/null
+++ b/omdoc-semantics/macros/bib/plainyr-rev.bst
@@ -0,0 +1,1302 @@
+%% plainyr-rev BibTeX style
+%% Author: Christian Plessl <christian@plesslweb.ch>
+%%
+%% This BibTeX style formats bibliographic entries like the plain style
+%% but sorts them in reverse chronological order, i.e., the newest 
+%% references are listed first.
+%%
+%% The style is almost identical to plainyr.bst, but changes only the sorting
+%% order.
+
+%% Changelog
+%% ---------------------------------------------------------------------------------
+%% 2009-04-29
+%% Modified BibTeX style to correctly sorting authors within a particular year, when
+%% no month is given or the month is the same
+%% Contributed by Hans Ekkehard Plesser, http://arken.umb.no/~plesser
+%% ---------------------------------------------------------------------------------
+%% 2009-02-21
+%% Modified BibTeX style to consider also the month field when sorting BibTeX entries.
+%%
+%% contributed by João Gomes, jvpgomes at gmail com, http://penhas.di.ubi.pt/~jgomes
+%% ---------------------------------------------------------------------------------
+
+%% /usr/local/lib/tex/bibtex/plainyr.bst, Mon Jun 29 08:06:48 1992
+%% Edit by Nelson H. F. Beebe <beebe@plot79.math.utah.edu>
+%% I've called this posting plainyr instead of the author's datasort
+%% because the latter is uninformative.
+
+% Newsgroups: comp.text.tex
+% Path: math.utah.edu!hellgate.utah.edu!cs.utexas.edu!uunet!brunix!cs.brown.edu!mpp
+% From: mpp@cns.brown.edu (Michael P. Perrone)
+% Subject: Re: bibtex sorting by year
+% Message-ID: <1992Jun26.075302.21206@cs.brown.edu>
+% Sender: mpp@cs.brown.edu (Michael P. Perrone)
+% Organization: Center for Neural Science, Brown University
+% References:  <1992Jun26.065942.20721@cs.brown.edu>
+% Date: Fri, 26 Jun 1992 07:53:02 GMT
+% Lines: 1128
+%
+% i figured out the bibtex problem.
+% the following bibstyle file will sort by year, author, title (in that order)
+% with the usual editor, organization (etc.) substitutions
+%
+% % ----- cut here -------------------------------
+%
+%-------------------------------------------------------------------------
+% DATASORT.BST --- created: 92.6.26 (Michael P. Perrone, Brown University)
+%
+% this is a simple hack of the plain.bst bibtex style file
+% which processes bibliography entries in chronological order
+% by year.  within a year things are sort by author, title, etc.
+%
+% DISCLAIMER:  if this doesn't work - sorry!
+%-------------------------------------------------------------------------
+%
+%
+% [MODIFIED] BibTeX standard bibliography style `plain'
+        % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+        % Copyright (C) 1985, all rights reserved.
+        % Copying of this file is authorized only if either
+        % (1) you make absolutely no changes to your copy, including name, or
+        % (2) if you do make changes, you name it something other than
+        % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+        % This restriction helps ensure that all standard styles are identical.
+        % The file btxbst.doc has the documentation for this style.
+
+ENTRY
+  { address
+    author
+    booktitle
+    chapter
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    volume
+    year
+  }
+  {}
+  { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { ", " * write$ }
+    { output.state after.block =
+        { add.period$ write$
+          newline$
+          "\newblock " write$
+        }
+        { output.state before.all =
+            'write$
+            { add.period$ " " * write$ }
+          if$
+        }
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+  "\bibitem{" write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+  write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+        'skip$
+        { after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "{\em " swap$ * "}" * }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+      nameptr #1 >
+        { namesleft #1 >
+            { ", " * t * }
+            { numnames #2 >
+                { "," * }
+                'skip$
+              if$
+              t "others" =
+                { " et~al." * }
+                { " and " * t * }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+    { "" }
+    { author format.names }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+        { ", editors" * }
+        { ", editor" * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+    { "" }
+    { title "t" change.case$ }
+  if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+        { t #1 #2 substring$ "--" = not
+            { "--" *
+              t #2 global.max$ substring$ 't :=
+            }
+            {   { t #1 #1 substring$ "-" = }
+                { "-" *
+                  t #2 global.max$ substring$ 't :=
+                }
+              while$
+            }
+          if$
+        }
+        { t #1 #1 substring$ *
+          t #2 global.max$ substring$ 't :=
+        }
+      if$
+    }
+  while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+    { month empty$
+        { "" }
+        { "there's a month but no year in " cite$ * warning$
+          month
+        }
+      if$
+    }
+    { month empty$
+        'year
+        { month " " * year * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { "volume" volume tie.or.space.connect
+      series empty$
+        'skip$
+        { " of " * series emphasize * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+        { series field.or.null }
+        { output.state mid.sentence =
+            { "number" }
+            { "Number" }
+          if$
+          number tie.or.space.connect
+          series empty$
+            { "there's a number but no series in " cite$ * warning$ }
+            { " in " * series * }
+          if$
+        }
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+    { "" }
+    { output.state mid.sentence =
+        { edition "l" change.case$ " edition" * }
+        { edition "t" change.case$ " edition" * }
+      if$
+    }
+  if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+        { #1 'multiresult := }
+        { t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+        { "pages" pages n.dashify tie.or.space.connect }
+        { "page" pages tie.or.space.connect }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+  number empty$
+    'skip$
+    { "(" number * ")" * *
+      volume empty$
+        { "there's a number but no volume in " cite$ * warning$ }
+        'skip$
+      if$
+    }
+  if$
+  pages empty$
+    'skip$
+    { duplicate$ empty$
+        { pop$ format.pages }
+        { ":" * pages n.dashify * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+        { "chapter" }
+        { type "l" change.case$ }
+      if$
+      chapter tie.or.space.connect
+      pages empty$
+        'skip$
+        { ", " * format.pages * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { editor empty$
+        { "In " booktitle emphasize * }
+        { "In " format.editors * ", " * booktitle emphasize * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+  month empty$ year empty$ note empty$
+  and and and and and
+  key empty$ not and
+    { "all relevant fields are empty in " cite$ * warning$ }
+    'skip$
+  if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+    'skip$
+    { pop$
+      type "t" change.case$
+    }
+  if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+    { "Technical Report" }
+    'type
+  if$
+  number empty$
+    { "t" change.case$ }
+    { number tie.or.space.connect }
+  if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+    { journal empty$
+        { "need key or journal for " cite$ * " to crossref " * crossref *
+          warning$
+          ""
+        }
+        { "In {\em " journal * "\/}" * }
+      if$
+    }
+    { "In " key * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+  editor num.names$ duplicate$
+  #2 >
+    { pop$ " et~al." * }
+    { #2 <
+        'skip$
+        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+            { " et~al." * }
+            { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      "In "
+    }
+    { "Volume" volume tie.or.space.connect
+      " of " *
+    }
+  if$
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+        { series empty$
+            { "need editor, key, or series for " cite$ * " to crossref " *
+              crossref * warning$
+              "" *
+            }
+            { "{\em " * series * "\/}" * }
+          if$
+        }
+        { key * }
+      if$
+    }
+    { format.crossref.editor * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+        { booktitle empty$
+            { "need editor, key, or booktitle for " cite$ * " to crossref " *
+              crossref * warning$
+              ""
+            }
+            { "In {\em " booktitle * "\/}" * }
+          if$
+        }
+        { "In " key * }
+      if$
+    }
+    { "In " format.crossref.editor * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { journal emphasize "journal" output.check
+      format.vol.num.pages output
+      format.date "year" output.check
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      new.block
+      format.number.series output
+      new.sentence
+      publisher "publisher" output.check
+      address output
+    }
+    { new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  new.block
+  format.title "title" output.check
+  howpublished address new.block.checkb
+  howpublished output
+  address output
+  format.date output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      format.chapter.pages "chapter and pages" output.check
+      new.block
+      format.number.series output
+      new.sentence
+      publisher "publisher" output.check
+      address output
+    }
+    { format.chapter.pages "chapter and pages" output.check
+      new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      format.chapter.pages output
+      new.sentence
+      publisher "publisher" output.check
+      address output
+      format.edition output
+      format.date "year" output.check
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      format.pages output
+      address empty$
+        { organization publisher new.sentence.checkb
+          organization output
+          publisher output
+          format.date "year" output.check
+        }
+        { address output.nonnull
+          format.date "year" output.check
+          new.sentence
+          organization output
+          publisher output
+        }
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+  author empty$
+    { organization empty$
+        'skip$
+        { organization output.nonnull
+          address output
+        }
+      if$
+    }
+    { format.authors output.nonnull }
+  if$
+  new.block
+  format.btitle "title" output.check
+  author empty$
+    { organization empty$
+        { address new.block.checka
+          address output
+        }
+        'skip$
+      if$
+    }
+    { organization address new.block.checkb
+      organization output
+      address output
+    }
+  if$
+  format.edition output
+  format.date output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  "Master's thesis" format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  title howpublished new.block.checkb
+  format.title output
+  howpublished new.block.checka
+  howpublished output
+  format.date output
+  new.block
+  note output
+  fin.entry
+  empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.btitle "title" output.check
+  new.block
+  "PhD thesis" format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  editor empty$
+    { organization output }
+    { format.editors output.nonnull }
+  if$
+  new.block
+  format.btitle "title" output.check
+  format.bvolume output
+  format.number.series output
+  address empty$
+    { editor empty$
+        { publisher new.sentence.checka }
+        { organization publisher new.sentence.checkb
+          organization output
+        }
+      if$
+      publisher output
+      format.date "year" output.check
+    }
+    { address output.nonnull
+      format.date "year" output.check
+      new.sentence
+      editor empty$
+        'skip$
+        { organization output }
+      if$
+      publisher output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  format.tr.number output.nonnull
+  institution "institution" output.check
+  address output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  note "note" output.check
+  format.date output
+  fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+  "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+  'len :=
+  s #1 len substring$ =
+    { s len #1 + global.max$ substring$ }
+    's
+  if$
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+  #1 'nameptr :=
+  ""
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { nameptr #1 >
+        { "   " * }
+        'skip$
+      if$
+      s nameptr "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=
+      nameptr numnames = t "others" = and
+        { "et al" * }
+        { t sortify * }
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {sort.format.month}
+{ 't :=
+  t #1 #3 substring$ "Jan" =
+  t #1 #3 substring$ "jan" =
+  or
+  { "12" }
+    { t #1 #3 substring$ "Feb" =
+      t #1 #3 substring$ "feb" =
+      or
+      { "11" }
+      { t #1 #3 substring$ "Mar" =
+        t #1 #3 substring$ "mar" =
+        or
+        { "10" }
+        { t #1 #3 substring$ "Apr" =
+          t #1 #3 substring$ "apr" =
+          or
+          { "09" }
+          { t #1 #3 substring$ "May" =
+            t #1 #3 substring$ "may" =
+            or
+            { "08" }
+            { t #1 #3 substring$ "Jun" =
+              t #1 #3 substring$ "jun" =
+              or
+              { "07" }
+              { t #1 #3 substring$ "Jul" =
+                t #1 #3 substring$ "jul" =
+                or
+                { "06" }
+                { t #1 #3 substring$ "Aug" =
+                  t #1 #3 substring$ "aug" =
+                  or
+                  { "05" }
+                  { t #1 #3 substring$ "Sep" =
+                    t #1 #3 substring$ "sep" =
+                    or
+                    { "04" }
+                    { t #1 #3 substring$ "Oct" =
+                      t #1 #3 substring$ "oct" =
+                      or
+                      { "03" }
+                      { t #1 #3 substring$ "Nov" =
+                        t #1 #3 substring$ "nov" =
+                        or
+                        { "02" }
+                        { t #1 #3 substring$ "Dec" =
+                          t #1 #3 substring$ "dec" =
+                          or
+                          { "01" }
+                          { "13" } % No month specified
+                        if$
+                        }
+                      if$
+                      }
+                    if$
+                    }
+                  if$
+                  }
+                if$
+                }
+              if$
+              }
+            if$
+            }
+          if$
+          }
+        if$
+        }
+      if$
+      }
+    if$
+    }
+  if$
+ 
+}
+ 
+FUNCTION {sort.format.title}
+{ 't :=
+  "A " #2
+    "An " #3
+      "The " #4 t chop.word
+    chop.word
+  chop.word
+  sortify
+  #1 global.max$ substring$
+}
+
+FUNCTION {year.sort}
+{ year empty$
+    { key empty$
+        { "to sort, need year or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { year sort.format.names }
+  if$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+    { key empty$
+        { "to sort, need author or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { "to sort, need author, editor, or key in " cite$ * warning$
+              ""
+            }
+            { key sortify }
+          if$
+        }
+        { editor sort.format.names }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+    { organization empty$
+        { key empty$
+            { "to sort, need author, organization, or key in " cite$ * warning$
+              ""
+            }
+            { key sortify }
+          if$
+        }
+        { "The " #4 organization chop.word sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+    { organization empty$
+        { key empty$
+            { "to sort, need editor, organization, or key in " cite$ * warning$
+              ""
+            }
+            { key sortify }
+          if$
+        }
+        { "The " #4 organization chop.word sortify }
+      if$
+    }
+    { editor sort.format.names }
+  if$
+}
+
+
+%% Code for reverse sorting
+%% Contributed by Hans Ekkehard Plesser, http://arken.umb.no/~plesser
+
+% Take year, assuming it is four-digit, convert to int, subtract from 9999
+% and return as string on stack. For reverse chronological sorting.
+INTEGERS { pos k res }
+STRINGS { tmpyear }
+FUNCTION {reverse.year}
+{
+ % ensure four digit year
+ year empty$ 
+   { "9999" "missing year in " cite$ * ", using 9999 for sorting" * warning$ }  
+   { year text.length$ #4 = 
+       { year }
+       { "9999" "year not 4-digit in " cite$ * ", using 9999 for sorting" * warning$ }
+     if$
+   }
+ if$
+ 'tmpyear :=
+
+ #0 'res := % will contain year as integer
+
+ #5 'pos := % index into year, we pre-decrement, will enter body with 4..1
+ { pos #1 - 'pos := pos }
+ { 
+   % extract digit at pos, convert to ASCII, subtract 48 -> 0..9, store in k
+   tmpyear pos #1 substring$ chr.to.int$ #48 - 'k :=
+
+   { k duplicate$ #1 - 'k := }
+   {
+     pos #1 = 
+       { res #1000 + 'res := }
+	{
+	  pos #2 =
+	    { res #100 + 'res := }
+	    {
+	      pos #3 =
+		{ res #10 + 'res := }
+		{ res #1 + 'res := }
+	      if$ 
+	    }
+	  if$
+	}
+     if$
+   }
+   while$
+ }
+ while$
+
+ #9999 res - 
+ int.to.str$
+}
+
+FUNCTION {presort}
+{
+  % sort by reverse year
+  reverse.year
+  "    "
+  *
+  month field.or.null
+  sort.format.month
+  *
+  " "
+  *
+  author field.or.null
+  sort.format.names
+  *
+  "    "
+  *
+  title field.or.null
+  sort.format.title
+  *
+
+  % cite key for definitive disambiguation
+  cite$
+  *
+
+  % limit to maximum sort key length
+  #1 entry.max$ substring$
+
+  'sort.key$ :=
+}
+
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+  #1 'number.label :=
+  #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+  number.label #1 + 'number.label :=
+  label width$ longest.label.width >
+    { label 'longest.label :=
+      label width$ 'longest.label.width :=
+    }
+    'skip$
+  if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+%REVERSE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+
diff --git a/omdoc-semantics/macros/bib/pub_rabe.bib b/omdoc-semantics/macros/bib/pub_rabe.bib
new file mode 100644
index 0000000000000000000000000000000000000000..efcd1e6f22794bf4e132cd2eaf602646fd06b87e
--- /dev/null
+++ b/omdoc-semantics/macros/bib/pub_rabe.bib
@@ -0,0 +1,1019 @@
+%% this file was generated with Florian Rabe's bib utility
+@inproceedings{HR:tptp:12,
+  author = "F. Horozal and F. Rabe",
+  title = "{Formal Logic Definitions for Interchange Languages}",
+  year = "2015",
+  pages = "171--186",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "M. Kerber and J. Carette and C. Kaliszyk and F. Rabe and V. Sorge",
+  publisher = "Springer"
+}
+
+@inproceedings{rabe:literals:14,
+  author = "F. Rabe",
+  title = "{Generic Literals}",
+  year = "2015",
+  pages = "102--117",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "M. Kerber and J. Carette and C. Kaliszyk and F. Rabe and V. Sorge",
+  publisher = "Springer"
+}
+
+@proceedings{KCKRS:cicm:15,
+  title = "{Intelligent Computer Mathematics}",
+  year = "2015",
+  note = "in preparation",
+  editor = "M. Kerber and J. Carette and C. Kaliszyk and F. Rabe and V. Sorge",
+  publisher = "Springer"
+}
+
+@article{rabe:lax:14,
+  author = "F. Rabe",
+  title = "{Lax Theory Morphisms}",
+  year = "2015",
+  note = "to appear; see \url{http://kwarc.info/frabe/Research/rabe_lax_14.pdf}",
+  journal = "ACM Transactions on Computational Logic"
+}
+
+@article{KR:qed:14,
+  author = "M. Kohlhase and F. Rabe",
+  title = "{QED Reloaded: Towards a Pluralistic Formal Library of Mathematical Knowledge}",
+  year = "2015",
+  note = "accepted pending minor revisions; see \url{http://kwarc.info/frabe/Research/KR_qed_14.pdf}",
+  journal = "Journal of Formalized Reasoning"
+}
+
+@article{rabe:future:15,
+  author = "F. Rabe",
+  title = "{The Future of Logic: Foundation-Independence}",
+  year = "2015",
+  note = "Winner of the Contest ``The Future of Logic'', to appear; see \url{http://kwarc.info/frabe/Research/rabe_lax_14.pdf}",
+  journal = "Logica Universalis"
+}
+
+@unpublished{rabe:theoexp:15,
+  author = "F. Rabe",
+  title = "{Theory Expressions (A Survey)}",
+  year = "2015",
+  note = "see \url{http://kwarc.info/frabe/Research/rabe_theoexp_15.pdf}"
+}
+
+@misc{nadrag:bsc,
+  author = "R. Nadrag",
+  title = "{Towards Integrating Mathematical Libraries via Alignments}",
+  year = "2015",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@phdthesis{horozal:phd,
+  author = "F. Horozal",
+  title = "{A Framework for Defining Declarative Languages}",
+  year = "2014",
+  school = "Jacobs University Bremen"
+}
+
+@unpublished{rabe:mmttypetheory:14,
+  author = "F. Rabe",
+  title = "{A Generic Type Theory}",
+  year = "2014",
+  note = "see \url{http://kwarc.info/frabe/Research/rabe_mmttypetheory_14.pdf}"
+}
+
+@inproceedings{rabe:ui:14,
+  author = "F. Rabe",
+  title = "{A Logic-Independent IDE}",
+  year = "2014",
+  pages = "48--60",
+  booktitle = "Workshop on User Interfaces for Theorem Provers",
+  editor = "C. Benzmüller and B. {Woltzenlogel Paleo}",
+  publisher = "Elsevier"
+}
+
+@phdthesis{rabe:habil:14,
+  type = "Habilitation thesis",
+  author = "F. Rabe",
+  title = "{A Scalable Logical Framework}",
+  year = "2014",
+  note = "see \url{http://kwarc.info/frabe/Research/rabe_habil_14.pdf}",
+  school = "Jacobs University Bremen"
+}
+
+@inproceedings{HRK:sequences:14,
+  author = "F. Horozal and F. Rabe and M. Kohlhase",
+  title = "{Flexary Operators for Formalized Mathematics}",
+  year = "2014",
+  pages = "312--327",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "S. Watt and J. Davenport and A. Sexton and P. Sojka and J. Urban",
+  publisher = "Springer"
+}
+
+@article{rabe:howto:14,
+  author = "F. Rabe",
+  title = "{How to Identify, Translate, and Combine Logics?}",
+  year = "2014",
+  note = "doi:10.1093/logcom/exu079",
+  journal = "Journal of Logic and Computation"
+}
+
+@inproceedings{rabe:mmtobjects:14,
+  author = "F. Rabe",
+  title = "{MMT Objects}",
+  year = "2014",
+  booktitle = "Workshops and Work in Progress at CICM 2014: OpenMath Workshop",
+  editor = "M. England and J. Davenport and A. Kohlhase and M. Kohlhase and P. Libbrecht and W. Neuper and P. Quaresma and A. Sexton and P. Sojka and J. Urban and S. Watt",
+  publisher = "CEUR"
+}
+
+@misc{project:oaf,
+  author = "M. Kohlhase and F. Rabe",
+  title = "{The OAF Project}",
+  year = "2014",
+  note = "see \url{https://svn.kwarc.info/repos/frabe/www/OAF/index.html}"
+}
+
+@inproceedings{KR:hollight:14,
+  author = "C. Kaliszyk and F. Rabe",
+  title = "{Towards Knowledge Management for HOL Light}",
+  year = "2014",
+  pages = "357--372",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "S. Watt and J. Davenport and A. Sexton and P. Sojka and J. Urban",
+  publisher = "Springer"
+}
+
+@misc{luecke:bsc,
+  author = "T. L{\"u}cke",
+  title = "{A Description Operator for First-Order-Logic}",
+  year = "2013",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@article{rabe:combining:10,
+  author = "F. Rabe",
+  title = "{A Logical Framework Combining Model and Proof Theory}",
+  year = "2013",
+  pages = "945--1001",
+  journal = "Mathematical Structures in Computer Science",
+  volume = "23",
+  number = "5"
+}
+
+@misc{mance:bsc,
+  author = "F. Mance",
+  title = "{A Practical OpenMath Machine}",
+  year = "2013",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@article{RK:mmt:10,
+  author = "F. Rabe and M. Kohlhase",
+  title = "{A Scalable Module System}",
+  year = "2013",
+  pages = "1--54",
+  journal = "Information and Computation",
+  volume = "230",
+  number = "1"
+}
+
+@inproceedings{KMR:uom:13,
+  author = "M. Kohlhase and F. Mance and F. Rabe",
+  title = "{A Universal Machine for Biform Theory Graphs}",
+  year = "2013",
+  pages = "82--97",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "J. Carette and D. Aspinall and C. Lange and P. Sojka and W. Windsteiger",
+  publisher = "Springer"
+}
+
+@inproceedings{CHJMR:compiling:12,
+  author = "M. Codescu and F. Horozal and A. Jakubauskas and T. Mossakowski and F. Rabe",
+  title = "{Compiling Logics}",
+  year = "2013",
+  pages = "111--126",
+  booktitle = "Recent Trends in Algebraic Development Techniques 2012",
+  editor = "N. Mart{\'i}-Oliet and M. Palomino",
+  publisher = "Springer"
+}
+
+@unpublished{GIR:mmtlatex:13,
+  author = "D. Ginev and M. Iancu and F. Rabe",
+  title = "{Integrating Content and Narration-Oriented Document Formats}",
+  year = "2013",
+  note = "see \url{http://kwarc.info/frabe/Research/GIR_mmtlatex_13.pdf}"
+}
+
+@article{RS:logrels:12,
+  author = "F. Rabe and K. Sojakova",
+  title = "{Logical Relations for a Logical Framework}",
+  year = "2013",
+  pages = "1--34",
+  journal = "ACM Transactions on Computational Logic",
+  volume = "14",
+  number = "4"
+}
+
+@article{IKRU:mizar:11,
+  author = "M. Iancu and M. Kohlhase and F. Rabe and J. Urban",
+  title = "{The Mizar Mathematical Library in OMDoc: Translation and Applications}",
+  year = "2013",
+  pages = "191--202",
+  journal = "Journal of Automated Reasoning",
+  volume = "50",
+  number = "2"
+}
+
+@inproceedings{rabe:mmtabs:13,
+  author = "F. Rabe",
+  title = "{The MMT API: A Generic MKM System}",
+  year = "2013",
+  pages = "339--343",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "J. Carette and D. Aspinall and C. Lange and P. Sojka and W. Windsteiger",
+  publisher = "Springer"
+}
+
+@inproceedings{IMR:mmtrepl:13,
+  author = "M. Iancu and F. Mance and F. Rabe",
+  title = "{The Scala-REPL + MMT as a lightweight mathematical user interface}",
+  year = "2013",
+  booktitle = "Workshops and Work in Progress at CICM 2013: Mathematical User Interfaces (MathUI)",
+  editor = "C. Lange and D. Aspinall and J. Carette and J. Davenport and A. Kohlhase and M. Kohlhase and P. Libbrecht and P. Quaresma and F. Rabe and P. Sojka and I. Whiteside and W. Windsteiger",
+  publisher = "CEUR"
+}
+
+@proceedings{LangeEA:cicmws:13,
+  title = "{Workshops and Work in Progress at CICM 2013}",
+  year = "2013",
+  editor = "C. Lange and D. Aspinall and J. Carette and J. Davenport and A. Kohlhase and M. Kohlhase and P. Libbrecht and P. Quaresma and F. Rabe and P. Sojka and I. Whiteside and W. Windsteiger",
+  publisher = "CEUR"
+}
+
+@inproceedings{IR:ui:12,
+  author = "M. Iancu and F. Rabe",
+  title = "{(Work-in-Progress) An MMT-Based User-Interface}",
+  year = "2012",
+  booktitle = "Workshop on User Interfaces for Theorem Provers",
+  editor = "C. Kaliszyk and C. L{\"u}th"
+}
+
+@inproceedings{CHKMR:hiding:11,
+  author = "M. Codescu and F. Horozal and M. Kohlhase and T. Mossakowski and F. Rabe",
+  title = "{A Proof Theoretic Interpretation of Model Theoretic Hiding}",
+  year = "2012",
+  pages = "118--138",
+  booktitle = "Recent Trends in Algebraic Development Techniques 2010",
+  editor = "T. Mossakowski and H. Kreowski",
+  publisher = "Springer"
+}
+
+@inproceedings{rabe:querying:12,
+  author = "F. Rabe",
+  title = "{A Query Language for Formal Mathematical Libraries}",
+  year = "2012",
+  pages = "142--157",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "J. Campbell and J. Carette and G. {Dos Reis} and J. Jeuring and P. Sojka and V. Sorge and M. Wenzel",
+  publisher = "Springer"
+}
+
+@mastersthesis{dumbrava:msc,
+  author = "S. Dumbrava",
+  title = "{A Type Theory based on Reflection}",
+  year = "2012",
+  school = "Jacobs University Bremen"
+}
+
+@unpublished{rabe:reflection:12,
+  author = "F. Rabe",
+  title = "{A Type Theory Based on Reflection}",
+  year = "2012",
+  note = "see \url{http://kwarc.info/frabe/Research/rabe_reflection_12.pdf}"
+}
+
+@inproceedings{CHMR:compiling:12,
+  author = "M. Codescu and F. Horozal and T. Mossakowski and F. Rabe",
+  title = "{Compiling Logics}",
+  year = "2012",
+  booktitle = "Workshop on Algebraic Development Techniques"
+}
+
+@inproceedings{HKR:extending:12,
+  author = "F. Horozal and M. Kohlhase and F. Rabe",
+  title = "{Extending MKM Formats at the Statement Level}",
+  year = "2012",
+  pages = "64--79",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "J. Campbell and J. Carette and G. {Dos Reis} and J. Jeuring and P. Sojka and V. Sorge and M. Wenzel",
+  publisher = "Springer"
+}
+
+@misc{alecu:bsc,
+  author = "M. Alecu",
+  title = "{Generic unification for type theories}",
+  year = "2012",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@inproceedings{IR:moc:12,
+  author = "M. Iancu and F. Rabe",
+  title = "{Management of Change in Declarative Languages}",
+  year = "2012",
+  pages = "325--340",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "J. Campbell and J. Carette and G. {Dos Reis} and J. Jeuring and P. Sojka and V. Sorge and M. Wenzel",
+  publisher = "Springer"
+}
+
+@mastersthesis{iancu:msc,
+  author = "M. Iancu",
+  title = "{Management of Change in Declarative Languages}",
+  year = "2012",
+  school = "Jacobs University Bremen"
+}
+
+@mastersthesis{horozal:msc,
+  author = "F. Horozal",
+  title = "{Management of Change in the Web Ontology Language}",
+  year = "2012",
+  school = "Jacobs University Bremen"
+}
+
+@inproceedings{RS:vertrans:12,
+  author = "F. Rabe and K. Sojakova",
+  title = "{Mechanically Verifying Logic Translations}",
+  year = "2012",
+  booktitle = "Workshop on Algebraic Development Techniques"
+}
+
+@misc{ignatov:bsc,
+  author = "I. Ignatov",
+  title = "{Modular Encoding of Type Theory}",
+  year = "2012",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@inproceedings{CHIR:casl:12,
+  author = "M. Codescu and F. Horozal and I. Ignatov and F. Rabe",
+  title = "{Representing CASL in a Proof-Theoretical Logical Framework}",
+  year = "2012",
+  booktitle = "Workshop on Algebraic Development Techniques"
+}
+
+@inproceedings{HR:patterns:12,
+  author = "F. Horozal and F. Rabe",
+  title = "{Representing Categories of Theories in a Proof-Theoretical Logical Framework}",
+  year = "2012",
+  booktitle = "Workshop on Algebraic Development Techniques"
+}
+
+@article{KR:omsemantics:12,
+  author = "M. Kohlhase and F. Rabe",
+  title = "{Semantics of OpenMath and MathML3}",
+  year = "2012",
+  pages = "235--260",
+  journal = "Mathematics in Computer Science",
+  volume = "6",
+  number = "3"
+}
+
+@inproceedings{CHKMRS:lfhets:11,
+  author = "M. Codescu and F. Horozal and M. Kohlhase and T. Mossakowski and F. Rabe and K. Sojakova",
+  title = "{Towards Logical Frameworks in the Heterogeneous Tool Set Hets}",
+  year = "2012",
+  pages = "139--159",
+  booktitle = "Recent Trends in Algebraic Development Techniques 2010",
+  editor = "T. Mossakowski and H. Kreowski",
+  publisher = "Springer"
+}
+
+@inproceedings{RKS:integration:11,
+  author = "F. Rabe and M. Kohlhase and C. {Sacerdoti Coen}",
+  title = "{A Foundational View on Integration Problems}",
+  year = "2011",
+  pages = "107--122",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "J. Davenport and W. Farmer and F. Rabe and J. Urban",
+  publisher = "Springer"
+}
+
+@inproceedings{HIJKR:dimensions:11,
+  author = "F. Horozal and A. Iacob and C. Jucovschi and M. Kohlhase and F. Rabe",
+  title = "{Combining Source, Content, Presentation, Narration, and Relational Representation}",
+  year = "2011",
+  pages = "212--227",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "J. Davenport and W. Farmer and F. Rabe and J. Urban",
+  publisher = "Springer"
+}
+
+@inproceedings{HKR:sequences:11,
+  author = "F. Horozal and M. Kohlhase and F. Rabe",
+  title = "{Extending OpenMath with Sequences}",
+  year = "2011",
+  pages = "58--72",
+  booktitle = "Intelligent Computer Mathematics, Work-in-Progress Proceedings",
+  editor = "A. Asperti and J. Davenport and W. Farmer and F. Rabe and J. Urban",
+  publisher = "University of Bologna"
+}
+
+@article{IR:foundations:10,
+  author = "M. Iancu and F. Rabe",
+  title = "{Formalizing Foundations of Mathematics}",
+  year = "2011",
+  pages = "883--911",
+  journal = "Mathematical Structures in Computer Science",
+  volume = "21",
+  number = "4"
+}
+
+@misc{zamdzhiev:bsc:math,
+  author = "V. Zamdzhiev",
+  title = "{Formalizing Syntactical Objects within Formalized Set Theory}",
+  year = "2011",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@proceedings{DFRU:cicm:11,
+  title = "{Intelligent Computer Mathematics}",
+  year = "2011",
+  editor = "J. Davenport and W. Farmer and F. Rabe and J. Urban",
+  publisher = "Springer"
+}
+
+@proceedings{DFRU:cicmwip:11,
+  title = "{Intelligent Computer Mathematics, Work-in-Progress Proceedings}",
+  year = "2011",
+  editor = "A. Asperti and J. Davenport and W. Farmer and F. Rabe and J. Urban",
+  publisher = "University of Bologna"
+}
+
+@article{AR:lamkrip:11,
+  author = "S. Awodey and F. Rabe",
+  title = "{Kripke Semantics for Martin-L{\"o}f's Extensional Type Theory}",
+  year = "2011",
+  journal = "Logical Methods in Computer Science",
+  volume = "7",
+  number = "3"
+}
+
+@proceedings{GNRS:lfmtpmlpa:11,
+  title = "{LFMTP 2011 - MLPA 2011 Informal Proceedings}",
+  year = "2011",
+  note = "see \url{http://kwarc.info/frabe/events/mlpa-11/index.html}",
+  editor = "H. Geuvers and G. Nadathur and F. Rabe and C. Sch{\"u}rmann"
+}
+
+@inproceedings{CHKMR:latinabs:11,
+  author = "M. Codescu and F. Horozal and M. Kohlhase and T. Mossakowski and F. Rabe",
+  title = "{Project Abstract: Logic Atlas and Integrator (LATIN)}",
+  year = "2011",
+  pages = "289--291",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "J. Davenport and W. Farmer and F. Rabe and J. Urban",
+  publisher = "Springer"
+}
+
+@article{HR:folsound:10,
+  author = "F. Horozal and F. Rabe",
+  title = "{Representing Model Theory in a Type-Theoretical Logical Framework}",
+  year = "2011",
+  pages = "4919--4945",
+  journal = "Theoretical Computer Science",
+  volume = "412",
+  number = "37"
+}
+
+@mastersthesis{iacob:msc,
+  author = "A. Iacob",
+  title = "{Towards Project-Based Workflows in Twelf}",
+  year = "2011",
+  school = "Jacobs University Bremen"
+}
+
+@techreport{IKR:mizar:11,
+  author = "M. Iancu and M. Kohlhase and F. Rabe",
+  title = "{Translating the Mizar Mathematical Library into OMDoc format}",
+  year = "2011",
+  institution = "Jacobs University Bremen",
+  number = "KWARC Report-01/11"
+}
+
+@misc{zamdzhiev:bsc:cs,
+  author = "V. Zamdzhiev",
+  title = "{Universal OpenMath Machine}",
+  year = "2011",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@inproceedings{ZKR:tntbase:10,
+  author = "V. Zholudev and M. Kohlhase and F. Rabe",
+  title = "{A [insert XML Format] Database for [insert cool application]}",
+  year = "2010",
+  booktitle = "XMLPrague 2010",
+  publisher = "XMLPrague.cz"
+}
+
+@misc{rabeEA:isabelle-lf:10,
+  author = "M. Iancu and F. Rabe",
+  title = "{A Formal Semantics of Isabelle/HOL}",
+  year = "2010",
+  note = "see \url{https://svn.kwarc.info/repos/twelf/projects/isabelle}"
+}
+
+@unpublished{RI:isabelle:10,
+  author = "F. Rabe and M. Iancu",
+  title = "{A Formalized Set-Theoretical Semantics of Isabelle/HOL}",
+  year = "2010",
+  note = "see \url{http://kwarc.info/frabe/Research/rabeEA_isabelle_10.pdf}"
+}
+
+@inproceedings{CHKMR:hiding:10,
+  author = "M. Codescu and F. Horozal and M. Kohlhase and T. Mossakowski and F. Rabe",
+  title = "{A Proof Theoretic Interpretation of Model Theoretic Hiding}",
+  year = "2010",
+  booktitle = "Workshop on Algebraic Development Techniques"
+}
+
+@misc{iancu:bsc,
+  author = "M. Iancu",
+  title = "{Formalizing Foundations of Mathematics}",
+  year = "2010",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@misc{IR:foundations-lf:10,
+  author = "M. Iancu and F. Rabe",
+  title = "{Formalizing Foundations of Mathematics, LF Encodings}",
+  year = "2010",
+  note = "see \url{https://latin.omdoc.org/wiki/FormalizingFoundations}"
+}
+
+@misc{misev:bsc,
+  author = "D. Misev",
+  title = "{Integrating SUMO and OMDoc}",
+  year = "2010",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@misc{david:bsc,
+  author = "C. David",
+  title = "{Interactive Documents and Computer Algebra Systems: JOBAD and Wolfram|Alpha}",
+  year = "2010",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@inproceedings{DLR:jobad:10,
+  author = "C. David and C. Lange and F. Rabe",
+  title = "{Interactive Documents as Interfaces to Computer Algebra Systems: JOBAD and Wolfram|Alpha}",
+  year = "2010",
+  pages = "13--30",
+  booktitle = "CALCULEMUS (Emerging Trends)",
+  editor = "D. Delahaye and R. Rioboo",
+  publisher = "Centre d'{\'E}tude et de Recherche en Informatique du CNAM (C{\'e}dric)"
+}
+
+@inproceedings{DKLRZ:jobadmmt:10,
+  author = "C. David and M. Kohlhase and C. Lange and F. Rabe and V. Zholudev",
+  title = "{JOBAD/MMT -- Interactive Mathematics}",
+  year = "2010",
+  note = "see \url{http://sites.google.com/a/fh-hannover.de/aimashup/home/jobad}",
+  booktitle = "AI Mashup Challenge at ESWC",
+  editor = "A. Giurca and B. Endres-Niggemeyer and C. Lange and L. Maicher and P. Hitzler"
+}
+
+@mastersthesis{sojakova:msc,
+  author = "K. Sojakova",
+  title = "{Mechanically Verifying Logic Translations}",
+  year = "2010",
+  school = "Jacobs University Bremen"
+}
+
+@proceedings{RS:mlpa:10,
+  title = "{MLPA '10: Proceedings of the 2nd Workshop on Modules and Libraries for Proof Assistants}",
+  year = "2010",
+  note = "see \url{http://kwarc.info/frabe/events/mlpa-10.html}",
+  editor = "F. Rabe and C. Sch{\"u}rmann"
+}
+
+@inproceedings{DKLRZ:jobaddemo:10,
+  author = "C. David and M. Kohlhase and C. Lange and F. Rabe and V. Zholudev",
+  title = "{Publishing Math Lecture Notes as Linked Data}",
+  year = "2010",
+  pages = "370--375",
+  booktitle = "The Semantic Web: Research and Applications",
+  editor = "L. Aroyo and G. Antoniou and E. Hyv{\"o}nen and A. {ten Teije} and H. Stuckenschmidt and L. Cabral and T. Tudorache",
+  publisher = "Springer"
+}
+
+@inproceedings{rabe:isalf:10,
+  author = "F. Rabe",
+  title = "{Representing Isabelle in LF}",
+  year = "2010",
+  pages = "85--100",
+  booktitle = "Logical Frameworks and Meta-languages: Theory and Practice",
+  editor = "K. Crary and M. Miculan",
+  publisher = "Electronic Proceedings in Theoretical Computer Science"
+}
+
+@article{rabe:bslreview:10,
+  author = "F. Rabe",
+  title = "{Review of ``Reasoning in Simple Type Theory -- Festschrift in Honor of Peter B. Andrews on His 70th Birthday''}",
+  year = "2010",
+  pages = "409--411",
+  journal = "Bulletin of Symbolic Logic",
+  volume = "16",
+  number = "3"
+}
+
+@misc{dumbrava:bsc,
+  author = "S. Dumbrava",
+  title = "{Structured Specifications with Hiding in the Edinburgh Logical Framework LF}",
+  year = "2010",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@inproceedings{DR:filtering:10,
+  author = "S. Dumbrava and F. Rabe",
+  title = "{Structuring Theories with Partial Morphisms}",
+  year = "2010",
+  booktitle = "Workshop on Algebraic Development Techniques"
+}
+
+@inproceedings{CHKMRS:lfhets:10,
+  author = "M. Codescu and F. Horozal and M. Kohlhase and T. Mossakowski and F. Rabe and K. Sojakova",
+  title = "{Towards Logical Frameworks in the Heterogeneous Tool Set Hets}",
+  year = "2010",
+  booktitle = "Workshop on Algebraic Development Techniques"
+}
+
+@inproceedings{KRZ:mmttnt:10,
+  author = "M. Kohlhase and F. Rabe and V. Zholudev",
+  title = "{Towards MKM in the Large: Modular Representation and Scalable Software Architecture}",
+  year = "2010",
+  pages = "370--384",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "S. Autexier and J. Calmet and D. Delahaye and P. Ion and L. Rideau and R. Rioboo and A. Sexton",
+  publisher = "Springer"
+}
+
+@inproceedings{RK:roles:09,
+  author = "F. Rabe and M. Kohlhase",
+  title = "{A Better Role System for OpenMath}",
+  year = "2009",
+  booktitle = "Proceedings of the OpenMath workshop"
+}
+
+@inproceedings{DHS:algebra:09,
+  author = "S. Dumbrava and F. Horozal and K. Sojakova",
+  title = "{A Case Study on Formalizing Algebra in a Module System}",
+  year = "2009",
+  pages = "11--18",
+  booktitle = "Workshop on Modules and Libraries for Proof Assistants",
+  editor = "F. Rabe and C. Sch{\"u}rmann",
+  publisher = "ACM"
+}
+
+@misc{rabeEA:folsound-lf:09,
+  author = "F. Horozal and F. Rabe",
+  title = "{A Formal Proof of the Soundness of First-order Logic}",
+  year = "2009",
+  note = "see \url{https://svn.kwarc.info/repos/twelf/fol-soundness.cfg}"
+}
+
+@misc{project:mmtlf,
+  author = "F. Rabe and C. Sch{\"u}rmann",
+  title = "{A Module System for Twelf}",
+  year = "2009",
+  note = "see \url{https://cvs.concert.cs.cmu.edu/twelf/branches/twelf-mod}"
+}
+
+@inproceedings{RS:twelfmod:09,
+  author = "F. Rabe and C. Sch{\"u}rmann",
+  title = "{A Practical Module System for LF}",
+  year = "2009",
+  pages = "40--48",
+  booktitle = "Proceedings of the Workshop on Logical Frameworks: Meta-Theory and Practice (LFMTP)",
+  editor = "J. Cheney and A. Felty",
+  publisher = "ACM Press"
+}
+
+@inproceedings{GLR:jobad:09,
+  author = "J. Gi{\v{c}}eva and C. Lange and F. Rabe",
+  title = "{Integrating Web Services into Active Mathematical Documents}",
+  year = "2009",
+  pages = "279--293",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "J. Carette and L. Dixon and C. {Sacerdoti Coen} and S. Watt",
+  publisher = "Springer"
+}
+
+@misc{giceva:bsc,
+  author = "J. Gi{\v{c}}eva",
+  title = "{Integrating Web Services into Active Mathematical Documents}",
+  year = "2009",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@inproceedings{AR:lamkrip:09,
+  author = "S. Awodey and F. Rabe",
+  title = "{Kripke Semantics for Martin-L{\"o}f's Extensional Type Theory}",
+  year = "2009",
+  pages = "249--263",
+  booktitle = "Typed Lambda Calculi and Applications (TLCA)",
+  editor = "P. Curien",
+  publisher = "Springer"
+}
+
+@unpublished{AR:lamkrip_long:09,
+  author = "S. Awodey and F. Rabe",
+  title = "{Kripke Semantics for Martin-L{\"o}f's Extensional Type Theory}",
+  year = "2009",
+  note = "see \url{http://kwarc.info/frabe/Research/LamKrip.pdf}"
+}
+
+@proceedings{RS:mlpa:09,
+  title = "{MLPA '09: Proceedings of the 1st Workshop on Modules and Libraries for Proof Assistants}",
+  year = "2009",
+  editor = "F. Rabe and C. Sch{\"u}rmann",
+  publisher = "ACM"
+}
+
+@techreport{KLMMR:notations-tr:2009,
+  author = "M. Kohlhase and C. Lange and C. M{\"u}ller and N. M{\"u}ller and F. Rabe",
+  title = "{Notations for Active Mathematical Documents}",
+  year = "2009",
+  institution = "Jacobs University Bremen",
+  number = "2009-1"
+}
+
+@unpublished{rabeEA:presentation:09,
+  author = "M. Kohlhase and C. Lange and C. M{\"u}ller and N. M{\"u}ller and F. Rabe",
+  title = "{Notations for Active Mathematical Documents}",
+  year = "2009"
+}
+
+@misc{iacob:bsc,
+  author = "A. Iacob",
+  title = "{Reasoning about Theory Morphisms}",
+  year = "2009",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@inproceedings{rabe:gi:09,
+  author = "F. Rabe",
+  title = "{Representing Logics and Logic Translations}",
+  year = "2009",
+  note = "English title: Outstanding Dissertations in Computer Science 2008",
+  pages = "201--210",
+  booktitle = "Ausgezeichnete Informatikdissertationen 2008",
+  editor = "D. {Wagner et al.}",
+  publisher = "Gesellschaft f{\"u}r Informatik e.V. (GI)"
+}
+
+@inproceedings{HR:folsound:09,
+  author = "F. Horozal and F. Rabe",
+  title = "{Representing Model Theory in a Type-Theoretical Logical Framework}",
+  year = "2009",
+  pages = "49--65",
+  booktitle = "Fourth Workshop on Logical and Semantic Frameworks, with Applications",
+  editor = "M. Ayala-Rinc{\'o}n and F. Kamareddine",
+  publisher = "Elsevier"
+}
+
+@inproceedings{KR:omsemantics:09,
+  author = "M. Kohlhase and F. Rabe",
+  title = "{Semantics of OpenMath and MathML 3}",
+  year = "2009",
+  booktitle = "Proceedings of the OpenMath workshop"
+}
+
+@misc{project:latin,
+  author = "M. Kohlhase and T. Mossakowski and F. Rabe",
+  title = "{The LATIN Project}",
+  year = "2009",
+  note = "see \url{https://trac.omdoc.org/LATIN/}"
+}
+
+@unpublished{rabe:mmt:09,
+  author = "F. Rabe",
+  title = "{The MMT Language}",
+  year = "2009"
+}
+
+@inproceedings{SR:dfol_fol:08,
+  author = "K. Sojakova and F. Rabe",
+  title = "{Translating Dependently-Typed Logic to First-Order Logic}",
+  year = "2009",
+  pages = "326--341",
+  booktitle = "Recent Trends in Algebraic Development Techniques",
+  editor = "A. Corradini and U. Montanari",
+  publisher = "Springer"
+}
+
+@inproceedings{RK:keappa:08,
+  author = "F. Rabe and M. Kohlhase",
+  title = "{An Exchange Format for Modular Knowledge}",
+  year = "2008",
+  pages = "50--68",
+  booktitle = "Proceedings of the LPAR Workshops on Knowledge Exchange: Automated Provers and Proof Assistants, and The 7th International Workshop on the Implementation of Logics",
+  editor = "G. Sutcliffe and P. Rudnicki and R. Schmidt and B. Konev and S. Schulz",
+  publisher = "CEUR-WS.org"
+}
+
+@inproceedings{BRSS:eshol:08,
+  author = "C. Benzm{\"u}ller and F. Rabe and C. Sch{\"u}rmann and G. Sutcliffe",
+  title = "{Evaluation of Systems for Higher-order Logic (ESHOL)}",
+  year = "2008",
+  pages = "22--23",
+  booktitle = "Workshop on Practical Aspects of Automated Reasoning at IJCAR 2008",
+  editor = "B. Konev and R. Schmidt and S. Schulz",
+  publisher = "CEUR-WS.org"
+}
+
+@inproceedings{LMR:flyspeck:08,
+  author = "C. Lange and S. McLaughlin and F. Rabe",
+  title = "{Flyspeck in a Semantic Wiki}",
+  year = "2008",
+  pages = "67--81",
+  booktitle = "Semantic Wiki Workshop",
+  editor = "C. Lange and S. Schaffert and H. Skaf-Molli and M. V{\"o}lkel",
+  publisher = "CEUR-WS.org"
+}
+
+@inproceedings{KMR:presentation:08,
+  author = "M. Kohlhase and C. M{\"u}ller and F. Rabe",
+  title = "{Notations for Living Mathematical Documents}",
+  year = "2008",
+  pages = "504--519",
+  booktitle = "Mathematical Knowledge Management",
+  editor = "S. Autexier and J. Campbell and J. Rubio and V. Sorge and M. Suzuki and F. Wiedijk",
+  publisher = "Springer"
+}
+
+@misc{agapie:bsc,
+  author = "E. Agapie",
+  title = "{Representing Functors in a Web-Scalable Module System}",
+  year = "2008",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@phdthesis{rabe:thesis:08,
+  author = "F. Rabe",
+  title = "{Representing Logics and Logic Translations}",
+  year = "2008",
+  note = "see \url{http://kwarc.info/frabe/Research/phdthesis.pdf}",
+  school = "Jacobs University Bremen"
+}
+
+@phdthesis{rabe:summary:08,
+  author = "F. Rabe",
+  title = "{Representing Logics and Logic Translations (Summary)}",
+  year = "2008",
+  note = "see \url{http://kwarc.info/frabe/Research/phdthesis_summary.pdf}",
+  school = "Jacobs University Bremen"
+}
+
+@unpublished{rabeEA:mmtlf:08,
+  author = "F. Rabe and M. Kohlhase and F. Horozal",
+  title = "{Scaling LF to the Web}",
+  year = "2008"
+}
+
+@misc{project:mmt,
+  author = "F. Rabe",
+  title = "{The MMT System}",
+  year = "2008",
+  note = "see \url{https://svn.kwarc.info/repos/MMT/doc/html/index.html}"
+}
+
+@inproceedings{BRS:tptphol:08,
+  author = "C. Benzm{\"u}ller and F. Rabe and G. Sutcliffe",
+  title = "{THF0 -- The core of the TPTP Language for Higher-Order Logic}",
+  year = "2008",
+  pages = "491--506",
+  booktitle = "4th International Joint Conference on Automated Reasoning",
+  editor = "A. Armando and P. Baumgartner and G. Dowek",
+  publisher = "Springer"
+}
+
+@inproceedings{SR:dfol_fol_abs:08,
+  author = "K. Sojakova and F. Rabe",
+  title = "{Translating Dependently-Typed Logic to First-Order Logic}",
+  year = "2008",
+  booktitle = "Workshop on Algebraic Development Techniques",
+  editor = "A. Corradini and U. Montanari"
+}
+
+@misc{sojakova:bsc,
+  author = "K. Sojakova",
+  title = "{Translating Dependently-Typed Logic to First-Order Logic}",
+  year = "2008",
+  note = "Bachelor's thesis, Jacobs University Bremen",
+  school = "Jacobs University Bremen"
+}
+
+@article{GMPRS:catlog:07,
+  author = "J. Goguen and T. Mossakowski and V. {de Paiva} and F. Rabe and L. Schr{\"o}der",
+  title = "{An Institutional View on Categorical Logic}",
+  year = "2007",
+  pages = "129--152",
+  journal = "International Journal of Software and Informatics",
+  volume = "1",
+  number = "1"
+}
+
+@misc{rabeEA:catlogspecs:07,
+  author = "F. Rabe and V. {de Paiva} and T. Mossakowski",
+  title = "{Categorical Logic Specifications}",
+  year = "2007",
+  note = "see \url{http://kwarc.eecs.iu-bremen.de/frabe/Research/catlog}"
+}
+
+@misc{rabe:drafts,
+  author = "F. Rabe",
+  title = "{Homepage}",
+  year = "2007",
+  note = "see \url{http://kwarc.info/frabe/}"
+}
+
+@inproceedings{rabe:graphs:07,
+  author = "F. Rabe",
+  title = "{OMDoc Theory Graphs Revisited}",
+  year = "2007",
+  booktitle = "Proceedings of the OpenMath/JEM workshop"
+}
+
+@inproceedings{rabeEA:elisions:07,
+  author = "M. Kohlhase and C. Lange and F. Rabe",
+  title = "{Presenting Mathematical Content with Flexible Elisions}",
+  year = "2007",
+  booktitle = "Proceedings of the OpenMath/JEM workshop"
+}
+
+@article{RPSS:moloss:07,
+  author = "F. Rabe and P. Pudl{\'a}k and G. Sutcliffe and W. Shen",
+  title = "{Solving the \$100 Modal Logic Challenge}",
+  year = "2007",
+  pages = "113--130",
+  journal = "Journal of Applied Logic",
+  volume = "7",
+  number = "1"
+}
+
+@inproceedings{rabe:dfol:06,
+  author = "F. Rabe",
+  title = "{First-Order Logic with Dependent Types}",
+  year = "2006",
+  pages = "377--391",
+  booktitle = "Automated Reasoning",
+  editor = "N. Shankar and U. Furbach",
+  publisher = "Springer"
+}
+
+@inproceedings{rabe:moloss:06,
+  author = "F. Rabe",
+  title = "{Towards Determining the Subset Relation between Propositional Modal Logics}",
+  year = "2006",
+  pages = "126--140",
+  booktitle = "Proceedings of the FLoC 06 Workshop on Empirically Successful Computerized Reasoning, 3rd International Joint Conference on Automated Reasoning",
+  editor = "G. Sutcliffe and R. Schmidt and S. Schulz",
+  publisher = "CEUR-WS.org"
+}
+
+@inproceedings{rabeEA:promela1:05,
+  author = "F. Rabe and S. Schlager and P. Schmitt",
+  title = "{A Sequent Calculus for a First-order Dynamic Logic with Trace Modalities for Promela$^+$}",
+  year = "2005",
+  booktitle = "Proceedings of the 17th Nordic Workshop on Programming Theory"
+}
+
+@inproceedings{rabeEA:promela:05,
+  author = "F. Rabe and S. Schlager and P. Schmitt",
+  title = "{A Sequent Calculus for a First-order Dynamic Logic with Trace Modalities for Promela$^+$}",
+  year = "2005",
+  pages = "21--27",
+  booktitle = "Short Paper Proceedings of the International Conference on Logic for Programming, Artificial Intelligence, and Reasoning"
+}
+
+@mastersthesis{rabe:thesis:04,
+  author = "F. Rabe",
+  title = "{A Dynamic Logic with Temporal Operators for Promela}",
+  year = "2004",
+  school = "Universit{\"a}t Karlsruhe, Germany"
+}
+
diff --git a/omdoc-semantics/macros/bib/rabe.bib b/omdoc-semantics/macros/bib/rabe.bib
new file mode 100644
index 0000000000000000000000000000000000000000..29622ad3f1f8921fcd68611c68d9ad6423dc3478
--- /dev/null
+++ b/omdoc-semantics/macros/bib/rabe.bib
@@ -0,0 +1,1564 @@
+%% Insert whitespace in \url{ } if % sign appears out of nothing
+%% Capital letters in titles need to be protected by { } in some bibliography styles
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LF, Frank etc.
+@InProceedings{hoas,
+  author =	"F. Pfenning and C. Elliot",
+  title =	"{Higher-order abstract syntax}",
+	booktitle =	"{Programming Language Design and Implementation}",
+  year = 	"1988",
+  journal =	"{SIGPLAN Notices}",
+  pages =	"199--208",
+}
+
+@Article{lf,
+  author = 	 "R. Harper and F. Honsell and G. Plotkin",
+  title = 	 "{A framework for defining logics}",
+  journal =	 "{Journal of the Association for Computing Machinery}",
+  year =	 1993,
+  volume =	 40,
+  number = 	1,
+  pages =	 "143--184",
+}
+
+@InCollection{logicalframeworks,
+ author = {F. Pfenning},
+ title = "{Logical frameworks}",
+ editor = {J. Robinson and A. Voronkov},
+ booktitle = {Handbook of automated reasoning},
+ publisher = {Elsevier},
+ year = {2001},
+ pages = {1063--1147}
+}
+ 
+@Article{lfencodings,
+  author = 	 "R. Harper and D. Sannella and A. Tarlecki",
+  title = 	 "Structured Presentations and Logic Representations",
+  journal =	 "Annals of Pure and Applied Logic",
+  year =	 1994,
+  volume =	 67,
+  pages =	 "113--160",
+}
+
+@inproceedings{twelf,
+  author =       "F. Pfenning and C. Sch{\"u}rmann",
+  title =        "System Description: {Twelf} - A Meta-Logical Framework for Deductive Systems",
+  booktitle =    "Automated Deduction",
+  editor =       "H. Ganzinger",
+  pages =        "202--206",
+  year =         "1999",
+}
+
+@inproceedings{lf_meta,
+    author = "C. Sch{\"u}rmann and F. Pfenning",
+    title = "Automated theorem proving in a simple meta-logic for {LF}",
+    booktitle = "Proceedings of the 15th International Conference on Automated Deduction",
+    editor = "C. Kirchner and H. Kirchner",
+    pages = "286--300",
+    publisher = "Springer",
+    year = "1996",
+}
+
+@inproceedings{lf_rewriting,
+    author = "R. Virga",
+    title = "Higher-order superposition for dependent types",
+    booktitle = "Proceedings of the 7th International Conference on Rewriting Techniques and Applications",
+    editor = "H. Ganzinger",
+    pages = "123--137",
+    publisher = "Springer",
+    year = "1996",
+}
+
+@Article{lf_canonical,
+  title =	"{On equivalence and canonical forms in the LF type theory}",
+  author =	"R. Harper and F. Pfenning",
+  journal =	"ACM Transactions on Computational Logic",
+  year = 	"2005",
+  number =	"1",
+  volume =	"6",
+  pages =	"61--101",
+}
+
+@inproceedings{lf_unification,
+  author = "B. Pientka and F. Pfenning",
+  title = "Optimizing higher-order pattern unification",
+  year = "2003",
+	booktitle = "19th International Conference on Automated Deduction",
+	publisher = "Springer",
+	pages = "473--487"
+}
+
+@InProceedings{lf_proofirrel,
+  title =	"{Refinement Types as Proof Irrelevance}",
+  author =	"W. Lovas and F. Pfenning",
+  booktitle =	"{Typed Lambda Calculi and Applications}",
+  publisher =	"Springer",
+  year = 	"2009",
+  volume =	"5608",
+  editor =	"P. Curien",
+  pages =	"157--171",
+  series =	"Lecture Notes in Computer Science",
+}
+
+@Article{lfsubtypes,
+  author =	"D. Aspinall and A. Compagnoni",
+  title =	"{Subtyping Dependent Types}",
+  journal =	"{Information and Computation}",
+  pages =	"273--309",
+  year = 	"2001",
+  volume =	"266",
+  number =	"1--2",
+}
+
+@InCollection{HarperPierce04,
+  author =	"R. Harper and B. Pierce",
+  title =	"{Design Issues in Advanced Module Systems}",
+  booktitle =	"{Advanced Topics in Types and Programming Languages}",
+  publisher =	"{MIT Press}",
+  year = 	"2005",
+  editor =	"B. Pierce",
+}
+
+@InCollection{coquand_conversion,
+  author =	"T. Coquand",
+  title =	"{An algorithm for testing conversion in Type Theory}",
+  editor =	"G. Huet and G. Plotkin",
+  booktitle =	"Logical Frameworks",
+  publisher =	"Cambridge University Press",
+  year = 	"1991",
+  pages =	"255--279",
+}
+
+@Article{logicalrelations,
+  author =	"R. Statman",
+  title =	"{Logical relations and the typed lambda calculus}",
+  journal =	"{Information and Control}",
+  volume =	"65",
+  year = 	"1985",
+  pages =	"85--97",
+}
+
+@InProceedings{ml_in_twelf,
+  title =	"{Towards a mechanized metatheory of Standard ML}",
+  author =	"D. Lee and K. Crary and R. Harper",
+  booktitle =	"{Symposium on Principles of Programming Languages}",
+  publisher =	"ACM",
+  year = 	"2007",
+  editor =	"M. Hofmann and M. Felleisen",
+  pages =	"173--184",
+}
+
+@InProceedings{pcc_in_twelf,
+  author =	"A. Appel",
+  title =	"{Foundational Proof-Carrying Code}",
+  pages =	"247--258",
+  booktitle =	"{16th Annual IEEE Symposium on Logic in Computer Science}",
+  publisher =	"IEEE",
+  year = 	"2001",
+}
+
+@misc{lfmodules_kevin,
+  author = "K. Watkins",
+  title = "{A simple module language for LF}",
+  year = 2001,
+  note = "unpublished",
+}
+
+@misc{lfmodules_dan,
+  author = "D. Licata and R. Simmons and D. Lee",
+  title = "{A simple module language for LF}",
+  year = 2006,
+  note = "unpublished",
+}
+
+@Article{lfmodules_frankbob,
+  author =	"R. Harper and F. Pfenning",
+  title =	"{A module system for a programming language based on the LF logical framework}",
+  journal =	"Journal of Logic and Computation",
+  year = 	"1998",
+  volume =	"8",
+  number =	"1",
+  pages =	"5--31",
+}
+
+@Article{llf,
+  title =	"{A Linear Logical Framework}",
+  author =	"I. Cervesato and F. Pfenning",
+  journal =	"Information and Computation",
+  year = 	"2002",
+  volume =	"179",
+  number =	"1",
+  pages =	"19--75",
+}
+
+@TechReport{clf,
+  author =	"K. Watkins and I. Cervesato and F. Pfenning and D. Walker",
+  title =	"{A Concurrent Logical Framework I: Judgments and Properties}",
+  institution =  "{Department of Computer Science, Carnegie Mellon University}",
+  year = 	"2002",
+  number =	"CMU-CS-02-101",
+}
+
+@Inproceedings{delphinlanguage,
+  author = "A. Poswolsky and C. Sch{\"u}rmann",
+  title = "{Practical programming with higher-order encodings and dependent types}",
+  editor = "S. Drossopoulou",
+  booktitle = "{European Symposium on Programming}",
+  year = "2008",
+  pages = "93--107",
+  publisher = "Springer"
+}
+
+@Article{lfsc,
+  title =	"{Signature Compilation for the Edinburgh Logical Framework}",
+  author =	"M. Zeller and A. Stump and M. Deters",
+  journal =	"{Electronic Notes in Theoretical Computer Science}",
+  year = 	"2008",
+  volume =	"196",
+  pages =	"129--135",
+}
+
+@misc{literatetwelf,
+  author = "R. Simmons",
+  title = "{Literate Twelf}",
+  note = "\url{http://twelf.plparty.org/wiki/The_Twelf_Project:Literate_Twelf}",
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Categories
+@article{lccccartmell,
+  author =       "J. Cartmell",
+  title =        "Generalized algebraic theories and contextual category",
+  journal =      "{Annals of Pure and Applied Logic}",
+  volume =       "32",
+  year =         "1986",
+  pages =	"209--243",
+}
+
+@article{lcccseely,
+  author =       "R. Seely",
+  title =        "Locally cartesian closed categories and type theory",
+  journal =      "Math. Proc. Cambridge Philos. Soc.",
+  volume =       "95",
+  pages =        "33--48",
+  year =         "1984",
+}
+
+@inproceedings{lcccdybjer,
+    author = "P. Dybjer",
+    title = "Internal Type Theory",
+    booktitle = "TYPES",
+    pages = "120--134",
+    year = "1995",
+}
+
+@Book{lcccstreicher,
+  author ="T. Streicher",
+  title =	"Semantics of Type Theory",
+  publisher =	"Springer-Verlag",
+  year = 	"1991",
+}
+
+@InProceedings{lcccallen,
+    author = 	 {S. Allen},
+    title = 	 "{A Non-Type-Theoretic Definition of Martin-L{\"o}f's Types}",
+    booktitle =  "{Proceedings of the Second Annual IEEE Symp. on Logic in Computer Science, LICS 1987}",
+    year =	 1987,
+    editor =	 {D. Gries},
+    pages =      {215--221},
+    publisher =	 {IEEE Computer Society Press}
+}
+
+@inproceedings{lccclipton,
+ author = {J. Lipton},
+ title = "{Kripke Semantics for Dependent Type Theory and Realizability Interpretations}",
+ booktitle = "{Constructivity in Computer Science, Summer Symposium}",
+ editor = "J. Myers and M. O'Donnell",
+ year = {1992},
+ pages = {22--32},
+ publisher = {Springer},
+}
+
+@Book{categories,
+ author = {S. {Mac Lane}},
+ title = "{Categories for the working mathematician}",
+ year = {1998},
+ publisher = {Springer}
+ }
+ 
+@Book{categories_awodey,
+ author = {S. Awodey},
+ title = "{Category Theory}",
+ year = {2006},
+ publisher = "{Oxford University Press}",
+ }
+ 
+
+@Book{johnstone,
+  author =	"P. Johnstone",
+  title =	"{Sketches of an Elephant: A Topos Theory Compendium}",
+  publisher =	"Oxford Science Publications",
+  year = 	"2002",
+}
+
+@InCollection{pitts00catlog,
+  author =	 {A. Pitts},
+  title =	 "{Categorical Logic}",
+  booktitle =	 {Handbook of Logic in Computer Science, Volume 5. Algebraic and Logical Structures},
+  publisher =	 {Oxford University Press},
+  year =	 2000,
+  pages =	 {39--128},
+  chapter =	 2,
+  editor =	 {S. Abramsky and D. Gabbay and T. Maibaum},
+}
+
+@inproceedings{lccchofmann,
+    author = "M. Hofmann",
+    title = "{On the Interpretation of Type Theory in Locally Cartesian Closed Categories}",
+    booktitle = "{CSL}",
+    publisher = {Springer},
+    pages = "427-441",
+    year = "1994",
+}
+
+@Article{awodey00topological,
+  title =	"{Topological representation of the lambda-calculus}",
+  author =	"S. Awodey",
+  journal =	"Mathematical Structures in Computer Science",
+  year = 	"2000",
+  number =	"1",
+  volume =	"10",
+  pages =	"81--96",
+}
+
+@article{spatialcover,
+  author =	"C. Butz and I. Moerdijk",
+  title =	"{Topological representation of sheaf cohomology of sites}",
+  journal = " Compositio Mathematica",
+  number = {118},
+  volume = "2",
+  pages = "217--233",
+  year = 	"1999",
+}
+
+@BOOK{JacobsCLTT, 
+AUTHOR       = "B. Jacobs", 
+TITLE        = "Categorical Logic and Type Theory",
+PUBLISHER    = "North Holland", 
+ADDRESS      = "Amsterdam", 
+SERIES       = "Studies in Logic and the Foundations of Mathematics",
+NUMBER       = "141",
+YEAR         = "1999"
+}
+
+@Article{lawvereadjoint,
+  author =	"W. Lawvere",
+  title =	"{Adjointness in Foundations}",
+  journal =	"{Dialectica}",
+  volume =	"23",
+  number =	"3--4",
+  pages =	"281--296",
+  year = 	"1969",
+}
+
+@Book{sheaves,
+  author =	"S. {Mac Lane} and I. Moerdijk",
+  title =	"{Sheaves in geometry and logic}",
+  publisher =	"Springer",
+  series =	"Lecture Notes in Mathematics",
+  year = 	"1992",
+}
+
+%proof theory
+@book{hocategorical,
+   author = {J. Lambek and P. Scott},
+   publisher = {Cambridge University Press},
+   series = {Cambridge Studies in Advanced Mathematics},
+   title = {Introduction to Higher-Order Categorical Logic},
+   volume = {7},
+   year = {1986}
+}
+
+@Article{DePaiva00,
+  author =	 {G. Bierman and V. de Paiva},
+  title =	 "{On an Intuitionistic Modal Logic}",
+  journal =	 {Studia Logica},
+  year =	 {2000},
+  volume =	 {65},
+  pages =	 {383--416},
+}
+
+@Book{curry,
+  author =	"H. Curry and R. Feys",
+  title =	"Combinatory Logic",
+  publisher =	"North-Holland",
+  address =	"Amsterdam",
+  year = 	"1958",
+}
+
+@InCollection{howard,
+  author =	"W. Howard",
+  title =	"The formulas-as-types notion of construction",
+  booktitle =	"To H.B. Curry: Essays on Combinatory Logic, Lambda-Calculus and Formalism",
+  editors =	"J. Seldin and J. Hindley",
+  publisher =	"Academic Press",
+  year = 	"1980",
+  pages =	"479--490",
+}
+
+@InProceedings{fuhrmannpym,
+  author        = {C. F{\"u}hrmann and D. Pym}, 
+  title         = {On the Geometry of Interaction for Classical Logic},
+  booktitle     = {Annual IEEE Symposium on Logic in Computer Science},
+  year          = {2004},
+  pages         = {211--220},
+  publisher     = {IEEE Computer Society Press},
+  note		= {Extended version at \url{http://www.cs.bath.ac.uk/~cf/dj.pdf}}
+}
+
+@InProceedings{lambdabar,
+  title =	"{Explanation in Natural Language of $\bar{\lambda}\mu\tilde{\mu}$-Terms}",
+  author =	"C. Sacerdoti Coen",
+  booktitle = "{Mathematical Knowledge Management}",
+  publisher =	"Springer",
+  year = 	"2005",
+  editor =	"M. Kohlhase",
+  pages =	"234--249",
+}
+
+@InProceedings{debruijn_weaker,
+  author =	"N. de Bruijn",
+  title =	"{A Plea for Weaker Frameworks}",
+  editor =	"G. Huet and G. Plotkin",
+  pages =	"40--67",
+  booktitle =	"Logical Frameworks",
+  year = 	"1991",
+  publisher =	"Cambridge University Press",
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Type theory
+@Book{typeandrews,
+  author =       "P. Andrews",
+  title =        "An introduction to mathematical logic and type theory:
+                 to truth through proof",
+  publisher =    "Academic Press",
+  year =         "1986",
+}
+
+@PhdThesis{pts,
+	author =	"S. Berardi",
+	title =	"{Type dependence and constructive mathematics}",
+	school =	"Dipartimento di Matematica, Universit{\`a} di Torino",
+	year = 	"1990",
+}
+
+@Unpublished{kohlhasehoatp,
+  author = 	 {Michael Kohlhase},
+  title = 	 {Higher-Order Automated Theorem Proving},
+  note = 	 {Manuscript to appear in Springer LNAI, \url{http://www.faculty.iu-bremen.de/mkohlhase/submit/lnai.ps}},
+}
+
+@InCollection{lambdacube,
+  author =	"H. Barendregt",
+  title =	"Lambda Calculi with Types",
+  booktitle =	"{Handbook of Logic in Computer Science}",
+  volume =	"2",
+  editor =	"S. Abramsky and D. Gabbay and T. Maibaum",
+  publisher =	"Oxford University Press",
+  year = 	"1992",
+}
+
+@Article{martinlof_meaning,
+  title =        "On the Meanings of the Logical Constants and the Justifications of the Logical Laws",
+  author =       "P. Martin-L{\"o}f",
+  journal =      "Nordic Journal of Philosophical Logic",
+  volume =       "1",
+  number =       "1",
+  pages =        "3--10",
+  year =         "1996"
+}
+
+@Book{martinlofextensional,
+  author =	"P. Martin-L{\"o}f",
+  title =	"{Intuitionistic Type Theory}",
+  publisher =	"Bibliopolis",
+  year = 	"1984",
+}
+
+@Book{programming_mltt,
+  author =	"B. Nordstr{\"o}m and K. Petersson and J. Smith",
+  title =	"{Programming in Martin-L{\"o}f's Type Theory: An Introduction}",
+  publisher =	"Oxford University Press",
+  year = 	"1990",
+}
+
+@InCollection{mitchell89lambdamodels,
+  author =	"J. Mitchell and P. Scott",
+  title =	"{Typed lambda calculus and cartesian closed categories}",
+  booktitle =	"Categories in Computer Science and Logic",
+  series =	"Contemporary Mathematics",
+  volume =	"92",
+  publisher =	"Amer. Math. Society",
+  editors =	"J. Gray and A. Scedrov",
+  year = 	"1989",
+  pages =	"301--316",
+}
+
+@InCollection{friedman75equality,
+  author =	"H. Friedman",
+  title =	"{Equality Between Functionals}",
+  booktitle =	"{Logic Colloquium}",
+  editor =	"R. Parikh",
+  publisher =	"Springer",
+  year = 	"1975",
+  pages =	"22--37",
+}
+
+@inproceedings{simpson95lambdamodels,
+  author =	"A. Simpson",
+  title =	"{Categorical completeness results for the simply-typed lambda-calculus}",
+  booktitle =	"{Typed Lambda Calculi and Applications}",
+  pages =	"414--427",
+  editor =	"{M. Dezani-Ciancaglini and G. Plotkin}",
+  year = 	"1995",
+}
+
+@Article{mitchell91kripke,
+  author =	"J. Mitchell and E. Moggi",
+  title =	"{Kripke-style Models for Typed Lambda Calculus}",
+  journal =	"Annals of Pure and Applied Logic",
+  volume =	"51",
+  pages =	"99--124",
+  number =	"1--2",
+  year = 	"1991",
+}
+
+@Article{lccccurien,
+  author =	"P. Curien",
+  title =	"{Alpha-Conversion, Conditions on Variables and Categorical Logic}",
+  journal =	"Studia Logica",
+  volume =	"48",
+  number =	"3",
+  pages =	"319--360",
+  year = 	"1989",
+}
+
+@PhdThesis{lcccjacobs,
+  author =	"B. Jacobs",
+  title =	"Categorical Type Theory",
+  school =	"Catholic University of the Netherlands",
+  year = 	"1990",
+}
+
+@Book{lcccjacobs2,
+  author =	"B. Jacobs",
+  title =	"{Categorical Logic and Type Theory}",
+  publisher =	"Elsevier",
+  year = 	"1999",
+}
+
+@InCollection{lccchofmann2,
+  author =	"M. Hofmann",
+  title =	"{Syntax and Semantics of Dependent Types}",
+  booktitle =	"{Semantics and Logic of Computation}",
+  publisher =	"Cambridge University Press",
+  editor =	"A. Pitts and P. Dybjer",
+  pages =	"79--130",
+  year = 	"1997",
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Model theory, other logics
+@InCollection{pfol,
+  author =       "M. Cerioli and T. Mossakowski and H. Reichel",
+  title =        "From total equational to partial first order logic",
+  booktitle =    "Algebraic Foundations of System Specification. IFIP
+                 State-of-the-Art Reports",
+  publisher =    "Springer",
+  year =         "1999",
+  editor =       "E. Astesiano and H.-J. Kreowski and B.
+                 Krieg-Br{\"u}ckner",
+  pages =        "31--104",
+  address =      "Berlin, Heidelberg",
+}
+
+@Book{whatisalogic,
+  title =    "Logica Universalis",
+  editor =       "J. B{\'e}ziau",
+  publisher =    "Birkh{\"a}user Verlag",
+  year =         "2005"
+}
+
+@InCollection{whatisalogicgabb,
+  author =       "D. M. Gabbay",
+  booktitle =    "What is a Logical System?",
+  editor =       "D. M. Gabbay",
+  pages =        "179--216",
+  publisher =    "Oxford University Press",
+  title =        "What is a Logical System?",
+  year =         "1994",
+}
+ 
+@Article{tarski33,
+  author = "A. Tarski",
+  title = "{Poj{\k{e}}cie prawdy w j{\k{e}}zykach nauk dedukcyjnych}",
+  journal = "{Prace Towarzystwa Naukowego Warszawskiego Wydzial III Nauk Matematyczno-Fizycznych}",
+  volume = 34,
+	year = 1933,
+  note = "{English title: The concept of truth in the languages of the deductive sciences}"
+}
+
+@article{tarskilogic,
+ author = {A. Tarski and R. Vaught},
+ title = {Arithmetical extensions of relational systems},
+ year = {1956},
+ journal = {Compositio Mathematica},
+ volume = {13},
+ pages = {81--102},
+}
+
+@InCollection{robinsonmodeltheory,
+  author = "A. Robinson",
+  title = "{On the application of symbolic logic to algebra}",
+  booktitle = "{Proceedings of the International Congress of Mathematicians}",
+  publisher = "American Mathematical Society",
+  year = 1950,
+  pages = "686--694",
+}
+
+@InCollection{equipollence,
+  author =       "C. Caleiro and R. Gon{\c{c}}alves",
+  booktitle =    "Logica Universalis",
+  editor =       "J.-Y. B{\'e}ziau",
+  pages =        "99--112",
+  publisher =    "Birkh{\"a}user Verlag",
+  title =        "Equipollent logical systems",
+  year =         "2005",
+}
+
+@InCollection{whatisalogicstrass,
+  author =       "L. Stra{\ss}burger",
+  title =        "What is a logic, and what is a proof?",
+  booktitle =    "Logica Universalis",
+  editor =       "J.-Y. B{\'e}ziau",
+  pages =        "135--143",
+  publisher =    "Birkh{\"a}user Verlag",
+  year =         "2005",
+}
+
+@Book{modeltheory,
+  editor =       "J. Barwise and S. Feferman",
+  title =        "{Model-Theoretic} Logics",
+  publisher =    "Springer-Verlag",
+  year =         "1985",
+}
+
+@InProceedings{piinstitutions,
+  author = "J. Fiadeiro and A. Sernadas",
+  title =	"{Structuring theories on consequence}",
+  pages =	"44--72",
+  booktitle =	"Recent Trends in Data Type Specification",
+  publisher =	"Springer",
+  year = 	"1988",
+}
+
+@Article{barwiseaxioms,
+  title =        "Axioms for Abstract Model Theory",
+  author =       "J. Barwise",
+  journal =      "Annals of Mathematical Logic",
+  volume =       "7",
+  pages =        "221--265",
+  year =         "1974"
+}
+
+@Book{studyoflogics,
+  author =       "J. Cleave",
+  title =        "A Study of Logics",
+  publisher =    "Oxford University Press",
+  year =         "1991",
+  address =      "Oxford",
+}
+
+@INPROCEEDINGS{littletheories,
+  author = "W. Farmer and J. Guttman and F. Thayer",
+  title = "{Little Theories}",
+  booktitle = "{Conference on Automated Deduction}",
+  year = "1992",
+  editor = "D. Kapur",
+  pages = "467--581",
+}
+
+@InProceedings{farmerintertheory,
+  title =	"{An Infrastructure for Intertheory Reasoning}",
+  author =	"W. Farmer",
+  booktitle =	"{Conference on Automated Deduction}",
+  publisher =	"Springer",
+  year = 	"2000",
+  editor =	"D. McAllester",
+  pages =	"115--131",
+}
+
+@Article{biform_theories,
+	title =	"{An Overview of a Formal Framework for Managing	Mathematics}",
+	author =	"W. Farmer and M. von Mohrenschildt",
+	journal =	"Annals of Mathematics and Artificial Intelligence",
+	year = 	"2003",
+	number =	"1--3",
+	volume =	"38",
+	pages =	"165--191",
+}
+
+@InProceedings{farmer_syntaxsystems,
+	title =	"{The Formalization of Syntax-Based Mathematical Algorithms Using Quotation and Evaluation}",
+	author =	"W. Farmer",
+	booktitle =	"Intelligent Computer Mathematics",
+	publisher =	"Springer",
+	year = 	"2013",
+	editor =	"J. Carette and D. Aspinall and C. Lange and P. Sojka and W. Windsteiger",
+	pages =	"35--50",
+}
+
+@InProceedings{kop_rewritecomputation,
+	title =	"{Term Rewriting with Logical Constraints}",
+	author =	"C. Kop and N. Nishida",
+	booktitle =	"{Frontiers of Combining Systems}",
+	publisher =	"Springer",
+	year = 	"2013",
+	editor =	"P. Fontaine and C. Ringeissen and R. Schmidt",
+	pages =	"343--358",
+}
+
+@InProceedings{nivelle_partial,
+  title =	"{Classical Logic with Partial Functions}",
+  author =	"H. de Nivelle",
+  booktitle =	"Automated Reasoning",
+  publisher =	"Springer",
+  year = 	"2010",
+  editor =	"J. Giesl and R. H{\"a}hnle",
+  pages =	"203--217",
+}
+
+@article{linear,
+	author       = "J. Girard",
+	title        = "{Linear Logic}",
+	journal      = "{Theoretical Computer Science}",
+	year         = 1987,
+	volume       = 50,
+	pages        = "1--102"
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Introductions and Overviews
+@Book{intrologic,
+  author =       "E. Mendelson",
+  title =        "{Introduction to Mathematical Logic}",
+  publisher =    "Wardsworth",
+  year =         "1987",
+  address =      "Pacific Grove, Calif.",
+}
+
+@Book{dynamicharel,
+  author =       "D. Harel",
+  title =        "{First-Order Dynamic Logic}",
+  series =       "LNCS",
+  volume =       "68",
+  publisher =    "Springer",
+  year =         "1979",
+}
+
+@Book{fol_gallier,
+  author =	"J. Gallier",
+  title =	"Logic for Computer Science",
+  publisher =	"hr",
+  year = 	"1986",
+}
+
+@book{gallier,
+	author = "J. Gallier",
+	title = "Foundations of Automatic Theorem Proving",
+	year = "1986",
+	publisher = "Wiley",
+}
+
+@Book{fol_smullyan,
+  author =	"R. Smullyan",
+  title =	"{First-Order Logic}",
+  edition =	"Second corrected",
+  publisher =	"Dover",
+  year = 	"1995",
+}
+
+@InCollection{fol_barwise,
+  author =	"J. Barwise",
+  title =	"{An Introduction to First-Order Logic}",
+  editor =	"J. Barwise",
+  booktitle =	"{Handbook of Mathematical Logic}",
+  pages =	"5--46",
+  publisher =	"North-Holland",
+  year = 	"1977",
+}
+
+@InCollection{dynamicharel2,
+  author =       "D. Harel",
+  title =        "Dynamic Logic",
+  booktitle =    "Handbook of Phylosophical Logic, Vol II",
+  publisher =    "Reidel Publ. Co.",
+  year =         "1987",
+  editor =       "D. Gabbay and F. Guenthner",
+  pages =        "715 ff",
+}
+
+@Book{intrologicenderton,
+  author =       "H. B. Enderton",
+  title =        "A Mathematical Introduction to Logic",
+  publisher =    "Academic Press",
+  year =         "1972",
+}
+
+@Book{andrews_truthproof,
+  author =	"P. Andrews",
+  title =	"{An Introduction to Mathematical Logic and Type Theory: To Truth Through Proof}",
+  publisher =	"Academic Press",
+  year = 	"1986",
+}
+
+@article{henkincompleteness,
+  author = 	 {L. Henkin},
+  title = 	 {The Completeness of the First-Order Functional Calculus},
+  journal = 	 {Journal of Symbolic Logic},
+  volume =       {14},
+  pages =        {159--166},
+  year =	 {1949}
+}
+
+@Book{introsettheo,
+  author =       "K. Hrbacek and T. Jech",
+  title =        "Introduction to Set Theory",
+  publisher =    "Marcel Dekker Inc.",
+  address =      "New York",
+  year =         "1984",
+}
+
+@InCollection{overviewtemporal,
+  author =       "E. Allen Emerson",
+  title =        "Temporal and Modal Logic",
+  booktitle =    "Handbook of Theoretical Computer Science, Volume B",
+  publisher =    "North-Holland",
+  year =         "1990",
+  editor =       "Jan van Leeuwen",
+  address =      "Amsterdam",
+  pages =        "995--1072"
+}
+
+@Book{overviewdynamic,
+  author =       "D. Harel and D. Kozen and J. Tiuryn",
+  title =        "Dynamic Logic",
+  publisher =    "MIT Press",
+  year =         "2000",
+  series =       "Foundations of Computing",
+}
+
+@Book{overviewdescription,
+  editor =	"F. Baader and D. Calvanese and D. McGuinness and D. Nardi and P. Patel-Schneider",
+  title =	"{The Description Logic Handbook: Theory, Implementation and Applications}",
+  publisher =	"Cambridge University Press",
+  year = 	"2003",
+}
+
+@BOOK{bourbakisets,
+  title = "{Theory of Sets}",
+  publisher = {Springer},
+  year = {1968},
+  author = {N. Bourbaki},
+  series = {Elements of Mathematics}
+}
+
+@BOOK{bourbakialgebra,
+  title = "{Algebra I}",
+  publisher = "Springer",
+  year = {1974},
+  author = {N. Bourbaki},
+  series = {Elements of Mathematics}
+}
+
+@Article{geuvers_history,
+  author =	"H. Geuvers",
+  title =	"{Proof assistants: History, ideas and future}",
+  journal =	"S\={a}dhan\={a}",
+  year = 	"2009",
+  volume =	"34",
+  pages =	"3--25",
+}
+
+@book{wiedijk_provers,
+ author = {F. Wiedijk},
+ title = {The Seventeen Provers of the World},
+ publisher = {Springer},
+ year = {2006},
+}
+
+@Article{formalmethods_commandments,
+  author =	"J. Bowen and M. Hinchey",
+  journal =	"IEEE Computer",
+  volume =	"28",
+  number =	"4",
+  pages =	"56--63",
+  title =	"Ten commandments of formal methods",
+  year = 	"1995",
+}
+
+@Article{formalmethods_commandments_later,
+  title =	"{Ten Commandments of Formal Methods ... Ten Years Later}",
+  author =	"J. Bowen and M. Hinchey",
+  journal =	"IEEE Computer",
+  year = 	"2006",
+  number =	"1",
+  volume =	"39",
+  pages =	"40--48",
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% encodings
+@article{lfmodal,
+  author = "A. Avron and F. Honsell and M. Miculan and C. Paravano",
+  title = "{Encoding modal logics in logical frameworks}",
+  journal = "{Studia Logica}",
+  year = "1998",
+  volume = "60",
+  number = "1",
+  pages = "161--208",
+}
+
+@article{lf_avron,
+ author = "A. Avron and F. Honsell and I. Mason and R. Pollack",
+ title = "{Using typed lambda calculus to implement formal systems on a machine}",
+ journal = "{Journal of Automated Reasoning}",
+ volume = {9},
+ number = {3},
+ year = {1992},
+ pages = {309--354},
+}
+
+@INPROCEEDINGS{Basin98a,
+AUTHOR = "D. Basin and S. Matthews and L. Vigan{\`o}",
+EDITOR = "{J. Ginzburg and Z. Khasidashvili and C. Vogel and J. Levy and E. Vallduvi}",
+TITLE = "{A Modular Presentation of Modal Logics in a Logical Framework}",
+BOOKTITLE = {Proceedings of the 1st Tbilisi Symposium on Language, Logic and Computation: Selected Papers},
+YEAR = {1998},
+PAGES = {293--307},
+}
+
+@article{lfcut,
+    author = "F. Pfenning",
+    title = "Structural Cut Elimination: I. Intuitionistic and Classical Logic",
+    journal = "Information and Computation",
+    volume = "157",
+    number = "1-2",
+    pages = "84-141",
+    year = "2000",
+}
+ 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% translations
+@misc{logosphere,
+  author = "F. Pfenning and C. Sch{\"u}rmann and M. Kohlhase and N. Shankar and S. Owre.",
+  title = "{The Logosphere Project}",
+  note = "\url{http://www.logosphere.org/}",
+  year = "2003",
+}
+
+@inproceedings{hol_nuprl,
+	author = "P. Naumov and M. Stehr and J. Meseguer",
+	title = "The {HOL/NuPRL} proof translator - a practical approach to formal interoperability",
+  booktitle = "14th International Conference on Theorem Proving in Higher Order Logics",
+  editor = {R. Boulton and P. Jackson},
+  publisher = "Springer",
+  year = "2001"
+}
+
+@inproceedings{hol_nuprl2,
+	author = "C. Sch{\"u}rmann and M. Stehr",
+	title = "{An Executable Formalization of the HOL/Nuprl Connection in the Metalogical Framework Twelf}",
+  booktitle = "{11th International Conference on Logic for Programming Artificial Intelligence and Reasoning}",
+  editor = {F. Baader and A. Voronkov},
+  publisher = "Springer",
+  year = "2004"
+}
+
+@inproceedings{hol_isahol,
+ author = "S. Obua and S. Skalberg",
+ title = "Importing {HOL} into {Isabelle/HOL}",
+ booktitle = "{Automated Reasoning}",
+ editor	   = "N. Shankar and U. Furbach",
+ year      = "2006",
+ publisher = "Springer",
+ volume    = "4130",
+}
+
+@inproceedings{hol_isahol_kaliszyk,
+  author =       {C. Kaliszyk and A. Krauss},
+  title =        "{Scalable LCF-style proof translation}",
+  editor = {S. Blazy and C. Paulin-Mohring and D. Pichardie},
+  booktitle = {Interactive Theorem Proving},
+  pages = {51--66},
+  year = {2013},
+  publisher = {Springer},
+}
+
+@inproceedings{hol_isahol_matching,
+  author = {T. Gauthier and C. Kaliszyk},
+  title = "{Matching concepts across HOL libraries}",
+  booktitle = {Intelligent Computer Mathematics},
+  editor = {S. Watt and J. Davenport and A. Sexton and P. Sojka and J. Urban},
+  pages = {267--281},
+  year = 2014,
+  publisher = {Springer}
+}
+
+@inproceedings{isahol_hol,
+ author = "S. McLaughlin",
+ title = "{An Interpretation of Isabelle/HOL in HOL Light}",
+ booktitle = "{Proceedings of the 3rd International Joint Conference on Automated Reasoning}",
+ editor	   = "N. Shankar and U. Furbach",
+ year      = "2006",
+ publisher = "Springer",
+ series    = "Lecture Notes in Computer Science",
+ volume    = "4130",
+}
+
+@InProceedings{hol_coq,
+  author =       {C. Keller and B. Werner},
+  title =        "{Importing HOL Light into Coq}",
+  booktitle =    {Interactive Theorem Proving},
+  year =         {2010},
+  editor =       {M. Kaufmann and L. Paulson},
+  publisher =	"Springer",
+  pages =	"307--322",
+}
+
+@InProceedings{isahol_isazf,
+  author =       {A. Krauss and A. Schropp},
+  title =        "{A Mechanized Translation from Higher-Order Logic to Set Theory}",
+  booktitle =    {Interactive Theorem Proving},
+  year =         {2010},
+  editor =       {M. Kaufmann and L. Paulson},
+  publisher =	"Springer",
+  pages =	       "323--338",
+}
+
+@INPROCEEDINGS{metis,
+  AUTHOR = "J. Hurd",
+  TITLE = "{First-Order Proof Tactics in Higher-Order Logic Theorem Provers}",
+  BOOKTITLE = "{International Workshop on Design and Application of Strategies/Tactics in Higher Order Logics (STRATA)}",
+  EDITOR = "{Myla Archer and Ben Di Vito and C\'esar Mu\~noz}",
+  PAGES = {56--68},
+  YEAR = 2003,
+  INSTITUTION = "{NASA}",
+  SERIES = "{NASA Technical Reports}",
+  NUMBER = {NASA/CP-2003-212448},
+}
+
+@inproceedings{jacobs_dtt_hol,
+  author =	"B. Jacobs and T. Melham",
+  title =	"{Translating dependent type theory into higher order logic}",
+  booktitle =	"{Typed Lambda Calculi and Applications}",
+  editor =	"M. Bezem and J. Groote",
+  pages =	"209--29",
+  year = 	"1993",
+}
+@InProceedings{aczel_sttt,
+  title =	"{On Relating Type Theories and Set Theories}",
+  author =	"P. Aczel",
+  booktitle = "{Types for Proofs and Programs}",
+  year = 	"1998",
+  editor =	"T. Altenkirch and W. Naraschewski and B. Reus",
+  pages =	"1--18",
+}
+
+@InProceedings{aczel_sttt1,
+  author =	"P. Aczel",
+  title =	"{The Type Theoretic Interpretation of Constructive Set Theory}",
+  editor =	"A. Macintyre and L. Pacholski and J. Paris",
+  booktitle =	"Logic Colloquium '77",
+  pages =	"55--66",
+  publisher =	"North-Holland",
+  year = 	"1978",
+}
+
+@InProceedings{mizar_fol,
+  title =	"{Translating Mizar for First Order Theorem Provers}",
+  author =	"J. Urban",
+  booktitle =	"{Mathematical Knowledge Management}",
+  publisher =	"Springer",
+  year = 	"2003",
+  editor =	"A. Asperti and B. Buchberger and J. Davenport",
+  pages =	"203--215",
+}
+
+@Article{benzmueller_modal_hol,
+  title =	"{Quantified Multimodal Logics in Simple Type Theory}",
+  author =	"C. Benzm{\"u}ller and L. Paulson",
+  journal =	"Logica Universalis",
+  year = 	"2013",
+  number =	"1",
+  volume =	"7",
+  pages =	"7--20",
+}
+
+@InProceedings{trustablecommunication,
+  author = {J. Carette and W. Farmer and J. Wajs},
+  title = "{Trustable Communication between Mathematics Systems}",
+  booktitle = "{Proceedings of Calculemus}",
+  editor = "T. Hardin and R. Rioboo",
+  year = {2003},
+  pages = {58--68},
+}
+
+@Article{isahol_fol,
+  title =	"{Translating Higher-Order Clauses to First-Order Clauses}",
+  author = "J. Meng and L. Paulson",
+  publisher =	"Springer Netherlands",
+  journal = "Journal of Automated Reasoning",
+  year = "2008",
+  number = "1",
+  volume = "40",
+  pages =	"35--60",
+}
+
+@Inproceedings{isahol_fol_verified,
+  title = "Mechanizing the Metatheory of Sledgehammer",
+  author = "J. Blanchette and A. Popescu",
+  booktitle = "FroCos",
+  publisher =	"Springer",
+  year = 2013,
+  note = "to appear",
+}
+
+@InProceedings{z3_isahol,
+  title =	"Fast {LCF}-Style Proof Reconstruction for {Z3}",
+  author =	"S. B{\"o}hme and T. Weber",
+  booktitle =	"Interactive Theorem Proving",
+  publisher =	"Springer",
+  year = 	"2010",
+  editor =	"M. Kaufmann and L. Paulson",
+  pages =	"179--194",
+}
+
+@InProceedings{cvc3_hollight,
+  title =	"{Proof Translation and SMT-LIB Benchmark Certification: A Preliminary Report}",
+  author =	"Y. Ge and C. Barrett",
+  booktitle =	"Workshop on Satisfiability Modulo Theories",
+  year = 	"2008",
+  editor =	"C. Barrett and L. de Moura",
+}
+
+@InProceedings{smt_lf,
+  author =	"A. Stump",
+  title =	"Proof checking technology for satisfiability modulo theories",
+  booktitle =	"Logical Frameworks and Meta-Languages: Theory and Practice",
+  editor =	"A. Abel and C. Urban",
+  year = 	"2008",
+  publisher = "Elsevier",
+  pages = "121–-133"
+}
+
+@inproceedings{proofcert,
+  author    = {Z. Chihani and D. Miller and F. Renaud},
+  title     = {Checking Foundational Proof Certificates for First-Order Logic},
+  editor    = {J. Blanchette and J. Urban},
+  booktitle = {Proof Exchange for Theorem Proving},
+  pages     = {58--66},
+  year      = {2013},
+  publisher = {EasyChair}
+}
+
+@InProceedings{realms,
+  title =	"{Realms: A Structure for Consolidating Knowledge about Mathematical Theories}",
+  author =	"J. Carette and W. Farmer and M. Kohlhase",
+  booktitle = "{Intelligent Computer Mathematics}",
+  publisher =	"Springer",
+  year = 	"2014",
+  editor =	"S. Watt and J. Davenport and A. Sexton and P. Sojka and J. Urban",
+  pages =	"252--266",
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% combinations
+
+@Article{miller_iplcpl,
+	title =	"{Kripke semantics and proof systems for combining intuitionistic logic and classical logic}",
+	author =	"C. Liang and D. Miller",
+	journal =	"Annals of Pure and Applied Logic",
+	year = 	"2013",
+	number =	"2",
+	volume =	"164",
+	pages =	"86--111",
+}
+
+@Book{fibring,
+	author =	"D. Gabbay",
+	title =	"{Fibring Logics}",
+	series =	"Oxford Logic Guides",
+	volume =	"38",
+	publisher =	"Oxford University Press",
+	year = 	"1999",
+}
+
+@Article{fibring_portuguese,
+	title =	"{Fibring of Logics as a Categorial Construction}",
+	author =	"A. Sernadas and C. Sernadas and C.	Caleiro",
+	journal =	"Journal of Logic and Computation",
+	year = 	"1999",
+	number =	"2",
+	volume =	"9",
+	pages =	"149--179",
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% formalized semantics
+@InProceedings{nbe,
+  author =	"U. Berger and H. Schwichtenberg",
+  title =	"{An Inverse of the Evaluation Functional for Typed $\lambda$-Calculus}",
+  booktitle = "Logic in Computer Science",
+  editor =	"G. Kahn",
+  year = 	"1991",
+  pages =	"203--211",
+  publisher = "IEEE Computer Society Press",
+}
+
+@Article{nbe_coqdyb,
+  title =	"{Intuitionistic model constructions and normalization proofs}",
+  author =	"T. Coquand and P. Dybjer",
+  pages =	"75--94",
+  journal =	"Mathematical Structures in Computer Science",
+  year = 	"1997",
+  volume =	"7",
+  number =	"1",
+}
+
+@Article{nbe_coq,
+  author =	"C. Coquand",
+  title =	"{A Formalised Proof of the Soundness and Completeness of a Simply Typed Lambda-Calculus with Explicit Substitutions}",
+  journal =	"Higher-Order and Symbolic Computation",
+  volume =	"15",
+  number =	"1",
+  pages =	"57--90",
+  year = 	"2002",
+}
+
+@InProceedings{coq_domains,
+  title =	"{Some Domain Theory and Denotational Semantics in Coq}",
+  author =	"N. Benton and A. Kennedy and C. Varming",
+  publisher =	"Springer",
+  year = 	"2009",
+  booktitle =	"Theorem Proving in Higher Order Logics",
+  volume =	"5674",
+  editor =	"S. Berghofer and T. Nipkow and C. Urban and M. Wenzel",
+  pages =	"115--130",
+  series =	"Lecture Notes in Computer Science",
+}
+
+@InProceedings{coq_univalg,
+  title =	"{Universal Algebra in Type Theory}",
+  author =	"V. Capretta",
+  booktitle =	"Theorem Proving in Higher Order Logics",
+  publisher =	"Springer",
+  year = 	"1999",
+  editor =	"Y. Bertot and G. Dowek and A. Hirschowitz and C. Paulin and L. Th{\'e}ry",
+  pages =	"131--148",
+}
+
+@Article{holcf,
+  title =	"{HOLCF=HOL+LCF}",
+  author =	"O. M{\"u}ller and T. Nipkow and D. von Oheimb and O. Slotosch",
+  journal =	"Journal of Functional Programming",
+  year = 	"1999",
+  number =	"2",
+  volume =	"9",
+  pages =	"191--223",
+}
+
+@techreport{coq_bourbaki,
+  title =	"{Implementation of Bourbaki's Elements of Mathematics in Coq: Part One, Theory of Sets}",
+  author =	"J. Grimm",
+  institution =	"INRIA",
+  year = 	"2009", 
+  number = "HAL:inria-00408143"
+}
+
+@Article{wiedijk_foundations,
+  title =	"{Is {ZF} a hack?: Comparing the complexity of some
+		 (formalist interpretations of) foundational systems for
+		 mathematics}",
+  author =	"F. Wiedijk",
+  journal =	"{Journal of Applied Logic}",
+  year = 	"2006",
+  number =	"4",
+  volume =	"4",
+  pages =	"622--645",
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% formal proofs
+@Book{landau_analysis,
+  author =	"E. Landau",
+  title =	"Grundlagen der Analysis",
+  publisher =	"Akademische Verlagsgesellschaft",
+  year = 	"1930",
+}
+@PhdThesis{landau_automath,
+  author =	"L. van Benthem Jutting",
+  title =	"{Checking Landau's ``Grundlagen'' in the AUTOMATH system}",
+  school =	"Eindhoven University of Technology",
+  year = 	"1977",
+}
+@misc{fourcolor,
+	author = "G. Gonthier",
+	title = "A computer-checked proof of the four colour theorem",
+	note = "\url{http://research.microsoft.com/~gonthier/}",
+	year = "2006"
+}
+
+@InProceedings{oddorder,
+	title =	"{A Machine-Checked Proof of the Odd Order Theorem}",
+	author =	"G. Gonthier and A. Asperti and J. Avigad and Y. Bertot and C. Cohen and F.	Garillot and S. Le Roux and A. Mahboubi	and R. O'Connor and S. Ould Biha and I. Pasca and L. Rideau and A. Solovyev and E.	Tassi and L. Th{\'e}ry",
+	booktitle =	"Interactive Theorem Proving",
+	year = 	"2013",
+	editor =	"S. Blazy and C. Paulin-Mohring and D.	Pichardie",
+	pages =	"163--179",
+}
+
+@misc{flyspeck,
+  title =	"{A formal proof of the Kepler conjecture}",
+  author =	"T. Hales and M. Adams and G. Bauer and D. Tat Dang and J. Harrison and T. Le Hoang and C. Kaliszyk and V. Magron and S. McLaughlin and T. Tat Nguyen and T. Quang Nguyen and T. Nipkow and S. Obua and J. Pleso and J. Rute and A. Solovyev and A. Thi Ta and T. Nam Tran and D. Thi Trieu and J. Urban and K. Khac Vu and R. Zumkeller",
+  year = 	"2014",
+  note = "\url{http://arxiv.org/abs/1501.02155}"
+}
+
+@InProceedings{flyspeck_intro,
+  title =	"{Introduction to the Flyspeck Project}",
+  author =	"T. Hales",
+  publisher =	"Internationales Begegnungs- und Forschungszentrum f{\"u}r Informatik (IBFI), Schloss Dagstuhl, Germany",
+  year = 	"2005",
+  booktitle =	"Mathematics, Algorithms, Proofs",
+  editor =	"T. Coquand and H. Lombardi and M. Roy",
+}
+
+@misc{jordancurve,
+	author = "T. Hales",
+	title = "The Jordan Curve Theorem in {HOL} Light",
+	note = "See \url{http://www.math.pitt.edu/~thales/}",
+	year = "2005",
+}
+
+@article{keplerconj,
+	author = "T. Hales",
+	title = "{A proof of the the Kepler conjecture}",
+	journal = "{Annals of Mathematics}",
+	volume ="162",
+	pages = "1065--1185",
+	year = "2005",
+}
+@techreport{keplerconj2,
+	author = "T. Nipkow and G. Bauer and P. Schultz",
+	title = "Flyspeck {I}: Tame Graphs",
+	institution = "Institut f{\"u}ur Informatik, TU M{\"u}nchen",
+	year = "2006",
+}
+@misc{primenumber,
+	author = "J. Avigad and K. Donnelly and D. Gray and P. Raff",
+	title = "A formally verified proof of the prime number theorem",
+	note = "To appear",
+	year = "2006",
+}
+@techreport{finitegroups1,
+    title = "{A Modular Formalisation of Finite Group Theory}",
+    author = {G. Gonthier and A. Mahboubi and L. Rideau and E. Tassi and L. Th{\'e}ry},
+    institution = {INRIA},
+    number = {{RR}-6156},
+    year = {2007},
+}
+@misc{afp,
+  title = "{Archive of Formal Proofs}",
+  author = "G. Klein and T. Nipkow and L. Paulson (eds.)",
+  note = "http://afp.sourceforge.net/",
+  year = "2004",
+}
+@misc{mizarjournal,
+  title = "{Formalized Mathematics}",
+  author = "R. Matuszewski",
+  note = "http://mizar.uwb.edu.pl/fm/",
+  year = "1990",
+}
+@misc{ams_formalproof,
+  author = "{T. Hales and G. Gonthier and J. Harrison and F. Wiedijk}",
+  title = "{A Special Issue on Formal Proof}",
+  note = "{Notices of the AMS 55(11)}",
+  year = "2008",
+}
+
+@InProceedings{qed,
+  title =	"{The QED Manifesto}",
+  author =	"Anonymous",
+  booktitle = "{Automated Deduction}",
+  editor =	"A. Bundy",
+  pages =	"238--251",
+  publisher =	"Springer",
+  year = 	"1994",
+}
+
+@InProceedings{qedrevisited,
+  author = "F. Wiedijk",
+  title = "{The QED Manifesto Revisited}",
+  editors = "R. Matuszwski and A. Zalewska",
+  booktitle = "{From Insight to Proof, Festschrift in Honour of Andrzej Trybulec}",
+  pages = "121--133",
+  year = 2007,
+}
+
+@InProceedings{message_certificate,
+  title =	"Proof, Message and Certificate",
+  author =	"Andrea Asperti",
+  booktitle =	"Intelligent Computer Mathematics",
+  publisher =	"Springer",
+  year = 	"2012",
+  editor =	"J. Jeuring and J. Campbell and J. Carette and G. Dos Reis and P. Sojka and M. Wenzel and V. Sorge",
+  pages =	"17--31",
+}
+
+@Article{l4verified,
+  author =	"G. Klein and J. Andronick and K. Elphinstone and G. Heiser and D. Cock and P. Derrin and D. Elkaduwe and K. Engelhardt and R. Kolanski and M. Norrish and T. Sewell and H. Tuch and S. Winwood",
+  title =	"{seL4: formal verification of an operating-system kernel}",
+  journal =	"{Communications of the ACM}",
+  volume =	"53",
+  number =	"6",
+  pages =	"107--115",
+  year = 2010,
+}
+
+@InProceedings{l4verified_mkm,
+  title =	"{Challenges and Experiences in Managing Large-Scale Proofs}",
+  author =	"T. Bourke and M. Daum and G. Klein and R. Kolanski",
+  booktitle =	"Intelligent Computer Mathematics",
+  publisher =	"Springer",
+  year = 	"2012",
+  editor =	"J. Jeuring and J. Campbell and J. Carette and G. Dos Reis and P. Sojka and M. Wenzel and V. Sorge",
+  pages =	"32--48",
+}
+
+@article{compcert,
+  author = {Xavier Leroy},
+  title = {Formal verification of a realistic compiler},
+  journal = {Communications of the ACM},
+  year = 2009,
+  volume = 52,
+  number = 7,
+  pages = {107--115},
+}
+
+@inproceedings{holight_atpservice,
+  author = {C. Kaliszyk and J. Urban},
+  title =  "{Automated Reasoning Service for HOL Light}",
+  booktitle = "{Intelligent Computer Mathematics}",
+  publisher = "Springer",
+  year = 2013,
+  note =   "to appear"
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% logical relations
+@InProceedings{logrel_Reynolds74,
+  author =	"J. Reynolds",
+  title =	"{On the relation between direct and continuation semantics}",
+  booktitle =	"{Second Colloq. Automata, Languages and Programming}",
+  publisher =	"Springer",
+  series =	"LNCS",
+  year = 	"1974",
+  pages =	"141--156",
+}
+@TechReport{logrel_plotkin73,
+  author =	"G. Plotkin",
+  title =	"{Lambda-Definability and Logical Relations}",
+  type = 	"Memorandum",
+  number =	"SAI--RM--4",
+  institution =  "University of Edinburgh",
+  department =	"School of Artificial Intelligence",
+  year = 	"1973",
+}
+@PhdThesis{logrel_schoett87,
+  author =	"O. Schoett",
+  title =	"{Data Abstraction and the Correctness of Modular Programming}",
+  school =	"Department of Computer Science, University of Edinburgh",
+  year = 	"1987",
+}
+@InCollection{logrel_mitchell90,
+  author =	"J. Mitchell",
+  title =	"{Type systems for programming languages}",
+  booktitle =	"{Handbook of Theoretical Computer Science, Volume B}",
+  editor =	"J. van Leeuwen",
+  publisher =	"North-Holland",
+  year = 	"1990",
+  pages =	"365--458",
+}
+
+@article{logrel_bernardy,
+  author    = {J. Bernardy and P. Jansson and R. Paterson},
+  title     = "{Proofs for Free - Parametricity for Dependent Types}",
+  journal   = {Journal of Functional Programming},
+  volume    = {22},
+  number    = {2},
+  year      = {2012},
+  pages     = {107-152},
+}
+
+@Article{prelogicalrelations,
+  author =	"F. Honsell and D. Sannella",
+  title =	"{Prelogical relations}",
+  journal =	"{Information and Computation}",
+  volume =	"178",
+  number =	"1",
+  year = 	"2002",
+  pages =	"23--43",
+}
+@InProceedings{laxlogicalrelations,
+    author = {G. Plotkin and J. Power and D. Sannella and R. Tennent},
+    title = "{Lax Logical Relations}",
+    booktitle = {Colloquium on Automata, Languages and Programming},
+    year = {2000},
+    series = "LNCS",
+    volume = "1853",
+    pages = {85--102},
+    publisher = {Springer},
+}
+@InProceedings{structurallogicalrelations,
+  author =	"C. Sch{\"u}rmann and J. Sarnat",
+  title =	"{Structural Logical Relations}",
+  booktitle =	"Logic in Computer Science",
+  year = 	"2008",
+  editor =	"F. Pfenning",
+  publisher =	"IEEE Computer Society Press",
+  pages =	"69--80",
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% other
+
+@InProceedings{dependencyrelations,
+  title =	"{Dependencies in Formal Mathematics: Applications and Extraction for Coq and Mizar}",
+  author =	"J. Alama and L. Mamane and J. Urban",
+  booktitle =	"Intelligent Computer Mathematics",
+  publisher =	"Springer",
+  year = 	"2012",
+  editor =	"J. Jeuring and J. Campbell and J. Carette and G. Dos Reis and P. Sojka and M. Wenzel and V. Sorge",
+  pages =	"1--16",
+}
+
+@Article{sexpressions,
+	author =	"J. McCarthy",
+	title =	"{Recursive Functions of Symbolic Expressions and their	Computation by Machine, Part I}",
+	journal =	"Communications of the ACM",
+	year = 	"1960",
+	volume =	"3",
+	pages =	"184--195",
+}
+
+@Article{literate_programming,
+  author =	"D. Knuth",
+  title =	"Literate Programming",
+  journal =	"The Computer Journal",
+  year = 	"1984",
+  volume =	"27",
+  number =	"2",
+  pages =	"97--111",
+}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/bib/systems.bib b/omdoc-semantics/macros/bib/systems.bib
new file mode 100644
index 0000000000000000000000000000000000000000..316fe83209690482428a740c8e6e0f190646e751
--- /dev/null
+++ b/omdoc-semantics/macros/bib/systems.bib
@@ -0,0 +1,1660 @@
+%Systems and applications
+@inproceedings{comparing,
+    AUTHOR = {F. Wiedijk},
+    TITLE = "{Comparing mathematical provers}",
+    BOOKTITLE = "{Proceedings of Mathematical Knowledge Management}",
+    YEAR = {2003},
+    EDITOR = {A. Asperti and B. Buchberger and J. Davenport},
+    PAGES = {188-202},
+    PUBLISHER = {Springer},
+}
+
+@inproceedings{pvs,
+    AUTHOR = {S. Owre and J. Rushby and N. Shankar},
+    TITLE = "{PVS: A Prototype Verification System}",
+    BOOKTITLE = "{11th International Conference on Automated Deduction (CADE)}",
+    YEAR = {1992},
+    EDITOR = {D. Kapur},
+    PAGES = {748--752},
+    PUBLISHER = {Springer},
+}
+
+@InProceedings{pvs_shostak_decon,
+  author =	"H. Rue{\ss} and N. Shankar",
+  title =	"Deconstructing {S}hostak",
+  editor = "J. Halpern",
+  booktitle = "Logic in Computer Science",
+  year = 	"2001",
+  publisher = "IEEE Computer Society",
+  pages =	"19--28",
+}
+
+@misc{nasapvs,
+   author = "NASA Langley",
+   title = "{NASA PVS Library}",
+   note = "\url{http://shemesh.larc.nasa.gov/fm/ftp/larc/PVS-library/pvslib.html}",
+   year = 2014,
+}
+
+@inproceedings{specware,
+ title = "{Specware: Formal Support for Composing Software}",
+ author = "Y. Srinivas and R. J{\"u}llig",
+ booktitle = "Mathematics of Program Construction",
+ editor = "B. M{\"o}ller",
+ year = 1995,
+ publisher = "Springer",
+}
+
+@TECHREPORT{pvssemantics,
+	author = "S. Owre and N. Shankar",
+	title = "The formal semantics of {PVS}",
+	institution = "SRI International",
+	year = "1997",
+	number = "SRI-CSL-97-2",
+}
+
+@book{nuprl,
+  author =    "R. Constable and S. Allen and H. Bromley and W. Cleaveland and J. Cremer and R. Harper and D. Howe and T. Knoblock and N. Mendler and P. Panangaden and J. Sasaki and S. Smith",
+  title =     "{Implementing Mathematics with the Nuprl Development System}",
+  publisher = "Prentice-Hall",
+  year =      1986,
+}
+  
+@incollection{nuprl_classes,
+  title =	"{Nuprl's Class Theory and Its Applications}",
+  author =	"R. Constable and J. Hickey",
+  booktitle =	"{Foundations of Secure Computation}",
+  editor = "F. Bauer and R. Steinbruggen",
+  publisher = "{IOS Press}",
+  pages =	"91--115",
+  year = 	"2000",
+}
+
+@Inproceedings{delphin,
+  author = "A. Poswolsky and C. Sch{\"u}rmann",
+  title = "{System Description: Delphin - A Functional Programming Language for Deductive Systems}",
+  booktitle = "{International Workshop on Logical Frameworks and Metalanguages: Theory and Practice}",
+  year = "2008",
+  editor = "A. Abel and C. Urban",
+  pages = "135--141",
+  publisher = "ENTCS",
+}
+
+@phdthesis{agdaphd,
+ author = "U. Norell",
+ title = "{Towards a practical programming language based on dependent type theory}",
+ school = "{Chalmers University of Technology and G{\"o}teborg University}",
+ year = "2007",
+}
+
+@misc{agda,
+ author = "U. Norell",
+ title = "{The Agda WiKi}",
+ note = {\url{http://wiki.portal.chalmers.se/agda}},
+ year = "2005",
+}
+
+@InCollection{hol,
+  author =	"M. Gordon",
+  editor =	"G. Birtwistle and P. Subrahmanyam",
+  year = 	"1988",
+  title =	"{HOL: A Proof Generating System for Higher-Order Logic}",
+  booktitle =	"{VLSI Specification, Verification and Synthesis}",
+  pages =	"73--128",
+  publisher =	"{Kluwer-Academic Publishers}",
+}
+
+@InCollection{holsemantics,
+  author =	"M. Gordon and A. Pitts",
+  title =	"{The HOL Logic}",
+  booktitle =	"{Introduction to HOL, Part III}",
+  editor =	"M. Gordon and T. Melham",
+  publisher =	"Cambridge University Press",
+  year = 	"1993",
+  pages =	"191--232",
+}
+
+@Book{holbook,
+  author =	"M. Gordon and T. Melham",
+  title =	"{Introduction to HOL: A Theorem Proving Environment for Higher-Order Logic}",
+  publisher =	"Cambridge University Press",
+  year = 	"1993",
+}
+
+@misc{hol4,
+ key = "HOL4",
+ author = "{HOL4 development team}",
+ note = "\url{http://hol.sourceforge.net/}",
+}
+
+@misc{proofpower,
+ author = "R. Arthan",
+ title = "{ProofPower}",
+ note = "\url{http://www.lemma-one.com/ProofPower/}",
+}
+
+@inproceedings{hollight,
+	author = "J. Harrison",
+	title ="{HOL Light: A Tutorial Introduction}",
+	pages = "265--269",
+	booktitle = "{Proceedings of the First International Conference on Formal Methods in Computer-Aided Design}",
+	year = "1996",
+	publisher = "Springer",
+}
+
+@InProceedings{hollight_hints,
+	title =	"{Automated Reasoning Service for HOL Light}",
+	author =	"C. Kaliszyk and J. Urban",
+	booktitle =	"Intelligent Computer Mathematics",
+	publisher =	"Springer",
+	year = 	"2013",
+	editor =	"J. Carette and D. Aspinall and C. Lange and P. Sojka and W. Windsteiger",
+	pages =	"120--135",
+}
+
+@INPROCEEDINGS{hollight_realclosedfield,
+    title           = "A Proof-Producing Decision Procedure for Real Arithmetic",
+    author          = "S. McLaughlin and J. Harrison",
+    booktitle       = "Automated Deduction",
+    editor          = "R. Nieuwenhuis",
+    publisher       = "Springer",
+    year            = 2005,
+    pages           = "295--314"
+}
+
+@Article{isabelle1,
+  author =	"L. Paulson",
+  title =	"{The Foundation of a Generic Theorem Prover}",
+  journal =	"{Journal of Automated Reasoning}",
+  pages =	"363--397",
+  volume =	"5",
+  number =	"3",
+  year = 	"1989",
+}
+
+@InProceedings{isabelle2,
+  author =	"L. Paulson",
+  title =	"{Isabelle: The Next 700 Theorem Provers}",
+  year = 	"1990",
+  pages =	"361--386",
+  editor =	"P. Odifreddi",
+  publisher =	"Academic Press",
+  booktitle =	"Logic and Computer Science",
+}
+
+@misc{isabellemanual,
+  author =	"M. Wenzel",
+  title =	"{The Isabelle/Isar Reference Manual}",
+  note = "\url{http://isabelle.in.tum.de/documentation.html}, Dec 3, 2009",
+  year = 	"2009",
+}
+
+@Book{isabelle,
+  author =	"L. Paulson",
+  title =	"{Isabelle: A Generic Theorem Prover}",
+  publisher =	"Springer",
+  series =	"Lecture Notes in Computer Science",
+  volume =	"828",
+  year = 	"1994",
+}
+
+@Book{isabellehol,
+  author= {T. Nipkow and L. Paulson and M. Wenzel},
+  title= "{Isabelle/HOL --- A Proof Assistant for Higher-Order Logic}",
+  publisher= {Springer},
+  year= "2002"
+}
+
+@misc{isabelle_zf,
+  author = "L. Paulson and M. Coen",
+  title = "{Zermelo-Fraenkel Set Theory}",
+  note = "{Isabelle distribution, ZF/ZF.thy}",
+  year = 1993,
+}
+
+@InProceedings{isabelle_documentoriented,
+  title =	"Isabelle as a Document-Oriented Proof Assistant",
+  author =	"M. Wenzel",
+  booktitle =	"Intelligent Computer Mathematics",
+  publisher =	"Springer",
+  year = 	"2011",
+  editor =	"J. Davenport and W. Farmer and J. Urban and F. Rabe",
+  pages =	"244--259",
+}
+
+@InProceedings{isabelle_jedit,
+	title =	"{Isabelle/jEdit - {A} Prover {IDE} within the {PIDE} Framework}",
+	author =	"M. Wenzel",
+	booktitle =	"Intelligent Computer Mathematics",
+	year = 	"2012",
+	editor =	"J. Jeuring and J. Campbell and J. Carette and G. Dos Reis and P. Sojka and M. Wenzel	and V. Sorge",
+	pages =	"468--471",
+}
+
+@InProceedings{isabelle_async,
+  title =	"{Asynchronous Proof Processing with Isabelle/Scala and Isabelle/jEdit}",
+  author =	"M. Wenzel",
+  booktitle = "{User Interfaces for Theorem Provers}",
+  editor = "D. Aspinall and C. {Sacerdoti Coen}",
+  year = 	"2010",
+  publisher = "ENTCS",
+  pages =	"101--114",
+}
+
+@InProceedings{isar,
+  title =	"{Isar - A Generic Interpretative Approach to Readable Formal Proof Documents}",
+  author =	"M. Wenzel",
+  booktitle =	"Theorem Proving in Higher Order Logics",
+  publisher =	"Springer",
+  year = 	"1999",
+  editor =	"Y. Bertot and G. Dowek and A. Hirschowitz and C. Paulin and L. Th{\'e}ry",
+  pages =	"167--184",
+}
+
+@misc{isabellehol2,
+  author= {T. Nipkow and L. Paulson and M. Wenzel},
+  title= "{Isabelle's Logics: HOL}",
+  year= "2004",
+  note= {\url{http://isabelle.in.tum.de/dist/Isabelle2004/doc/logics-HOL.pdf}}
+}
+
+@InProceedings{isabelle_locales,
+  title =	"{Locales -- a Sectioning Concept for Isabelle}",
+  author =	"F. Kamm{\"u}ller and M. Wenzel and L. Paulson",
+  editor =	"Y. Bertot and G. Dowek and A. Hirschowitz and C. Paulin and L. Thery",
+  year = 	"1999",
+  booktitle =	"{Theorem Proving in Higher Order Logics}",
+  publisher =	"Springer",
+  pages = "149--166"
+}
+
+@InProceedings{isabelle_classes,
+  title =	"{Constructive Type Classes in Isabelle}",
+  author =	"F. Haftmann and M. Wenzel",
+  publisher =	"Springer",
+  year = 	"2006",
+  booktitle =	"TYPES conference",
+  editor =	"T. Altenkirch and C. McBride",
+  pages =	"160--174",
+}
+
+@misc{isabelle_library,
+ title = "Isabelle Library",
+ key = "Isabelle",
+ year = 2008,
+ note = "\url{http://isabelle.in.tum.de/dist/library/index.html}",
+}
+
+@InProceedings{isabellehol_codegen,
+  title =	"{Code Generation via Higher-Order Rewrite Systems}",
+  author =	"F. Haftmann and T. Nipkow",
+  booktitle =	"Functional and Logic Programming",
+  publisher =	"Springer",
+  year = 	"2010",
+  editor =	"M. Blume and N. Kobayashi and G. Vidal",
+  pages =	"103--117",
+}
+ 
+@TechReport{isabelle_nuprl,
+  title =	"{Formalization of Isabelle Meta Logic in NuPRL}",
+  author = "P. Naumov",
+  year =  "1999",
+  institution = "Cornell",
+}
+
+@InProceedings{proof_general,
+	title =	"{Proof General: {A} Generic Tool for Proof	Development}",
+	author =	"D. Aspinall",
+	booktitle =	"Tools and Algorithms for Construction and Analysis of Systems",
+	publisher =	"Springer",
+	year = 	"2000",
+	editor =	"S. Graf and M. Schwartzbach",
+	pages =	"38--42",
+}
+
+@InProceedings{lambdaprolog,
+  author =	"D. Miller and G. Nadathur",
+  title =	"Higher-order logic programming",
+  booktitle = "Proceedings of the Third International Conference on Logic Programming",
+  year = 	"1986",
+  editor =	"E. Shapiro",
+  publisher =	"Springer",
+  pages =	"448--462",
+}
+
+@Book{acl2,
+  author =	"M. Kaufmann and P. Manolios and J Moore",
+  title =	"{Computer-Aided Reasoning: An Approach}",
+  publisher =	"Kluwer Academic Publishers",
+  year = 	"2000",
+}
+
+@InProceedings{acl2sedan,
+  title =	"{ACL2s: The ACL2 Sedan}",
+  author =	"P. Dillinger and P. Manolios and D. Vroon and J. Strother Moore",
+  booktitle = "Proceedings of the 7th Workshop on User Interfaces for Theorem Provers (UITP 2006)",
+  editor = "S. Autexier and C. Benzm{\"u}ller",
+  pages =	"3--18",
+  year = 	"2007",
+}
+
+@InProceedings{chiron_biform,
+  title =	"{Biform Theories in Chiron}",
+  author =	"W. Farmer",
+  booktitle =	"Towards Mechanized Mathematical Assistants",
+  publisher =	"Springer",
+  year = 	"2007",
+  editor =	"M. Kauers and M. Kerber and R. Miner and W. Windsteiger",
+  pages =	"66--79",
+  series =	"Lecture Notes in Computer Science",
+  volume =	"4573",
+}
+
+@Article{tps,
+  title =	"{TPS: A Theorem-Proving System for Classical Type Theory}",
+  author =	"P. Andrews and M. Bishop and S. Issar and D. Nesmith and F. Pfenning and H. Xi",
+  journal =	"{Journal of Automated Reasoning}",
+  pages =	"321--353",
+  year = 	"1996",
+  volume =	"16",
+  number =	"3",
+}
+
+@Article{imps,
+  author =	"W. Farmer and J. Guttman and F. Thayer",
+  title =	"{IMPS: An Interactive Mathematical Proof System}",
+  journal =	"{Journal of Automated Reasoning}",
+  pages =	"213--248",
+  volume =	"11",
+  number =	"2",
+  year = 	"1993",
+}
+
+@InProceedings{lutins,
+  author =	"{J. Guttman}",
+  title =	"An Interface Logic for Verification Environments",
+  editor =	"M. Archer and J. Joyce and K. Levitt and P. Windley",
+  booktitle =	"{International Workshop on Higher Order Logic Theorem Proving and its Applications}",
+  publisher =	"IEEE Computer Society Press",
+  year = 	"1991",
+}
+
+
+@InProceedings{alf,
+  author =	"L. Magnusson and B. Nordstr{\"o}m",
+  title =	"{The ALF proof editor and its proof engine}",
+  booktitle =	"{Types for Proofs and Programs}",
+  editor =	"H. Barendregt and T. Nipkow",
+  year = 	"1994",
+  series =	"Lecture Notes in Computer Science",
+  publisher =	"Springer",
+  volume =	"806",
+  pages =	"213--237",
+}
+
+@Book{coqbook,
+  author= {Y. Bertot and P. Cast{\'e}ran},
+  title= {Coq'Art: The Calculus of Inductive Constructions},
+  publisher= {Springer},
+  year= "2004",
+}
+
+@techreport{coq,
+ author = "{Coq Development Team}",
+ title = "{The Coq Proof Assistant: Reference Manual}",
+ institution = "INRIA",
+ year = 2015
+}
+
+@misc{coq_library,
+ title = "Coq Library",
+ key = "Coq",
+ year = 2008,
+ note = "\url{http://coq.inria.fr/library-eng.html}",
+}
+
+@incollection{coq_cct,
+  author = "G. Huet and A. Sa{\"\i}bi",
+  title = "Constructive category theory",
+  editor = "G. Plotkin and C. Stirling and M. Tofte",
+  booktitle = "{Proof, Language and Interaction: Essays in Honour of Robin Milner}",
+  year = "1998",
+	publisher = "MIT Press"
+}
+@techreport{coq_ssreflect,
+ title = "{A Small Scale Reflection Extension for the Coq system}",
+ author = "G. Gonthier and A. Mahboubi",
+ institution = "{INRIA}",
+ number = "{RR-6455}",
+ year = {2008},
+}
+@InProceedings{gonthier_packaging,
+  title =	"Packaging Mathematical Structures",
+  author =	"F. Garillot and G. Gonthier and A. Mahboubi and L. Rideau",
+  booktitle =	"Theorem Proving in Higher Order Logics",
+  publisher =	"Springer",
+  year = 	"2009",
+  editor =	"S. Berghofer and T. Nipkow and C. Urban and M. Wenzel",
+  pages =	"327--342",
+}
+
+@InProceedings{dedukti,
+  author =	"M. Boespflug and Q. Carbonneaux and O. Hermant",
+  title =	"The {$\lambda\Pi$}-calculus modulo as a universal proof language",
+  editor =	"D. Pichardie and T. Weber",
+  booktitle =	"Proceedings of PxTP2012: Proof Exchange for Theorem Proving",
+  pages =	"28--43",
+  year = 	"2012",
+}
+
+@misc{holide,
+  author = "A. Assaf and G. Burel",
+  title = "Holide",
+  note = "\url{https://www.rocq.inria.fr/deducteam/Holide/index.html}",
+  year = 2013,
+}
+
+@inproceedings{coqine,
+  author = "M. Boespflug and G. Burel",
+  title = "{CoqInE: Translating the Calculus of Inductive Constructions into the lambda Pi-calculus Modulo}",
+  booktitle = "Proof Exchange for Theorem Proving",
+  editor = "D. Pichardie and T. Weber",
+  year = 2012,
+}
+
+@InProceedings{lambdaPimodulo,
+	title =	"Embedding Pure Type Systems in the Lambda-Pi-Calculus Modulo",
+	author =	"D. Cousineau and G. Dowek",
+	booktitle =	"Typed Lambda Calculi and Applications",
+	publisher =	"Springer",
+	year = 	"2007",
+	editor =	"S. Ronchi Della Rocca",
+	pages =	"102--117",
+}
+
+@misc{focalize,
+  author = "T. Hardin and others",
+  title = "The FoCaLiZe Essential",
+  note = "\url{http://focalize.inria.fr/}",
+  year = 2012
+}
+
+@Book{bmethod,
+  author =	"J. Abrial",
+  title =	"{The B-Book: Assigning Programs to Meanings}",
+  publisher =	"Cambridge University Press",
+  year = 	"1996",
+}
+
+@Book{caslmanual,
+  author =	"{CoFI (The Common Framework Initiative)}",
+  title =	"{CASL Reference Manual}",
+  year = 	"2004",
+  publisher =	"Springer",
+  series =	"LNCS",
+  volume =	"2960",
+}
+
+@incollection{obj,
+    author = "J. Goguen and Timothy Winkler and J. Meseguer and K. Futatsugi and J. Jouannaud",
+    title = "{Introducing OBJ}",
+    booktitle = "Applications of Algebraic Specification using {OBJ}",
+    publisher = "Cambridge",
+    editor = "J. Goguen and D. Coleman and R. Gallimore",
+    year = "1993",
+}
+
+@Article{clear,
+  title =	"The Semantics of {Clear}, a Specification Language",
+  author =	"Joseph A. Goguen and Rod M. Burstall",
+  journal =	"Journal of the ACM",
+  publisher =	"Springer",
+  volume =	"39",
+  number =	"1",
+  pages =	"95--146",
+  year = 	"1980",
+}
+
+@InProceedings{aspinallaslplus,
+  author =	"D. Aspinall",
+  title =	"{Types, Subtypes, and ASL+}",
+  editor =	"E. Astesiano and G. Reggio and A. Tarlecki",
+  booktitle =	"{Recent Trends in Data Type Specification}",
+  publisher =	"Springer",
+  year = 	"1994",
+  pages =	"116--131",
+}
+
+@InProceedings{asl,
+  title =	"{A Kernel Language for Algebraic Specification and Implementation}",
+  author =	"D. Sannella and M. Wirsing",
+  booktitle =	"{Fundamentals of Computation Theory}",
+  publisher =	"Springer",
+  year = 	"1983",
+  editor =	"M. Karpinski",
+  pages =	"413--427",
+}
+
+@Article{extendedml,
+  title =	"{The definition of extended ML: A gentle introduction}",
+  author =	"S. Kahrs and D. Sannella and A. Tarlecki",
+  pages =	"445--484",
+  journal =	"Theoretical Computer Science",
+  year = 	"1997",
+  volume =	"173",
+  number =	"2",
+}
+
+@Article{aslplus,
+  author =	"D. Sannella and S. Sokolowski and A. Tarlecki",
+  title =	"{Toward Formal Development of Programs from Algebraic Specifications: Parameterisation Revisited}",
+  journal =	"{Acta Informatica}",
+  volume =	"29",
+  number =	"8",
+  year = 	"1992",
+  pages =	"689--736",
+}
+
+@inproceedings{maude,
+    author = "M. Clavel and S. Eker and P. Lincoln and J. Meseguer",
+    title = "Principles of {Maude}",
+    booktitle = "Proceedings of the First International Workshop on Rewriting Logic",
+    volume = "4",
+    editor = "J. Meseguer",
+    pages = "65--89",
+    year = "1996",
+}
+
+@inproceedings{maude_rewriting,
+  author = "R. Bruni and J. Meseguer",
+  title = "Generalized rewrite theories",
+  booktitle = "Proceedings of ICALP '03.",
+  publisher = "Springer",
+  year = "2003",
+}
+
+@INPROCEEDINGS{omega,
+  author = {C. Benzm{\"u}ller and L. Cheikhrouhou and D. Fehrer and A. Fiedler and X. Huang and M. Kerber and M. Kohlhase and K. Konrad and E. Melis     and A. Meier and W. Schaarschmidt and J. Siekmann and V. Sorge},
+  title = "{$\Omega$MEGA: Towards a mathematical assistant}",
+  booktitle = "{Proceedings of the 14th Conference on Automated Deduction}",
+  editor = {W. McCune},
+  publisher = {Springer},
+  year = {1997},
+  pages = {252--255},
+}
+
+@InProceedings{mathweb,
+  author =	"A. Franke and M. Kohlhase",
+  title =	"{System Description: MATHWEB, an Agent-Based Communication Layer for Distributed Automated Theorem Proving}",
+  editor =	"H. Ganzinger",
+  booktitle = "Automated Deduction",
+  pages =	"217--221",
+  publisher =	"Springer",
+  year = 	"1999",
+}
+
+@InProceedings{matita,
+  title =	"{Crafting a Proof Assistant}",
+  author =	"A. Asperti and C. Sacerdoti Coen and E. Tassi and S. Zacchiroli",
+  publisher =	"Springer",
+  year = 	"2006",
+  booktitle =	"TYPES",
+  editor =	"T. Altenkirch and C. McBride",
+  pages =	"18--32",
+}
+
+@Article{matita_refiner,
+	title =	"{A Bi-Directional Refinement Algorithm for the Calculus of (Co)Inductive Constructions}",
+	author =	"A. Asperti and W. Ricciotti and C.	Sacerdoti Coen and E. Tassi",
+	journal =	"Logical Methods in Computer Science",
+	year = 	"2012",
+	number =	"1",
+	volume =	"8",
+}
+
+@InProceedings{matita_hints,
+	title =	"Hints in Unification",
+	author =	"A. Asperti and W. Ricciotti and C.	Sacerdoti Coen and E. Tassi",
+	booktitle =	"Theorem Proving in Higher Order Logics",
+	publisher =	"Springer",
+	year = 	"2009",
+	editor =	"S. Berghofer and T. Nipkow and C. Urban and M. Wenzel",
+	pages =	"84--98",
+}
+
+
+@Article{pientka_reconstruction,
+	title =	"{An insider's look at {LF} type reconstruction: everything you (n)ever wanted to know}",
+	author =	"B. Pientka",
+	journal =	"J. Funct. Program",
+	year = 	"2013",
+	number =	"1",
+	volume =	"23",
+	pages =	"1--37",
+}
+
+@InProceedings{luther_reconstruction,
+	title =	"{More On Implicit Syntax}",
+	author =	"M. Luther",
+	booktitle =	"Automated Reasoning",
+	publisher =	"Springer",
+	year = 	"2001",
+	editor =	"R. Gor{\'e} and A. Leitsch and T. Nipkow",
+	pages =	"386--400",
+}
+
+@InProceedings{mizar,
+  author =	"A. Trybulec and H. Blair",
+  title =	"{Computer Assisted Reasoning with MIZAR}",
+  editor =	"A. Joshi",
+  booktitle =	"Proceedings of the 9th International Joint Conference on Artificial Intelligence",
+  publisher =   {Morgan Kaufmann},
+  pages =	"26--28",
+  year = 	"1985",
+}
+@Article{mizar_nutshell,
+  title =	 "{Mizar in a Nutshell}",
+  author =	"A. Grabowski and A. Kornilowicz and A. Naumowicz",
+  year = 	"2010",
+  journal =	"Journal of Formalized Reasoning",
+  volume = 3,
+  number = 2
+}
+@article{mizar_tarski,
+ author = "A. Trybulec",
+ title = "{Tarski Grothendieck Set Theory}",
+ journal = "{Journal of Formalized Mathematics}",
+ year = "1989",
+ volume = "Axiomatics",
+}
+@Article{jaskowski_nd,
+  author =	"S. Ja{\'s}kowski",
+  journal =	"{Studia Logica}",
+  title =	"{On the rules of suppositions in formal logic}",
+  volume =	"1",
+  year = 	"1934",
+  pages =	"5--32",
+}
+@misc{mizarmanual,
+  author =       "E. Bonarska",
+  title =        "An Introduction to {PC} Mizar",
+  year =         "1990",
+  note =    "\url{http://www.mizar.org/project/bonarska91.ps.gz}",
+}
+@misc{mizar_grammar,
+  author = "Mizar",
+  title = "{Grammar, version 7.11.02}",
+  year = "2009",
+  note = "http://mizar.org/language/mizar-grammar.xml"
+}
+@InProceedings{mizar_types,
+  title =	"{Mizar's Soft Type System}",
+  author =	"F. Wiedijk",
+  booktitle =	"{Theorem Proving in Higher Order Logics}",
+  publisher =	"Springer",
+  year = 	"2007",
+  volume =	"4732",
+  editor =	"K. Schneider and J. Brandt",
+  pages =	"383--399",
+  series =	"Lecture Notes in Computer Science",
+}
+@InProceedings{mizar_types_bancerek,
+  author = "G. Bancerek",
+  title = "{On the structure of Mizar types}",
+  series = "Electronic Notes in Theoretical Computer Science",
+  volume = "85",
+  number = "7",
+  pages = "69--85",
+  year = 2003,
+}
+
+@misc{mml,
+  title = "{Mizar Mathematical Library}",
+  author = "Mizar Community",
+  note = "\url{http://mizar.org/library/}",
+  year = 1989
+}
+
+@InCollection{mizar_omdoc,
+  author = {G. Bancerek and M. Kohlhase},
+  title = "{Towards a Mizar Mathematical Library in OMDoc Format}",
+  booktitle = "{From Insight to Proof: Festschrift in Honour of Andrzej Trybulec}",
+  editor = {R. Matuszewski and A. Zalewska},
+  publisher = "{University of Bia{\l}ystok}",
+  year = {2007},
+  series = "{Studies in Logic, Grammar and Rhetoric}",
+  pages = {265--275},
+}
+@inproceedings{mizarwiki,
+  author = {J. Urban and J. Alama and P. Rudnicki and H. Geuvers},
+  booktitle = {Intelligent Computer Mathematics},
+  editor = {S. Autexier and J. Calmet and D. Delahaye and P. Ion and L. Rideau and R. Rioboo and A. Sexton},
+  title = "{A Wiki for Mizar: Motivation, Considerations, and Initial Prototype}",
+  publisher = {Springer},
+  year = {2010},
+  pages = {455-469},
+}
+@inproceedings{largeformalwikis,
+  author = {J. Alama and K. Brink and L. Mamane and J. Urban},
+  booktitle = {Intelligent Computer Mathematics},
+  editor = {J. Davenport and W. Farmer and J. Urban and F. Rabe},
+  title = {Large Formal Wikis: Issues and Solutions},
+  publisher = {Springer},
+  pages = {133-148},
+  year = {2011},
+}
+@InProceedings{proofweb,
+	title =	"{Web Interfaces for Proof Assistants}",
+	author =	"C. Kaliszyk",
+	booktitle =	"User Interfaces for Theorem Provers",
+	editors = "S. Autexier and C. Benzm{\"u}ller",
+	year = 	"2007",
+	pages =	"49--61",
+}
+@InProceedings{pide,
+  title =	"{Isabelle/jEdit - A Prover IDE within the PIDE Framework}",
+  author =	"M. Wenzel",
+  booktitle =	"Intelligent Computer Mathematics",
+  publisher =	"Springer",
+  year = 	"2012",
+  editor =	"Johan Jeuring and John A. Campbell and Jacques Carette and Gabriel Dos Reis and Petr Sojka and Makarius Wenzel and Volker Sorge",
+  pages =	"468--471",
+}
+
+@InProceedings{scunak,
+  title =	"{Combining Type Theory and Untyped Set Theory}",
+  author =	"C. Brown",
+  booktitle =	"{International Joint Conference on Automated Reasoning}",
+  publisher =	"Springer",
+  year = 	"2006",
+  editor =	"U. Furbach and N. Shankar",
+  pages =	"205--219",
+}
+@InProceedings{chadcombining,
+  title =	"{Combining Type Theory and Untyped Set Theory}",
+  author =	"C. Brown",
+  booktitle =	"{International Joint Conference on Automated Reasoning}",
+  publisher =	"Springer",
+  year = 	"2006",
+  editor =	"U. Furbach and N. Shankar",
+  pages =	"205--219",
+}
+
+@inproceedings{beluga,
+  title =	"{A Framework for Programming and Reasoning with Deductive Systems (System description)}",
+  author =	"B. Pientka and J. Dunfield",
+  booktitle =	"{International Joint Conference on Automated Reasoning}",
+  year = 	"2010",
+  note = "To appear",
+}
+
+@Book{automathpapers,
+  title =        "Selected Papers on Automath",
+  publisher =    "North-Holland",
+  year =         "1994",
+  editor =       "R. P. Nederpelt and J. H. Geuvers and R. C. de Vrijer",
+  volume =       "133",
+  series =       "Studies in Logic and the Foundations of Mathematics",
+}
+
+@InCollection{automath,
+  author =	"N. de Bruijn",
+  title =	"{The Mathematical Language AUTOMATH}",
+  booktitle = "{Proceedings of the Symposium on Automated Demonstration}",
+  editor = "M. Laudet",
+  pages =	"29--61",
+  series =	"Lecture Notes in Mathematics",
+  volume =	"25",
+  publisher =	"Springer",
+  year = 	"1970",
+}
+
+@article{vampire,
+  author = 	 {A. Riazanov and A. Voronkov},
+  title = 	 {The design and implementation of {Vampire}},
+  journal = 	 {AI Communications},
+  volume =       {15},
+  pages =        {91--110},
+  year =	 2002
+}
+
+@techreport{prover9,
+ author = "W. McCune",
+ title = "{Otter 3.3 Reference Manual}",
+ institution = "{Mathematics and Computer Science Division, Argonne National Laboratory}",
+ year = "2003",
+ number = "ANL/MCS-TM-263",
+ note = "\url{http://www.cs.unm.edu/~mccune/mace4/manual-examples.html}",
+}
+
+@inproceedings{zenon,
+  author    = {R. Bonichon and D. Delahaye and D. Doligez},
+  title     = "{Zenon: An Extensible Automated Theorem Prover Producing Checkable Proofs}",
+  booktitle = "{Logic for Programming, Artificial Intelligence, and Reasoning}",
+  editor    = {N. Dershowitz and A. Voronkov},
+  pages     = {151--165},
+  publisher = "Springer",
+  year      = {2007},
+}
+
+@inproceedings{leo2,
+  title =	"{LEO-II - A Cooperative Automatic Theorem Prover for Classical Higher-Order Logic (System Description)}",
+  author ="C. Benzm{\"u}ller and L. Paulson and F. Theiss and A. Fietzke",
+  year = "2008",
+  booktitle = "Automated Reasoning",
+  editor =	"A. Armando and P. Baumgartner and G. Dowek",
+  publisher =	"Springer",
+  pages =	"162--170",
+}
+
+@InProceedings{satallax,
+  title =	"{Satallax: An Automatic Higher-Order Prover}",
+  author =	"C. Brown",
+  booktitle =	"Automated Reasoning",
+  editor =	"B. Gramlich and D. Miller and U. Sattler",
+  publisher =	"Springer",
+  year = 	"2012",
+  pages =	"111--117",
+}
+
+@inproceedings{paradox,
+  title ="{New Techniques that Improve MACE-style Finite Model Finding}",
+  author ="K. Claessen and N. Sorensson",
+  year = "2003",
+  booktitle = "CADE-19 Workshop on Model Computation - Principles, Algorithms, Applications"
+}
+
+@InProceedings{spass,
+  author =	"C. Weidenbach and U. Brahm and T. Hillenbrand and E. Keen and C. Theobalt and D. Topic",
+  title =	"{SPASS Version 2.0}",
+  editor =	"A. Voronkov",
+  booktitle =	"Conference on Automated Deduction",
+  year = 	"2002",
+  publisher =	"Springer",
+  pages =	"275--279",
+}
+
+@InProceedings{E,
+  title =	"{System Abstract: E 0.61}",
+  author =	"S. Schulz",
+  booktitle =	"{International Joint Conference on Automated Reasoning}",
+  publisher =	"Springer",
+  year = 	"2001",
+  editor =	"R. Gor{\'e} and A. Leitsch and T. Nipkow",
+  pages =	"370--375",
+}
+
+@InProceedings{metitarski,
+  title =	"{MetiTarski: An Automatic Prover for the Elementary Functions}",
+  author =	"B. Akbarpour and L. Paulson",
+  booktitle = "Intelligent Computer Mathematics",
+  publisher =	"Springer",
+  year = 	"2008",
+  editor =	"S. Autexier and J. Campbell and J. Rubio and V. Sorge and M. Suzuki and F. Wiedijk",
+  pages =	"217--231",
+}
+
+@InProceedings{theorema,
+  title =	"{Theorema 2.0: A System for Mathematical Theory Exploration}",
+  author =	"W. Windsteiger",
+  booktitle =	"International Congress on Mathematical Software",
+  publisher =	"Springer",
+  year = 	"2014",
+  editor =	"H. Hong and C. Yap",
+  pages =	"49--52",
+}
+
+@InProceedings{cvc4,
+  title =	"{CVC4}",
+  author =	"C. Barrett and C. Conway and M. Deters and L. Hadarean and D. Jovanovic and T. King and A. Reynolds and C. Tinelli",
+  booktitle =	"Computer Aided Verification",
+  editor =	"G. Gopalakrishnan and S. Qadeer",
+  publisher =	"Springer",
+  year = 	"2011",
+  pages =	"171--177",
+}
+
+@inproceedings{z3,
+  author    = {L. de Moura and N. Bj{\o}rner},
+  title     = "{Z3: An Efficient SMT Solver}",
+  booktitle = {Tools and Algorithms for the Construction and Analysis of Systems},
+  editor    = {C. Ramakrishnan and J. Rehof},
+  pages     = {337--340},
+  year      = {2008},
+  publisher = {Springer}
+}
+
+@InProceedings{yices,
+  title =	"Yices 2.2",
+  author =	"B. Dutertre",
+  booktitle = "Computer Aided Verification",
+  publisher =	"Springer",
+  year = 	"2014",
+  editor =	"A. Biere and R. Bloem",
+  pages =	"737--744",
+}
+
+@inproceedings{opentheory,
+  author = {J. Hurd},
+  title = "{OpenTheory: Package Management for Higher Order Logic Theories}",
+  booktitle = "{Programming Languages for Mechanized Mathematics Systems}",
+  editor = {G. Dos Reis and L. Th{\'e}ry},
+  pages = {31--37},
+  publisher = "{ACM}",
+  year = 2009
+}
+
+@Article{klone,
+  author =	"R. Brachman and J. Schmolze",
+  title =	"{An Overview of the KL-ONE Knowledge Representation Scheme}",
+  journal =	"Cognitive Science",
+  volume =	"9",
+  number =	"2",
+  year = 	"1985",
+}
+
+@inproceedings{activemath,
+  title = "{ActiveMath: System Description}",
+  author = "E. Melis and E. Andr{\'e}s and G. Goguadze and P. Libbrecht and M. Pollet and C. Ullrich",
+  booktitle = "{Artificial Intelligence in Education}",
+  pages = "580--582",
+  publisher = "IOS Press",
+  year = 2001,
+}
+
+@book{omdoc,
+  author = "M. Kohlhase",
+  title = "{OMDoc: An Open Markup Format for Mathematical Documents (Version 1.2)}",
+  series = "{Lecture Notes in Artificial Intelligence}",
+  number = "4180",
+  publisher = "Springer",
+  year = "2006",
+}
+
+@article{kohlhaseopenmath,
+  author = "M. Kohlhase",
+  title = "{OMDoc: An Infrastructure for OpenMath Content Dictionary Information}",
+  journal = "Bulletin of the ACM Special Interest Group on Symbolic and Automated Mathematics",
+  volume = "34",
+  pages = "43--48",
+  year = 2000
+}
+
+@INPROCEEDINGS{mathwebsearch,
+  author = {M. Kohlhase and I. {\c{S}}ucan},
+  title = "{A Search Engine for Mathematical Formulae}",
+  booktitle = "{Artificial Intelligence and Symbolic Computation}",
+  pages = {241--253},
+  year = {2006},
+  editor = {T. Ida and J. Calmet and D. Wang},
+  publisher = {Springer},
+}
+
+@INPROCEEDINGS{IK:flatsearch:12,
+  author = {M. Iancu and M. Kohlhase},
+  title = "{Searching the Space of Mathematical Knowledge}",
+  booktitle = "{Mathematics Information Retrieval Workshop}",
+  year = {2012},
+  editor = {M.Kohlhase and P. Sojka},
+}
+
+@INPROCEEDINGS{mathhub,
+  author = "M. Iancu and C. Jucovschi and M. Kohlhase and T. Wiesing",
+  title = "{System Description: MathHub.info}",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "S. Watt and J. Davenport and A. Sexton and P. Sojka and J. Urban",
+  pages = "431--434",
+  publisher = "Springer",
+  year = {2014},
+}
+
+@Article{dlmf,
+  title =	"{Technical Aspects of the Digital Library of Mathematical Functions}",
+  author =	"B. Miller and A. Youssef",
+  journal =	"{Annals of Mathematics and Artificial Intelligence}",
+  year = 	"2003",
+  volume =	"38",
+  number =	"1-3",
+  pages =	"121--136",
+}
+
+@misc{locutor,
+  author = 	 {N. M{\"u}ller and M. Kohlhase},
+  title = 	 {{Fine-Granular Version Control \& Redundancy Resolution}},
+  note = {To be submitted},
+  year = {2008},
+}
+
+@InProceedings{stexide,
+  author = {C. Jucovschi and M. Kohlhase},
+  title = "{sTeXIDE: An Integrated Development Environment for sTeX Collections}",
+  editor = {S. Autexier and J. Calmet and D. Delahaye and P. Ion and L. Rideau and R. Rioboo and A. Sexton},
+  booktitle = "{Intelligent Computer Mathematics}",
+  series = {Lecture Notes in Artificial Intelligence},
+  publisher = {Springer},
+  number = {6167},
+  year = {2010},
+}
+
+@InProceedings{latexml,
+  title =	"{The LaTeXML Daemon: Editable Math on the Collaborative Web}",
+  author =	"D. Ginev and H. Stamerjohanns and B. Miller and M. Kohlhase",
+  booktitle =	"{Intelligent Computer Mathematics}",
+  publisher =	"Springer",
+  year = 	"2011",
+  editor =	"J. Davenport and W. Farmer and J. Urban and F. Rabe",
+  pages =	"292--294",
+}
+
+@Article{stex,
+  author =	"M. Kohlhase",
+  title =	"{Using {\LaTeX} as a Semantic Markup Format}",
+  journal =	"Mathematics in Computer Science",
+  volume =	"2",
+  number =	"2",
+  pages =	"279--304",
+  year = 	"2008",
+}
+
+@inproceedings{planetary,
+ author = {M. Kohlhase and C. David and D. Ginev and A. Kohlhase and C. Lange and B. Matican and S. Mirea and V. Zholudev},
+  title = "{The Planetary System: Web 3.0 \& Active Documents for STEM}",
+  note = {To appear at ICCS 2011 (finalist at the Executable Papers Challenge), see \url{https://svn.mathweb.org/repos/planetary/doc/epc11/paper.pdf}},
+  year = 2011,
+}
+
+@InProceedings{tntbase,
+  author = {V. Zholudev and M. Kohlhase},
+  booktitle = "{Proceedings of Balisage: The Markup Conference 2009}",
+  title = "{TNTBase: a Versioned Storage for XML}",
+  year = "2009",
+  series = "{Balisage Series on Markup Technologies}",
+  volume = 3,
+  publisher = {Mulberry Technologies, Inc.},
+}
+
+@InProceedings{tntbase_virtual,
+  author = 	 {V. Zholudev and M. Kohlhase},
+  title = 	 "{Scripting Documents with XQuery: Virtual Documents in TNTBase}",
+  booktitle = {Proceedings of Balisage: The Markup Conference},
+  publisher = {Mulberry Technologies, Inc.},
+  series = {Balisage Series on Markup Technologies},
+  year = {2010}
+}
+
+@misc{omdoc_pvs,
+  author = "M. Kohlhase and S. Owre",
+  title = "An {OMDoc} interface to {PVS}",
+  year = "2005",
+  note = "See \url{https://svn.mathweb.org/repos/mathweb.org/trunk/omdoc/projects/pvs/doc/index.html}"
+}
+
+@TECHREPORT{openmath,
+  Author = {S. Buswell and O. Caprotti and D. Carlisle and M. Dewar and M. Gaetano and M. Kohlhase},
+  title = "{The Open Math Standard, Version 2.0}",
+  institution = {The Open Math Society},
+  year = 2004,
+  note = {See \url{http://www.openmath.org/standard/om20}},
+}
+@Article{sts,
+  author =   {J. Davenport},
+  title =    {A small {OpenMath} type system},
+  journal =      {Bulletin of the ACM Special Interest Group on Symbolic and Automated Mathematics (SIGSAM)},
+  volume =       {34},
+  number =       {2},
+  pages =        {16--21},
+  year =     2000}
+
+@InProceedings{openmath_kohlhase_davenport,
+  title =	"{Unifying Math Ontologies: A Tale of Two Standards}",
+  author =	"J. Davenport and M. Kohlhase",
+  booktitle = "Intelligent Computer Mathematics",
+  year = 	"2009",
+  editor =	"J. Carette and L. Dixon and C. Sacerdoti Coen and S. Watt",
+  pages =	"263--278",
+  publisher = "Springer"
+}
+@InProceedings{openmath_hellstrom_binders,
+  title =	"{Quantifiers and n-ary binders: an OpenMath standard enhancement proposal}",
+  author =	"L. Hellstr{\"o}m",
+  bibdate =	"2013-09-26",
+  bibsource =	"DBLP,
+		 http://dblp.uni-trier.de/db/conf/mkm/cicmws2013.html#Hellstrom13",
+  booktitle =	"{Joint Proceedings of the MathUI, OpenMath, PLMMS, and ThEdu Workshops and Work in Progress at CICM}",
+  year = 	"2013",
+  editor =	"C. Lange and D. Aspinall and J. Carette and J. Davenport and A. Kohlhase and M. Kohlhase and P. Libbrecht and P. Quaresma and F. Rabe and P. Sojka and I. Whiteside and W. Windsteiger",
+  publisher = "CEUR-WS.org"
+}
+
+@misc{openmathtypes,
+	author = "O. Caprotti and A. Cohen",
+	title = "A Type System For OpenMath",
+	note = "See \url{http://www.openmath.org/cocoon/openmath/standard/}"
+}
+
+@misc{omcds,
+  key = "OMCD",
+  title = "{OpenMath Content Dictionaries}",
+  note = "\url{http://www.openmath.org/cd/}",
+}
+
+%editor = {D. Carlisle and P. Ion and R. Miner and N. Poppelier},
+@misc{mathml,
+ author = {R. Ausbrooks and S. Buswell and D. Carlisle and S. Dalmas and S. Devitt and A. Diaz and M. Froumentin and R. Hunter and P. Ion and M. Kohlhase and R. Miner and N. Poppelier and B. Smith and N. Soiffer and R. Sutor and S. Watt},
+  title = "{Mathematical Markup Language (MathML) Version 2.0 (second edition)}",
+  year = {2003},
+  note = {See \url{http://www.w3.org/TR/MathML2}},
+}
+@misc{mathjax,
+  title = "{Accessible Pages with MathJax}",
+  author = "N. Soiffer",
+  note = "Design Science, Inc., \url{http://www.mathjax.org/resources/articles-and-presentations/accessible-pages-with-mathjax/}"
+}
+
+
+@TECHREPORT{mathml3,
+  author = "R. Ausbrooks and S. Buswell and D. Carlisle and G. Chavchanidze and S. Dalmas and S. Devitt and A. Diaz and S. Dooley and R. Hunter and P. Ion and M. Kohlhase and A. Lazrek and P. Libbrecht and B. Miller and R. Miner and C. Rowley and M. Sargent and B. Smith and N. Soiffer and R. Sutor and S. Watt",
+  title = "{Mathematical Markup Language (MathML) Version 3.0}",
+  institution = {World Wide Web Consortium},
+  year = {2010},
+  note = {See \url{http://www.w3.org/TR/MathML3}},
+  editor = {D. Carlisle and P. Ion and R. Miner},
+}
+
+@TECHREPORT{mathml3:short,
+  author = {D. Carlisle and P. Ion and R. Miner (eds.)},
+  title = "{Mathematical Markup Language (MathML) Version 3.0}",
+  institution = {World Wide Web Consortium},
+  year = {2010},
+  note = {See \url{http://www.w3.org/TR/MathML3}},
+  editor = {D. Carlisle and P. Ion and R. Miner},
+}
+
+@InProceedings{omdoc_kenzo,
+  title =	"{Using Open Mathematical Documents to Interface Computer Algebra and Proof Assistant Systems}",
+  author =	"J. Heras and V. Pascual and J. Rubio",
+  booktitle =	"Intelligent Computer Mathematics",
+  publisher =	"Springer",
+  year = 	"2009",
+  editor =	"J. Carette and L. Dixon and C. Sacerdoti Coen and S. Watt",
+  pages =	"467--473",
+}
+
+@InProceedings{kenzo_integrating,
+  title =	"{Integrating Multiple Sources to Answer Questions in Algebraic Topology}",
+  author =	"J. Heras and V. Pascual and A. Romero and J. Rubio",
+  booktitle =	"Intelligent Computer Mathematics",
+  publisher =	"Springer",
+  year = 	"2010",
+  editor =	"S. Autexier and J. Calmet and D. Delahaye and P. Ion and L. Rideau and R. Rioboo and A. Sexton",
+  pages =	"331--335",
+}
+
+@TECHREPORT{uri,
+  author = {T. Berners-Lee and R. Fielding and L. Masinter},
+  title = "{Uniform Resource Identifier (URI): Generic Syntax}",
+  institution = {Internet Engineering Task Force},
+  year = {2005},
+  type = {RFC},
+  number = {3986},
+  url = {http://www.ietf.org/rfc/rfc3986.txt}
+}
+
+@TECHREPORT{iri,
+  author = {M. Duerst and M. Suignard},
+  title = "{Internationalized Resource Identifiers (IRIs)}",
+  institution = {Internet Engineering Task Force},
+  year = {2005},
+  type = {RFC},
+  number = {3987},
+  url = {http://www.ietf.org/rfc/rfc3987.txt}
+}
+
+@TECHREPORT{curie,
+  author = "M. Birbeck and S. McCarron",
+  title = "{A syntax for expressing Compact URIs}",
+  institution = {World Wide Web Consortium},
+  year = {2009},
+  note = {See \url{http://www.w3.org/TR/2009/CR-curie-20090116/}},
+}
+
+@Article{cml,
+  author =	"P. Murray-Rust and H. Rzepa",
+  title =	"{Chemical Markup, XML and the Worldwide Web. Part 4. CML Schema}",
+  journal =	"{Journal of Chemical Information and Computer Sciences}",
+  volume =	"43",
+  number =	"3",
+  pages =	"757--772",
+  year = 	"2003",
+}
+
+@misc{rdf,
+  author =	"{RDF Core Working Group of the W3C}",
+  title =	"{Resource Description Framework Specification}",
+  year = 	"2004",
+  note = "\url{http://www.w3.org/RDF/}"
+}
+
+@misc{sparql,
+  author =	"{W3C}",
+  title =	"{SPARQL Query Language for RDF}",
+  year = 	"2008",
+  note = "\url{http://www.w3.org/TR/rdf-sparql-query/}"
+}
+
+@TECHREPORT{json,
+  author = {T. Bray},
+  title = "{The JavaScript Object Notation (JSON) Data Interchange Format}",
+  institution = {Internet Engineering Task Force},
+  year = {2014},
+  type = {RFC},
+  number = {7159},
+  url = {http://tools.ietf.org/html/rfc7159}
+}
+
+@misc{xml,
+  author =	"{W3C}",
+  title =	"{Extensible Markup Language (XML)}",
+  year = 	"1998",
+  note = "\url{http://www.w3.org/XML}"
+}
+
+@misc{xquery,
+  author =	"{W3C}",
+  title =	"{XQuery 1.0: An XML Query Language}",
+  year = 	"2007",
+  note = "\url{http://www.w3.org/TR/xquery/}"
+}
+
+@misc{xpath,
+  author =	"{W3C}",
+  title =	"{XML Path Language}",
+  year = 	"1999",
+  note = "\url{http://www.w3.org/TR/xpath/}"
+}
+
+@misc{xpointerframework,
+  author =	"{W3C}",
+  title =	"{XPointer Framework}",
+  year = 	"2002",
+  note = "\url{http://www.w3.org/TR/xptr-framework/}"
+}
+
+@misc{owl,
+ author = "{W3C}",
+ title = "{OWL 2 Web Ontology Language}",
+ year = "2009",
+ note = "\url{http://www.w3.org/TR/owl-overview/}",
+}
+
+@misc{relaxng,
+  key = "RELAXNG",
+  author =	"J. Clark and M. Makoto",
+  title =	"{RELAX NG Specification}",
+  note = "{By the Organization for the Advancement of Structured Information Standards (OASIS). \url{http://relaxng.org/}}",
+  year = 	"2001",
+}
+
+@PhdThesis{rest,
+  author =	"R. Fielding",
+  title =	"{Architectural Styles and the Design of Network-based Software Architectures}",
+  school =	"{University of California, Irvine}",
+  year = 	"2000",
+}
+
+@misc{sql,
+  author = "{ANSI/ISO/IEC}",
+	title = "{9075:2003, Database Language SQL}",
+	year = "2003",
+}
+
+@misc{svn,
+  author = "{Apache Software Foundation}",
+	title = "{Apache Subversion}",
+	note = "see http://subversion.apache.org/",
+	year = "2000",
+}
+
+@misc{berkeleydb,
+  author = "Oracle",
+	title = "{Oracle Berkeley DB}",
+	note = "see \url{http://www.oracle.com/us/products/database/berkeley-db/db/index.html}",
+	year = "2010",
+}
+
+@misc{berkeleydbxml,
+  author = "Oracle",
+	title = "{Oracle Berkeley DB XML}",
+	note = "see \url{http://www.oracle.com/us/products/database/berkeley-db/xml/index.html}",
+	year = "2010",
+}
+
+@inproceedings{popcorn,
+ author = {P. Horn and D. Roozemond},
+ title = "{OpenMath in SCIEnce: SCSCP and POPCORN}",
+ booktitle = {Intelligent Computer Mathematics},
+ editor = "J. Carette and	L. Dixon and C. Sacerdoti Coen and S. Watt",
+ year = {2009},
+ pages = {474--479},
+ publisher = {Springer},
+} 
+
+@Manual{commoncriteria,
+  title =	"{Common Criteria for Information Technology Security Evaluation}",
+  key =  	"Common Criteria",
+  organization = "ISO/IEC Standard 15408",
+  year = 	"1998",
+  note = "See \url{http://www.commoncriteriaportal.org/}",
+}
+
+@Book{sml,
+  author =	"R. Milner and M. Tofte and R. Harper and D. MacQueen",
+  title =	"{The Definition of {S}tandard {ML}, {\rm Revised edition}}",
+  publisher =	"{MIT Press}",
+  year = 	"1997",
+}
+
+@misc{smlnj,
+	title = "{Standard ML of New Jersey}",
+	key = "SML",
+	note = "See \url{http://www.smlnj.org}"
+}
+
+@misc{sml_library,
+	title = "{Standard ML Basis Library}",
+	key = "SML",
+	note = "See \url{http://www.standardml.org/Basis/}",
+	year = 1997,
+}
+
+@Article{ml_mixin,
+  author =	"A. Rossberg and D. Dreyer",
+  title =	"{Mixin' Up the ML Module System}",
+  journal =	"ACM Transactions on Programming Languages and Systems",
+  volume =	"35",
+  number =	"1",
+  year = 	"2013",
+}
+
+@Book{java,
+  title =	"{The Java Language Specification}",
+  author =	"J. Gosling and W. Joy and G. Steele Jr.",
+  publisher =	"{Addison-Wesley}",
+  year = 	"1996",
+}
+
+@Book{scala,
+ title = "{Programming in Scala}",
+ author = "M. Odersky and L. Spoon and B. Venners",
+ year = "2007",
+ publisher = "artima",
+}
+
+@misc{lift,
+ title = "Lift Web Framework",
+ author = "D. Pollak and et. al.",
+ year = "2007",
+ note = "\url{http://liftweb.net}",
+}
+
+@misc{tiscaf,
+ title = "tiscaf http server",
+ author = "A. Gaydenko",
+ year = "2008",
+ note = "\url{http://gaydenko.com/scala/tiscaf/httpd/}",
+}
+
+@misc{javadoc,
+	title = "{Javadoc Tool}",
+	key = "Javadoc",
+	note = "Part of the Java 2 SDK, see \url{http://java.sun.com/j2se/javadoc/}",
+	year = 2004
+}
+
+@misc{mathscheme,
+  author = "J. Carette and W. Farmer and R. O'Connor",
+  title = "The MathScheme Project",
+  year = 2010,
+  note = "\url{http://www.cas.mcmaster.ca/research/mathscheme}",
+}
+
+@InProceedings{mathscheme_theoexp,
+  title =	"{Theory Presentation Combinators}",
+  author =	"J. Carette and R. O'Connor",
+  booktitle =	"Intelligent Computer Mathematics",
+  publisher =	"Springer",
+  year = 	"2012",
+  volume =	"7362",
+  editor =	"J. Jeuring and J. Campbell and J. Carette and G. Dos Reis and P. Sojka and M. Wenzel and V. Sorge",
+  pages =	"202--215",
+}
+
+@Article{tptp_old,
+    Author       = "G. Sutcliffe and C. Suttner",
+    Year         = "1998",
+    Title        = "{The {TPTP} Problem Library: {CNF} Release v1.2.1}",
+    Journal      = "Journal of Automated Reasoning",
+    Volume       = "21",
+    Number       = "2",
+    Pages        = "177-203",
+}
+
+@Article{tptp,
+    Author       = "G. Sutcliffe",
+    Year         = "2009",
+    Title        = "{The TPTP Problem Library and Associated Infrastructure: The FOF and CNF Parts, v3.5.0}",
+    Journal      = "Journal of Automated Reasoning",
+    Volume       = "43",
+    Number       = "4",
+    Pages        = "337-362"
+}
+
+@InProceedings{tptp_tff_arithmetic,
+	title =	"{The TPTP Typed First-Order Form with Arithmetic}",
+	author =	"G. Sutcliffe and S. Schulz and K. Claessen	and P. Baumgartner",
+	booktitle =	"Logic for Programming, Artificial Intelligence",
+	publisher =	"Springer",
+	year = 	"2012",
+	editor =	"N. Bj{\o}rner and A. Voronkov",
+	pages =	"406--419",
+}
+
+@InProceedings{tptp_pff,
+  title =	"{TFF1: The TPTP Typed First-Order Form with Rank-1 Polymorphism}",
+  author =	"J. Blanchette and A. Paskevich",
+  booktitle =	"Automated Deduction",
+  editor =	"M. Bonacina",
+  publisher =	"Springer",
+  year = 	"2013",
+  pages =	"414--420",
+}
+
+@inproceedings{tptp_booleansort,
+  author = "E. Kotelnikov and L. Kovacs and A. Voronkov",
+  title = "{A First Class Boolean Sort in First-Order Theorem Proving and TPTP}",
+  year = "2015",
+  booktitle = "Intelligent Computer Mathematics",
+  editor = "M. Kerber and J. Carette and C. Kaliszyk and F. Rabe and V. Sorge",
+  publisher = "Springer"
+}
+
+@Article{casc,
+    Author       = "F. Pelletier and G. Sutcliffe and C. Suttner",
+    Year         = "2002",
+    Title        = "{The Development of {CASC}}",
+    Journal      = "{AI} Communications",
+    Volume       = "15",
+    Number       = "2-3",
+    Pages        = "79-90"
+}
+
+@InProceedings{maya,
+  author =	"S. Autexier and D. Hutter and T. Mossakowski and A. Schairer",
+  title =	"{The Development Graph Manager Maya (System Description)}",
+  editor =	"H. Kirchner and C. Ringeissen",
+  booktitle =	"Algebraic Methods and Software Technology, 9th International Conference",
+  year = 	"2002",
+  publisher =	"Springer",
+  pages =	"495--502",
+}
+
+@InProceedings{fact,
+  title =	"{The FaCT System}",
+  author =	"I. Horrocks",
+  booktitle =	"{Automated Reasoning with Analytic Tableaux and Related Methods, TABLEAUX}",
+  publisher =	"Springer",
+  year = 	"1998",
+  editor =	"H. de Swart",
+  pages =	"307--312",
+}
+
+@Article{key,
+  author =	"W. Ahrendt and T. Baar and B. Beckert and R. Bubel and M. Giese and R. H{\"a}hnle and W. Menzel and W. Mostowski and A. Roth and S. Schlager and P. Schmitt",
+  title =	"{The KeY Tool}",
+  journal =	"{Software and System Modeling}",
+  volume =	"4",
+  pages =	"32--54",
+  year = 	"2005",
+}
+
+@Book{keybook,
+   editor =        {B. Beckert and R. H\"ahnle and P. Schmitt},
+   title =         {Verification of Object-Oriented Software: The {KeY} Approach},
+   series        = {LNCS 4334},
+   publisher     = {Springer-Verlag},
+   year          = {2007}
+}
+
+@book{sumo,
+  author = "A. Pease",
+  title = "Ontology: A Practical Guide",
+  publisher = "Articulate Software Press",
+  year = 2011
+}
+
+@misc{cyc,
+  author = "Cycorp",
+  title = "Cyc",
+  year = "1984",
+  note = "http://www.cyc.com/"
+}
+
+@InProceedings{hets,
+ author = "T. Mossakowski and C. Maeder and K. L{\"u}ttich",
+ title = "{The Heterogeneous Tool Set}",
+ year = {2007},
+ editor = "{O. Grumberg and M. Huth}",
+ booktitle = "{Tools and Algorithms for the Construction and Analysis of Systems 2007}",
+ volume = "4424",
+ pages = "519--522",
+ series = "{Lecture Notes in Computer Science}",
+}
+
+@inproceedings{plato,
+  author        = {M. Wagner and S. Autexier and C. Benzm{\"u}ller},
+  editor        = {S. Autexier and C. Benzm{\"u}ller},
+  booktitle     = "{7th Workshop on User Interfaces for Theorem Provers (UITP'06)}",
+  title         = "{PLATO: A Mediator between Text-Editors and Proof Assistance Systems}",
+  publisher     = {Elsevier},
+  pages         = {87-107},
+  year          = {2007},
+}
+
+@inproceedings{mspass,
+author = {U. Hustadt and R. Schmidt},
+year = {2000},
+title = "{MSPASS: Modal Reasoning by Translation and First-Order Resolution}",
+editor = {R. Dyckhoff},
+booktitle = "{Automated Reasoning with Analytic Tableaux and Related Methods, International Conference (TABLEAUX 2000)}",
+pages = {67--71},
+}
+
+@InProceedings{tptpsigmakee,
+  title =	"{Integration of the TPTPWorld into SigmaKEE}",
+  author =	"S. Trac and G. Sutcliffe and A. Pease",
+  booktitle =	"Practical Aspects of Automated Reasoning",
+  year = 	"2008",
+  volume =	"373",
+  editor =	"B. Konev and R. Schmidt and S. Schulz",
+  series =	"CEUR Workshop Proceedings",
+}
+
+@InProceedings{tramp,
+  title =	"{System Description: TRAMP: Transformation of Machine-Found Proofs into ND-Proofs at the Assertion Level}",
+  author =	"A. Meier",
+  booktitle =	"Automated Deduction",
+  publisher =	"Springer",
+  year = 	"2000",
+  series =	"Lecture Notes in Computer Science",
+  volume =	"1831",
+  editor =	"D. McAllester",
+  pages =	"460--464",
+}
+
+
+@Article{modula,
+  author =	"N. Wirth",
+  title =	"{Design and Implementation of Modula}",
+  journal =	"{Software-Practice and Experience}",
+  volume =	"7",
+  number =	"1",
+  pages =	"67--84",
+  year = 	"1977",
+}
+
+@TechReport{chiron,
+  author = 	 {W. Farmer},
+  title = 	 "{Chiron: A set theory with types, undefinedness, quotation, and evaluation}",
+  institution =  {McMaster University},
+  year = 	 2010,
+  type = 	 {SQRL Report},
+  number = 	 38,
+  url = {http://imps.mcmaster.ca/doc/chiron-tr.pdf},
+}
+
+@misc{maple,
+  title = "Maple",
+  key = "Maple",
+  author = "Maplesoft",
+  year = 2012,
+}
+
+@misc{mathematica,
+  title = "Mathematica",
+  key = "Mathematica",
+  author = "Wolfram",
+  year = 2012,
+}
+
+@manual{sage,
+  key          = {Sage},
+  author       = {W. Stein and others},
+  organization = {The Sage Development Team},
+  title        = "{Sage Mathematics Software}",
+  note         = {\url{http://www.sagemath.org}},
+  year         = {2013},
+}
+
+@article{magma,
+    AUTHOR = {W. Bosma and J. Cannon and C. Playoust},
+     TITLE = "{The Magma algebra system. I. The user language}",
+   JOURNAL = {Journal of Symbolic Computation},
+    VOLUME = {24},
+    NUMBER = {3-4},
+      YEAR = {1997},
+     PAGES = {235--265},
+}
+
+@book{axiom,
+ author = {R. Jenks and R. Sutor},
+ title = "{AXIOM: The Scientific Computation System}",
+ publisher = {Springer},
+ year = {1992},
+} 
+
+@misc{maxima,
+  author = {Maxima},
+  year = {2014},
+  title = {Maxima, a Computer Algebra System. Version 5.34.1},
+  note = {\url{http://maxima.sourceforge.net/}},
+}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/crossref.sty b/omdoc-semantics/macros/crossref.sty
new file mode 100644
index 0000000000000000000000000000000000000000..be3af7a33c925caf5d5137a9fe3a4f4b0e01a995
--- /dev/null
+++ b/omdoc-semantics/macros/crossref.sty
@@ -0,0 +1,18 @@
+%\newcommand{\mmtref}[3][black]{\def\mmt@temp{\@linkcolor}\def\@linkcolor{#1}\hyperref{}{mine}{#2}{#3}\def\@linkcolor{\mmt@temp}}
+
+%% \crtarget{id}{text} defines text as the target of \mmtref[...]{id}{...}
+\newcommand{\crtarget}[2]{\hyperdef{mine}{#1}{#2}}
+%% \crref[color]{id}{text} makes text a reference to id
+\newcommand{\crref}[3][black]{\hyperref{}{mine}{#2}{{\color{#1}#3}}}
+
+%% \crdec{name}{text} defines commands \declname and \name with both producing text and the latter linking to the former
+%% \declname should be used exactly once
+\newcommand{\crdec}[2]{%
+\expandafter\gdef\csname #1\endcsname{\crref[blue]{#1}{#2}}%
+\expandafter\gdef\csname decl#1\endcsname{\crtarget{#1}{#2}}%
+}
+
+\newcommand{\concdec}[2][]{%
+\expandafter\gdef\csname #2\endcsname{\crref[black]{#1}{\underline{\ifnonempty[#2]{#1}{#1}}}}%
+\expandafter\gdef\csname decl#2\endcsname{\crtarget{#1}{{\textbf{\ifnonempty[#2]{#1}{#1}}}}}%
+}
diff --git a/omdoc-semantics/macros/ded.sty b/omdoc-semantics/macros/ded.sty
new file mode 100644
index 0000000000000000000000000000000000000000..1d98eab2e21fb4b4e7ce767bd777f4f420dbca70
--- /dev/null
+++ b/omdoc-semantics/macros/ded.sty
@@ -0,0 +1,183 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Typesetting Deductions
+% (obtained from F. Pfenning, beefed up by Michael Kohlhase and Florian Rabe)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Copyright 2005 Michael Kohlhase, released under the GPL
+% $Date: 2008-05-05 08:58:26 +0200 (Mo, 05 Mai 2008) $
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% There are two basic constructors of proof trees \ian and \ibn
+% for aplications of unary and binary inference rules.
+% There are versions \ianc and \ibnc that center the names of the rules.
+% For representing subtrees we have a macro \subtree that has 2 lines 
+% and a name for the subtree as of yet is only supports linear subtrees.
+
+\def\premdivider{{\mbox{$\quad$}}}
+\def\rulename#1#2{\mbox{\sf{#1:#2}}}
+
+\def\@lineskipamount{4pt}
+\def\ian#1#2#3{{\lineskip\@lineskipamount\inrulean{#1}{#2}{#3}}} %premise, conc, name
+\def\ibn#1#2#3#4{{\lineskip\@lineskipamount\inrulebn{#1}{#2}{#3}{#4}}}  %prem1, prem2, conc, name
+\def\icn#1#2#3#4#5{{\lineskip\@lineskipamount\inrulecn{#1}{#2}{#3}{#4}{#5}}}  %prem1, prem2, prem3, conc, name
+\def\idn#1#2#3#4#5#6{{\lineskip\@lineskipamount\inruledn{#1}{#2}{#3}{#4}{#5}{#6}}}  %prem1,
+                                                                        %prem2,
+                                                                        %prem3, prem4, conc, name
+\def\ianc#1#2#3{{\lineskip\@lineskipamount\lowerhalf{\inruleanhelp{#1}{#2}{#3}%
+                   \box\tempb\hskip\wd\tempd}}}
+\def\ibnc#1#2#3#4{{\lineskip\@lineskipamount\ianc{#1\premdivider #2}{#3}{#4}}}
+\def\icnc#1#2#3#4#5{{\lineskip\@lineskipamount\ianc{#1\premdivider #2\premdivider #3}{#4}{#5}}}
+\def\idnc#1#2#3#4#5#6{{\lineskip\@lineskipamount\ianc{#1\premdivider #2\premdivider
+      #3\premdivider #4}{#5}{#6}}}
+\def\ienc#1#2#3#4#5#6#7{{\lineskip\@lineskipamount\ianc{#1\premdivider #2\premdivider
+      #3\premdivider #4\premdivider #5}{#6}{#7}}}
+\def\ifnc#1#2#3#4#5#6#7#8{{\lineskip\@lineskipamount\ianc{#1\premdivider #2\premdivider
+      #3\premdivider #4\premdivider #5\premdivider #6}{#7}{#8}}}
+
+\def\subtree#1#2#3{{\lineskip .4ex\doubleinrulean{#1}{#2}{#3}}} %prem, conc, name
+\def\subtreec#1#2#3{{\lineskip .4ex\lowerhalf{\doubleinrulean{#1}{#2}{#3}%
+                   \box\tempb\hskip\wd\tempd}}} %prem, conc, name
+
+% added FR
+\def\iand#1#2#3{{\lineskip\@lineskipamount\lowerhalf{\doubleinruleanhelp{#1}{#2}{#3}%
+                   \box\tempb\hskip\wd\tempd}}}
+\def\ibnd#1#2#3#4{{\lineskip\@lineskipamount\iand{#1\premdivider #2}{#3}{#4}}}
+% end FR
+
+\def\lowerhalf#1{\hbox{\raise -0.8\baselineskip\hbox{#1}}}
+
+\newbox\tempa
+\newbox\tempb
+\newdimen\tempc
+\newbox\tempd
+
+\def\mud#1{\hfil $\ndfontstyle{#1}$\hfil}
+\def\rig#1{\hfil $\ndfontstyle{#1}$}
+
+\def\inruleanhelp#1#2#3{\setbox\tempa=\hbox{$\ndfontstyle{\mathstrut #2}$}%
+                        \setbox\tempd=\hbox{$\;\ndfontstyle{#3}$}%
+                        \setbox\tempb=\vbox{\vskip 2pt\halign{##\cr
+        \mud{#1}\cr
+        \noalign{\vskip\the\lineskip}%
+        \noalign{\hrule height 0pt}%
+        \rig{\vbox to 0pt{\vss\hbox to 0pt{\copy\tempd \hss}\vss}}\cr
+        \noalign{\hrule}%
+        \noalign{\vskip\the\lineskip}%
+        \mud{\copy\tempa}\cr}}%
+                      \tempc=\wd\tempb
+                      \advance\tempc by \wd\tempa
+                      \divide\tempc by 2 }
+
+\def\inrulean#1#2#3{{\inruleanhelp{#1}{#2}{#3}%
+                     \hbox to \wd\tempa{\hss \box\tempb \hss}}}
+\def\inrulebn#1#2#3#4{\inrulean{#1\premdivider #2}{#3}{#4}}
+\def\inrulecn#1#2#3#4#5{\inrulean{#1\premdivider #2\premdivider #3}{#4}{#5}}
+\def\inruledn#1#2#3#4#5#6{\inrulean{#1\premdivider #2\premdivider #3\premdivider #4}{#5}{#6}}
+
+
+%% added FR: \ndfontstyle to change font size
+\def\smallnd{\def\Rulespacing{\renewcommand{\arraystretch}{3}%
+\arraycolsep 0em}%
+\def\ndfontstyle{\scriptstyle}%
+}
+\def\normalnd{\def\Rulespacing{\renewcommand{\arraystretch}{4}%
+ \arraycolsep 0em}%
+ \def\ndfontstyle{\displaystyle}%
+}
+\normalnd
+
+\def\normalspacing{\renewcommand{\arraystretch}{1}}
+
+\def\doubleinruleanhelp#1#2#3{\setbox\tempa=\hbox{$\displaystyle{\mathstrut #2}$}%
+                        \setbox\tempd=\hbox{$\; #3$}%
+                        \setbox\tempb=\vbox{\halign{##\cr
+        \mud{#1}\cr
+        \noalign{\vskip\the\lineskip}%
+        \noalign{\hrule height 0pt}%
+        \rig{\vbox to 0pt{\vss\hbox to 0pt{\copy\tempd \hss}\vss}}\cr
+        \noalign{\hrule}%
+        \noalign{\vskip\the\lineskip}%
+        \noalign{\hrule}%
+        \noalign{\vskip\the\lineskip}%
+        \mud{\copy\tempa}\cr}}%
+                      \tempc=\wd\tempb
+                      \advance\tempc by \wd\tempa
+                      \divide\tempc by 2 }
+
+\def\doubleinrulean#1#2#3{{\doubleinruleanhelp{#1}{#2}{#3}%
+                     \hbox to \wd\tempa{\hss \box\tempb \hss}}}
+
+\def\dedover#1#2{\hbox{\vbox{$\displaystyle{\mathstrut #1}$}\vbox{$\displaystyle{\mathstrut #2}$}}}
+
+\def\Displaynd@pre@space{0em}
+\def\Displaynd@post@space{-1em}
+\def\cbox@pre@space{-.5em}
+\def\cbox@post@space{-2.5em}
+\def\cbox@left@space{.3em}
+\def\cbox@right@space{.3em}
+
+\newenvironment{displaynd}%
+{\begin{displaymath}\Rulespacing\begin{array}{c}}%
+{\end{array}\end{displaymath}\aftergroup\ignorespaces}
+
+\newenvironment{Displaynd}[1]%
+{\vspace*{\Displaynd@pre@space}\begin{displaymath}\Rulespacing\begin{array}{#1}}%
+{\end{array}\end{displaymath}\aftergroup\ignorespaces\vspace*{\Displaynd@post@space}}
+
+\newenvironment{textnd}%
+{$\displaystyle\Rulespacing\begin{array}{c}}%
+{\end{array}$}
+
+\def\ndsepline{\hline\\[-7ex]}
+
+
+\newenvironment{cboxnd}%
+{\vspace*{\cbox@pre@space}
+\begin{displaymath}\Rulespacing
+\begin{array}{|@{\hspace{\cbox@left@space}}c@{\hspace{\cbox@right@space}}|}\hline}%
+{\\\hline\end{array}\end{displaymath}
+\aftergroup\ignorespaces
+\vspace*{\cbox@post@space}}
+
+\newenvironment{tboxnd}%
+{$\displaystyle\Rulespacing
+\begin{array}{|@{\hspace{\cbox@left@space}}c@{\hspace{\cbox@right@space}}|}\hline}%
+{\\\hline\end{array}$}
+
+% added FR: added ! in [h!tb]
+\newenvironment{fignd}[2]%
+{\begin{figure}[h!tb]\def\fignd@label{fig:#1}\def\fignd@capt{{#2}}\begin{cboxnd}}%
+{\end{cboxnd}\caption{\fignd@capt}\label{\fignd@label}\end{figure}}
+\def\endfignd{\end{cboxnd}\caption{\fignd@capt}\label{\fignd@label}\end{figure}}
+
+%%FR corrects the spacing above captions
+\renewcommand{\cbox@post@space}{-1em}
+
+%% added by FR
+%% \hypjuda{h}{c} for a hypothetical judgment with hypothesis h and conclusion c, \hypjudb for two hypotheses etc.
+\newcommand{\ded@atop}[3][]{\genfrac{}{}{0pt}{#1}{#2}{#3}}
+\newcommand{\hypjuda}[2]{\ded@atop[0]{\ded@atop[0]{\left[#1\right]}{\vdots}}{#2}}
+\newcommand{\hypjudb}[3]{\ded@atop[0]{\left[#1\right]}{\hypjuda{#2}{#3}}}
+\newcommand{\hypjudc}[4]{\ded@atop[0]{\left[#1\right]}{\hypjudb{#2}{#3}{#4}}}
+%% end FR
+
+%%%% now some useful macros for displaying tableaux
+
+\newenvironment{tableau}%
+{\arraycolsep .2em\def\arraystretch{.9}\begin{array}{c}}%
+{\end{array}}
+
+\newenvironment{displaytableau*}%
+{\begin{displaymath}\begin{tableau}}%
+{\end{tableau}\end{displaymath}\aftergroup\ignorespaces}
+
+\newenvironment{displaytableau}[1]% label
+{\begin{equation}\label{tab:#1}\begin{tableau}}%
+{\end{tableau}\end{equation}\aftergroup\ignorespaces}
+
+\newenvironment{branches}[1]% formt
+{\begin{array}[t]{#1}\begin{array}[t]{c}}%
+{\end{array}\end{array}}
+
+\def\nextbranch{\end{array}&\begin{array}[t]{c}}
+
+\def\inputlf#1{\fbox{\ensuremath{#1}}}
diff --git a/omdoc-semantics/macros/ed.sty b/omdoc-semantics/macros/ed.sty
new file mode 100644
index 0000000000000000000000000000000000000000..9484cb35b25f40bfe86e9e2e4f2e6ad4c8e0174d
--- /dev/null
+++ b/omdoc-semantics/macros/ed.sty
@@ -0,0 +1,156 @@
+%%
+%% This is file `ed.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ed.dtx  (with options: `package')
+%% 
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{ed}[2012/01/29 v1.8 Editorial Notes]
+\newif\ifshowednotes\showednotesfalse
+\newif\ifmargins\marginstrue
+\newif\ifmarginnote\marginnotefalse
+\newif\ifednotebookmarks\ednotebookmarksfalse
+\DeclareOption{show}{\showednotestrue\message{ed.sty: showing ednotes}}
+\DeclareOption{hide}{\showednotesfalse\message{ed.sty: hiding ednotes}}
+\DeclareOption{draft}{\showednotestrue\message{ed.sty: showing ednotes}}
+\DeclareOption{final}{\showednotesfalse\message{ed.sty: hiding ednotes}}
+\DeclareOption{nomargins}{\marginsfalse}
+\DeclareOption{marginnote}{\marginnotetrue}
+\DeclareOption{pdfbookmarks}{\ednotebookmarkstrue}
+\ProcessOptions
+\ifshowednotes
+\RequirePackage{paralist}
+\RequirePackage{xcolor}
+\ifmarginnote\RequirePackage{marginnote}\fi
+\else
+\RequirePackage{verbatim}
+\fi
+\ifednotebookmarks
+\RequirePackage{hyperref}
+\fi
+\newcommand\ednoteshape{\sffamily}
+\newcounter{ednote}
+\newcommand\ed@foot[3]% text, type, label
+{\def\@test{#3}\footnotetext[\arabic{ednote}]%
+{{\scshape{#2}\if\@test\@empty\else\label{ed:#3}[{#3}]\fi:} \ednoteshape #1}}
+\def\ed@mark@style#1{#1}
+\newcommand\ed@mark[1]{\ed@mark@style{\footnotemark[#1]}}
+\newcommand\ed@footnote[3]{\ed@mark{\arabic{ednote}}\ed@foot{#1}{#2}{#3}}
+\newcommand\ed@margin[1]{\ifmargins\ifmarginnote\marginnote{#1}\else\marginpar{#1}\fi\fi}
+\newcommand\Ed@note[3]% text, type, label
+{\addtocounter{ednote}{1}\message{#2!}%
+\ifshowednotes\ed@footnote{#1}{#2}{#3}\ifednotebookmarks\belowpdfbookmark{#2: #1}{#2.\theednote}\fi\fi}
+\newcommand\ed@note[4]% text, type, label, margin
+{\Ed@note{#1}{#2}{#3}\ifshowednotes\ed@margin{#4:\arabic{ednote}}\fi}
+\newcommand\ednote@label{EdNote}
+\newcommand\ednote@margin{EdN}
+\newcommand\ednotelabel[1]{\def\ednote@label{#1}}
+\newcommand\ednotemargin[1]{\def\ednote@margin{#1}}
+\newcommand{\Ednote}[2][]{\Ed@note{#2}\ednote@label{#1}}
+\newcommand{\ednote}[2][]{\ed@note{#2}\ednote@label{#1}\ednote@margin}
+\newcommand\tweaklabel[1]{\def\tweak@label{#1}}
+\newcommand\tweak@label{Tweak}
+\newcommand\tweakmargin[1]{\def\tweak@margin{#1}}
+\newcommand\tweak@margin{Tw}
+\newcommand{\tweak}[2][]{\ed@note{#2}\tweak@label{#1}\tweak@margin}
+\newcommand{\Tweak}[2][]{\Ed@note{#2}\tweak@label{#1}}
+\newcommand\edissue@label{Issue}
+\newcommand\edissuelabel[1]{\def\edissue@label{#1}}
+\newcommand\edissue@margin{Is}
+\newcommand\edissuemargin[1]{\def\edissue@margin{#1}}
+\providecommand{\issue}[2][]{\ed@note{#2}\edissue@label{#1}\edissue@margin}
+\providecommand{\Issue}[2][]{\Ed@note{#2}\edissue@label{#1}}
+\newcommand{\edissue}[2][]{\ed@note{#2}\edissue@label{#1}\edissue@margin}
+\newcommand{\edIssue}[2][]{\Ed@note{#2}\edissue@label{#1}}
+\newenvironment{Ed@part}[3]% text, mess, start
+{\addtocounter{ednote}{1}\edef\new@number{\theednote}\message{#2!\new@number}
+\ifshowednotes\ed@foot{#1}{#2}{}\fi\ignorespaces}
+{}
+\def\ed@part#1#2#3#4% text, mess, start, margin
+{\Ed@part{#1}{#2}{#3}\ifshowednotes\ed@margin{#4:\new@number}\fi\ignorespaces}
+\def\ended@part#1{\endEd@part\ifshowednotes\ed@margin{#1:\new@number}\fi}
+\newcommand\b@newpart@label{BegNP}\newcommand\e@newpart@label{EndNP}
+\newcommand\b@newpart@margin{BNP}\newcommand\e@newpart@margin{ENP}
+\newcommand\newpartlabels[2]{\def\b@newpart@label{#1}\def\e@newpart@label{#2}}
+\newcommand\newpartmargins[2]{\def\b@newpart@margin{#1}\def\e@newpart@margin{#2}}
+\newenvironment{Newpart}[1]{\Ed@part{#1}{New Part}\b@newpart@label}{\endEd@part}
+\newenvironment{newpart}[1]{\ed@part{#1}{New Part}\b@newpart@label\b@newpart@margin}{\ended@part\e@newpart@margin}
+\newcommand\oldpartlabels[2]{\def\b@oldpart@label{#1}\def\e@oldpart@label{#2}}
+\newcommand\oldpartmargins[2]{\def\b@oldpart@margin{#1}\def\e@oldpart@margin{#2}}
+\newcommand\b@oldpart@label{BegOP}\newcommand\e@oldpart@label{EndOP}
+\newcommand\b@oldpart@margin{BOP}\newcommand\e@oldpart@margin{EOP}
+\newenvironment{Oldpart}[1]%
+{\Ed@part{#1}{Old Part}\b@oldpart@label\ifshowednotes\color{gray}\fi}
+{\endEd@part}
+\newenvironment{oldpart}[1]%
+{\ed@part{#1}{Old Part}\b@oldpart@label\b@oldpart@margin\ifshowednotes\color{gray}\fi}
+{\ended@part\e@oldpart@margin}
+\newcommand\todolabels[2]{\def\b@todo@label{#1}\def\e@todo@label{#2}}
+\newcommand\todomargins[2]{\def\b@todo@margin{#1}\def\e@todo@margin{#2}}
+\newcommand\b@todo@label{ToDo}\newcommand\e@todo@label{Done}
+\newcommand\b@todo@margin{ToDo}\newcommand\e@todo@margin{Done}
+\newenvironment{Todo}[1]%
+{\Ed@part{#1}{To Do}\b@todo@label\ifshowednotes\bgroup\ednoteshape\else\comment\fi}
+{\endEd@part\e@todo@label\ifshowednotes\egroup\else\endcomment\fi}
+\newenvironment{todo}[1]%
+{\ed@part{#1}{To Do}\b@todo@label\b@todo@margin\ifshowednotes\bgroup\ednoteshape\else\comment\fi}
+{\ended@part\e@todo@margin\ifshowednotes\egroup\else\endcomment\fi}
+\newenvironment{Todolist}[1]{% the comment
+\ifshowednotes\message{todolist!}{{\ednoteshape To Do: #1}}\bgroup\ednoteshape\begin{compactenum}%
+\else\comment%
+\fi}
+{\ifshowednotes\end{compactenum}\egroup\else\endcomment\fi}
+\newenvironment{todolist}[1]{\ifshowednotes\ed@margin{{\ednoteshape ToDo}}\Todolist{#1}\fi}
+{\endTodolist}
+\newenvironment{musings}{\ifshowednotes\color{blue}\fi}{}
+\def\ed@stubURI{}
+\newcommand\edstuURI[1]{\gdef\ed@stubURI{#1}}
+\newif\ifhref\hreffalse
+\AtBeginDocument{\@ifpackageloaded{hyperref}{\hreftrue}{\hreffalse}}
+\newenvironment{edstub}[2][]
+{\def\@test{#1}\begin{center}\huge\color{red}
+\ifx\@test\@empty The following blue text \else #1 \fi is only a provisional stub\\\Large
+the Office document
+\ifx\ed@stubURI\@empty{#2}\else\ifhref\href{\ed@stubURI}{#2}\else{#2}\fi\fi\
+contains more text\\which will be merged for the final document
+  \end{center}\color{blue}}
+{}
+\newcommand\@ednotemessage{\ifnum\value{ednote}>0\typeout{}%
+\typeout{There are still \arabic{ednote} EdNotes, New/Oldparts, and Issues to resolve!}%
+\typeout{}\fi}
+\AtEndDocument{\@ednotemessage}
+\newcommand\ednotemessage{\PackageWarning{ed}{The `\ednotemessage' macro is obsolete, the message
+  is generated automatically now.}}
+\newcommand\edexplanation{\todolist{we will use the ednote system to communicate}
+\item use the {\tt{\char92ednote\char123author: some explanatory text\char125}}
+  like a footnote to say what you have done or what should still be
+  done\ednote{MiKo: this is an example of an ednote}. Ednotes are numbered and
+  marked in the margin for easy recognition.
+\item use the {\tt{\char92issue\char123author: explanation of the
+      issue\char125}} variant of ednote for issues\issue{this is an example of
+    an issue} that still have to be discussed.
+\item finally, the {\tt{todolist}} environment is a list environment that can be
+  used to mark up todo lists. This explanation is an example of a todo list, it
+  is inserted into the text in a different font.
+\item the {\tt{newpart}} environment can be used to mark up changed text blocks.
+  {\tt{\char92begin\char123newpart\char125}} takes an argument that is
+  interpreted as a comment and is treated like an {\tt{\char92ednote}} comment.
+\item the {\tt{oldpart}} environment is similar to {\tt{newpart}} but is used
+  for old parts of text copied from another document that still need to be
+  changed in a document.
+\item putting the macro {\tt{\char92ednotemessage}} just before the
+  {\tt{char92end\char123document\char125}} will generate a message with
+  cardinality information for the ednotes into the log file.
+\item all of these text decorations and meta-annotations are only inserted into
+  the text, if the {\tt{show}} package option in the {\tt{\char92 usepackage}}
+  directive in the preamble of the document is set: {\tt{\char92
+      usepackage[show]\char123ed\char125}} will show the decorations, while
+  {\tt{\char92 usepackage\char123ed\char125}} will not. This is useful for
+  preparing ``clean'' version for outside consumption without loosing the
+  management metadata.
+\endtodolist}
+\endinput
+%%
+%% End of file `ed.sty'.
diff --git a/omdoc-semantics/macros/interactive.tex b/omdoc-semantics/macros/interactive.tex
new file mode 100644
index 0000000000000000000000000000000000000000..429839194b1bd28872235ded3260e369cd16713f
--- /dev/null
+++ b/omdoc-semantics/macros/interactive.tex
@@ -0,0 +1,79 @@
+\documentclass[12pt]{article}
+
+%% notes in the margin
+\usepackage{marginnote}
+%% verbatim JavaScript
+\usepackage[pdftex]{insdljs}
+%% hyperref as usual
+\usepackage{hyperref}
+
+%% patching a definition in hpdftex.def, which ignores the backgroundcolor attribute on PushButtons even though pdf supports it
+\makeatletter
+  \def\PDFForm@Push{%
+    /Subtype/Widget%
+    \Fld@annotflags
+    \Fld@annotnames
+    /FT/Btn%
+    \Fld@flags
+    /H/P%
+    /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
+    \ifcase0\ifnum\Fld@rotation=\z@   \else 1\fi
+            \ifx\Fld@bordercolor\relax\else 1\fi
+            \ifx\Fld@bcolor\relax\else 1\fi %% FR added this line
+            \space
+    \else
+      /MK<<%
+        \ifnum\Fld@rotation=\z@
+        \else
+          /R \Fld@rotation
+        \fi
+        \ifx\Fld@bordercolor\relax
+        \else
+          /BC[\Fld@bordercolor]%
+        \fi
+        \ifx\Fld@bcolor\relax %% FR added this line
+        \else                 %% FR added this line
+          /BG[\Fld@bcolor]%   %% FR added this line
+        \fi                   %% FR added this line
+      >>%
+    \fi
+    /A<</S/JavaScript/JS(\Hy@escapestring{\Fld@onclick@code})>>%
+    \Fld@additionalactions
+  }%
+
+%% library JavaScript functions
+\begin{insDLJS}{mysetup}{My JavaScript Setup}
+function toggle(name) {
+  var f = this.getField(name);
+  if (color.equal(f.fillColor,color.transparent))
+    f.fillColor=color.white;
+  else
+    f.fillColor=color.transparent;
+}
+\end{insDLJS}
+
+\begin{document}
+
+% all form fields must be in a single global Form environment
+\begin{Form}
+
+% no bordercolor amounts to making the border transparent so that it is invisible
+% print is the default default
+\def\DefaultOptionsofPushButton{print,bordercolor=}
+
+%\PushButton[name={test2},onclick={app.alert(this.getField('test').display)}]{dsfasfs}
+%\PushButton[onclick={this.getField('test').lineWidth=0; this.getField('test').strokeColor=color.transparent}]{dsfasfs}
+%$a\sqrt{\PushButton[name={test},onclick={this.getField('test').userName='testtest'}]{\ensuremath{\frac{\bullet}{\sqrt{2}}}}}\sin x$
+
+%% create a button '#1Control' with showing #2 and a button '#1' in the margin showing #3
+%% clicking on the former toggles the latter
+\newcommand{\button}[3]{\PushButton[name=#1Control,backgroundcolor=,onclick={toggle('#1')}]{\ensuremath{#2}}\marginnote{\PushButton[name=#1,backgroundcolor=1 1 1]{\ensuremath{#3}}}}
+
+Clicking on the bound variable $x$ toggles the visibility of its type $\mathit{nat}$, which is displayed in the margin.
+
+%% a formula with a button
+\[\lambda \button{test}{x}{\mathit{nat}}.x+1\]
+
+\end{Form}
+
+\end{document}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/llncs.cls b/omdoc-semantics/macros/llncs.cls
new file mode 100644
index 0000000000000000000000000000000000000000..c3e0d756b743467f1faf0cdbb1e78c89d2ab7b0c
--- /dev/null
+++ b/omdoc-semantics/macros/llncs.cls
@@ -0,0 +1,1210 @@
+% LLNCS DOCUMENT CLASS -- version 2.17 (12-Jul-2010)
+% 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}[2010/07/12 v2.17
+^^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}}%
+}{\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
+    %\addcontentsline{toc}{}{}                                     %FR: added to suppress entries in pdfbookmarks
+    %\if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else %FR: removed to suppress entries in pdfbookmarks
+    %   \addcontentsline{toc}{title}{\the\toctitle}\fi            %FR: removed to suppress entries in pdfbookmarks
+    \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}{}                                                     %FR: added to suppress entries in pdfbookmarks
+    %\addcontentsline{toc}{}{}                                                 %FR: added to suppress entries in pdfbookmarks
+    %\addtocontents{toc}{\noexpand\protect\noexpand\authcount{\the\c@auco}}%  %FR: removed to suppress entries in pdfbookmarks
+    %\addcontentsline{toc}{author}{\toc@uthor}%                               %FR: removed to suppress entries in pdfbookmarks
+    \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
diff --git a/omdoc-semantics/macros/mmt-latex.sty b/omdoc-semantics/macros/mmt-latex.sty
new file mode 100644
index 0000000000000000000000000000000000000000..8342899dc681bd32e4fa155e03195c83c6a8264f
--- /dev/null
+++ b/omdoc-semantics/macros/mmt-latex.sty
@@ -0,0 +1,13 @@
+\RequirePackage{currfile}
+
+% \ifnonempty{a}{b} = if (a == empty) empty else b
+\newcommand{\ifnonempty}[3][]{\def\@empty{}\def\@test{#2}\ifx\@test\@empty#1\else#3\fi}
+% \mmtfold{a}{b1,...,bn} = b1 a ... a bn
+\newcommand{\mmtfold}[2]{\let\@tmpop=\relax\@for\@I:=#2\do{\@tmpop\@I\let\@tmpop=#1}}
+
+\newcommand{\mmtvar}[2]{#1:#2}
+
+\newenvironment{mmttheory}[2][]{\begin{tabular}{lcl}\multicolumn{3}{l}{$\mathrm{theory}\;\mathit{#2}\ifnonempty{#1}{:#1}$}\\}{\end{tabular}}
+\newcommand{\mmtindent}{\;\;\;}
+\newcommand{\mmtdecl}[3][]{$\mmtindent #2$ & \ifnonempty{#3}{$:$} & $#3$ } % \ifnonempty{#1}{\\ & $=$ & $#1$}
+\newcommand{\mmtinclude}[1]{\multicolumn{3}{l}{$\mmtindent \mathrm{include}\;#1$}}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/mmt_listings.sty b/omdoc-semantics/macros/mmt_listings.sty
new file mode 100644
index 0000000000000000000000000000000000000000..3cb7406dbc31317617931214b2d543936e38c86c
--- /dev/null
+++ b/omdoc-semantics/macros/mmt_listings.sty
@@ -0,0 +1,11 @@
+\RequirePackage{xcolor}
+\RequirePackage{listings}
+\lstdefinelanguage{mmt}{
+  keywords=[1]{},keywords=[2]{theory,view,include},
+  otherkeywords={:,=,\#,\{,\}},
+  comment=[l]//,morecomment=[s]{/*,*/},
+  literate={\ ->\ }{{\ }{$\to$}{\ }}4{\ <-\ }{{\ }{$\leftarrow$}{\ }}4
+}
+\lstset{basicstyle=\footnotesize,breaklines,mathescape,columns=[c]fixed,
+  language=mmt,keywordstyle=[1]\color{red},keywordstyle=[2]\bf,commentstyle=\color{gray},
+  emphstyle=[1]\color{red},emphstyle=[2]\color{blue},emphstyle=[3]\color{olive}}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/mmt_new.sty b/omdoc-semantics/macros/mmt_new.sty
new file mode 100644
index 0000000000000000000000000000000000000000..3c8504c048dfb342fe0af34fb4e5121d9d0edf95
--- /dev/null
+++ b/omdoc-semantics/macros/mmt_new.sty
@@ -0,0 +1,208 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{xspace}
+\providecommand{\mmt}{\texorpdfstring{{\scshape{Mmt}}}{MMT}\xspace}
+
+%statements and other notation related to the grammar
+\newcommand{\bnfbracket}[1]{[#1]} %brackets in BNF
+
+\providecommand{\emptycon}{\cdot} %empty context
+\newcommand{\undef}{{\bot}} %the symbol used for undefined terms
+\newcommand{\hid}{{\top}} %the symbol used for hiding declared in the theory omdoc
+\newcommand{\oma}[1]{{@}(#1)} %OMA
+\newcommand{\ombind}[3]{\beta(#1;#2;#3)} %OMBIND without condition
+\newcommand{\omattr}[3]{\alpha(#1;#2=#3)} %OMATTR OMATP #2 #3 /OMATP #1 /OMATTR
+\newcommand{\ombvar}[3]{#1\ifnonempty{#2}{:#2}\ifnonempty{#3}{=#3}} %OMV #1 : #2 = #3
+
+%% theory, morphism, term expressions
+\newcommand{\ma}[2]{{#1}^{#2}} %applying a morphism to a term
+\newcommand{\mab}[2]{(#1)^{#2}} %applying a morphism to a term and bracket it
+\newcommand{\mmtident}[1]{\op{id}_{#1}} %the identity morphism
+\renewcommand{\�}[2]{#1\,#2} %composition of morphisms
+\newcommand{\poiw}[2]{#1\ast#2} % \powith{\mu}{S}: S -> \poi[B]{\mu}{S} for \mu:A -> B, A < S
+\newcommand{\poi}[3]{{#2}\,{^{#1}\!\!+}#3}
+\newcommand{\poim}[3]{\poi{#1}{#2}{#3}}
+\newcommand{\poii}[2]{#1+#2}
+\newcommand{\poiim}[2]{#1+#2}
+
+%\renewcommand{\oo}[3]{#1\,#2\,#3} %composition of three morphisms
+%\newcommand{\strip}[1]{\op{str}(#1)}
+\newcommand{\yps}{x} % variables
+\newcommand{\Yps}{\Upsilon} % variables
+\newcommand{\omg}{\omega} %terms
+\newcommand{\omt}{\tau} %terms used as type
+\newcommand{\omd}{\delta} %terms used as definiens
+
+\newcommand{\TG}{\gamma} %the symbol used for a library
+\newcommand{\TGv}{\TG'} %a primed version to be safe against evolving notation
+\newcommand{\emptygraph}{\cdot} %emtpy theory graph
+\newcommand{\emptytheo}{\cdot} %emtpy theory body
+\newcommand{\emptyimp}{\cdot} %empty structure
+\newcommand{\emptyview}{\cdot} %empty view
+\newcommand{\thdeclm}[3]{#1\,\stackrel{#2}{=}\,\left\{#3\right\}} %theory declaration
+\newcommand{\vwdeclm}[5]{#1\,:\,#2\arr#3\,\stackrel{#4}{=}\,\left\{#5\right\}} %view declaration
+\newcommand{\nldecl}{\right.\\\left.} %% new line in a theory/view body with \mathll
+\newcommand{\thdef}[2]{#1=#2} %theory definition
+\newcommand{\vwdef}[4]{#1\,:\,#2\arr#3=\,#4} %view definition
+\newcommand{\impddm}[4]{#1\,:\,#2\,\stackrel{#3}{=}\,{\left\{#4\right\}}} %structure declaration with meta-morphism
+\newcommand{\thdecl}[2]{\thdeclm{#1}{}{#2}} %theory declaration without meta-theory
+\newcommand{\vwdecl}[4]{\vwdeclm{#1}{#2}{#3}{}{#4}} %view (theorem link) declaration without meta-morphism
+\newcommand{\impdd}[3]{\impddm{#1}{#2}{}{#3}} %structure declaration
+\newcommand{\dimpdd}[3]{\symdd{#1}{#2}{#3}} %defined structure
+% \symdd{name}{type}{definition} yields name : type = definition
+% if type or definition are omitted, so is their delimiter
+\newcommand{\symdd}[3]{#1\ifnonempty{#2}{\,:\,#2}\ifnonempty{#3}{\,=\,#3}}
+%\newcommand{\import}[1]{\mathtt{import}\;#1} %unnamed import declaration
+\newcommand{\maps}[2]{#1\mapsto#2} %an instantiation
+%\newcommand{\hides}[1]{\maps{#1}{\hid}} %a hiding, now defined in terms of \maps
+%\newcommand{\includes}[2]{#1\rewrites #2} %an inclusion, currently not used
+
+\newcommand{\encode}[1]{\ulcorner #1\urcorner}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%names
+\newcommand{\localpathsep}{/}
+\newcommand{\globalpathsep}{?}
+\newcommand{\mpath}[2]{#1\globalpathsep\ompath{#2}}
+\newcommand{\spath}[2]{#1\globalpathsep\ompath{#2}}
+\newcommand{\lpath}[2]{#1\localpathsep\ompath{#2}}
+\newcommand{\triple}[3]{\spath{\mpath{#1}{#2}}{#3}}
+\newcommand{\mmt@assoc}[2]{\let\@tmpop=\relax\@for\@I:=#2\do{\@tmpop\@I\let\@tmpop=#1}}% flexary arguments
+\newcommand{\ompath}[1]{\mmt@assoc{\localpathsep}{#1}} %lists used in theory paths and flat names
+\newcommand{\mmt@cnassoc}[2]{\let\@tmpop=\relax\@for\@I:=#2\do{\@tmpop\cn{\@I}\let\@tmpop=#1}}% flexary arguments
+\newcommand{\cnpath}[1]{\mmt@cnassoc{\localpathsep}{#1}} %lists used in theory paths and flat names
+\newcommand{\lapp}[2]{#1\localpathsep #2} %appending to a list
+
+\newcommand{\cn}[1]{\mathtt{#1}} %concrete names (i.e., those not given by meta-variables)
+
+\newcommand{\uq}[1]{#1} %unqualified names
+\newcommand{\qq}[1]{#1} %qualified names
+%shortcuts for qualified (\q*) and unqualified names (\u*)
+\newcommand{\qc}{\qq{c}}
+%\newcommand{\uc}{\uq{c}}
+\newcommand{\qi}{\qq{s}}
+%\newcommand{\ui}{\uq{s}}
+\newcommand{\qh}{\qq{r}}
+%\newcommand{\uh}{\uq{r}}
+\newcommand{\qT}{T}  %global theory
+%\newcommand{\uT}{\qT}
+\newcommand{\qS}{S}
+%\newcommand{\uS}{\qS}
+\newcommand{\qR}{R}
+%\newcommand{\uR}{\qR}
+\newcommand{\qM}{M}
+\newcommand{\qm}{\qq{m}} %qualified local module
+%\newcommand{\um}{m} %unqualified local module
+\newcommand{\ql}{l} %global link
+\newcommand{\qI}{\qq{I}} %qualified identifier
+\newcommand{\uI}{i} %plain identifier
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%elaboration
+
+%\newcommand{\thdom}[1]{\op{Thy}(#1)}
+%\newcommand{\tmdom}[1]{\op{Link}(#1)}
+%\newcommand{\sdom}[2]{\op{Con}^{#1}(#2)}
+%\newcommand{\tlkp}[2]{#1(#2)}
+%\newcommand{\slkp}[3]{#1^{#2}(#3)}
+
+\newcommand{\judgmentsymbolelab}{\gg}
+\newcommand{\elabsym}[5]{#1>_{#2}\symdd{#3}{#4}{#5}}
+\newcommand{\elabass}[4]{#1\judgmentsymbolelab_{#2}\maps{#3}{#4}}
+\newcommand{\elablink}[5]{#1\judgmentsymbolelab #2:#3\arr #4= #5}
+\newcommand{\elabthy}[3]{#1> #2=\{#3\}}
+\newcommand{\imports}[2]{#1\harr #2}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%judgments
+\newcommand{\judgmentsymbol}{\vartriangleright} %the symbol to distinguish judgments
+\newcommand{\library}[1]{\judgmentsymbol #1} %valid library
+\newcommand{\oterm}[4][]{#2\ifnonempty{#1}{;#1}\judgmentsymbol_{#3}#4} %valid term
+\newcommand{\ocont}[4][]{#2\ifnonempty{#1}{;#1}\judgmentsymbol_{#3}#4} %valid context
+\newcommand{\otermtype}[5][]{#2\ifnonempty{#1}{;#1}\judgmentsymbol_{#3}#4:#5} %valid term of some type
+\newcommand{\otermequal}[5][]{#2\ifnonempty{#1}{;#1}\judgmentsymbol_{#3}#4\equiv #5} %equality of terms
+\newcommand{\otermsort}[5][]{#2\ifnonempty{#1}{;#1}\judgmentsymbol_{#3}#4<: #5} %sorting of terms
+\newcommand{\ostructure}[4]{{#1}\judgmentsymbol_{#2}#3:#4} %valid morphism, alternate notation
+\newcommand{\omorphism}[4]{{#1}\judgmentsymbol#2:#3\arr#4} %valid morphism
+\newcommand{\omorphequal}[5]{#1\judgmentsymbol #2\equiv #3:#4\arr #5} %equality of morphisms
+%\newcommand{\definedleq}[5]{#1\judgmentsymbol_{#2} \ma{#3}{#4}\;\leq\; #5} %definedness ordering
+%\newcommand{\definedless}[3]{#1\judgmentsymbol #2< #3} %definedness ordering
+%\newcommand{\definedleqm}[6]{#1\judgmentsymbol #3\;\leq^{#4}\;#5:#6\arr #2} %definedness ordering for morphisms
+\newcommand{\lastlink}[4]{#1\judgmentsymbolelab^{\texttt{last}} #2:#3\arr #4} %last link
+\newcommand{\extend}[2]{#1\;+\;#2}
+\newcommand{\rewr}[1]{\ov{#1}} %normalization
+\newcommand\Rewr[2]{\rewr{#1}^{#2}} %normalization with explicit theory graph argument
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% names of inference rules
+
+% elaboration rules
+\newcommand{\ELsys}[1]{\mathit{#1}}
+\newcommand{\ELthy}{\ELsys{thy}}
+\newcommand{\ELviewdef}{\ELsys{viewdef}}
+\newcommand{\ELview}{\ELsys{view}}
+\newcommand{\ELstrdef}{\ELsys{strdef}}
+\newcommand{\ELstr}{\ELsys{str}}
+\newcommand{\ELindstr}{\ELsys{ind\_str}}
+\newcommand{\ELcon}{\ELsys{con}}
+\newcommand{\ELindcondef}{\ELsys{ind\_con\_def}}
+\newcommand{\ELindconass}{\ELsys{ind\_con\_ass}}
+\newcommand{\ELindconelse}{\ELsys{ind\_con\_dflt}}
+\newcommand{\ELassdeflink}{\ELsys{def\_link\_ass}}
+\newcommand{\ELass}{\ELsys{ass}}
+\newcommand{\ELindass}{\ELsys{ind\_ass}}
+\newcommand{\ELdefassstr}{\ELsys{dflt\_ass\_str}}
+\newcommand{\ELdefassview}{\ELsys{dflt\_ass\_view}}
+
+% typing rules
+\newcommand{\mmtTth}{Thy}
+\newcommand{\TGsys}[1]{\mathit{#1}}
+\newcommand{\TGemptygraph}{\TGsys{Start}}
+\newcommand{\TGemptytheory}{\TGsys{\mmtTth}}
+\newcommand{\TGsymbol}{\TGsys{Con}}
+\newcommand{\TGstatement}{\TGsys{Sym}}
+\newcommand{\TGemptyview}{\TGsys{View}}
+\newcommand{\TGemptyviewmapall}{\TGsys{ViewDef}}
+\newcommand{\TGemptyimport}{\TGsys{Str}}
+\newcommand{\TGemptyimportmapall}{\TGsys{StrDef}}
+\newcommand{\TGinstsymb}{\TGsys{ConAss}}
+\newcommand{\TGhidesymb}{\TGsys{ConFlt}}
+\newcommand{\TGinstimp}{\TGsys{StrAss}}
+\newcommand{\TGdefinedleq}{\leq_{ConAss}}
+\newcommand{\TGdefinedleqm}{\leq_{StrAss}}
+
+%\newcommand{\TGemptysubtheory}{\TGsys{Sth_\es}}
+%\newcommand{\TGsubtheory}{\TGsys{\mmtTth_{Sth}}}
+%\newcommand{\TGnewnamedoc}{\TGsys{new_{g}}}
+%\newcommand{\TGnewnameth}{\TGsys{new_{T}}}
+%\newcommand{\TGnewnamem}{\TGsys{new_{m}}}
+%\newcommand{\TGnewnamedocsub}{\TGsys{new'_{g}}}
+
+\newcommand{\algname}[2]{{\it{#1}}#2}
+\newcommand{\TOsys}{\mathcal{T}}
+\newcommand{\TOemptycon}{\algname\TOsys_{\cdot}}
+\newcommand{\TOvardec}{\algname\TOsys_{\Yps}}
+\newcommand{\TOspecial}{\algname\TOsys_{\hid}}
+\newcommand{\TOsym}{\algname\TOsys_{c}}
+\newcommand{\TOmeta}{\algname\TOsys_{\harr}}
+\newcommand{\TOvar}{\algname\TOsys_{\yps}}
+\newcommand{\TOapp}{\algname\TOsys_{@}}
+\newcommand{\TObind}{\algname\TOsys_{[]}}
+%\newcommand{\TOattr}{\algname\TOsys_{\alpha}}
+\newcommand{\TOmor}{\algname\TOsys_{\mu}}
+
+\newcommand{\TMsys}{{\mathcal{M}}}
+\newcommand{\TMid}{\algname\TMsys_{ident}}
+\newcommand{\TMmor}{\algname\TMsys_{link}}
+\newcommand{\TMcomp}{\algname\TMsys_{comp}}
+\newcommand{\TMcontravariant}{\algname\TMsys_{contravar}}
+\newcommand{\TMcovariant}{\algname\TMsys_{covar}}
+\newcommand{\TMequal}{\algname\TMsys_{\equiv}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%xml encoding
+\newcommand{\enc}[1]{E(#1)}          %% encoding of MMT expressions
+\newcommand{\encuri}[1]{E^{\mathrm{URI}}(#1)} %% encoding of URIs
+\newcommand{\enctrip}[1]{E^{\mathrm{triple}}(#1)} %% encoding of URIs
+\newcommand{\omdocoms}[1]{\op{mmt}(\texttt{#1})}
+\newcommand{\resolve}[2]{\op{resolve}(#1,#2)} %unqualified names
+\newcommand{\docdecl}[2]{#1=\left\{#2\right\}} %document declaration
\ No newline at end of file
diff --git a/omdoc-semantics/macros/mmt_xml_listings.sty b/omdoc-semantics/macros/mmt_xml_listings.sty
new file mode 100644
index 0000000000000000000000000000000000000000..355b2c8fd35431d5f2b83a0aa2e65fb45c1c89b1
--- /dev/null
+++ b/omdoc-semantics/macros/mmt_xml_listings.sty
@@ -0,0 +1,23 @@
+% setting the appearance of MMT listings
+\lstdefinelanguage{MMT}[]{XML}%
+  {morekeywords={omdoc,catalogue,loc,ignore,with,ref,omgroup,adt,sortdef,insort,constructor,
+                 recognizer,argument,destructor,omlet,private,code,input,output,effect,data,
+                 metadata,extradata,proof,proofobject,metacomment,derive,conclude,hypothesis,
+                 method,premise,presentation,use,omstyle,xslt,style,element,attribute,text,
+                 value-of,recurse,exercise,hint,solution,mc,choice,answer,CMP,omtext,object,
+                 commonname,type,FMP,assumption,conclusion,axiom,definition,requation,pattern,
+                 value,measure,ordering,assertion,alternative,example,theory,
+                 narrative,tableofcontents,authorindex,content,pcontext,pc,
+                 map,separator,operator,lbrack,rbrack,
+                 OMS,OMV,OMI,OMB,OMSTR,OMF,OMA,OMBIND,OMBVAR,OME,OMATTR,OMATP,OMOBJ,
+                 om:OMS,om:OMV,om:OMI,om:OMB,om:OMSTR,om:OMF,om:OMA,om:OMBIND,om:OMBVAR,
+                 om:OME,om:OMATTR,om:OMATP,
+                 dc:contributor,dc:creator,dc:title,dc:subject,dc:description,dc:publisher,dc:type,
+                 dc:format,dc:source,dc:language,dc:relation,dc:rights,dc:date,dc:identifier,
+                 % now the new stuff
+                 xref,include,view,constant,structure,alias,conass,strass},
+   sensitive=true}
+
+\lstset{float=htb,columns=flexible,frame=none,language=MMT,basicstyle=\scriptsize,
+  mathescape,breaklines,showstringspaces=false,
+  indexstyle=\indextt,indexstyle=[1]\indexelement,indexstyle=[2]\indexattribute}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/mytikz.sty b/omdoc-semantics/macros/mytikz.sty
new file mode 100644
index 0000000000000000000000000000000000000000..7c331043b3797debde43afd9fc0e2ab6fa0e862e
--- /dev/null
+++ b/omdoc-semantics/macros/mytikz.sty
@@ -0,0 +1,6 @@
+\RequirePackage{tikz}
+
+\usetikzlibrary{arrows}
+\tikzstyle{arrow}=[-angle 45]
+\tikzstyle{mono}=[right hook-angle 45]
+\tikzstyle{epi}=[-triangle 45]
diff --git a/omdoc-semantics/macros/old/bibs.tex b/omdoc-semantics/macros/old/bibs.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e7e978bd14e69c8f0cf3c2ce2786b908ad397716
--- /dev/null
+++ b/omdoc-semantics/macros/old/bibs.tex
@@ -0,0 +1 @@
+\bibliography{bib/rabe,bib/institutions,bib/flirts,bib/Morphisms,bib/systems,bib/modal,bib/pub_rabe,bib/historical,bib/other,kwarc}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/old/bibtopic.sty b/omdoc-semantics/macros/old/bibtopic.sty
new file mode 100644
index 0000000000000000000000000000000000000000..b4f39f7eeccc530feb3f97b2149de812a92c40cf
--- /dev/null
+++ b/omdoc-semantics/macros/old/bibtopic.sty
@@ -0,0 +1,1280 @@
+%%
+%% This is file `bibtopic.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% bibtopic.dtx  (with options: `package,debug')
+%% 
+%% LaTeX package for multiple bibliographies
+%% 
+%% Copyright (C) 1998-2000 P. Basso, S. Ulrich
+%%               2001-2004 S. Ulrich
+%% 
+%% Please send bug reports to: <stefanulrich@users.sourceforge.net>
+%% 
+%% This program is free software; you can redistribute it and/or
+%% modify it under the terms of the GNU General Public License
+%% as published by the Free Software Foundation; either version 2
+%% of the License, or (at your option) any later version.
+%% 
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+%% GNU General Public License for more details.
+%% 
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+%% 
+\NeedsTeXFormat{LaTeX2e}[1996/12/01] \ProvidesPackage{bibtopic}[2006/09/08 v1.1a
+Sectioned Bibliographies]
+\newif\bt@ifdebug
+%%% \bt@debugtrue % uncomment this line to activate global debugging
+\newcommand*\bt@debug[2][]{%
+    \bt@ifdebug
+       \PackageInfo{bibtopic}{#1}%
+       \typeout{DBG: #2}%
+    \else
+        \ifx#1\@empty\else
+            \typeout{DBG (#1): #2}%
+        \fi
+    \fi
+}
+\RequirePackage{ifthen}
+\newcommand\bt@tempa{}
+\newcommand\bt@tempb{}
+\newcommand\bt@tempc{}
+\newcommand\bt@args{}
+\newcommand*\bt@info{\@gobble}
+\newcommand*\bt@infoNoLine{\@gobble}
+\newcommand\bt@gobblethree[3]{}
+\newif\ifbt@natbib
+\newif\ifbt@koma@class
+\newif\ifbt@brf
+\newif\ifbt@after@brf
+\newif\ifbt@elem
+\newif\ifbt@inside@sect
+\newif\ifbt@inside@unit
+\newif\ifbt@found@item
+\newif\ifbt@print@cited
+\newif\ifbt@print@all
+\newif\if@globalbiblio
+\newcommand\bt@stepcnt[1]{%
+     \@tempcnta#1
+     \advance\@tempcnta\@ne
+     \protected@xdef#1{\the\@tempcnta}%
+}
+\newcounter{btauxfile}
+\def\thebtauxfile{\jobname\arabic{btauxfile}}
+\newcommand\bt@unit@cnt{1}
+\newcommand\bt@internal@sect@cnt{0}
+\newcommand\bt@helpctr{0}
+\newcommand\bt@totalctr{0}
+\newread\bt@infilea
+\newread\bt@infileb
+\newwrite\bt@outfile
+
+\newif\ifbt@btunits
+\DeclareOption{btunits}{%
+    \PackageWarningNoLine{bibtopic}{ignoring obsolete `btunits' option}
+}
+\newif\ifbt@fallback@thb
+\DeclareOption{defaultbib}{%
+    \global\bt@fallback@thbtrue
+}
+\DeclareOption{verbose}{%    
+    \def\bt@info#1{%
+        \begingroup
+            \def\MessageBreak{^^J(bibtopic)\@spaces\@spaces\@spaces}%
+            \set@display@protect
+            \immediate\write\@unused{%
+                ^^JPackage bibtopic info: #1\on@line.^^J%
+            }%
+        \endgroup
+    }%
+    \def\bt@infoNoLine#1{%
+        \begingroup
+            \def\MessageBreak{^^J(bibtopic)\@spaces\@spaces\@spaces}%
+            \set@display@protect
+            \immediate\write\@unused{%
+                ^^JPackage bibtopic info: #1.^^J%
+            }%
+        \endgroup
+    }%
+}
+\newif\ifbt@breakcites
+\DeclareOption{breakcites}{%
+    \global\bt@breakcitestrue
+}
+\newif\ifbt@normalwarnings
+\DeclareOption{normalwarnings}{%
+    \global\bt@normalwarningstrue
+}
+\newif\ifbt@printheadings
+\DeclareOption{printheadings}{%
+    \global\bt@printheadingstrue
+}
+\newif\ifbt@part@cont@ctr
+\DeclareOption{unitcntnoreset}{%
+    \global\bt@part@cont@ctrtrue
+}
+\newif\ifbt@sectctr@reset
+\DeclareOption{sectcntreset}{%
+    \global\bt@sectctr@resettrue
+}
+\newif\ifbt@fast
+\bt@fasttrue
+\DeclareOption{slow}{%
+    \global\bt@fastfalse
+}
+\DeclareOption{dot}{%
+   \def\thebtauxfile{\jobname.\arabic{btauxfile}}%
+}
+\newif\ifbt@warn@override
+\bt@warn@overridetrue
+\newif\ifbt@override@numargs
+\bt@override@numargstrue
+\newif\ifbt@overridden@numargs
+\DeclareOption{overridenumbers}{%
+    \bt@warn@overridefalse
+    \bt@override@numargstrue
+}
+\DeclareOption{dontoverridenumbers}{%
+    \bt@warn@overridefalse
+    \bt@override@numargsfalse
+}
+\ProcessOptions*
+
+\newcommand\bt@isnum[1]{%
+    \if!\ifnum9<1#1!\else_\fi
+        \expandafter\@firstoftwo
+    \else
+        \expandafter\@secondoftwo
+    \fi
+}
+
+\newcommand*\bt@sect@ref@list{}
+\newcommand\bt@curr@file{}
+\newcommand\bt@curr@line{}
+\newcommand*\bt@kv@req@list{}
+
+\newcommand*\bt@curr@bib@file{}
+\newcommand*\bt@cited@list{}
+\newcommand*\bt@warn@files{}
+\newcommand*\bt@label{}
+\newcommand*\bt@globalstyle{}%
+\newcommand*\bt@defaultstyle{plain}%
+\newcommand*\@bt@orig@citation{}
+\bt@debug{saving meaning of \string\citation : \meaning\citation}%
+\let\@bt@orig@citation\citation
+\ifthenelse{\boolean{bt@fast}}{%
+   \def\citation#1{%
+      \@for\bt@tempa:=#1\do{%
+        \def\@extra@b@citeb{\bt@unit@cnt}%
+        \global\@namedef{\bt@tempa bt@\@extra@binfo}{}%
+        \bt@debug{defining \bt@temp bt@\@extra@binfo}%
+        \@bt@orig@citation{\bt@tempa}%
+      }%
+   }%
+}{%
+   \def\citation#1{%
+      \@for\bt@tempa:=#1\do{%
+        \def\@extra@b@citeb{\bt@unit@cnt}%
+        \bt@add@elem{\bt@tempa}{\bt@cited@list}%
+        \@bt@orig@citation{\bt@tempa}%
+      }%
+   }%
+}
+\newcommand*\bt@citesurround{}%
+
+\def\bt@citesurround#1{%
+    \ifthenelse{\not\boolean{bt@breakcites}}{%
+        \hbox{#1}%
+    }{%
+        #1%
+    }%
+}
+\@ifundefined{citeform}{\let\citeform\relax}{}
+\@ifundefined{citepunct}{\def\citepunct{,\penalty\@m\ }}{}
+\@ifpackageloaded{backref}{%
+    \bt@after@brftrue
+}{%
+    \relax
+}
+\newcommand\bt@citex{}
+\def\bt@citex[#1]#2{%  Add \@extra@b@citeb to \cite
+    \let\@citea\@empty
+    \@cite{%
+        \@for\@citeb:=#2\do{%
+            \@citea\let\@citea\citepunct
+            \edef\@citeb{\expandafter\@firstofone\@citeb}%
+            \if@filesw\immediate\write\@auxout{%
+                \string\citation{\@citeb}}\fi
+            \@ifundefined{b@\@citeb \@extra@b@citeb}{%
+                \mbox{\reset@font\bfseries ?}%
+                \@warning{Citation `\@citeb' on page \thepage\space
+                undefined}\G@refundefinedtrue
+            }{%
+                \bt@citesurround{\citeform{\csname b@\@citeb
+                \@extra@b@citeb\endcsname}}%
+            }%
+        }%
+    }{#1}%
+}
+\newcommand\bt@nocite{}
+\def\bt@nocite#1{%
+    \@bsphack % Add \@extra@b@citeb to \nocite
+    \@for\@citeb:=#1\do{%
+        \edef\@citeb{\expandafter\@firstofone\@citeb}%
+        \if@filesw
+            \immediate\write\@auxout{%
+                \string\citation{\@citeb}%
+            }%
+        \fi
+        \@ifundefined{b@\@citeb\@extra@b@citeb}{%
+            \G@refundefinedtrue
+            \@warning{Citation `\@citeb'  undefined}%
+        }{}%
+    }%
+    \@esphack
+}
+
+\newcommand*\bt@setcites{%
+    \let\@citex\bt@citex
+    \let\nocite\bt@nocite
+}
+
+\newcommand\change@bibcite{%
+    \let\change@bibcite\relax
+    \def\bibcite##1##2{%
+        \global\@namedef{b@##1\@extra@binfo}{##2}%
+    }%
+}
+\gdef\the@ipfilectr{}
+\def\@extra@b@citeb{\the@ipfilectr}
+\gdef\@extra@binfo{}  % in case .aux files are left from old run.
+
+\newcommand\bt@saveitem{}
+\newcommand*\bt@savebib{}
+\newcommand*\bt@endsavebib{}
+\newif\ifbt@harvard@errs
+
+\AtBeginDocument{%
+    \@ifclassloaded{scrbook}{%
+        \global\bt@koma@classtrue
+    }{%
+        \@ifclassloaded{scrartcl}{%
+            \global\bt@koma@classtrue
+        }{%
+            \@ifclassloaded{scrreprt}{%
+                \global\bt@koma@classtrue
+            }{%
+                \relax
+            }%
+        }%
+    }%
+    \global\let\bt@savebib\thebibliography
+    \global\let\bt@endsavebib\endthebibliography
+    \let\bt@saveitem\bibitem
+    \@ifpackageloaded{natbib}{%
+        \global\bt@natbibtrue
+    }{%
+        \def\harvarditem{\global\bt@harvard@errstrue}%
+        \let\harvardand\relax
+        \let\harvardyearleft\relax
+        \let\harvardyearright\relax
+    }%
+    \@ifpackageloaded{backref}{%
+        \ifthenelse{\not\boolean{bt@after@brf}}{%
+            \PackageError{%
+                bibtopic%
+            }{%
+                Load bibtopic after hyperref when using the `backref'
+                option\MessageBreak of hyperref%
+            }{%
+                Please see the section about `Compatibility with other^^J%
+                packages' in bibtopic.dvi for details.
+            }%
+        }{}%
+        \global\bt@brftrue
+    }{%
+        \relax
+    }%
+}
+
+\AtEndDocument{%
+    \immediate\write\@auxout{%
+        \string\csname\space bt@set@cnt\string\endcsname{\bt@helpctr}}%
+    \bt@debug{restoring meaning of \string\citation :
+        \meaning\@bt@orig@citation}%
+    \def\citation#1{\@bt@orig@citation{#1}}%
+    \let\bt@kv@add\@gobbletwo
+    \bt@files@warnings
+    \ifnum\bt@helpctr=\bt@totalctr\else
+        \PackageWarningNoLine{%
+            bibtopic%
+        }{%
+            Rerun to get indentation of bibitems right%
+        }%
+    \fi
+    \bt@debug{total number of items: \bt@helpctr}%
+}
+\newcommand*\bt@savelist{}
+\newcommand*\bt@append@list[2]{%
+    \bt@debug{appending #1 to #2}%
+    \let\bt@savelist#2%
+    \bt@debug{list is: #2}%
+    \bt@debug{bt@savelist is: \bt@savelist}%
+    \protected@xdef#2{\bt@savelist\@elt{#1}}%
+            \bt@debug{list after append: #2}%
+}
+\newcommand*\bt@add@elem[2]{%
+    \bt@if@elem{#1}{#2}{%
+        \relax
+    }{%
+        \bt@append@list{#1}{#2}%
+    }%
+}
+\newcommand\bt@test@cmd{}
+\newcommand*\bt@if@elem[2]{%
+    \let\bt@test@cmd\@secondoftwo
+    \let\bt@elt\@elt
+    \protected@edef\bt@tempc{#1}%
+    \def\@elt##1{%
+        \protected@edef\bt@tempb{##1}%
+        \ifx\bt@tempc\bt@tempb
+            \let\bt@test@cmd\@firstoftwo
+        \fi
+    }%
+    #2%
+    \let\@elt\bt@elt
+    \bt@test@cmd
+}
+\newcommand\bt@elt{}
+\newcommand*\bt@mk@warning@list[1]{%
+    \@temptokena={}%
+    \let\bt@elt\@elt
+    \def\@elt##1{%
+        \@temptokena=\expandafter{\the\@temptokena ##1\MessageBreak}%
+    }%
+    #1%
+    \let\@elt\bt@elt
+}
+
+\newcommand*\@orig@bibliographystyle{}
+\let\@orig@bibliographystyle\bibliographystyle
+\def\bibliographystyle#1{%
+    \gdef\bt@globalstyle{#1}%
+    \bt@info{Default bibliographystyle is `#1'}%
+    \@orig@bibliographystyle{#1}%
+}
+\def\bibliography{%
+    \PackageWarning{%
+        bibtopic%
+    }{%
+        Ignoring `\string\bibliography' command\MessageBreak
+        (not compatible with bibtopic.sty)%
+    }%
+    \@gobble
+}
+
+\newcommand*\@bt@write@auxfile[3]{%
+    \bt@can@overwrite{btaux.aux}%
+    \bt@copy@verbatim{\thebtauxfile.aux}{btaux.aux}%    
+    \immediate\closeout\bt@outfile
+    \immediate\openout\bt@outfile\thebtauxfile.aux
+    \ifthenelse{\boolean{bt@natbib}}{%
+        \immediate\write\bt@outfile{%
+                \@percentchar\@percentchar\space
+                Info from `bibtopic.sty': natbib loaded.^^J%
+                \string\bibstyle{#1}^^J%
+                \string\citation{#2}^^J%
+                \string\bibdata{#3}%
+        }%
+    }{%
+        \immediate\write\bt@outfile{%
+            \string\bibstyle{#1}^^J%
+            \string\citation{#2}^^J%
+            \string\bibdata{#3}%
+        }%
+    }%
+    \immediate\closeout\bt@outfile
+    \bt@if@files@differ{\thebtauxfile.aux}{btaux.aux}{%
+        \bt@if@elem{\thebtauxfile}{\bt@warn@files}{%
+            \relax
+        }{%
+            \ifthenelse{\boolean{bt@normalwarnings}}{%
+                \PackageWarningNoLine{%
+                    bibtopic%
+                }{%
+                    \thebtauxfile.bbl may be outdated%
+                }%
+            }{%
+                \bt@appendtofile{\thebtauxfile.bbl}{%
+                    \string\csname\space
+                    bt@warn@outdated\string\endcsname{\thebtauxfile}%
+                }%
+            }%
+        }%
+    }{}% they don't differ
+}
+
+\newcommand*\bt@appendtofile[2]{%
+    \bt@can@overwrite{btbbl.aux}%
+    \bt@copy@verbatim{#1}{btbbl.aux}%
+    \immediate\closeout\bt@outfile
+    \bt@copy@verbatim{btbbl.aux}{#1}
+    \immediate\write\bt@outfile{\expandafter\string #2}%
+    \immediate\closeout\bt@outfile
+}
+
+\newcommand*\bt@save@list[1]{%
+    \expandafter\protected@xdef\csname bt@sect%
+       #1\endcsname{\bt@cited@list}%
+       \bt@debug{saving list #1\space is:
+            \csname bt@sect#1\endcsname}%
+}
+\newcommand\btBegThbCmd{}
+\newcommand*\bt@beg@thb@hook{%
+    \btBegThbCmd
+    \global\bt@found@itemfalse
+    \bt@item{}%
+}%
+\newcommand\bt@save@cnt{0}
+\newcommand*\bt@end@thb@hook{%
+    \endbt@item
+    \ifthenelse{\boolean{bt@natbib}}{%
+        \protected@xdef\bt@save@cnt{\theNAT@ctr}%
+    }{%
+        \protected@xdef\bt@save@cnt{\@arabic\c@enumiv}%
+    }%
+    \bt@bibitemcheck
+}%
+\newcommand*\bt@change@bibitem{%
+    \expandafter\ifx\btBegThbCmd\empty\else
+            \bt@info{\string\btBegThbCmd nonempty: \meaning\btBegThbCmd}%
+    \fi
+    \ifthenelse{\boolean{bt@natbib}}{%
+        \def\harvarditem{\endbt@item\bt@harvitem}%
+    }{}%
+    \def\bibitem{\endbt@item\bt@item}%
+}
+\newcommand*\bt@adjust@label[1]{%     
+    \bt@isnum{#1}{%
+        \def\bt@label{\bt@totalctr}%
+    }{%
+        \def\bt@label{#1}%
+    }%
+}
+\newcommand*\bt@change@thb{%
+    \long\def\bt@tempa##1##2\endthebibliography{%
+        \def\bt@tempc{##1}%
+    }%
+    \expandafter\bt@tempa\thebibliography{}\endthebibliography
+    \ifthenelse{\boolean{bt@brf}}{%
+        \@ifundefined{BRorg@thebibliography}{%
+            \PackageInfo{bibtopic}{assuming backref.sty <= v1.16}%
+            \let\bt@brf@bbl@cmd\oldbibl
+        }{%
+            \PackageInfo{bibtopic}{assuming backref.sty >= v1.19}%
+            \let\bt@brf@bbl@cmd\BRorg@thebibliography
+        }%
+        \def\bt@tempb{\@starttoc}%
+        \ifx\bt@tempb\bt@tempc
+            \expandafter\bt@tempa\bt@brf@bbl@cmd{}\endthebibliography
+        \fi
+    }{}%
+    \def\bt@tempa{\bibfont}%
+    \ifx\bt@tempa\bt@tempc %
+        \bt@debug{assuming natbib v6.x-style thb env}%
+        \bt@change@nat@thb
+    \else
+        \def\bt@tempa{\bibsection}%
+        \ifx\bt@tempa\bt@tempc
+        \bt@debug{assuming natbib v7-style thb env}%
+            \bt@change@nat@thb
+        \else
+            \def\bt@tempa{\bib@heading}%
+            \ifx\bt@tempa\bt@tempc
+            \bt@debug{assuming older KOMA-style thb env}%
+                \bt@change@KOMA@thb
+            \else
+                \def\bt@tempa{\chapter}%
+                \ifx\bt@tempa\bt@tempc
+                    \bt@debug{assuming book thb env}%
+                    \bt@change@standard@thb
+                \else
+                    \def\bt@tempa{\section}%
+                    \ifx\bt@tempa\bt@tempc
+                        \bt@debug{assuming article thb env}%
+                    \bt@change@standard@thb
+                    \else
+                        \ifbt@koma@class
+                    \bt@debug{assuming newer KOMA-style thb env}%
+                            \bt@change@KOMA@thb
+                        \else
+                            \ifthenelse{\boolean{bt@fallback@thb}}{%
+                                \PackageWarning{%
+                                    bibtopic%
+                                }{%
+                                    `defaultbib' specified; using
+                                    built-in\MessageBreak
+                                    `thebibliography' environment%
+                                }%
+                                \let\thebibliography\bt@dflt@bthb
+                                \let\endthebibliography\bt@dflt@ethb
+                            }{%
+                                \PackageError{%
+                                    bibtopic%
+                                }{%
+                                    Found unknown `thebibliography' environment%
+                                }{%
+                                    You should either use a package providing
+                                    a known bibliography^^J%
+                                    environment (such as natbib), or use the
+                                    `defaultbib' package^^J%
+                                    option as a workaround; please see the
+                                    section about `Warnings^^J%
+                                    and error messages' in `bibtopic.dvi' for
+                                    details.
+                                }%
+                            }%
+                        \fi
+                    \fi
+                \fi
+            \fi
+        \fi
+    \fi
+}
+
+\providecommand\@openbib@code{}
+\newcommand\bt@dflt@bthb[1]{%
+    \bt@adjust@label{#1}%
+    \ifthenelse{\boolean{bt@printheadings}}{%
+        \@ifundefined{chapter}{%
+            \@ifundefined{section}{%
+            \@startsection{section}{1}{\z@}%
+                {-3.5ex \@plus -1ex \@minus -.2ex}%
+                {2.3ex \@plus.2ex}%
+                {\normalfont\Large\bfseries}*{\refname}%
+            }{%
+            \section*{\refname\@mkboth{\refname}{\refname}}%
+            }%
+        }{%
+            \chapter*{\bibname\@mkboth{\bibname}{\bibname}}%
+        }%
+    }{}%
+    \list{\@biblabel{\@arabic\c@enumiv}}{%
+        \settowidth\labelwidth{\@biblabel{#1}}%
+        \leftmargin\labelwidth
+        \advance\leftmargin\labelsep
+        \@openbib@code
+        \ifthenelse{\boolean{bt@sectctr@reset}}{%
+            \usecounter{enumiv}%
+        }{%
+            \@nmbrlisttrue
+            \def\@listctr{enumiv}%
+        }%
+        \let\p@enumiv\@empty
+        \renewcommand*\theenumiv{\@arabic\c@enumiv}%
+    }%
+    \sloppy\clubpenalty4000\widowpenalty4000%
+    \sfcode`\.=\@m
+    \bt@beg@thb@hook
+}%
+
+\newcommand\bt@dflt@ethb{%
+    \bt@end@thb@hook
+    \def\@noitemerr{%
+        \@latex@warning{Empty `thebibliography' environment}%
+    }%
+    \endlist
+}%
+
+\newcommand\bt@change@nat@thb{%
+    \bt@debug{Changing natbib-style thebibliography}%
+    \def\thebibliography##1{%
+        \bt@adjust@label{##1}%
+        \ifthenelse{\not\boolean{bt@printheadings}}{%
+            \let\bibsection\relax
+        }{}%
+        \bt@savebib{\bt@label}%    
+        \ifthenelse{\not\boolean{bt@sectctr@reset}}{%
+            \setcounter{NAT@ctr}{\bt@save@cnt}%
+        }{}%
+        \bt@beg@thb@hook
+    }%
+    \def\endthebibliography{%
+       \bt@end@thb@hook
+       %   \bt@endsavebib %% not; define it explicitly instead:
+       \def\@noitemerr{%
+           \PackageWarning{%
+              bibtopic%
+           }{%
+              Empty `thebibliography' environment%
+           }%
+       }%
+       \endlist % \vskip-\lastskip omitted here
+    }%
+}
+
+\newcommand*\bt@change@standard@thb{%
+    \def\thebibliography##1{%
+        \bt@adjust@label{##1}%
+        \ifthenelse{\not\boolean{bt@printheadings}}{%
+            \let\chapter\@gobbletwo
+            \let\section\@gobbletwo
+        }{}%
+        \bt@savebib{\bt@label}%
+        \ifthenelse{\not\boolean{bt@sectctr@reset}}{%
+            \setcounter{enumiv}{\bt@save@cnt}%
+        }{}%
+        \bt@beg@thb@hook
+    }%
+    \def\endthebibliography{%
+        \bt@end@thb@hook
+        \bt@endsavebib
+    }%
+}
+\newcommand*\bt@change@KOMA@thb{%
+    \ifthenelse{\not\boolean{bt@printheadings}}{%
+        \let\bib@heading\relax
+    }{}%
+    \bt@change@standard@thb
+}
+
+\newcommand\bt@harvitem{%
+    \@ifnextchar[{\bt@@harvitem}{\bt@@harvitem[]}%] brace matching
+}
+
+\newcommand*\bt@@harvitem[4][]{%
+    \bt@debug{btharvitem called with args: |#1|#2|#3|#4|}%
+    \ifthenelse{\equal{#1}{}}{%
+        \protected@xdef\bt@args{[#2(#3)]}%
+    }{%
+        \bt@warn@brackets{#2}#1[]\end%
+        \protected@xdef\bt@args{[#1(#3)#2]}%
+    }%
+    \bt@call@item{#4}%
+}
+\newenvironment{bt@item}{%
+    \@ifnextchar[{\bt@@item}{\bt@@item[]}%] brace matching
+}{
+    \relax
+}
+\newcommand*\bt@@item[2][]{%
+    \ifthenelse{\equal{#2}{}}{%
+        \def\endbt@item{\relax}%
+    }{%
+        \ifthenelse{\equal{#1}{}}{%
+            \gdef\bt@args{}%
+        }{%
+            \bt@isnum{#1}{%
+                \ifthenelse{\boolean{bt@override@numargs}}{%
+                    \global\bt@overridden@numargstrue
+                    \gdef\bt@args{}%
+                }{%
+                    \bt@warn@brackets{#2}#1[]\end%
+                    \protected@xdef\bt@args{[#1]}%
+                }%
+            }{%
+                \bt@warn@brackets{#2}#1[]\end%
+                \protected@xdef\bt@args{[#1]}%
+            }%
+        }%
+        \bt@call@item{#2}%
+    }%
+}
+\newcommand*\bt@warn@brackets{}
+\def\bt@warn@brackets#1#2[#3]#4\end{%
+    \ifthenelse{\equal{#3}{}}{%
+        \relax
+    }{%
+        \PackageError{%
+            bibtopic%
+        }{%
+            Can't parse brackets in key `#1' properly%
+        }{%
+            You seem to have used brackets `[]' inside that key in^^J%
+            `\bt@curr@bib@file.bib', and bibtopic could have confused these^^J%
+            with the optional argument of the `\string\bibitem' command.^^J%
+            To avoid this, please `hide' such brackets in an extra pair^^J%
+            of braces, like this: `{[]}'.^^J^^J%
+            (Don't forget to rerun BibTeX on `\thebtauxfile' afterwards.)^^J%
+            If you proceed now, your bibliograpy may look somewhat garbled.
+        }%
+    }%
+}
+
+\newcommand*\bt@boxing@hook{%
+    \global\let\@noitemerr\relax
+    \def\cite{%
+        \@ifstar{}{}% just gobble it
+        \@ifnextchar[{% brace matching }]{
+            \@citex
+        }{%
+            \@citex[]%
+        }%
+    }
+    \def\@citex[##1]{%
+        \@ifnextchar[{% brace matching }]{
+            \bt@gobble@citex[##1]%
+        }{%
+            \bt@gobble@citex[##1][]%
+        }%
+    }%
+    \def\bt@gobble@citex[##1][##2]##3{}%
+    \let\citet\cite
+    \let\Citet\cite
+    \let\citep\cite
+    \let\Citep\cite
+    \let\citealt\cite
+    \let\Citealt\cite
+    \let\citealp\cite
+    \let\Citealp\cite
+    \let\citetext\cite
+    \let\citeauthor\cite
+    \let\Citeauthor\cite
+    \let\citeauthoryear\cite
+    \let\citeyearpar\cite
+    \let\citetalias\cite
+    \let\citepalias\cite
+    \let\jbdoitem\relax
+    \let\jbbibargs\bt@gobblethree
+    \let\bibnf\relax
+    \let\bibrnf\relax
+    \let\bibenf\relax
+    \let\bibrenf\relax
+}
+
+\newcommand*\bt@call@item{}
+\ifthenelse{\boolean{bt@fast}}{%
+   \def\bt@call@item#1{%
+       \bt@debug{bt@call@item called with arg: |#1|}%
+       \@ifundefined{#1bt@\@extra@b@citeb}{%
+           \bt@print@all@or@notcited{#1}%
+       }{%
+           \bt@print@all@or@cited{#1}%
+       }%
+   }
+}{%
+   \def\bt@call@item#1{%
+       \bt@debug{bt@call@item called with arg: |#1|}%
+       \def\endbt@item{\relax}%
+       \bt@if@elem{#1}{\csname bt@sect\bt@unit@cnt\endcsname}{%
+           \bt@print@all@or@cited{#1}%
+       }{%
+           \bt@print@all@or@notcited{#1}%
+       }%
+   }%
+}
+
+\newcommand*\bt@print@all@or@cited[1]{%
+    \ifthenelse{\boolean{bt@print@cited}}{%
+        \bt@do@print@item{#1}%
+    }{%
+        \ifthenelse{\boolean{bt@print@all}}{%
+            \bt@do@print@item{#1}%
+        }{%
+            \bt@dont@print@item
+        }%
+    }%
+}
+\newcommand*\bt@print@all@or@notcited[1]{%
+    \ifthenelse{\boolean{bt@print@cited}}{%
+        \bt@debug{printing cited: #1}%
+        \bt@dont@print@item
+    }{%
+        \bt@do@print@item{#1}%
+    }%
+}
+\newcommand*\bt@do@print@item[1]{%
+    \global\bt@found@itemtrue
+    \bt@stepcnt\bt@helpctr
+    \bt@if@elem{#1}{\bt@kv@req@list}{%
+        \bt@add@elem{#1}{\bt@sect@ref@list}%    
+    }{}%
+    \def\endbt@item{\relax}%
+    \expandafter\bt@saveitem\bt@args{#1}%
+}
+
+\newbox\bt@tempboxa
+
+\newcommand*\bt@dont@print@item{%
+    \def\endbt@item{%
+        \end{lrbox}%
+    }%
+    \begin{lrbox}{\bt@tempboxa}%
+    \bt@boxing@hook
+}
+\newcommand\bt@copy@verbatim[2]{%
+    \openin\bt@infilea=#1\relax
+    \immediate\openout\bt@outfile=#2\relax
+    \immediate\write\bt@outfile{%
+        \@percentchar%
+        \@percentchar%
+        \@percentchar%
+        \space produced automatically by bibtopic.sty v1.1%
+    }%
+    \begingroup
+        \let\do\@makeother \dospecials
+        \endlinechar\m@ne
+        \ifeof\bt@infilea
+            \bt@info{Tried to copy #1, but couldn't find it}%
+        \else
+            \loop
+                \read\bt@infilea to\bt@tempa
+                \bt@debug{LINE: \bt@tempa}%
+                % same trick as with \if!...!
+                \if\ifeof\bt@infilea 0\else 1\fi 1
+                \immediate\write\bt@outfile{\bt@tempa}%
+            \repeat
+        \fi
+    \endgroup
+    \closein\bt@infilea
+}
+\newcommand*\bt@can@overwrite[1]{%
+    \openin\bt@infilea=#1\relax
+    \bgroup
+        \let\do\@makeother \dospecials
+        \endlinechar\m@ne
+        \ifeof\bt@infilea
+            \bt@info{File `#1' doesn't exist}%
+        \else
+            \read\bt@infilea to\@tempa
+            \ifeof\bt@infilea
+                \bt@info{File `#1' is empty}%
+            \else
+            \bt@if@signatureline{\@tempa}{%
+                \relax
+            }{%
+                \PackageError{bibtopic}{%
+                    file `#1' not written by bibtopic%
+                }{%
+                    The file `#1' looks as if it hasn't been written
+                    by bibtopic;^^J%
+                    however, bibtopic would now try to overwrite this file.^^J%
+                    (See section 3 in bibtopic.dvi for more details.)^^J%
+                    If this file contains anything important, please^^J%
+                    copy its contents to a safe place now.^^J^^J%
+                    If you hit RETURN now, this file will be overwritten.^^J%
+                }%
+            }%
+            \fi
+        \fi
+    \egroup
+    \closein\bt@infilea
+}
+
+\newcommand\bt@version{0}
+\newcommand\bt@if@@signatureline{}
+\newcommand\bt@if@signatureline{}
+{
+\catcode`\ =12
+\catcode`\%=12
+\endlinechar\m@ne
+\gdef\bt@if@signatureline#1{
+\expandafter\bt@if@@signatureline
+#1%%% produced automatically by bibtopic.sty v.%%%\end
+}
+\gdef\bt@if@@signatureline
+#1%%% produced automatically by bibtopic.sty v#2.#3%%%#4\end{
+\ifx\\#2\\
+\let\bt@tempc\@secondoftwo
+\else
+\def\bt@version{#2.#3}
+\let\bt@tempc\@firstoftwo
+\fi
+\bt@tempc
+}
+}
+
+\newif\ifbt@cont
+\newif\ifbt@files@diff
+\newcommand\bt@line@cnt{}
+\newcommand*\bt@if@files@differ[4]{%    
+    \bt@debug{comparing #1.aux - #1.bak ...}%
+    \bt@files@difffalse
+    \def\bt@line@cnt{0}%
+    \bgroup
+        \let\do\@makeother
+        \dospecials
+        \endlinechar-1
+        \openin\bt@infilea=#1
+        \openin\bt@infileb=#2
+        \bt@conttrue
+        \loop
+        \ifeof\bt@infilea
+            \bt@debug{EOF #1}%
+            \bt@contfalse
+            \ifeof\bt@infileb
+                \bt@debug{EOF #2}%
+            \else
+                \bt@debug{NOT at EOF #1.bak, but EOF #1.aux}%
+                \global\bt@files@difftrue
+            \fi
+        \else
+            \ifeof\bt@infileb
+                \bt@debug{EOF #1.bak}%
+                \bt@contfalse
+                \global\bt@files@difftrue
+            \fi
+        \fi
+        \ifbt@cont
+            \bt@debug{NOT at EOF of both.}%
+            \read\bt@infilea to\bt@tempa
+            \read\bt@infileb to\bt@tempb
+            \bt@stepcnt{\bt@line@cnt}%
+            \ifnum\bt@line@cnt=1
+                \bt@if@signatureline{\bt@tempb}{%
+                    \read\bt@infileb to\bt@tempb
+                }{}%
+            \fi
+            \ifx\bt@tempa\bt@tempb
+                \bt@debug{\bt@tempa -\bt@tempb\space are equal}%
+            \else
+                \bt@debug{|\bt@tempa| - |\bt@tempb| differ!}%
+                \bt@contfalse
+                \global\bt@files@difftrue
+            \fi
+        \repeat
+        \closein\bt@infilea
+        \closein\bt@infileb
+    \egroup
+    \ifthenelse{\boolean{bt@files@diff}}{%
+        #3%
+    }{%
+        #4%
+    }%
+}
+
+\newcommand*\bt@set@cnt[1]{%
+    \bt@debug{setting totalcnt to #1}%
+    \gdef\bt@totalctr{#1}%
+}
+
+\newcommand*\bt@keyval@list{}
+
+\newcommand*\bt@kv@add[2]{%
+    \protected@edef\bt@tempa{\bt@keyval@list}%
+    \protected@xdef\bt@keyval@list{\noexpand\@elt{#1}{#2}\bt@tempa}%
+}
+
+\DeclareRobustCommand*\btCiteSect[1]{%
+    \btGetVal{#1}%
+    \cite{#1} (section\nobreakspace{}\ref{\btretval})%
+}
+
+\DeclareRobustCommand*\btRef[2]{%
+    % get section label of #1 from \bt@keyval@list
+    % reference type is #2
+    \ifx\bt@keyval@list\@undefined
+        {\bfseries{???}}%
+    \else
+        \bt@get@keyval{#1}{\bt@keyval@list}%
+        #2{\btretval}%
+    \fi
+}
+
+\DeclareRobustCommand*\btGetVal[1]{%
+    \bt@get@keyval{#1}{\bt@keyval@list}%
+}
+\newcommand*\bt@print@keyvals[2]{%
+            \bt@debug{^^J***list is: #1}%
+    \let\bt@elt\@elt%
+    \def\@elt##1{%
+                \bt@debug{writing keyval: ##1,#2}%
+        \protected@write\@auxout{}{%
+            \string\bt@kv@add{##1}{#2}%
+        }%
+    }#1%
+    \let\@elt\bt@elt
+}
+\newcommand*\bt@get@keyval[2]{%
+    \gdef\btretval{???}%
+    \bt@add@elem{#1}{\bt@kv@req@list}%
+    %% get value of key #1 from list #2
+    \protected@edef\bt@tempa{#1}%
+    \bt@elemfalse
+    \let\bt@elt\@elt%
+    \def\@elt##1##2{\def\bt@tempb{##1}%
+        \ifx\bt@tempa\bt@tempb  %##2
+            \gdef\btretval{##2}%
+        \fi
+    }%
+    #2%
+    \let\@elt\bt@elt
+    \ifthenelse{\equal{\btretval}{???}}{%
+        \PackageWarning{bibtopic}{%
+            Key `#1' not found\MessageBreak in list of cited works%
+        }%
+    }{}%
+}
+
+\newcommand*\bt@get@label[2]{%
+    \protected@edef\bt@tempa{#1}%
+    \let\bt@elt\@elt%
+    \def\@elt##1##2{\def\bt@tempb{##1}%
+        \ifx\bt@tempa\bt@tempb%
+        ##2
+        \fi
+    }%
+    #2%
+    \let\@elt\bt@elt
+}
+
+\newenvironment{btSect}[2][\bt@globalstyle]{%
+    \ifthenelse{\equal{#1}{}}{%
+        \PackageWarning{%
+            bibtopic%
+        }{%
+            No \string\bibliographystyle\space given
+            - \MessageBreak assuming `\bt@defaultstyle'%
+        }%
+        \def\bt@globalstyle{\bt@defaultstyle}%
+    }{}%
+    \expandafter\ifx\csname bt@sect\bt@unit@cnt%
+            \endcsname\relax
+        \expandafter\protected@xdef\csname bt@sect%
+            \bt@unit@cnt\endcsname{\bt@cited@list}%
+        \bt@debug{list\bt@unit@cnt{} newly defined as:
+            \csname bt@sect\bt@unit@cnt\endcsname}%
+    \else
+        \bt@debug{list\bt@unit@cnt{} was already defined as:
+            \csname bt@sect\bt@unit@cnt\endcsname}%
+    \fi
+    \stepcounter{btauxfile}%
+    \bt@info{bibliographystyle is `#1'\MessageBreak
+            for file `\thebtauxfile .bbl'%
+    }%
+    \bt@inside@secttrue
+    \gdef\bt@curr@bib@file{#2}%
+    \gdef\bt@sect@ref@list{}%    
+    \bt@change@thb%
+    \if@filesw
+        \@bt@write@auxfile{#1}{*}{#2}%
+    \fi
+}{%
+    \relax
+}%
+\newenvironment{btUnit}{%
+    \ifthenelse{\boolean{bt@inside@unit}}{%
+        \PackageError{%
+            bibtopic%
+        }{%
+            The `btUnit' environment cannot be nested%
+        }{%
+            You cannot use a `btUnit' environment inside another^^J%
+            `btUnit' environment.
+        }%
+    }{}%
+    \global\bt@inside@unittrue
+    \immediate\write\@auxout{%
+        \string\csname\space change@bibcite\string\endcsname%
+    }%
+    \ifthenelse{\not\boolean{bt@natbib}}{%
+        \bt@setcites
+    }{}%
+    \ifthenelse{\not\boolean{bt@part@cont@ctr}}{%
+        \def\bt@save@cnt{0}%
+        \ifthenelse{\boolean{bt@natbib}}{%
+            \setcounter{NAT@ctr}{0}%
+        }{%
+            \setcounter{enumiv}{0}% for standard styles
+        }%
+    }{}%
+    \protected@xdef\the@ipfilectr{\bt@unit@cnt}%
+    \immediate\write\@auxout{\string\def\string\bt@cited@list{}^^J%
+                    \string\gdef\string\@extra@binfo{\@extra@b@citeb}}%
+}{%
+    \immediate\write\@auxout{\string\bt@save@list{\bt@unit@cnt}}
+    \bt@stepcnt\bt@unit@cnt
+    \gdef\the@ipfilectr{}%
+    \immediate\write\@auxout{%
+        \string\gdef\string\@extra@binfo{\@extra@b@citeb}}%
+    \global\bt@inside@unitfalse
+}
+\newcommand*\bt@label@sec{\label}%
+\newcommand*\btPrintCited{%
+    \ifthenelse{\boolean{bt@inside@sect}}{%
+        \protected@edef\bt@curr@line{\the\inputlineno}%
+        \def\bt@curr@cmd{\string\btPrintCited}%
+        \bt@stepcnt\bt@internal@sect@cnt%
+        \bt@print@citedtrue\bt@print@allfalse
+        \bt@label@sec{Sec:\bt@internal@sect@cnt}%
+        \bt@change@bibitem
+        \bt@input@or@warn{\thebtauxfile}%
+        \bt@print@keyvals{\bt@sect@ref@list}{%
+            Sec:\bt@internal@sect@cnt
+        }%
+    }{%
+        \bt@sect@err{btSect}{\btPrintCited}%
+    }%
+}
+\newcommand*\btPrintNotCited{%
+    \ifthenelse{\boolean{bt@inside@sect}}{%
+        \protected@edef\bt@curr@line{\the\inputlineno}%
+        \def\bt@curr@cmd{\string\btPrintNotCited}%
+        \bt@stepcnt\bt@internal@sect@cnt
+        \bt@print@citedfalse\bt@print@allfalse
+        \bt@label@sec{Sec:\bt@internal@sect@cnt}%
+        \bt@change@bibitem
+        \bt@input@or@warn{\thebtauxfile}%
+    }{%
+        \bt@sect@err{btSect}{\btPrintNotCited}%
+    }%
+}
+\newcommand*\btPrintAll{%
+    \ifthenelse{\boolean{bt@inside@sect}}{%
+        \protected@edef\bt@curr@line{\the\inputlineno}%
+        \def\bt@curr@cmd{\string\btPrintAll}%
+        \bt@stepcnt\bt@internal@sect@cnt
+        \bt@print@citedfalse\bt@print@alltrue
+        \bt@label@sec{Sec:\bt@internal@sect@cnt}%
+        \bt@change@bibitem
+        \bt@input@or@warn{\thebtauxfile}%
+        \bt@print@keyvals{\bt@sect@ref@list}%
+            {Sec:\bt@internal@sect@cnt}%
+    }{%
+        \bt@sect@err{btSect}{\btPrintAll}%
+    }%
+}
+\newenvironment{bibtopics}[2]{%
+    \begin{btSect}[#1]{#2}%
+    \btPrintAll
+}{%
+    \end{btSect}%
+}
+\newcommand\bt@bibstyle{}
+\newcommand\bt@citation{}
+\newcommand\bt@bibdata{}
+\newenvironment{bibunit}[1][\bt@globalstyle]{%
+    \ifx#1\@empty
+        \PackageWarning{%
+            bibtopic%
+        }{%
+            No \string\bibliographystyle\space given
+            - \MessageBreak assuming `\bt@defaultstyle'%
+        }%
+        \def\bt@globalstyle{\bt@defaultstyle}%
+    \fi
+    \def\bt@bibstyle{#1}%
+    \def\nocite##1{\def\bt@citation{##1}}%
+    \def\cite##1{\def\bt@citation{##1}}%
+    \gdef\putbib[##1]{\gdef\bt@bibdata{##1}}%
+    \stepcounter{btauxfile}%
+}{%
+    \bt@change@thb
+    \if@filesw
+        \@bt@write@auxfile{\bt@bibstyle}{\bt@citation}{\bt@bibdata}%
+    \fi
+        \bt@inside@secttrue
+        \btPrintAll
+}
+\newcommand*\bt@bibitemcheck{%
+    \ifthenelse{\not\boolean{bt@found@item}}{%
+        \PackageWarningNoLine{%
+            bibtopic%
+        }{%
+            No appropriate bibitems found for command\MessageBreak %
+            \bt@curr@cmd\space on line \bt@curr@line%     
+        }%
+    }{}%
+}
+\newcommand*\bt@sect@err[2]{%
+    \PackageError{%
+        bibtopic%
+    }{%
+        You can't use `\string#2' outside of `#1'%
+    }{%
+        See the documentation on the `\string#2' command\MessageBreak
+        in `bibtopic.dvi' for details.
+    }%
+}
+
+\newcommand*\bt@bibtex@warning[1]{%
+    \PackageWarningNoLine{%
+        bibtopic%
+    }{%
+        Please (re)run BibTeX on the file(s):%
+        \expandafter\MessageBreak#1%
+        and after that rerun LaTeX%
+    }%
+}
+
+\newcommand*\bt@files@warnings{%
+    \ifthenelse{\boolean{bt@harvard@errs}}{%
+        \PackageError{%
+            bibtopic%
+        }{%
+            Your command \string\harvarditem\space was ignored%
+        }{%
+            `bibtopic' currently supports the `\string\harvarditem'
+            command^^J
+            only in connection with the `natbib' package. So either^^J%
+            load this package, or change the `\string\citationstyle' command
+            to some^^J%
+            non-harvard style.^^J%
+            If you hit RETURN now, some of your bibliographies will be empty.
+        }%
+    }{}%
+    \ifthenelse{\boolean{bt@overridden@numargs}}{%
+        \ifthenelse{\boolean{bt@warn@override}}{%
+            \PackageWarningNoLine{%
+                bibtopic%
+            }{%
+                The numerical argument in some `\string\bibitem' commands^^J%
+                has been ignored. Using one of the package options^^J%
+                `overridenumbers' or `dontoverridenumbers' will make^^J%
+                this warning go away.^^J%
+                Please see the documentation on these options^^J%
+                in `bibtopic.dvi' for more details.
+            }%
+        }{}%
+    }{}%
+    \ifthenelse{\equal{\bt@warn@files}{}}{%
+        \relax
+    }{%
+        \bt@mk@warning@list{\bt@warn@files}%
+        \bt@bibtex@warning{\the\@temptokena}%
+        \def\bt@helpctr{\bt@totalctr}%
+    }%
+}
+
+\newcommand*\bt@input@or@warn[1]{%
+    \IfFileExists{#1.bbl}%
+    {%
+        \input#1.bbl%
+    }{%
+        \bt@if@elem{#1}{\bt@warn@files}{%
+            \relax
+        }{%
+            \PackageWarningNoLine{%
+                bibtopic%
+            }{%
+                No file #1.bbl%
+            }%
+            \ifbt@normalwarnings
+            \else
+                \bt@append@list{#1}{\bt@warn@files}%
+            \fi
+        }%
+    }%
+}%
+
+\newcommand*\bt@warn@outdated[1]{%
+    \bt@if@elem{#1}{\bt@warn@files}{%
+        \relax
+    }{%
+        \bt@infoNoLine{Marking #1.bbl as outdated}%
+        \bt@append@list{#1}{\bt@warn@files}%
+    }%
+    \ifthenelse{\not\boolean{bt@natbib}}{%
+        \global\let\bt@item\relax
+        \global\let\endbt@item\relax
+    }{}%
+}%
+\endinput
+%%
+%% End of file `bibtopic.sty'.
diff --git a/omdoc-semantics/macros/old/categories.tex b/omdoc-semantics/macros/old/categories.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c4c98498dc72ee287501758c2b6543904cd6d12e
--- /dev/null
+++ b/omdoc-semantics/macros/old/categories.tex
@@ -0,0 +1,70 @@
+%categories, general
+\newcommand{\id}[1]{\op{id}_{#1}}
+\newcommand{\idc}[2]{\op{id}^{#1}_{#2}}
+\newcommand{\morph}[3]{#1\left(#2,#3\right)}
+\newcommand{\co}[2]{\�{#1}{#2}}
+\newcommand{\coc}[3]{#3\circ^{#1} #2}
+\newcommand{\comp}{\bullet}
+\newcommand{\�}[2]{#2\circ #1}
+\newcommand{\oo}[3]{#3\circ #2\circ #1}
+\newcommand{\ooo}[4]{#4\circ #3\circ #2\circ #1}
+\newcommand{\obj}[1]{|#1|}
+\newcommand{\Hom}{\op{Hom}}
+\newcommand{\incsli}[2]{(#1\downarrow #2)}
+\newcommand{\comcat}[2]{(#1\downarrow #2)}%used to be \comma
+\newcommand{\sli}[2]{#1\backslash #2}
+\newcommand{\slii}[2]{#1/#2}
+\newcommand{\ID}[1]{\mathbf{1}_{#1}} %identity functor
+\newcommand{\catop}[1]{{{#1}^{op}}}
+
+%categories, special
+\newcommand{\C}{\mathcal{C}}
+\newcommand{\D}{\mathcal{D}}
+\newcommand{\Set}{\mathcal{SET}}
+\newcommand{\Cat}{\mathcal{CAT}}
+\newcommand{\Poset}{\mathcal{POSET}}
+\newcommand{\Rel}{\mathcal{REL}}
+\newcommand{\Class}{\mathcal{CLASS}}
+\newcommand{\Ob}{\op{Ob}}
+
+%for tikz
+\newcommand{\arrowtip}{angle 45}
+\newcommand{\arrowtipepi}{triangle 45}
+\newcommand{\arrowtipmono}{left hook}
+
+%institutions
+\newcommand{\I}{\mathbb{I}}
+\newcommand{\Sig}{\op{Sig}}
+\newcommand{\Mod}{\op{Mod}}
+\newcommand{\Modof}[1]{\op{Mod}_#1}
+\newcommand{\Syn}{\op{Syn}}
+\newcommand{\Sen}{\op{Sen}}
+\newcommand{\Jud}{\op{Jud}}
+\newcommand{\modS}{\models_{\Sigma}}
+%%EVIL
+\def\mod{\models}
+\newcommand{\der}{\vdash}
+\newcommand{\dera}[4][]{#2\der^{#1}_{#3}#4}
+\newcommand{\moda}[4][]{#2\mod^{#1}_{#3}#4}
+\newcommand{\nmoda}[4][]{#2\not\mod^{#1}_{#3}#4}
+\newcommand{\modaI}[4]{\mod{#2}{#1}{#3}{#4}}
+\newcommand{\nmodaI}[4]{\nmod{#2}{#1}{#3}{#4}}
+\newcommand{\val}{\op{val}}
+\newcommand{\valS}{\op{val}_\Sigma}
+\newcommand{\Pf}{\op{Pf}\,}
+\newcommand{\Th}{\op{Th}}
+\newcommand{\Frm}[2]{\op{Frames}[#1,#2]}
+\newcommand{\Ins}{\mathcal{INS}}
+\newcommand{\Insg}[2]{\mathcal{INS}\left[#1,#2\right]}
+\newcommand{\CoInsg}[2]{\mathcal{COINS}\left[#1,#2\right]}
+\newcommand{\Logics}{\mathcal{LOG}}
+
+%institutions, special
+\newcommand{\FOL}{{\mathcal{FOL}}}
+\newcommand{\FSig}{\Sig^\FOL}
+\newcommand{\FSen}{\Sen^\FOL}
+\newcommand{\FMod}{\Mod^\FOL}
+\newcommand{\FPf}{\Pf^\FOL}
+\newcommand{\Fmod}{\mod^\FOL}
+\newcommand{\Fmoda}[3]{#1\Fmod_{#2}#3}
+
diff --git a/omdoc-semantics/macros/old/commands.tex b/omdoc-semantics/macros/old/commands.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3a24702a01bae6e5e8a5a51ff93ce440c2752b5f
--- /dev/null
+++ b/omdoc-semantics/macros/old/commands.tex
@@ -0,0 +1,38 @@
+\newcommand{\includeroot}{}
+%\newcommand{\includeroot}{C:/rabe/Program_Data/Latex/}
+\newcommand{\myuse}[1]{\input{\includeroot #1}}
+\newcommand{\myusepack}[1]{\usepackage{\includeroot #1}}
+
+%long and short version
+%\newcommand{\longv}[1]{#1}
+%\newcommand{\shortv}[1]{}
+%\newcommand{\losho}[2]{\shortv{#1}\longv{#2}}
+
+\providecommand{\omdoc}{\textsc{OMDoc}}
+\providecommand{\mathml}{\textsc{MathML}}
+\providecommand{\openmath}{\textsc{OpenMath}}
+\newcommand{\tb}{\hspace*{.5cm}}
+\newcommand{\tbiff}{\tb\miff\tb}
+\newcommand{\tbimpl}{\tb\impl\tb}
+\newcommand{\itm}{\item}
+\newcommand{\mycite}[1]{ (\cite{#1})}
+\newenvironment{tightitemize}[1][--]{\begin{list}{#1}{\setlength{\itemsep}{0pt}}}{\end{list}}
+\newcommand{\mpag}[2]{\begin{minipage}{#1}#2\end{minipage}}
+\newcommand{\mpage}[1]{\begin{minipage}{\textwidth}#1\end{minipage}}
+
+%change figure/table placement
+% General parameters, for ALL pages:
+%\renewcommand{\topfraction}{0.9}	% max fraction of floats at top
+%\renewcommand{\bottomfraction}{0.8}	% max fraction of floats at bottom
+%Parameters for TEXT pages (not float pages):
+\setcounter{topnumber}{2}
+%\setcounter{bottomnumber}{2}
+%\setcounter{totalnumber}{4}     % 2 may work better
+%\setcounter{dbltopnumber}{2}    % for 2-column pages
+%\renewcommand{\dbltopfraction}{0.9}	% fit big float above 2-col. text
+%\renewcommand{\textfraction}{0.07}	% allow minimal text w. figs
+%Parameters for FLOAT pages (not text pages):
+%\renewcommand{\floatpagefraction}{0.7} % N.B.: floatpagefraction MUST be less than topfraction !!
+%\renewcommand{\dblfloatpagefraction}{0.7}
+% remember to use [htp] or [htpb] for placement
+
diff --git a/omdoc-semantics/macros/old/cv_plain.bst b/omdoc-semantics/macros/old/cv_plain.bst
new file mode 100644
index 0000000000000000000000000000000000000000..729cb683af126070a4725279252e4efa09e284c3
--- /dev/null
+++ b/omdoc-semantics/macros/old/cv_plain.bst
@@ -0,0 +1,1109 @@
+% BibTeX style to typeset lists of publications: bibliography entries appear without citation keys, ordering is by year
+% written by Florian Rabe
+% based on BibTeX standard bibliography style `plain', version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+% changes are marked with FR
+
+ENTRY
+  { address
+    author
+    booktitle
+    chapter
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    volume
+    year
+  }
+  {}
+  { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { ", " * write$ }
+    { output.state after.block =
+	{ add.period$ write$
+	  newline$
+	  "\newblock " write$
+	}
+	{ output.state before.all =
+	    'write$
+	    { add.period$ " " * write$ }
+	  if$
+	}
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+  "\bibitem[$\bullet$]{" write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+  write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+	'skip$
+	{ after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "{\em " swap$ * "}" * }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+      nameptr #1 >
+	{ namesleft #1 >
+	    { ", " * t * }
+	    { numnames #2 >
+		{ "," * }
+		'skip$
+	      if$
+	      t "others" =
+		{ " et~al." * }
+		{ " and " * t * }
+	      if$
+	    }
+	  if$
+	}
+	't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+    { "" }
+    { author format.names }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+	{ ", editors" * }
+	{ ", editor" * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+    { "" }
+    { title "t" change.case$ }
+  if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+	{ t #1 #2 substring$ "--" = not
+	    { "--" *
+	      t #2 global.max$ substring$ 't :=
+	    }
+	    {   { t #1 #1 substring$ "-" = }
+		{ "-" *
+		  t #2 global.max$ substring$ 't :=
+		}
+	      while$
+	    }
+	  if$
+	}
+	{ t #1 #1 substring$ *
+	  t #2 global.max$ substring$ 't :=
+	}
+      if$
+    }
+  while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+    { month empty$
+	{ "" }
+	{ "there's a month but no year in " cite$ * warning$
+	  month
+	}
+      if$
+    }
+    { month empty$
+	'year
+	{ month " " * year * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { "volume" volume tie.or.space.connect
+      series empty$
+	'skip$
+	{ " of " * series emphasize * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+	{ series field.or.null }
+	{ output.state mid.sentence =
+	    { "number" }
+	    { "Number" }
+	  if$
+	  number tie.or.space.connect
+	  series empty$
+	    { "there's a number but no series in " cite$ * warning$ }
+	    { " in " * series * }
+	  if$
+	}
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+    { "" }
+    { output.state mid.sentence =
+	{ edition "l" change.case$ " edition" * }
+	{ edition "t" change.case$ " edition" * }
+      if$
+    }
+  if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+	{ #1 'multiresult := }
+	{ t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+	{ "pages" pages n.dashify tie.or.space.connect }
+	{ "page" pages tie.or.space.connect }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+  number empty$
+    'skip$
+    { "(" number * ")" * *
+      volume empty$
+	{ "there's a number but no volume in " cite$ * warning$ }
+	'skip$
+      if$
+    }
+  if$
+  pages empty$
+    'skip$
+    { duplicate$ empty$
+	{ pop$ format.pages }
+	{ ":" * pages n.dashify * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+	{ "chapter" }
+	{ type "l" change.case$ }
+      if$
+      chapter tie.or.space.connect
+      pages empty$
+	'skip$
+	{ ", " * format.pages * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { editor empty$
+	{ "In " booktitle emphasize * }
+	{ "In " format.editors * ", " * booktitle emphasize * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+  month empty$ year empty$ note empty$
+  and and and and and
+  key empty$ not and
+    { "all relevant fields are empty in " cite$ * warning$ }
+    'skip$
+  if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+    'skip$
+    { pop$
+      type "t" change.case$
+    }
+  if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+    { "Technical Report" }
+    'type
+  if$
+  number empty$
+    { "t" change.case$ }
+    { number tie.or.space.connect }
+  if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+    { journal empty$
+	{ "need key or journal for " cite$ * " to crossref " * crossref *
+	  warning$
+	  ""
+	}
+	{ "In {\em " journal * "\/}" * }
+      if$
+    }
+    { "In " key * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+  editor num.names$ duplicate$
+  #2 >
+    { pop$ " et~al." * }
+    { #2 <
+	'skip$
+	{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+	    { " et~al." * }
+	    { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+	  if$
+	}
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      "In "
+    }
+    { "Volume" volume tie.or.space.connect
+      " of " *
+    }
+  if$
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+	{ series empty$
+	    { "need editor, key, or series for " cite$ * " to crossref " *
+	      crossref * warning$
+	      "" *
+	    }
+	    { "{\em " * series * "\/}" * }
+	  if$
+	}
+	{ key * }
+      if$
+    }
+    { format.crossref.editor * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+	{ booktitle empty$
+	    { "need editor, key, or booktitle for " cite$ * " to crossref " *
+	      crossref * warning$
+	      ""
+	    }
+	    { "In {\em " booktitle * "\/}" * }
+	  if$
+	}
+	{ "In " key * }
+      if$
+    }
+    { "In " format.crossref.editor * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { journal emphasize "journal" output.check
+      format.vol.num.pages output
+      format.date "year" output.check
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+	{ "author and editor" editor either.or.check }
+	'skip$
+      if$
+    }
+  if$
+  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      new.block
+      format.number.series output
+      new.sentence
+      publisher "publisher" output.check
+      address output
+    }
+    { new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  new.block
+  format.title "title" output.check
+  howpublished address new.block.checkb
+  howpublished output
+  address output
+  format.date output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+	{ "author and editor" editor either.or.check }
+	'skip$
+      if$
+    }
+  if$
+  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      format.chapter.pages "chapter and pages" output.check
+      new.block
+      format.number.series output
+      new.sentence
+      publisher "publisher" output.check
+      address output
+    }
+    { format.chapter.pages "chapter and pages" output.check
+      new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      format.chapter.pages output
+      new.sentence
+      publisher "publisher" output.check
+      address output
+      format.edition output
+      format.date "year" output.check
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      format.pages output
+      address empty$
+	{ organization publisher new.sentence.checkb
+	  organization output
+	  publisher output
+	  format.date "year" output.check
+	}
+	{ address output.nonnull
+	  format.date "year" output.check
+	  new.sentence
+	  organization output
+	  publisher output
+	}
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+  author empty$
+    { organization empty$
+	'skip$
+	{ organization output.nonnull
+	  address output
+	}
+      if$
+    }
+    { format.authors output.nonnull }
+  if$
+  new.block
+  format.btitle "title" output.check
+  author empty$
+    { organization empty$
+	{ address new.block.checka
+	  address output
+	}
+	'skip$
+      if$
+    }
+    { organization address new.block.checkb
+      organization output
+      address output
+    }
+  if$
+  format.edition output
+  format.date output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  "Master's thesis" format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  title howpublished new.block.checkb
+  format.title output
+  howpublished new.block.checka
+  howpublished output
+  format.date output
+  new.block
+  note output
+  fin.entry
+  empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.btitle "title" output.check
+  new.block
+  "PhD thesis" format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  editor empty$
+    { organization output }
+    { format.editors output.nonnull }
+  if$
+  new.block
+  format.btitle "title" output.check
+  format.bvolume output
+  format.number.series output
+  address empty$
+    { editor empty$
+	{ publisher new.sentence.checka }
+	{ organization publisher new.sentence.checkb
+	  organization output
+	}
+      if$
+      publisher output
+      format.date "year" output.check
+    }
+    { address output.nonnull
+      format.date "year" output.check
+      new.sentence
+      editor empty$
+	'skip$
+	{ organization output }
+      if$
+      publisher output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  format.tr.number output.nonnull
+  institution "institution" output.check
+  address output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  note "note" output.check
+  format.date output
+  fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+  "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+  'len :=
+  s #1 len substring$ =
+    { s len #1 + global.max$ substring$ }
+    's
+  if$
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+  #1 'nameptr :=
+  ""
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { nameptr #1 >
+	{ "   " * }
+	'skip$
+      if$
+      s nameptr "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=
+      nameptr numnames = t "others" = and
+	{ "et al" * }
+	{ t sortify * }
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+  "A " #2
+    "An " #3
+      "The " #4 t chop.word
+    chop.word
+  chop.word
+  sortify
+  #1 global.max$ substring$
+}
+
+% FR: function added to permit sorting by year
+FUNCTION {year.sort}
+{ year empty$
+    { key empty$
+        { "to sort, need year or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { year sort.format.names }
+  if$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+    { key empty$
+	{ "to sort, need author or key in " cite$ * warning$
+	  ""
+	}
+	{ key sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+    { editor empty$
+	{ key empty$
+	    { "to sort, need author, editor, or key in " cite$ * warning$
+	      ""
+	    }
+	    { key sortify }
+	  if$
+	}
+	{ editor sort.format.names }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+    { organization empty$
+	{ key empty$
+	    { "to sort, need author, organization, or key in " cite$ * warning$
+	      ""
+	    }
+	    { key sortify }
+	  if$
+	}
+	{ "The " #4 organization chop.word sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+    { organization empty$
+	{ key empty$
+	    { "to sort, need editor, organization, or key in " cite$ * warning$
+	      ""
+	    }
+	    { key sortify }
+	  if$
+	}
+	{ "The " #4 organization chop.word sortify }
+      if$
+    }
+    { editor sort.format.names }
+  if$
+}
+
+% FR: replaced 'author.sort with 'year.sort
+FUNCTION {presort}
+{ 
+  type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.sort
+    { type$ "proceedings" =
+	'editor.organization.sort
+	{ type$ "manual" =
+            'author.organization.sort
+            'year.sort
+	  if$
+	}
+      if$
+    }
+  if$
+  "    "
+  *
+  year field.or.null sortify
+  *
+  "    "
+  *
+  title field.or.null
+  sort.format.title
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+  #1 'number.label :=
+  #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+  number.label #1 + 'number.label :=
+  label width$ longest.label.width >
+    { label 'longest.label :=
+      label width$ 'longest.label.width :=
+    }
+    'skip$
+  if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+% FR: added \bullet as bibitem command
+FUNCTION {begin.bib}
+{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\makeatletter \renewcommand\@biblabel[1]{#1} \makeatother\begin{thebibliography}{$\bullet$}" write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
diff --git a/omdoc-semantics/macros/old/lf.tex b/omdoc-semantics/macros/old/lf.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c874b3ecfcb4406ef7f10db4c062fd26ced6de0f
--- /dev/null
+++ b/omdoc-semantics/macros/old/lf.tex
@@ -0,0 +1,94 @@
+\newcommand{\LFM}{LFM}
+\newcommand{\parr}{arr}
+
+%basic LF
+%\newcommand{\types}[1]{\op{Types}(#1)}
+%\newcommand{\terms}[2]{{\op{Terms}^{#1}}(#2)}
+\newcommand{\Types}[2]{\op{Types}(#1,#2)}
+\newcommand{\Terms}[3]{{\op{Terms}^{#1,#2}}(#3)}
+\newcommand{\CTypes}[1]{\op{Types}(#1)}
+\newcommand{\CTerms}[2]{{\op{Terms}^{#1}}(#2)}
+
+\newenvironment{LFsig}{\bgroup
+ \setlength{\parindent}{0cm}
+ \renewcommand{\:}{:\;}
+ \renewcommand{\.}{.\;}
+ \renewcommand{\=}{\;=\;}
+ \renewcommand{\arr}{\ensuremath{\;\rightarrow\;}}
+ \renewcommand{\>}{\hspace*{.5cm}}\medskip
+}{
+ \medskip\egroup\\
+}
+
+%modules
+\newcommand{\module}{\mathrm{Mod}}
+\newcommand{\declval}[3]{#1=#3:#2}
+\newcommand{\moddecl}[2]{#1=\{#2\}}
+\newcommand{\modinst}[3]{#1:#2=#3}
+\newcommand{\includ}{\mathrm{include}}
+\newcommand{\subtype}{\mathrm{extend}}
+\newcommand{\incl}[3]{#1\mbox{ where }#2\;#3}
+\newcommand{\modincl}[3]{\includ\;\incl{#1}{#2}{#3}}
+\newcommand{\subtypeincl}[3]{\subtype\;\incl{#1}{#2}{#3}}
+\newcommand{\map}[2]{#1:= #2}
+\newcommand{\ren}[2]{#1\rewrites #2}
+\newcommand{\issigtype}[2]{#1\der #2\;\module}
+\newcommand{\isrename}[3]{#1\der #3::#2}
+\newcommand{\prdecl}[2]{#1\Vdash #2}
+\newcommand{\lpf}[2]{\ov{#2}^{#1}}
+
+%Auxiliary functions
+\newcommand{\domr}[1]{\op{dom}^*(#1)}
+\newcommand{\domst}[2]{\op{dom}^{#1}(#2)}
+\newcommand{\body}[2]{#2^{#1}}
+\newcommand{\context}[2]{#2_{#1}}
+\newcommand{\cobo}[2]{\context{#1}{#2},\body{#1}{#2}}
+\newcommand{\this}[1]{\%this.#1}
+\newcommand{\Ren}[2]{#2^{#1}}
+\newcommand{\repl}[3]{#1[#2/#3]}
+%
+%Extensions
+%\newcommand{\extendf}[2]{\overline{{#1^{#2}}}}
+%\newcommand{\extend}[3]{\extendf{#1}{#2}(#3)}
+%\newcommand{\extendif}[2]{\overline{{#1}^{#2}}}
+%\newcommand{\extendi}[3]{\extendif{#1}{#2}(#3)}
+%\newcommand{\replmap}[3]{{[#3]^{#1,#2}}}
+%
+%\newcommand{\elab}[1]{E(#1)}
+
+%\newcommand{\replmapf}[2]{{[\_]^{#1/#2}}}
+%\newcommand{\ninm}[2]{{{#1}^{#2}}}
+%\newcommand{\lup}[2]{lup^{#1}(#2)}
+%\newcommand{\lupval}[2]{val^{#1}(#2)}
+%\newcommand{\contextst}[3]{cont^{#1,#2}(#3)}
+%\newcommand{\base}[2]{#2\;base\;in\;#1}
+%\newcommand{\notbase}[2]{#2\;not\; base\;in\;#1}
+%\newcommand{\compatible}[5]{C}
+%\newcommand{\spec}[2]{#1\rewrites #2}
+%\newcommand{\inh}[2]{inh(#1,#2)}
+%\newcommand{\comp}[5]{#1\circ^{#2,#4,#5} #3}
+
+%needed?
+%\newcommand{\push}[5]{#4+#5}
+%\newcommand{\pushe}[2]{#1+#2}
+%\newcommand{\dedv}{ded}
+%\newcommand{\ded}{\dedv\;}
+%\newcommand{\redv}{red}
+%\newcommand{\red}{\redv\;}
+%\newcommand{\Par}{Par}
+%\newcommand{\Hyp}{h}
+%\newcommand{\Ccl}{c}
+%\newcommand{\subdet}[2]{#1/#2}
+%\newcommand{\subs}[2]{#1[#2]}
+%\newcommand{\sub}[3]{#1[\subdet{#2}{#3}]}
+%\newcommand{\objects}[2]{Obj_{#1}(#2)}
+%\newcommand{\objectsC}[3]{Obj_{#2}(#1,#3)}
+%\newcommand{\cons}[1]{Cons(#1)}
+%\newcommand{\range}[2]{Rng_{#1}(#2)}
+%\newcommand{\inst}[2]{Inst_{#1}(#2)}
+%\newcommand{\Form}[1]{Form_{#1}}
+%\newcommand{\Judg}[1]{Judg_{#1}}
+%\newcommand{\Proofs}[3]{Prfs_{#1}(#2,#3)}
+%\newcommand{\query}[1]{\%query\; #1}
+%\newcommand{\Val}{val}
+%
diff --git a/omdoc-semantics/macros/old/math.tex b/omdoc-semantics/macros/old/math.tex
new file mode 100644
index 0000000000000000000000000000000000000000..fd6d7e9ac4e2c33d2a4b92454d2148d823b5d4da
--- /dev/null
+++ b/omdoc-semantics/macros/old/math.tex
@@ -0,0 +1,111 @@
+%Brackets
+\newcommand{\norm}[1]{\left\Vert#1\right\Vert}
+\newcommand{\abs}[1]{\left\vert#1\right\vert}
+\newcommand{\set}[1]{\left\{#1\right\}}
+\newcommand{\rang}[1]{\langle#1\rangle}
+\newcommand{\widerang}[1]{$<$#1$>$}
+
+
+%Symbols and Styles
+\renewcommand{\epsilon}{\varepsilon}
+\newcommand{\eps}{\varepsilon}
+\newcommand{\yps}{\upsilon}
+\newcommand{\ups}{\upsilon}
+\newcommand{\Ypsilon}{\Upsilon}
+\renewcommand{\phi}{\varphi}
+\renewcommand{\theta}{\vartheta}
+\newcommand{\vu}{\nu}
+\newcommand{\To}{\longrightarrow}
+\newcommand{\N}{\mathbb{N}}
+\newcommand{\n}{\mathbb{N}^*}
+\newcommand{\R}{\mathbb{R}}
+\newcommand{\Q}{\mathbb{Q}}
+\newcommand{\Z}{\mathbb{Z}}
+\newcommand{\app}{\approx}
+\newcommand{\tim}{\times}
+\newcommand{\sq}{\subseteq}
+\newcommand{\Sq}{\supseteq}
+\newcommand{\impl}{\Rightarrow}
+\newcommand{\Arr}{\Rightarrow}
+\newcommand{\Darr}{\Leftrightarrow}
+\renewcommand{\iff}{\Darr}
+\newcommand{\arr}{\rightarrow}
+\newcommand{\larr}{\leftarrow}
+\newcommand{\darr}{\leftrightarrow}
+\newcommand{\harr}{\hookrightarrow}
+\newcommand{\marr}{\mapsto}
+\newcommand{\caret}{\hat{\;}}
+\newcommand{\nin}{\not\in}
+\newcommand{\sm}{\setminus}
+\newcommand{\es}{\varnothing}
+\newcommand{\pwr}{\mathcal{P}}
+\newcommand{\isom}{\cong}
+\newcommand{\rewrites}{\rightsquigarrow}
+\renewcommand{\|}{\;|\;}
+\newcommand{\mi}[1]{\mathit{#1}}
+
+
+%semantics of genfrac: #1, #2 delimiters; #3 line tickness; #4 scriptsize (0-3); #5, #6 items
+\newcommand{\myatop}[3][]{\genfrac{}{}{0pt}{#1}{#2}{#3}} %two items on top of each other, optional argument: 0-3 for normal-small script
+\newcommand{\myatopp}[3]{\myatop{\myatop[0]{#1}{#2}}{#3}} %three items on top of each other
+\newcommand{\ov}[1]{\overline{#1}}
+\newcommand{\und}[1]{\underline{#1}}
+\newcommand{\cas}[1]{\begin{cases}#1\end{cases}}
+\newcommand{\bcas}[1]{\left.\cas{#1}\right\}}
+\newcommand{\mathll}[2][l]{\providecommand{\nl}[1][.2cm]{\\[##1]}\begin{array}{#1}#2\end{array}}
+\newcommand{\Ceq}[1]{\;\stackrel{#1}{=}\;}
+\newcommand{\bracebelow}[2]{\underbrace{#1}_{#2}}
+\newcommand{\braceabove}[2]{\overbrace{#1}^{#2}}
+\newcommand{\op}[1]{\mathit{#1}}
+\newcommand{\rew}[2]{#1\rewrites #2}
+\newcommand{\equat}[2]{\begin{equation}\label{#1}#2\end{equation}}
+\newcommand{\equatpt}[3]{\begin{equation*}\label{#1}\tag{#2\;\theequation}#3\stepcounter{equation}\end{equation*}}
+\newenvironment{myeqnarray}[1][=] %\nl for new line right of the = symbol
+ {\newcommand{\nl}{\\\multicolumn{1}{c}{}&}\begin{equation*}\begin{array}{l@{\;#1\;}l@{\tb}l}}
+ {\end{array}\end{equation*}}
+
+%mappings
+\newcommand{\dom}[1]{\op{dom}(#1)}
+\newcommand{\cod}[1]{\op{cod}(#1)}
+\newcommand{\img}[1]{\op{im}(#1)}
+
+%Mathematical Text
+\newcommand{\mof}{\;\mathrm{of}\;}
+\newcommand{\mif}{\;\mathrm{if}\;}
+\newcommand{\mthen}{\;\mathrm{then}\;}
+\newcommand{\mfor}{\;\mathrm{for}\;}
+\newcommand{\mand}{\;\mathrm{and}\;}
+\newcommand{\msome}{\;\mathrm{some}\;}
+\newcommand{\mall}{\;\mathrm{all}\;}
+\newcommand{\mforall}{\;\mathrm{for}\;\mathrm{all}\;}
+\newcommand{\mforsome}{\;\mathrm{for}\;\mathrm{some}\;}
+\newcommand{\mnot}{\;\mathrm{not}\;}
+\newcommand{\mno}{\;\mathrm{no}\;}
+\newcommand{\mor}{\;\mathrm{or}\;}
+\newcommand{\minn}{\;\mathrm{in}\;}
+\newcommand{\mwith}{\;\mathrm{with}\;}
+\newcommand{\mwhere}{\;\mathrm{where}\;}
+\newcommand{\mexists}{\;\mathrm{exists}\;}
+\newcommand{\miff}{\;\mathrm{iff}\;}
+\newcommand{\mimplies}{\;\mathrm{implies}\;}
+\newcommand{\msuchthat}{\;\mathrm{such}\;\mathrm{that}\;}
+\newcommand{\motherwise}{\;\mathrm{otherwise}\;}
+\newcommand{\mtext}[1]{\;\mathrm{#1}\;}
+%Changed command! For old documents uncomment the next line
+%\renewcommand{\mif}{&\mathrm{if}\;}
+\newcommand{\mifc}{&\mathrm{if}\;}
+\newcommand{\mothw}{&\mathrm{otherwise}}
+
+%Inferences
+\newcommand{\+}{\;+\;}
+\newcommand{\pp}{\tb+\tb}
+\newcommand{\seq}[2]{#1\;\;\mathbf{\vdash}\;\;#2}
+\newcommand{\rul}[2]{\frac{\begin{array}{c}#2\end{array}}{\begin{array}{c}#1\end{array}}}
+\newcommand{\ruln}[3]{\frac{\begin{array}{c}#3\end{array}}{\begin{array}{c}#2\end{array}}\texttt{#1}}
+\newcommand{\Rul}[3]{\begin{equation*}\label{#1}\tag{R\;\therul}\rul{#2}{#3}\stepcounter{rul}\end{equation*}}
+
+%miscellaneous
+%\newfunction{name}{presentation} supposed to define a mathematical function with one argument. If the argument is empty, it is not enclosed in round brackets. -- doesn't work
+%\def\newfunction#1#2{\def\temp{}\def\expandafter\csname#1\endcsname##1{\def\temparg{##1}#2\ifx\temp\temparg\else(##1)\fi}}
+
+\myuse{categories}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/old/mmt.sty b/omdoc-semantics/macros/old/mmt.sty
new file mode 100644
index 0000000000000000000000000000000000000000..8edf690fbcc751cff27baa66a6fe280e7b3bfd58
--- /dev/null
+++ b/omdoc-semantics/macros/old/mmt.sty
@@ -0,0 +1,354 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% setting the appearance of listings
+\lstdefinelanguage{MMT}[]{XML}%
+  {morekeywords={omdoc,catalogue,loc,ignore,with,ref,omgroup,adt,sortdef,insort,constructor,
+                 recognizer,argument,destructor,omlet,private,code,input,output,effect,data,
+                 metadata,extradata,proof,proofobject,metacomment,derive,conclude,hypothesis,
+                 method,premise,presentation,use,omstyle,xslt,style,element,attribute,text,
+                 value-of,recurse,exercise,hint,solution,mc,choice,answer,CMP,omtext,object,
+                 commonname,type,FMP,assumption,conclusion,axiom,definition,requation,pattern,
+                 value,measure,ordering,assertion,alternative,example,theory,
+                 narrative,tableofcontents,authorindex,content,pcontext,pc,
+                 map,separator,operator,lbrack,rbrack,
+                 OMS,OMV,OMI,OMB,OMSTR,OMF,OMA,OMBIND,OMBVAR,OME,OMATTR,OMATP,OMOBJ,
+                 om:OMS,om:OMV,om:OMI,om:OMB,om:OMSTR,om:OMF,om:OMA,om:OMBIND,om:OMBVAR,
+                 om:OME,om:OMATTR,om:OMATP,
+                 dc:contributor,dc:creator,dc:title,dc:subject,dc:description,dc:publisher,dc:type,
+                 dc:format,dc:source,dc:language,dc:relation,dc:rights,dc:date,dc:identifier,
+                 % now the new stuff
+                 constant,view,structure,maps,metamorphism,conass,strass},
+   sensitive=true}
+
+\lstset{float=htb,columns=flexible,frame=none,language=MMT,basicstyle=\scriptsize,
+  mathescape,breaklines,showstringspaces=false,
+  indexstyle=\indextt,indexstyle=[1]\indexelement,indexstyle=[2]\indexattribute}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%statements and other notation related to the grammar
+\newcommand{\bnfas}{::=} %bebecomes in BNF
+\newcommand{\bnfalt}{\;\|\;} %alternative in BNF
+\newcommand{\bnfbracket}[1]{[#1]} %brackets in BNF
+%\newcommand{\terminal}[1]{#1} %terminal symbols
+\newcommand{\TG}{\Lambda} %the symbol used for a library
+\newcommand{\TGv}{\TG'} %a primed version to be safe against evolving notation
+\newcommand{\TGo}{\TG} %another variant used with foundations
+\newcommand{\emptydb}{\cdot} %empty library
+\newcommand{\emptytheo}{\cdot} %emtpy theory body
+\newcommand{\emptygraph}{\cdot} %emtpy theory graph
+\providecommand{\emptycon}{\cdot} %empty context
+\newcommand{\dotdot}{..} %access to meta-level
+\newcommand{\dirup}{..} %access to super-level
+%\newcommand{\dot}{.} %a forbidden character
+\newcommand{\undef}{{\bot}} %the symbol used for undefined terms
+\newcommand{\hid}{{\top}} %the symbol used for hiding declared in the theory omdoc
+\newcommand{\key}{{\op{key}}} %the symbol for keys declared in the theory omdoc
+\newcommand{\oma}[1]{{@}(#1)} %OMA
+\newcommand{\ombind}[3]{{\beta}(#1,#2,#3)} %OMBIND without condition
+\newcommand{\ombindc}[4]{{\beta}(#1,#2,#3,#4)} %OMBIND with condition
+\newcommand{\omattr}[3]{{\alpha}(#1,#2\mapsto#3)} %OMATTR OMATP #2 #3 /OMATP #1 /OMATTR
+\newcommand{\ma}[2]{{#1}^{#2}} %applying a morphism to a term
+\newcommand{\mmtident}[1]{\op{id}_{#1}} %the identity morphism
+\providecommand{\Var}{\op{Var}} %the set of variables
+\renewcommand{\yps}{x} % variables
+
+\newcommand{\docdecl}[2]{#1\,:=\,\left\{#2\right\}} %document declaration
+\newcommand{\thdeclm}[3]{#1\,\stackrel{#2}{:=}\,\left\{#3\right\}} %theory declaration with meta-theory
+\newcommand{\vwdeclm}[5]{#1\,:\,#2\arr#3\,\stackrel{#4}{:=}\,\left\{#5\right\}} %view declaration with meta-morphism
+\newcommand{\vwdef}[4]{#1\,:\,#2\arr#3:=\,#4} %view declaration with meta-morphism
+\newcommand{\impddm}[4]{#1\,:\,#2\,\stackrel{#3}{:=}\,{\left\{#4\right\}}} %structure declaration with meta-morphism
+\newcommand{\thdecl}[2]{\thdeclm{#1}{}{#2}} %theory declaration without meta-theory
+\newcommand{\vwdecl}[4]{\vwdeclm{#1}{#2}{#3}{}{#4}} %view (theorem link) declaration without meta-morphism
+\newcommand{\impdd}[3]{\impddm{#1}{#2}{}{#3}} %structure declaration
+\newcommand{\dimpdd}[3]{\symdd{#1}{#2}{#3}} %defined structure
+% symbol declaration
+% \symdd{name}{type}{definition} yields name : type := definition
+% if type or definition are omitted, so is their delimiter
+\newcommand{\symdd}[3]{\def\@empty{}\def\@typ{#2}\def\@def{#3}#1\ifx\@typ\@empty\else\,:\,\@typ\fi\ifx\@def\@empty\else\,:=\,\@def\fi}
+\newcommand{\symdecl}[2]{#1\,:\,#2} %symbol declaration with omitted definiens
+\newcommand{\import}[1]{\mathtt{import}\;#1} %unnamed import declaration
+
+\newcommand{\maps}[2]{#1\mapsto#2} %an instantiation
+\newcommand{\hides}[1]{\maps{#1}{\hid}} %a hiding, now defined in terms of \maps
+\newcommand{\includes}[2]{#1\rewrites #2} %an inclusion, currently not used
+\newcommand{\oblig}[2]{\maps{#1}{#2}} %discharging a proof obligation, now defined in terms of \maps
+\newcommand{\mapall}[1]{#1} %default instantiation
+\newcommand{\emptyimport}[1]{\cdot} %empty substitution defaulting to import
+\newcommand{\emptyview}{\cdot} %empty substitution defaulting to \hid
+
+\newcommand{\ifbot}[2]{#1?#2} %if #1=\bot, then #2 else #1
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%names
+\newcommand{\localpathsep}{/}
+\newcommand{\globalpathsep}{?}
+\newcommand{\mpath}[2]{#1\globalpathsep\ompath{#2}}
+\newcommand{\spath}[2]{#1\globalpathsep\ompath{#2}}
+\newcommand{\triple}[3]{\spath{\mpath{#1}{#2}}{#3}}
+\newcommand{\mmt@assoc}[2]{\let\@tmpop=\relax\@for\@I:=#2\do{\@tmpop\@I\let\@tmpop=#1}}% flexary arguments
+\newcommand{\ompath}[1]{\mmt@assoc{\localpathsep}{#1}} %lists used in theory paths and flat names
+\newcommand{\mmt@cnassoc}[2]{\let\@tmpop=\relax\@for\@I:=#2\do{\@tmpop\cn{\@I}\let\@tmpop=#1}}% flexary arguments
+\newcommand{\cnpath}[1]{\mmt@cnassoc{\localpathsep}{#1}} %lists used in theory paths and flat names
+\newcommand{\lapp}[2]{#1\localpathsep #2} %appending to a list
+\newcommand{\cn}[1]{\mathtt{#1}} %concrete names (i.e., those not given by meta-variables)
+\newcommand{\uq}[1]{\underline{#1}} %unqualified names
+
+%obsolete
+\newcommand{\omname}[3]{#1\globalpathsep#2\globalpathsep#3} %an mmt name as a triple of URI, theory path, and flat local name
+\newcommand{\omnameth}[2]{#1\globalpathsep#2} %an mmt name as a pair of URI and theory path
+\newcommand{\nameup}[1]{\op{up}(#1)} %go up in name space
+\newcommand{\namedown}[2]{#1\globalpathsep#2} %go down in name space
+\newcommand{\namedowni}[2]{#1/#2} %append one unqualified name to an mmt name of an import
+\newcommand{\ompathdots}[2]{\thpath{#1,\ldots,#2}} %an abbreviation for a theory path with \ldots
+\newcommand{\lconc}[2]{#1\localpathsep #2} %concatenating two lists
+\newcommand{\emptylist}{\localpathsep} %the empty list
+%shortcuts
+\newcommand{\us}{\uq{s}}
+\newcommand{\uc}{\uq{c}}
+\newcommand{\uh}{\uq{h}}
+\newcommand{\ui}{\uq{i}}
+\newcommand{\uj}{\uq{j}}
+\newcommand{\um}{\uq{v}}
+\newcommand{\uT}{\uq{T}}
+\newcommand{\uS}{\uq{S}}
+
+\newcommand{\resolve}[2]{\op{resolve}(#1,#2)} %unqualified names
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%lookup functions
+\newcommand{\gdom}[1]{\op{Doc}(#1)}
+\newcommand{\thdom}[1]{\op{Thy}(#1)}
+\newcommand{\tmdom}[1]{\op{Mor}(#1)}
+\newcommand{\sdom}[2]{\op{Sym}^{#1}(#2)}
+\newcommand{\scdom}[2]{\op{Con}^{#1}(#2)}
+\newcommand{\sidom}[2]{\op{Str}^{#1}(#2)}
+\newcommand{\llkp}[2]{#1(#2)}
+\newcommand{\glkp}[2]{#1(#2)}
+\newcommand{\tlkp}[2]{#1(#2)}
+\newcommand{\slkp}[3]{#1^{#2}(#3)}
+\newcommand{\slkpv}[3]{#1_*^{#2}(#3)}
+%\newcommand{\slkpo}[2]{#1(#2)}
+\newcommand{\body}[2]{\op{body}^{#1}(#2)}
+\newcommand{\meta}[2]{\op{meta}^{#1}(#2)}
+\newcommand{\domain}[2]{\op{dom}^{#1}(#2)}
+\newcommand{\codomain}[2]{\op{cod}^{#1}(#2)}
+%auxiliary functions
+\newcommand{\strip}[1]{\op{str}(#1)}
+\newcommand{\names}[2]{\op{Nam}^{#1}(#2)}
+\newcommand{\pref}[1]{\op{pref}(#1)}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%judgments
+\newcommand{\extendtg}[3]{#1+#3}
+\newcommand{\lastg}[1]{\op{lastDoc}\left(#1\right)}
+\newcommand{\lastT}[1]{\op{lastThy}\left(#1\right)}
+\newcommand{\lastm}[1]{\op{lastLink}\left(#1\right)}
+\newcommand{\judgmentsymbol}{\vartriangleright} %the symbol to distinguish judgments
+\newcommand{\library}[1]{\judgmentsymbol #1} %valid library
+\newcommand{\gsta}[2]{{#1}\judgmentsymbol #2} %valid document declaration
+\newcommand{\tsta}[3]{{#1}\judgmentsymbol #3} %valid theory level statement
+\newcommand{\ssta}[3]{{#1}\judgmentsymbol #3} %valid inner statement
+\newcommand{\sins}[3]{{#1}\judgmentsymbol #3} %valid instantiation
+\newcommand{\oterm}[3]{#1\judgmentsymbol_{#2}#3} %valid term
+\newcommand{\otermtype}[4]{#1\judgmentsymbol_{#2}#3:#4} %valid term of some type
+\newcommand{\otermequal}[4]{#1\judgmentsymbol_{#2}#3\equiv #4} %equality of terms
+\newcommand{\omorphism}[4]{{#1}\judgmentsymbol#2:#3\arr#4} %valid morphism
+\newcommand{\newname}[3]{#1\judgmentsymbol^{#2} #3\;\mathrm{new}} %new name
+\newcommand{\definedleq}[5]{#1\judgmentsymbol_{#2} #3\;|^{#4}\; #5} %definedness ordering
+%\newcommand{\definedless}[3]{#1\judgmentsymbol #2< #3} %definedness ordering
+\newcommand{\definedleqm}[6]{#1\judgmentsymbol_{#2} #3\;|^{#4}\;#5:#6} %definedness ordering for morphisms
+\newcommand{\rewrite}[3]{#1\judgmentsymbol #2\rewrites#3} %elimination of morphism
+\newcommand{\nrewrite}[3]{#1\judgmentsymbol #2\not\rewrites#3} %negation of the above
+\newcommand{\rewr}[1]{\ov{#1}} %abbreviation for result of morphism elimination
+
+\newcommand{\metai}[3]{\op{mi}^{#1}_{#3}(#2)}
+\newcommand{\metan}[3]{N(#2)}
+\newcommand{\foundtype}[5]{#2^{#1,#3}(#4:#5)} %typing as determined by foundation
+\newcommand{\foundequal}[5]{#2^{#1,#3}(#4\equiv#5)} %equality as determined by foundation
+\newcommand{\PhiD}{{\Phi^{Def}}} %default foundation
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% names of inference rules
+%\renewcommand{\rulename}[1]{{\it{#1}}}
+\newcommand{\algname}[2]{{\it{#1}}#2}
+
+\newcommand{\mmtDoc}{Doc}
+\newcommand{\mmtTth}{Thy}
+\newcommand{\TGsys}{}
+\newcommand{\TGemptydatabase}{\algname\TGsys{Lib_\es}}
+\newcommand{\TGemptygraph}{\algname\TGsys{\mmtDoc_\es}}
+\newcommand{\TGdocument}{\algname\TGsys{\mmtDoc}}
+\newcommand{\TGemptytheory}{\algname\TGsys{\mmtTth_\es}}
+\newcommand{\TGsymbol}{\algname\TGsys{Con}}
+\newcommand{\TGemptysubtheory}{\algname\TGsys{Sth_\es}}
+\newcommand{\TGsubtheory}{\algname\TGsys{\mmtTth_{Sth}}}
+\newcommand{\TGtoplevelstatement}{\algname\TGsys{Mod}}
+\newcommand{\TGstatement}{\algname\TGsys{Sym}}
+\newcommand{\TGemptyview}{\algname\TGsys{Viw_\es}}
+\newcommand{\TGemptyviewmapall}{\algname\TGsys{Viw_\mu}}
+\newcommand{\TGviewinstantiation}{\algname\TGsys{Viw_{Ass}}}
+\newcommand{\TGemptyimport}{\algname\TGsys{Str_\es}}
+\newcommand{\TGemptyimportmapall}{\algname\TGsys{Str_\mu}}
+\newcommand{\TGimportinstantiation}{\algname\TGsys{Str_{Ass}}}
+\newcommand{\TGinstsymb}{\algname\TGsys{ConAss}}
+\newcommand{\TGinstimp}{\algname\TGsys{StrAss}}
+\newcommand{\TGdefinedleq}{\algname\TMsys|_{Con}}
+\newcommand{\TGdefinedleqm}{\algname\TMsys|_{Str}}
+\newcommand{\TGnewnamedoc}{\algname\TGsys{new_{g}}}
+\newcommand{\TGnewnameth}{\algname\TGsys{new_{T}}}
+\newcommand{\TGnewnamem}{\algname\TGsys{new_{m}}}
+\newcommand{\TGnewnamedocsub}{\algname\TGsys{new'_{g}}}
+
+\newcommand{\TOsys}{\cal{T}}
+\newcommand{\TOspecial}{\algname\TOsys_{\hid}}
+\newcommand{\TOsym}{\algname\TOsys_{Con}}
+\newcommand{\TOvar}{\algname\TOsys_{Var}}
+\newcommand{\TOapp}{\algname\TOsys_{@}}
+\newcommand{\TObind}{\algname\TOsys_{\beta}}
+\newcommand{\TOattr}{\algname\TOsys_{\alpha}}
+\newcommand{\TOmor}{\algname\TOsys_{\mu}}
+%\newcommand{\TOax}{\algname\TOsys{ax}}
+%\newcommand{\TOrewr}{\algname\TOsys{rewr}}
+%\newcommand{\TOalpha}{\algname\TOsys{\alpha conv}}
+%\newcommand{\TOequalt}{\algname\TOsys{equtyp}}
+\newcommand{\TEtype}{\algname\TOsys_{:}}
+\newcommand{\TEequal}{\algname\TOsys_{\equiv}}
+
+\newcommand{\TMsys}{{\cal{M}}}
+\newcommand{\TMid}{\algname\TMsys_{id}}
+\newcommand{\TMmor}{\algname\TMsys_{m}}
+%\newcommand{\TMimp}{\algname\TMsys{Imp}}
+\newcommand{\TMcomp}{\algname\TMsys_{\bullet}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% operations
+\newcommand{\flatten}[3]{#3^{#1}(#2)}
+\newcommand{\flattenx}[2]{\mtext{translate}#1 \mtext{by} #2}
+\newcommand{\mergei}[2]{#1\cup #2}
+\newcommand{\elimi}[1]{\widetilde{#1}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% systems
+\newcommand{\ModSys}{\texorpdfstring{\scshape{Mmt}}{MMT}}
+\newcommand{\mmt}{\ModSys}
+\newcommand{\scsys}[1]{{\sc{#1}}\index{#1}}
+\newcommand{\relaxng}{\scsys{RelaxNG}}
+\providecommand{\mathml}{\scsys{MathML}}
+\providecommand{\openmath}{\scsys{OpenMath}}
+\providecommand{\omdoc}{\scsys{OMDoc}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Foundations
+\newcommand{\PhiLF}{{\Phi^{DTT}}} %DTT foundation
+\newcommand{\lfoftype}[2]{\der^{DTT} #1:#2}
+\newcommand{\lfisequal}[2]{\der^{DTT} #1\equiv #2}
+\newcommand{\lfsymi}[1]{\namedowni{i}{\cn{#1}}}
+\newcommand{\lfsym}[1]{\namedown{LF}{\cn{#1}}}
+%\newcommand{\elab}[2]{E^{#1}(#2)}
+\newcommand{\PhiZF}{{\Phi^{ST}}} %ZFC foundation
+\newcommand{\Log}{\op{Log}} %base logic
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\newcommand{\frm}{\cn{o}} %the base symbol for the type of formulas
+%\newcommand{\wff}{\cn{wff}} %the base symbol for the judgment for well-formed formulas
+%\newcommand{\prf}{\cn{p}} %the base symbol for the truth judgment about formulas
+%
+%\newcommand{\Thm}[1]{\op{Thm}(#1)}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% miscallenous other commands that should be categorized better
+\newcommand{\om}[1]{\fbox{\ensuremath{#1}}}
+\newcommand{\deq}{\colon=}
+\providecommand{\dom}[1]{\mathop{dom}(#1)}
+\newcommand{\llquote}[1]{\ensuremath{\langle\kern-.25em\langle\hbox{\sl{#1}}\rangle\kern-.25em\rangle}}
+\newcommand{\NN}{{\mathbb{N}}}
+\newcommand{\functors}[2]{S\Rightarrow T} %functors
+
+%xml encoding
+\newcommand{\enc}[1]{E(#1)}
+\newcommand{\omdocoms}[1]{\op{OMDoc}(\texttt{#1})}
+
+% for kwarc.bib
+%\def\LNAI{LNAI}
+%\def\LNCS{LNCS}
+%\def\PROC{Proceedings }
+\newcommand{\USA}{USA}
+\newcommand{\cG}{{\cal G}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%old stuff that seems to be redundant
+
+%names
+%\newcommand{\localpart}[1]{\widetilde{#1}} %get the last element of the third component of an mmt name -- obsolete
+
+%additional old syntax parts
+%\newcommand{\moddecl}[2]{#1=\{#2\}}
+%\newcommand{\modinst}[3]{#1:#2=#3}
+%\newcommand{\map}[2]{#1:= #2}
+%\newcommand{\incl}[3]{#1\mbox{ where }#2\;#3}
+%\newcommand{\modincl}[3]{\includ\;\incl{#1}{#2}{#3}}
+%\newcommand{\includ}{\mathrm{include}}
+%\newcommand{\Na}{Name}
+%\newcommand{\lam}[2]{\lambda\,#1\!:\!#2.\;}
+%\newcommand{\kity}{\op{type}}
+%\newcommand{\declval}[3]{#1=#3:#2}
+
+%\newcommand{\baseTG}{\Lambda} %the symbol used for a library
+%\newcommand{\undefall}{\maps{\ast}{\bot}} %empty substitution defaulting to \bot
+%\newcommand{\metais}[1]{\op{meta}=#1} 
+%\newcommand{\symdefin}[2]{#1:=#2} %symbol definition
+%\newcommand{\judgment}[2]{#1:#2} %judgment declaration
+%\newcommand{\judgdef}[2]{#1:=#2} %judgment definition
+%\newcommand{\assertion}[2]{#1:#2} %assertion declaration
+%\newcommand{\assdef}[2]{#1:=#2} %assertion (proof) definition
+%\newcommand{\deflink}[3]{#1:#2[#3]} %import (definitonal link) declaration without meta-morphism
+%\newcommand{\deflinkm}[4]{#1:#2^{#3}[#4]} %import declaration with meta-morphism
+%\newcommand{\assertiontop}[4]{{#1\vdash\;} #2=#4:\chc{#3}}
+
+%\newcommand{\tglookup}[2]{\op{lookup}^{#1}(#2)}
+%\newcommand{\flatdb}[1]{\op{FlatDb}(#1)}
+%\newcommand{\flatgraph}[3]{\op{FlatGraph}^{#1,#2}(#3)}
+%\newcommand{\flattheo}[3]{\op{FlatTheo}^{#1,#2}(#3)}
+%\newcommand{\flatsofar}[1]{\op{FlatSoFar}(#1)}
+%\newcommand{\defineflat}[1]{F:=F^{#1}}
+%\newcommand{\addflat}[1]{\op{AddFlat}\left(#1\right)}
+%\newcommand{\flatdecls}[2]{\op{Flatten}^{#1}(#2)}
+%\newcommand{\flatdecl}[3]{\left[#1=#3:#2\right]}
+%%\newcommand{\flataxioms}[2]{\flatdecls{#1}{#2}}
+%%\newcommand{\flataxiom}[3]{\flatdecl{#1}{#2}{#3}}
+%\newcommand{\metaimp}[2]{\op{metaimp}^{#1}(#2)} %-- obsolete
+%\newcommand{\hideafter}[2]{\op{hideaft}^{#2}(#1)} %-- obsolete
+%\newcommand{\included}[1]{\op{inc}(#1)}%-- obsolete
+%\newcommand{\hidden}[2]{#1\uparrow #2}%-- obsolete
+%\newcommand{\ifnotbot}[2]{{#1}?#2}%-- obsolete
+%\newcommand{\extend}[2]{{#2}^{#1}}%-- obsolete
+%\newcommand{\extendf}[1]{#1}%-- obsolete
+
+%%shortcuts for contexts
+%\newcommand{\tcont}{\TG;\docdecl{g}{\gamma}}
+%\newcommand{\scont}{\TG;\docdecl{g}{\gamma};\thdeclm{\uT}{M}{\theta}}
+%\newcommand{\ocont}{\TG;\docdecl{g}{\gamma};\thdeclm{\uT}{M}{\theta};\Ypsilon}
+%
+%\newcommand{\graph}[3]{\library{#1,\;\docdecl{#2}{#3}}} %valid document declaration
+%\newcommand{\theory}[6]{\graph{#2}{#1}{#3,\;\thdeclm{#4}{#5}{#6}}} %valid theory decclaration -- obsolete
+%\newcommand{\theoryname}[2]{#1\judgmentsymbol #2} %valid theory name -- obsolete
+%\newcommand{\substitution}[4]{{#1}\judgmentsymbol#2:#3\dashrightarrow #4} %valid substitution -- obsolete
+%\newcommand{\substitutionm}[5]{{#1}\judgmentsymbol#2:#4\stackrel{#3}{{\circ}\!\!\dashrightarrow} #5} %valid substitution with meta-morphism -- obsolete
+%\newcommand{\totsubstitution}[4]{{#1}\judgmentsymbol#2:#3\dashrightarrow^{t} #4} %valid total substitution -- obsolete
+%\newcommand{\totsubstitutionm}[5]{{#1}\judgmentsymbol#2:#4\stackrel{#3}{\dashrightarrow} #5} %valid total substitution with meta-morphism  -- obsolete
+%%\newcommand{\structure}[4]{#2\judgmentsymbol_{#1}#3:#4} %valid structure -- obsolete
+%\newcommand{\totmorphism}[4]{{#1}\judgmentsymbol#2:#3\arr#4} %valid total morphism -- obsolete
+%\newcommand{\judgmentoftype}[4]{#1\judgmentsymbol_{#2}#3:#4\;\texttt{Jdg}} %valid judgment of some type  -- obsolete
+%\newcommand{\context}[3]{#1\judgmentsymbol_{#2}#3\;\texttt{Ctx}} %valid context -- obsolete
+%\newcommand{\varobject}[4]{#1;#3\judgmentsymbol_{#2}#4} %valid term in context -- obsolete
+%\newcommand{\varobjectoftype}[5]{#1;#3\judgmentsymbol_{#2}#4:#5} %valid term in context of some type -- obsolete
+%\newcommand{\varequal}[5]{#1;#3\judgmentsymbol_{#2}#4\equiv #5} %equality of terms in context -- obsolete
+%\newcommand{\varjudgmentoftype}[5]{#1;#3\judgmentsymbol_{#2}#4:#5\;\texttt{Jdg}} %valid judgment in context of some type -- obsolete
+%\newcommand{\assertionoftype}[4]{\objectoftype{#1}{#2}{#3}{#4}} %valid proof in context of some judgment -- obsolete
+
+%base theories
+%\newcommand{\omdocbase}{\cn{omdoc}} %the name of the base theory for omdoc
+%\newcommand{\omdocbody}{\symdecl{\hid}{\bot},\;\symdecl{\key}{\bot}} %the body of said theory
+%\newcommand{\chc}[1]{{\scriptstyle\vdash}#1} %abbreviation for the truth judgment
+%\newcommand{\omdoclogic}{logic}
+%\renewcommand{\Form}[1]{\op{Form}(#1)}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/old/myded.sty b/omdoc-semantics/macros/old/myded.sty
new file mode 100644
index 0000000000000000000000000000000000000000..676eed51c3a97a9eab5cda3bac5ca305e0e4edc6
--- /dev/null
+++ b/omdoc-semantics/macros/old/myded.sty
@@ -0,0 +1,2 @@
+\myusepack{ded}
+\renewcommand{\cbox@post@space}{-1em} %corrects the spacing in ded.sty
\ No newline at end of file
diff --git a/omdoc-semantics/macros/old/proof.sty b/omdoc-semantics/macros/old/proof.sty
new file mode 100644
index 0000000000000000000000000000000000000000..ecb3c102caa98f775acaf9057f21c71119484fe7
--- /dev/null
+++ b/omdoc-semantics/macros/old/proof.sty
@@ -0,0 +1,278 @@
+%       proof.sty       (Proof Figure Macros)
+%
+%       version 3.0 (for both LaTeX 2.09 and LaTeX 2e)
+%       Mar 6, 1997
+%       Copyright (C) 1990 -- 1997, Makoto Tatsuta (tatsuta@nii.ac.jp)
+% 
+% This program is free software; you can redistribute it or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either versions 1, or (at your option)
+% any later version.
+% 
+% This program is distributed in the hope that it will be useful
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+%       Usage:
+%               In \documentstyle, specify an optional style `proof', say,
+%                       \documentstyle[proof]{article}.
+%
+%       The following macros are available:
+%
+%       In all the following macros, all the arguments such as
+%       <Lowers> and <Uppers> are processed in math mode.
+%
+%       \infer<Lower><Uppers>
+%               draws an inference.
+%
+%               Use & in <Uppers> to delimit upper formulae.
+%               <Uppers> consists more than 0 formulae.
+%
+%               \infer returns \hbox{ ... } or \vbox{ ... } and
+%               sets \@LeftOffset and \@RightOffset globally.
+%
+%       \infer[<Label>]<Lower><Uppers>
+%               draws an inference labeled with <Label>.
+%
+%       \infer*<Lower><Uppers>
+%               draws a many step deduction.
+%
+%       \infer*[<Label>]<Lower><Uppers>
+%               draws a many step deduction labeled with <Label>.
+%
+%       \infer=<Lower><Uppers>
+%               draws a double-ruled deduction.
+%
+%       \infer=[<Label>]<Lower><Uppers>
+%               draws a double-ruled deduction labeled with <Label>.
+%
+%       \deduce<Lower><Uppers>
+%               draws an inference without a rule.
+%
+%       \deduce[<Proof>]<Lower><Uppers>
+%               draws a many step deduction with a proof name.
+%
+%       Example:
+%               If you want to write
+%                           B C
+%                          -----
+%                      A     D
+%                     ----------
+%                         E
+%       use
+%               \infer{E}{
+%                       A
+%                       &
+%                       \infer{D}{B & C}
+%               }
+%
+
+%       Style Parameters
+
+\newdimen\inferLineSkip         \inferLineSkip=2pt
+\newdimen\inferLabelSkip        \inferLabelSkip=5pt
+\def\inferTabSkip{\quad}
+
+%       Variables
+
+\newdimen\@LeftOffset   % global
+\newdimen\@RightOffset  % global
+\newdimen\@SavedLeftOffset      % safe from users
+
+\newdimen\UpperWidth
+\newdimen\LowerWidth
+\newdimen\LowerHeight
+\newdimen\UpperLeftOffset
+\newdimen\UpperRightOffset
+\newdimen\UpperCenter
+\newdimen\LowerCenter
+\newdimen\UpperAdjust
+\newdimen\RuleAdjust
+\newdimen\LowerAdjust
+\newdimen\RuleWidth
+\newdimen\HLabelAdjust
+\newdimen\VLabelAdjust
+\newdimen\WidthAdjust
+
+\newbox\@UpperPart
+\newbox\@LowerPart
+\newbox\@LabelPart
+\newbox\ResultBox
+
+%       Flags
+
+\newif\if@inferRule     % whether \@infer draws a rule.
+\newif\if@DoubleRule    % whether \@infer draws doulbe rules.
+\newif\if@ReturnLeftOffset      % whether \@infer returns \@LeftOffset.
+\newif\if@MathSaved     % whether inner math mode where \infer or
+                        % \deduce appears.
+
+%       Special Fonts
+
+\def\DeduceSym{\vtop{\baselineskip4\p@ \lineskiplimit\z@
+    \vbox{\hbox{.}\hbox{.}\hbox{.}}\hbox{.}}}
+
+%       Math Save Macros
+%
+%       \@SaveMath is called in the very begining of toplevel macros
+%       which are \infer and \deduce.
+%       \@RestoreMath is called in the very last before toplevel macros end.
+%       Remark \infer and \deduce ends calling \@infer.
+
+\def\@SaveMath{\@MathSavedfalse \ifmmode \ifinner
+        \relax $\relax \@MathSavedtrue \fi\fi }
+
+\def\@RestoreMath{\if@MathSaved \relax $\relax\fi }
+
+%       Macros
+
+% Renaming @ifnextchar and @ifnch of LaTeX2e to @IFnextchar and @IFnch.
+
+\def\@IFnextchar#1#2#3{%
+  \let\reserved@e=#1\def\reserved@a{#2}\def\reserved@b{#3}\futurelet
+    \reserved@c\@IFnch}
+\def\@IFnch{\ifx \reserved@c \@sptoken \let\reserved@d\@xifnch
+      \else \ifx \reserved@c \reserved@e\let\reserved@d\reserved@a\else
+          \let\reserved@d\reserved@b\fi
+      \fi \reserved@d}
+
+\def\@ifEmpty#1#2#3{\def\@tempa{\@empty}\def\@tempb{#1}\relax
+        \ifx \@tempa \@tempb #2\else #3\fi }
+
+\def\infer{\@SaveMath \@IFnextchar *{\@inferSteps}{\relax
+        \@IFnextchar ={\@inferDoubleRule}{\@inferOneStep}}}
+
+\def\@inferOneStep{\@inferRuletrue \@DoubleRulefalse
+        \@IFnextchar [{\@infer}{\@infer[\@empty]}}
+
+\def\@inferDoubleRule={\@inferRuletrue \@DoubleRuletrue
+        \@IFnextchar [{\@infer}{\@infer[\@empty]}}
+
+\def\@inferSteps*{\@IFnextchar [{\@@inferSteps}{\@@inferSteps[\@empty]}}
+
+\def\@@inferSteps[#1]{\@deduce{#1}[\DeduceSym]}
+
+\def\deduce{\@SaveMath \@IFnextchar [{\@deduce{\@empty}}
+        {\@inferRulefalse \@infer[\@empty]}}
+
+%       \@deduce<Proof Label>[<Proof>]<Lower><Uppers>
+
+\def\@deduce#1[#2]#3#4{\@inferRulefalse
+        \@infer[\@empty]{#3}{\@SaveMath \@infer[{#1}]{#2}{#4}}}
+
+%       \@infer[<Label>]<Lower><Uppers>
+%               If \@inferRuletrue, it draws a rule and <Label> is right to
+%               a rule. In this case, if \@DoubleRuletrue, it draws
+%               double rules.
+%
+%               Otherwise, draws no rule and <Label> is right to <Lower>.
+
+\def\@infer[#1]#2#3{\relax
+% Get parameters
+        \if@ReturnLeftOffset \else \@SavedLeftOffset=\@LeftOffset \fi
+        \setbox\@LabelPart=\hbox{$#1$}\relax
+        \setbox\@LowerPart=\hbox{$#2$}\relax
+%
+        \global\@LeftOffset=0pt
+        \setbox\@UpperPart=\vbox{\tabskip=0pt \halign{\relax
+                \global\@RightOffset=0pt \@ReturnLeftOffsettrue $##$&&
+                \inferTabSkip
+                \global\@RightOffset=0pt \@ReturnLeftOffsetfalse $##$\cr
+                #3\cr}}\relax
+%                       Here is a little trick.
+%                       \@ReturnLeftOffsettrue(false) influences on \infer or
+%                       \deduce placed in ## locally
+%                       because of \@SaveMath and \@RestoreMath.
+        \UpperLeftOffset=\@LeftOffset
+        \UpperRightOffset=\@RightOffset
+% Calculate Adjustments
+        \LowerWidth=\wd\@LowerPart
+        \LowerHeight=\ht\@LowerPart
+        \LowerCenter=0.5\LowerWidth
+%
+        \UpperWidth=\wd\@UpperPart \advance\UpperWidth by -\UpperLeftOffset
+        \advance\UpperWidth by -\UpperRightOffset
+        \UpperCenter=\UpperLeftOffset
+        \advance\UpperCenter by 0.5\UpperWidth
+%
+        \ifdim \UpperWidth > \LowerWidth
+                % \UpperCenter > \LowerCenter
+        \UpperAdjust=0pt
+        \RuleAdjust=\UpperLeftOffset
+        \LowerAdjust=\UpperCenter \advance\LowerAdjust by -\LowerCenter
+        \RuleWidth=\UpperWidth
+        \global\@LeftOffset=\LowerAdjust
+%
+        \else   % \UpperWidth <= \LowerWidth
+        \ifdim \UpperCenter > \LowerCenter
+%
+        \UpperAdjust=0pt
+        \RuleAdjust=\UpperCenter \advance\RuleAdjust by -\LowerCenter
+        \LowerAdjust=\RuleAdjust
+        \RuleWidth=\LowerWidth
+        \global\@LeftOffset=\LowerAdjust
+%
+        \else   % \UpperWidth <= \LowerWidth
+                % \UpperCenter <= \LowerCenter
+%
+        \UpperAdjust=\LowerCenter \advance\UpperAdjust by -\UpperCenter
+        \RuleAdjust=0pt
+        \LowerAdjust=0pt
+        \RuleWidth=\LowerWidth
+        \global\@LeftOffset=0pt
+%
+        \fi\fi
+% Make a box
+        \if@inferRule
+%
+        \setbox\ResultBox=\vbox{
+                \moveright \UpperAdjust \box\@UpperPart
+                \nointerlineskip \kern\inferLineSkip
+                \if@DoubleRule
+                \moveright \RuleAdjust \vbox{\hrule width\RuleWidth
+                        \kern 1pt\hrule width\RuleWidth}\relax
+                \else
+                \moveright \RuleAdjust \vbox{\hrule width\RuleWidth}\relax
+                \fi
+                \nointerlineskip \kern\inferLineSkip
+                \moveright \LowerAdjust \box\@LowerPart }\relax
+%
+        \@ifEmpty{#1}{}{\relax
+%
+        \HLabelAdjust=\wd\ResultBox     \advance\HLabelAdjust by -\RuleAdjust
+        \advance\HLabelAdjust by -\RuleWidth
+        \WidthAdjust=\HLabelAdjust
+        \advance\WidthAdjust by -\inferLabelSkip
+        \advance\WidthAdjust by -\wd\@LabelPart
+        \ifdim \WidthAdjust < 0pt \WidthAdjust=0pt \fi
+%
+        \VLabelAdjust=\dp\@LabelPart
+        \advance\VLabelAdjust by -\ht\@LabelPart
+        \VLabelAdjust=0.5\VLabelAdjust  \advance\VLabelAdjust by \LowerHeight
+        \advance\VLabelAdjust by \inferLineSkip
+%
+        \setbox\ResultBox=\hbox{\box\ResultBox
+                \kern -\HLabelAdjust \kern\inferLabelSkip
+                \raise\VLabelAdjust \box\@LabelPart \kern\WidthAdjust}\relax
+%
+        }\relax % end @ifEmpty
+%
+        \else % \@inferRulefalse
+%
+        \setbox\ResultBox=\vbox{
+                \moveright \UpperAdjust \box\@UpperPart
+                \nointerlineskip \kern\inferLineSkip
+                \moveright \LowerAdjust \hbox{\unhbox\@LowerPart
+                        \@ifEmpty{#1}{}{\relax
+                        \kern\inferLabelSkip \unhbox\@LabelPart}}}\relax
+        \fi
+%
+        \global\@RightOffset=\wd\ResultBox
+        \global\advance\@RightOffset by -\@LeftOffset
+        \global\advance\@RightOffset by -\LowerWidth
+        \if@ReturnLeftOffset \else \global\@LeftOffset=\@SavedLeftOffset \fi
+%
+        \box\ResultBox
+        \@RestoreMath
+}
diff --git a/omdoc-semantics/macros/old/sectioning.sty b/omdoc-semantics/macros/old/sectioning.sty
new file mode 100644
index 0000000000000000000000000000000000000000..fd0607edd37b5e15027e1bfc38431144bd32fc99
--- /dev/null
+++ b/omdoc-semantics/macros/old/sectioning.sty
@@ -0,0 +1,18 @@
+%internal variable for the base directory
+\newcommand{\sec@basedir}{.}
+%This sets the base directory for the following file system commands.
+\newcommand{\setbasedir}[1]{\renewcommand{\sec@basedir}{#1}}
+%This turn a relative path into an absolute one.
+\newcommand{\mypath}[1]{\sec@basedir/#1}
+%This is like \input{#2} but path is relative to the base directory. The optional first argument can be used to shift the sectioning one level down.
+\newcommand{\myinput}[2][0]{\advance\sec@level by #1\input{\mypath{#2}}\advance\sec@level by -#1}
+
+%internal variable for the sectioning level
+\newcount\sec@level \sec@level=0
+%This sets the sectioning level for sectioning commands.
+\newcommand{\setsectionlevel}[1]{\sec@level=#1}
+%This produces a chapter (0), section (1), subsection (2), subsubsection (3), or paragraph (else) depending on the value of \sec@level
+\newcommand{\sec@section}[1]{\ifcase\sec@level \chapter{#1}\or\section{#1}\or\subsection{#1}\or\subsubsection{#1}\else\paragraph{#1}\fi}
+%This produces a \SEC{#2} where SEC is determined by the value of \sec@level (see \sec@section).
+%The optional first argument shifts the sectioning level down.
+\newcommand{\mysection}[2][0]{\advance\sec@level by #1 \sec@section{#2} \advance\sec@level by -#1}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/old/variant.sty b/omdoc-semantics/macros/old/variant.sty
new file mode 100644
index 0000000000000000000000000000000000000000..dff881dd3c8647eb8e9209f3777183a2d549565c
--- /dev/null
+++ b/omdoc-semantics/macros/old/variant.sty
@@ -0,0 +1,60 @@
+\RequirePackage{comment}
+\RequirePackage{ifthen}
+\RequirePackage{keyval}
+
+% \begin{variant}{condition} ... \end{variant} is included iff condition is true (in the sense of the ifthen package)
+\newenvironment{variant}[1]{\def\closeparent{\end{variant}}\ifthenelse{#1}{\includevariant{variant}}{\excludevariant{variant}}\begin{variantapp}}{}
+% \end{variant} must occur on a line by itself and cannot be generated by expanding other commands.
+%   This is because it does not actually close the environment "variant": It ends the comment started by \begin{variantapp} (see (2) below).
+%   The environment "variant" is closed by the commands \AfterIncludedVariant and \TossVariant (see (1) below).
+
+% a short cut for inline variants: \iv[else-part]{condition}{if-part}
+\newcommand{\iv}[3][]{\ifthenelse{#2}{#3}{#1}}
+
+% some commands that make giving conditions easier
+\newcommand{\true}{0=0}
+\newcommand{\false}{0=1}
+
+% \begin{fragement}{keys}...\end{fragment} is included iff \checkfragment{keys} is true (in the sense of the ifthen package)
+% \checkfragment should be redefined by the calling context
+\newenvironment{fragment}[1]
+{\def\closeparent{\end{fragment}}\ifthenelse{\checkfragment{#1}}{\includevariant{fragment}}{\excludevariant{fragment}}\begin{variantapp}}{}
+\newcommand{\checkfragment}[1]{\true}
+
+% \inputfragment{F}{N} takes the part \begin{fragment}{keys}...\end{fragment} with name=N among keys in file F
+% everything occurring outside of fragment environments is also included
+\newcommand{\inputfragment}[2]{%
+\renewcommand{\checkfragment}[1]{\setkeys{fragment}{##1}\equal{#2}{\name@fragment}}%
+\myinput{#1}%
+}
+
+\newcommand{\name@fragment}{}
+\define@key{fragment}{name}{\renewcommand{\name@fragment}{#1}}
+
+% These definitions are based on their counterparts from comment.sty:
+% - \includevariant is based on \includecomment{variantapp}
+% - \excludevariant is based on \excludecomment{variantapp}
+% Some details are modified, namely:
+% (1) \AfterIncludedVariant and \TossVariant are like \AfterIncludedComment and \TossComment except that "\end{variant}" is added at the end.
+% (2) \VariantEndDef is like \CommentEndDef{variantapp} except that the comment is terminated by "\end{variant}".
+
+\def\AfterIncludedVariant
+    {\immediate\closeout\CommentStream
+    \input{\CommentCutFile}\relax\closeparent
+    }%
+\def\TossVariant{\immediate\closeout\CommentStream\closeparent}
+\def\VariantEndDef#1{{\escapechar=-1\relax
+    \csarg\xdef{EndvariantappTest}{\string\\end\string\{#1\string\}}%
+    }}
+\def\includevariant
+    #1{\csarg\let{AftervariantappComment}\AfterIncludedVariant
+    \csarg\def{variantapp}{\BeforeIncludedComment
+        \ProcessComment{variantapp}}%
+    \VariantEndDef{#1}
+    }
+\def\excludevariant
+    #1{\csarg\let{AftervariantappComment}\TossVariant
+     \csarg\def{variantapp}{\let\AfterComment\relax
+        \def\ThisComment####1{}\ProcessComment{variantapp}}%
+    \VariantEndDef{#1}
+    }
\ No newline at end of file
diff --git a/omdoc-semantics/macros/old/variants.sty b/omdoc-semantics/macros/old/variants.sty
new file mode 100644
index 0000000000000000000000000000000000000000..c3464c27ed8ac99d5bf7e42c842166678a147063
--- /dev/null
+++ b/omdoc-semantics/macros/old/variants.sty
@@ -0,0 +1,30 @@
+\RequirePackage{comment}
+\RequirePackage{ifthen}
+
+\newcommand{\variant@active}{}
+
+%\variant{v}{text} produces "text" iff "v" ist the active variant
+\newcommand{\variant}[2]{%
+\ifthenelse{\equal{\variant@active}{#1}}%
+{#2}%
+{}%
+}
+
+%\declarevariant{v} declares a variant "v"
+%\begin{v}...\end{v} is included iff "v" is the active variant
+\newcommand{\declarevariant}[1]{
+ \excludecomment{#1}
+}
+
+%\setvariant{v} makes "v" the active variant
+\newcommand{\setvariant}[1]{
+ \includecomment{#1}
+ \renewcommand{\variant@active}{#1}
+}
+
+\newcommand{\declarevariantpair}[2]{
+ \expandafter\def\csname #1#2\endcsname##1##2{##1}
+ \includecomment{#1}
+ \excludecomment{#2}
+}
+
diff --git a/omdoc-semantics/macros/proceedings/Example/adamek.tex b/omdoc-semantics/macros/proceedings/Example/adamek.tex
new file mode 100644
index 0000000000000000000000000000000000000000..9c7c568d8969ec275270cfc3b91461f75d2a2360
--- /dev/null
+++ b/omdoc-semantics/macros/proceedings/Example/adamek.tex
@@ -0,0 +1,1439 @@
+%---------%---------%---------%---------%---------%---------%---------%
+% 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 ?
+% At            @           Left bracket [          Backslash     \
+% Right bracket ]           Circumflex   ^          Underscore    _
+% Grave accent  `           Left brace   {          Vertical bar  |
+% Right brace   }           Tilde        ~
+
+\documentclass{entcs}
+\usepackage{prentcsmacro}
+\usepackage[leqno]{amsmath}
+\usepackage{amssymb}
+\usepackage{latexsym}
+\usepackage{mathrsfs,euscript}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Setting the correct page numbers                      %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+  \input{procnum.tex}
+  \numbering{cmcs03db}{adamek}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% CALLING XY-Pic version 3.5                            %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage[matrix,arrow]{xy}
+
+
+\newcommand{\Set}{\ensuremath{\St}}
+\newcommand{\aps}{\ensuremath{\mathrel{\approx^*}}}
+\newcommand{\sims}{\ensuremath{\mathrel{\sim^*}}}
+\newcommand{\simx}{\ensuremath{\mathrel{\sim_X}}}
+\newcommand{\simxs}{\ensuremath{\mathrel{\sim_X^*}}}
+\newcommand{\vxs}{\ensuremath{\mathrel{\approx_X^*}}}
+\newcommand{\Pf}{\ensuremath{\mathscr{P}_{\!\!f}}}
+\newcommand{\AAA}{\ensuremath{\mathscr{A}}}
+\newcommand{\PP}{\ensuremath{\mathscr{P}}}
+\newcommand{\TT}{\ensuremath{\mathscr{T}}}
+\newcommand{\RR}{\ensuremath{\mathscr{R}}}
+\newcommand{\SSS}{\ensuremath{\mathscr{S}}}
+\newcommand{\llll}{l}
+\newcommand{\dia}{\mathbin{\Diamond}}
+\newcommand{\ctv}{\mathbin{\Box}}
+\newcommand{\ac}{\text{\textnormal{ac}}}
+
+\DeclareMathOperator{\St}{\textnormal{\textbf{Set}}}
+\DeclareMathOperator{\id}{id}
+\DeclareMathOperator{\Id}{Id}
+\DeclareMathOperator{\Alg}{\textnormal{\textbf{Alg}}}
+\DeclareMathOperator{\Coalg}{\textnormal{\textbf{Coalg}}}
+\DeclareMathOperator*{\colim}{colim}
+\DeclareMathOperator{\inl}{inl}
+\DeclareMathOperator{\inr}{inr}
+\DeclareMathOperator{\CIM}{CIM}
+\DeclareMathOperator{\IM}{IM}
+\DeclareMathOperator{\card}{card}
+
+\newenvironment{pv}[1]{\begin{trivlist}
+\item[\hspace{\labelsep}\normalfont\bfseries#1]}%
+{\end{trivlist}}
+
+\def\lastname{Ad\'{a}mek}
+
+\begin{document}
+
+\begin{frontmatter}
+\title{On a Description of Terminal Coalgebras and Iterative
+Theories}
+\author{Ji\v r\'\i\ Ad\'amek\thanksref{mail}\thanksref{CZ}}
+\address{Technical University of Braunschweig}
+\thanks[mail]{Email:\href{mailto:adamek@iti.cs.tu-bs.de}
+        {\texttt{\normalshape adamek@iti.cs.tu-bs.de}}}
+\thanks[CZ]{The support of the Grant Agency of the Czech
+            Republic under the Grant No.~201/02/0148
+            is gratefully acknowledged.}
+\begin{keyword}
+terminal coalgebra, iterative theory, finitary functor, basic equation
+\end{keyword}
+\begin{abstract}
+A concrete description of terminal coalgebras, $T$, of all finitary
+endofunctors of \Set\ is presented: each such a functor is a quotient of
+the polynomial endofunctor of some finitary signature~$\Sigma$
+modulo some ``basic'' equations. Then $T$~can be described as the
+algebra of all infinite $\Sigma$-labeled trees modulo the congruence
+obtained by applying the basic equations finitely or infinitely
+many times (a concept defined below). As a consequence, free
+iterative theories in the sense of Calvin Elgot are described over
+all finitary endofunctors of \Set: they are the theories of all
+rational $\Sigma$-labeled trees (i.e., trees having only finitely
+many subtrees) modulo the above congruence.
+\end{abstract}
+\end{frontmatter}
+
+
+\section{Introduction}
+Iterative algebraic theories have been introduced by Calvin Elgot
+(see~\cite{e}) in his attempt to model potentially infinite
+computations algebraically. For example, a computation using binary
+operations $\alpha$ and~$\beta$ and having the following form
+\begin{equation}
+\alpha(0, \beta(1,\alpha(0, \beta(1,\dots
+\end{equation}
+can be described by iterative equations as follows:
+\begin{equation}
+x_1=
+\vcenter{
+\xy
+\POS (05,10)*+{\alpha} = "t"
+   , (00,00)*+{0}      = "l"
+   , (10,00)*+{x_2}    = "r"
+%%%
+\POS "l" \ar@{-} "t"
+\POS "r" \ar@{-} "t"
+\endxy
+}
+\quad
+\quad
+x_2=
+\vcenter{
+\xy
+\POS (05,10)*+{\beta}  = "t"
+   , (00,00)*+{1}      = "l"
+   , (10,00)*+{x_1}    = "r"
+%%%
+\POS "l" \ar@{-} "t"
+\POS "r" \ar@{-} "t"
+\endxy
+}
+\end{equation}
+One of the main result of Elgot's group is a description of free
+iterative theories generated by an arbitrary signature~$\Sigma$ (see
+~\cite{ebt}): it is the theory of all rational
+$\Sigma$-trees\footnote{Trees are always considered up-to
+isomorphism (of labeled trees) throughout the paper.}, i.e.,
+$\Sigma$-trees which have only finitely many subtrees. Example: the
+tree~(1) above is rational, it has 4~subtrees.
+
+One fundamental lack of Elgot's theory is that almost no other
+concrete examples have been presented. In the
+present paper we take the first steps towards new examples: we
+describe all iterative theories freely generated by finitary
+endofunctors of \Set. Or, equivalently, freely generated by
+equational presentations using \textit{basic equations} only, where
+a basic equation is an equation between two \textit{flat terms}
+which are terms $\sigma(x_1,\dots,x_n)$ where $\sigma\in\Sigma$ is
+an $n$-ary operation symbol and $x_1,\dots,x_n$ are (not necessarily
+distinct) variables.
+
+\begin{pv}{1.1 Example}
+Let $H\colon\Set\to\Set$
+be the functor assigning
+to every set~$X$ the set~$HX$ of all nonordered
+pairs~$\{x,y\}$ in~$X$. This is a quotient of the functor
+$H_\Sigma\colon X\mapsto X\times X$ via the epitransformation
+$\varepsilon\colon H_\Sigma\to H$ defined
+by $\varepsilon(x,y)=\{x,y\}$. Or,
+equivalently, we consider the signature~$\Sigma$ of one binary
+operation (say,~$\diamond$) satisfying the commutativity law.
+Observe that the equation
+\[x\diamond y=y\diamond x\]
+is indeed basic. The free iterative theory is formed by all
+rational binary trees modulo the congruence \aps\ merging two
+rational trees $s$ and~$r$ iff we can obtain~$r$ from~$s$ by
+applying the commutativity law (i.e., by swapping the two children
+of some parent) finitely or infinitely many times.
+
+This ``infinite application'' of equations can be described simply
+and precisely by introducing the operator
+\[\partial_k\]
+which cuts every tree at depth~$k$ and labels all leaves of
+depth~$k$ by an auxiliary symbol~$\perp$. Let us denote by~$\sim$
+the congruence defining a free algebra of our variety. That is, if
+we think of terms as finite binary trees, then $s\sim r$ means that
+we can obtain~$r$ from~$s$ by applying the commutativity law
+finitely many times. Then for all rational trees $s$ and~$r$ we can
+define
+\[s\aps r\qquad\text{iff}\qquad \partial_ks\sim\partial_kr\quad
+\text{for all $k\in\omega$.}\]
+\end{pv}
+
+\begin{pv}{Remark}
+The above definition of~\aps\ is meaningful for all basic equational
+presentations, since the congruence~$\sim$ defining the free algebra
+of the given variety satisfies
+\[s\sim r\qquad\text{implies}\qquad \partial_ks\sim\partial_kr\quad
+\text{for all $k\in\omega$}\]
+(for all finite trees $s$ and~$r$). In contrast, this is not
+meaningful e.g. for the associativity law.
+\end{pv}
+
+\begin{pv}{1.2 Example}
+The iterative theory generated by the finite-power-set functor
+\[\Pf X=\{M\subseteq X; M\text{ finite}\}.\]
+On morphisms $h\colon X\to Y$, we have
+\[\Pf h\colon M\mapsto f[M]\qquad\text{for all $M\in\Pf X$.}\]
+There is a natural presentation of~\Pf\ as the quotient functor of
+the polynomial functor
+\[H_\Sigma X=1+X+(X\times X)+(X\times X\times X)+\dotsb\]
+corresponding to the signature~$\Sigma$ which has for every
+$n\in\omega$ precisely one $n$-ary operation~$\sigma_n$: define a
+natural epitransformation
+\[\varepsilon\colon H_\Sigma\to\Pf\]
+by
+\[(x_1,\dots,x_n)\mapsto\{x_1,\dots,x_n\}.\]
+Or, equivalently, consider the following basic equations
+\[\sigma_n(y_1,\dots,y_n)=\sigma_m(z_1,\dots,z_m)\]
+where $n,m\in\omega$ are arbitrary and $y_i$ and~$z_j$ are arbitrary
+variables such that the sets $\{y_1,\dots,y_n\}$
+and~$\{z_1,\dots,z_m\}$ are equal.
+
+Here, again, the corresponding iterative theory is formed by all
+rational $\Sigma$-trees modulo the congruence~\aps\ obtained by
+applying the given equations finitely or infinitely many times.
+
+Let us recall that an initial \Pf-algebra $I$ can be described as
+the algebra of all sets of
+the class $V_\omega=\bigcup_{n\in\omega}V_n$ of
+the cumulative hierarchy (with $V_0=\emptyset$ and $V_{n+1}=\Pf
+V_n$). Or directly: $I$~is the algebra of all finite, non-ordered
+\textit{extensional trees}, i.e., trees such that any two
+distinct siblings
+define nonisomorphic subtrees.
+%In fact, there is a canonical bijection
+%between $V_\omega$ and such trees, as the following examples
+%demonstrate:
+%\[\psset{radius=2pt,levelsep=5mm,linewidth=.6pt}
+%\begin{array}{lcc}
+%\text{Set}&\rule{3em}{0em}&\text{tree}\\
+%\hline
+%\phantom{\{}\emptyset&\rule{0pt}{13pt}&
+%\pstree{\TC*}{}\\
+%\{\emptyset\}&&
+%\raisebox{3mm}{\pstree{\TC*}{\TC*}}\\[13pt]
+%\{\emptyset,\{\emptyset\}\}&&
+%\raisebox{6mm}{\pstree{\TC*}{\TC* \pstree{\TC*}{\TC*}}}\\[13pt]
+%\{\{\emptyset\}\}&&
+%\raisebox{6mm}{\pstree{\TC*}{\pstree{\TC*}{\TC*}}}\\
+%\quad\vdots&&\vdots
+%\end{array}\]
+In the latter description we obtain~$I$ as a quotient of the initial
+$\Sigma$-algebra~$I_\Sigma$ (of all finite trees---here we can drop
+the labeling since $\Sigma$~has a unique operation for any arity)
+modulo the following congruence~$\sim$:
+\[s\sim r\quad\text{iff $s$ and $r$ have the same extensional
+quotient.}\]
+(The \textit{extensional quotient} of a finite tree is the extensional tree
+obtained by repeated identification of siblings defining isomorphic
+subtrees.)
+\end{pv}
+
+The above two examples are typical: we will show that every finitary
+endofunctor~$H$ of~\Set\ can be presented, for some signature
+$\Sigma=\bigcup_{n\in\omega}\Sigma_n$, as a quotient of the
+\textit{polynomial functor}~$H_\Sigma$ defined on objects by
+\[H_\Sigma X=\coprod_{n\in\omega}\Sigma_n\times X^n\]
+and analogously on morphisms, $H_\Sigma f=\coprod_{n\in\omega}
+(\id_{\Sigma_n}\times f^n)$. That is, there is an epitransformation
+(a natural transformation whose components are epimorphisms)
+\[\varepsilon\colon H_\Sigma\to H.\]
+Or, equivalently, $H$~represents the equational presentation
+by all the basic
+equations $\sigma(x_1,\dots,x_n)=\varrho(y_1,\dots,y_m)$ for
+all $\sigma\in\Sigma_n$, $\varrho\in\Sigma_m$ and all
+variables~$x_i,y_j$ in a set~$X$ such that $\varepsilon_X$~merges
+the two elements $\sigma(x_i)$ and~$\varrho(y_j)$ of~$H_\Sigma X$.
+Now let $\sim$~be the congruence on the initial $\Sigma$-algebra (of
+all finite $\Sigma$-trees) defining a free $H$-algebra, i.e., the
+congruence of applications of the given basic equations finitely
+many times. Then for the congruence~\sims\ on the algebra of all
+finite and infinite trees given by possibly infinite applications of
+the given equations we prove that
+\begin{enumerate}
+\item[(a)]
+a terminal $H$-coalgebra is the quotient of the terminal
+$\Sigma$-algebra (of all infinite $\Sigma$-trees) modulo~\sims
+\end{enumerate}
+and
+\begin{enumerate}
+\item[(b)]
+a free iterative theory on~$H$ is the theory of all rational
+$\Sigma$-trees modulo the congruence~\aps\ defined analogously
+to~\sims\ but for trees with variables.
+\end{enumerate}
+
+The method of proving this result is coalgebraic. We first describe
+a terminal $H$-coalgebra, for every finitary endofunctor $H$,
+as~$T_\Sigma/_{\sims}$
+where $T_\Sigma$ is the coalgebra of all (infinite)
+$\Sigma$-trees and \sims~is the above congruence. We apply this,
+then, to the finitary endofunctor $H({-})+X$. Here
+we use the result of~\cite{aamv} that
+terminal coalgebras, $TX$, of the functors
+$H({-})+X$ form (the object part of) a monad~\TT\
+which is completely iterative. In fact, \TT~is a free completely
+iterative monad on~$H$. And as proved in~\cite{amv},
+a free iterative monad on~$H$ is a submonad of the
+monad~\TT\ formed by solutions of all finite systems of flat
+equations.
+
+\begin{pv}{Related Results}
+I have been much inspired by the description of a terminal
+coalgebra of~\Pf\ by M.~Barr~\cite{b}, see Example~1.2 above.
+Results of~\cite{aamv} mentioned above
+have been independently discovered by L.~Moss~\cite{m}.
+\end{pv}
+
+\section{A Description of Terminal Coalgebras}
+\begin{pv}{2.1 Assumption}
+We assume throughout the present section that a \textit{finitary}
+endofunctor~$H$ of~\Set\
+is given. Recall that this means one of the following equivalent
+properties (see 4.3 in~\cite{at}):
+\begin{enumerate}
+\item[(i)]
+$H$~preserves filtered colimits,
+\item[(ii)]
+every element of~$HX$, where $X$~is an arbitrary set, lies in the
+image of~$Hm$
+for some finite subset $m\colon M\hookrightarrow X$
+\end{enumerate}
+and
+\begin{enumerate}
+\item[(iii)]
+$H$~is a quotient of some polynomial functor~$H_\Sigma$.
+\end{enumerate}
+The last condition presents~$H$ via a finitary signature~$\Sigma$
+and a natural transformation
+\[\varepsilon\colon H_\Sigma\to H\]
+having epimorphic components. Therefore each component
+\[\varepsilon_X\colon \coprod_{n\in\omega}
+\Sigma_n\times X^n\to HX\]
+is fully described by its kernel equivalence, which we can present
+in the form of equations
+\[\sigma(x_i)=\varrho(y_j)\]
+for $\sigma,\varrho\in\Sigma$ and for tuples
+$\sigma(x_i),\varrho(y_j)$ in~$H_\Sigma X$ (where $X$~is a set of
+variables including all $x_i$ and $y_j$ and $\sigma(x_i)$ denotes the
+$n$-tuple $(x_i)$ in the summand $\{\sigma\}\times X^n$) satisfying
+$\varepsilon_X\bigl(\sigma(x_i)\bigr)=
+\varepsilon_X\bigl(\varrho(y_j)\bigr)$.
+We call the above equations \textit{$\varepsilon$-equations} for short.
+Observe that every $\varepsilon$-equation is \textit{basic}, i.e.,
+it
+equates two \textit{flat}
+trees (which means trees of depth one with variables on all leaves).
+Conversely,
+every variety of $\Sigma$-algebras presented by basic equations is
+the category of $H$-algebras for some finitary endofunctor~$H$
+of~\Set, see~3.3 in~\cite{at}.
+\end{pv}
+
+\begin{pv}{2.2 Examples}
+(i) The functor $\PP_{\!2}$ assigning to a set~$A$ the
+set~$\PP_{\!2}A$ of all subsets of power at most~2 is a quotient
+of~$H_\Sigma$ where
+\[\Sigma_0=\{b\}\quad\text{and}\quad \Sigma_2=\{\beta\}.\]
+Here
+\[\varepsilon_X\colon X\times X+1\to\PP_{\!2}X\]
+sends a pair~$(x,y)$ to~$\{x,y\}$ and the unique element of~1
+to~$\emptyset$. The $\varepsilon$-equations are all generated by the
+commutativity of~$\beta$:
+\[\beta(x,y)=\beta(y,x).\]
+
+(ii) Consider the finite-power-set functor~\Pf\ of~1.2. Here we can
+use the signature~$\Sigma$ where $\Sigma_n$~contains a unique
+$n$-ary operation for any $n=0,1,2,\dots$ and obtain a natural
+epitransformation
+\[\varepsilon_X\colon1+X+X^2+X^3+\dots\to\Pf X\]
+sending an $n$-tuple to the set of its members.
+\end{pv}
+
+\begin{pv}{2.3 Notation}
+$\Alg H$ denotes the category of \textit{$H$-algebras}, i.e.,
+sets~$A$ equipped with a structure morphism $\alpha\colon HA\to A$,
+and \textit{homomorphisms}~$f$ between $H$-al\-ge\-bras defined by the
+commutativity of the following square\vspace{1mm}
+\[                        %% o5
+\xy
+\xymatrix{
+HA
+\ar[0,1]^-{\alpha}
+\ar[1,0]_{Hf}
+&
+A
+\ar[1,0]^{f}
+\\
+HA'
+\ar[0,1]_-{\alpha'}
+&
+A'
+}
+\endxy
+\]
+\vspace{1mm}
+
+\noindent
+An \textit{initial algebra}, i.e., an initial object of~$\Alg H$
+(which exists, in fact, is given by~$\colim_{n\in\omega} H^n\emptyset$,
+since
+$H$~is finitary (see [ A]) is denoted by~$I$ and its structure
+morphism by
+\[
+\xy
+\xymatrix@1{
+HI
+\ar[0,1]^-{\varphi}
+&
+I.
+}
+\endxy
+\]
+\end{pv}
+
+\begin{pv}{2.4 Examples}
+(i) If $H=H_\Sigma$, then $\Alg H_\Sigma$~is the usual
+category of $\Sigma$-al\-ge\-bras and homomorphisms.
+There are several
+useful descriptions of~$I_\Sigma$, an initial $\Sigma$-al\-ge\-bra;
+here we consider the following:
+\[I_\Sigma=\text{the algebra of all finite $\Sigma$-trees.}\]
+Recall that a \textit{$\Sigma$-tree} is a (rooted, ordered) labeled
+tree such that every node of $n$~children is labeled by an $n$-ary
+symbol in~$\Sigma$. The structure morphism
+\[\varphi_\Sigma\colon H_\Sigma I_\Sigma\to I_\Sigma\]
+is given by tree-tupling.
+
+(ii) An initial $\PP_{\!2}$-algebra~$I$ is just an initial algebra
+of the variety of $\Sigma$-al\-ge\-bras [see 2.2~(i)], given by
+commutativity of~$\beta$. Thus
+\[I=I_{\Sigma}/_\sim\]
+where two finite binary trees $s,r\in I_{\Sigma}$ are congruent
+iff we can get~$s$ from~$r$ by swapping two siblings
+finitely many times.
+\end{pv}
+
+\begin{pv}{2.5 Remark}
+We have an embedding
+\[\Alg H\hookrightarrow\Alg H_\Sigma\]
+assigning to every $H$-algebra,
+$HA\xrightarrow{\rule{1mm}{0mm}\alpha\rule{1mm}{0mm}}A$, the
+$\Sigma$-algebra
+\[
+\xy
+\xymatrix@1{
+H_\Sigma A
+\ar[0,1]^-{\varepsilon_A}
+&
+HA
+\ar[0,1]^-{\alpha}
+&
+A.
+}
+\endxy
+\]
+In fact, $\Alg H$~is a variety of $\Sigma$-algebras (presented by
+the given basic equations). Conversely, every $\Sigma$-algebra~$B$
+has a \textit{reflection} in~$\Alg H$: it is the smallest quotient
+$j\colon B\to B/_\sim$ such that $B/_\sim$~is an $H$-algebra (more
+precisely, a $\Sigma$-algebra whose structure morphism factorizes
+trough~$\varepsilon_{B/_\sim}$):\vspace{3mm}
+\[
+\xy
+\xymatrix{
+H_\Sigma B
+\ar[0,2]^-{\beta}
+\ar[1,0]_{H_\Sigma j}
+&
+&
+B
+\ar[1,0]^{j}
+\\
+H_\Sigma(B/_\sim)
+\ar[0,1]_-{\varepsilon_{B/_\sim}}
+&
+H(B/_\sim)
+\ar[0,1]_-{\overline{\beta}}
+&
+B/_\sim
+}
+\endxy
+\]\vspace{1mm}
+\end{pv}
+
+\begin{pv}{2.6 Notation}
+Given $\varepsilon\colon H_\Sigma\to H$, denote by
+\[\Sigma^\perp\]
+the signature obtained from~$\Sigma$ by adding a new nullary
+symbol~$\perp$. Then $H_\Sigma$~is a subfunctor of~$H_{\Sigma^\perp}$
+and we denote by
+\[u\colon H_\Sigma\to H_{\Sigma^\perp}\]
+the natural transformation formed by the inclusion maps. This allows
+us to view every $\Sigma^\perp$-algebra,
+$H_{\Sigma^\perp}A\xrightarrow{\rule{1mm}{0mm}\alpha\rule{1mm}{0mm}}A$,
+as a $\Sigma$-algebra via
+\[
+\xy
+\xymatrix@1{
+H_\Sigma A
+\ar[0,1]^-{u_A}
+&
+H_{\Sigma^\perp}A
+\ar[0,1]^-{\alpha}
+&
+A.
+}
+\endxy
+\]
+In particular, the algebra~$I_{\Sigma^\perp}$ of finite
+$\Sigma^\perp$-trees is a $\Sigma$-algebra.
+\end{pv}
+
+\begin{pv}{Definition}
+\itshape
+Given a quotient $\varepsilon\colon H_\Sigma\to H$ we denote by
+\[J=I_{\Sigma^\perp/_\sim}\]
+the reflection of the $\Sigma$-algebra~$I_{\Sigma^\perp}$
+in~$\Alg H$\ with the structure morphism~$\varphi$:\vspace{3.5mm}
+\[
+\xy
+\xymatrix{
+H_\Sigma I_{\Sigma^\perp}
+\ar[0,1]^-{u_{I_{\Sigma^\perp}}}
+\ar[1,0]_{H_\Sigma j}
+&
+H_{\Sigma^\perp}I_{\Sigma^\perp}
+\ar[0,1]^-{\varphi_{\Sigma^\perp}}
+&
+I_{\Sigma^\perp}
+\ar[1,0]^{j}
+\\
+H_\Sigma J
+\ar[0,1]_-{\varepsilon_J}
+&
+HJ
+\ar[0,1]_-{\varphi}
+&
+J
+}
+\endxy
+\]\vspace{.5mm}
+
+\noindent
+In other words, for finite $\Sigma^\perp$-trees $s$ and~$r$ we have
+\[s\sim r\quad \text{iff $s$ can be obtained from $r$ by using
+$\varepsilon$-equations (finitely many times).}\]
+\end{pv}
+
+\begin{pv}{2.7 Example}
+For $\varepsilon\colon H_\Sigma\to\PP_{\!2}$ as in 2.2 (i) the
+algebra~$I_{\Sigma^\perp}$ consists of all finite binary trees with
+leaves labeled by $b$ or~$\perp$. And $\sim$~is the congruence of
+commutativity of the binary operation, i.e., $s\sim r$ if $s$~can be
+obtained from~$r$ by swapping the children of one father finitely
+many times.
+\end{pv}
+
+\begin{pv}{2.8 Notation}
+We will denote by
+$\Coalg H$ the category of \textit{$H$-coalgebras}, i.e.,
+sets~$A$
+equipped with a structure morphism $\alpha\colon A\to HA$,
+and \textit{homomorphisms}~$f$ between $H$-coalgebras defined by the
+commutativity by the following square\vspace{1mm}
+\[
+\xy
+\xymatrix{
+A
+\ar[0,1]^-{\alpha}
+\ar[1,0]_{f}
+&
+HA
+\ar[1,0]^{Hf}
+\\
+A'
+\ar[0,1]_-{\alpha'}
+&
+HA'
+}
+\endxy
+\]
+\vspace{.1mm}
+
+\noindent
+Again, a \textit{terminal coalgebra}, i.e., a terminal object
+of~$\Coalg H$, exists due to the finitarity of~$H$ (see~\cite{b}), and
+we denote it by~$T$ with the structure morphism
+\vspace{1mm}
+\[
+\xy
+\xymatrix@1{
+T
+\ar[0,1]^-{\psi}
+&
+HT.
+}
+\endxy
+\]
+Recall that by Lambek's Lemma~\cite{l}, $\psi$~is an isomorphism;
+thus $T$~can also be viewed as an $H$-algebra.
+\end{pv}
+
+\begin{pv}{Example}
+A terminal $H_\Sigma$-coalgebra can be described as the coalgebra
+\[T_\Sigma\]
+of all (finite and infinite) $\Sigma$-trees. Here
+\[\psi_\Sigma\colon T_\Sigma\to H_\Sigma T_\Sigma\]
+is given by parsing, i.e., the inverse of the tree-tupling.
+\end{pv}
+
+\begin{pv}{2.9 Definition}
+\itshape
+For every $k=0,1,2,\dots$ denote by
+\[\partial_k\colon T_\Sigma\to T_{\Sigma^\perp}\]
+the function cutting a given tree and level~$k$ at labeling all new
+leaves by~$\perp$. Define a congruence~\sims\ on the
+$\Sigma$-algebra $H_\Sigma T_\Sigma
+\xrightarrow{\rule{1mm}{0mm}\psi_\Sigma^{-1}\rule{1mm}{0mm}}
+T_\Sigma$ as follows:
+\[s\sims r\quad\text{iff $\partial_ks\sim\partial_kr$ for all
+$k=0,1,2,\dotsc$,}\]
+where $\sim$~is the congruence of Definition~2.6.
+\end{pv}
+
+\begin{pv}{Remark}
+We prove in Theorem 2.11 below that \sims~is a congruence for~$H$,
+and that the quotient coalgebra
+\[J^*=T_\Sigma/_{\sims}\]
+of the  $H$-algebra\vspace{1mm}
+\[
+\xy
+\xymatrix{
+T_\Sigma
+\ar[0,1]^-{\psi_\Sigma}
+&
+H_\Sigma T_\Sigma
+\ar[0,1]^-{\varepsilon_{T_\Sigma}}
+&
+HT_\Sigma
+}
+\endxy
+\]
+is a terminal. We denote by $j^*\colon T_\Sigma\to J^*$ the quotient
+map.
+\end{pv}
+
+\begin{pv}{2.10 Examples}
+(i) For $\varepsilon\colon H_\Sigma\to\PP_{\!2}$ of Example
+2.2~(i) we have
+\[                                   %% o6
+\vcenter{
+\xy
+\POS (00, 00) *+{b} = "b1"
+   , (05, 10)       = "t1"
+   , (10, 00)       = "t2"
+   , (05,-10) *+{b} = "b2"
+   , (15,-10)       = "t3"
+   , (10,-20) *+{b} = "b3"
+   , (20,-20)       = "t4"
+   , (25,-30)        = "x"
+%%%
+\POS "b1" \ar@{-} "t1"
+\POS "t2" \ar@{-} "t1"
+\POS "b2" \ar@{-} "t2"
+\POS "t3" \ar@{-} "t2"
+\POS "b3" \ar@{-} "t3"
+\POS "t4" \ar@{-} "t3"
+\POS "x" \ar@{.} "t4"
+\endxy
+}
+\quad\sims\quad
+\vcenter{
+\xy
+\POS ( 00, 00) *+{b} = "b1"
+   , (-05, 10)       = "t1"
+   , (-10, 00)       = "t2"
+   , (-05,-10) *+{b} = "b2"
+   , (-15,-10)       = "t3"
+   , (-10,-20) *+{b} = "b3"
+   , (-20,-20)       = "t4"
+   , (-25,-30)        = "x"
+%%%
+\POS "b1" \ar@{-} "t1"
+\POS "t2" \ar@{-} "t1"
+\POS "b2" \ar@{-} "t2"
+\POS "t3" \ar@{-} "t2"
+\POS "b3" \ar@{-} "t3"
+\POS "t4" \ar@{-} "t3"
+\POS "x" \ar@{.} "t4"
+\endxy
+}
+\]
+because in~$I_{\Sigma^\perp}$ we clearly have
+\[                                   %% o7
+\begin{array}{rcrcl}
+(k=0)
+&\qquad&
+\perp
+&\sim&
+\perp
+\\[2mm]
+(k=1)
+&&
+\xy
+\POS (00,00) *+{b}     = "b"
+   , (10,00) *+{\perp} = "p"
+   , (05,10)           = "t"
+%%%
+\POS "b" \ar@{-} "t"
+\POS "p" \ar@{-} "t"
+\endxy
+&\sim&
+\xy
+\POS (00,00) *+{\perp} = "b"
+   , (10,00) *+{b}     = "p"
+   , (05,10)           = "t"
+%%%
+\POS "b" \ar@{-} "t"
+\POS "p" \ar@{-} "t"
+\endxy
+\\[8mm]
+(k=2)
+&&
+\xy
+\POS (00, 00) *+{b} = "b1"
+   , (05, 10)       = "t1"
+   , (10, 00)       = "t2"
+   , (05,-10) *+{b} = "b2"
+   , (15,-10) *+{\perp} = "t3"
+%%%
+\POS "b1" \ar@{-} "t1"
+\POS "t2" \ar@{-} "t1"
+\POS "b2" \ar@{-} "t2"
+\POS "t3" \ar@{-} "t2"
+\endxy
+&\sim&
+\xy
+\POS ( 00, 00) *+{b} = "b1"
+   , (-05, 10)       = "t1"
+   , (-10, 00)       = "t2"
+   , (-05,-10) *+{b} = "b2"
+   , (-15,-10) *+{\perp} = "t3"
+%%%
+\POS "b1" \ar@{-} "t1"
+\POS "t2" \ar@{-} "t1"
+\POS "b2" \ar@{-} "t2"
+\POS "t3" \ar@{-} "t2"
+\endxy
+\end{array}
+\]
+etc.
+
+(ii) For $\varepsilon\colon H_\Sigma\to\Pf$ of Example 2.2~(ii)
+we can describe
+\[\parbox{91mm}{$I_{\Sigma^{\phantom{\perp}}}$
+as the algebra of all finite
+(nonlabeled) trees,\\
+$I_{\Sigma^\perp}$ as the algebra of all finite trees with leaves
+partially $\phantom{I_{\Sigma^\perp}}$~labeled by~$\perp$,}\]
+and
+\[\parbox{91mm}{$T_\Sigma$ as the algebra of all finite-branching
+trees.}\]
+(The operation labels can be left out here since $n$-ary operations
+are unique for all~$n$.) Recall the concept of extensional quotient
+of Example~1.2. The congruence~$\sim$ on~$I_{\Sigma^\perp}$ is
+easily seen to be the following:
+\[\text{$r\sim s$ iff the trees $r,s$ have the same extensional
+quotient.}\]
+It was M.~Barr who used in~\cite{b} the operation~$\partial_k$ to
+describe a terminal coalgebra of~\Pf\ as~$T_\Sigma/{\sims}$ for the
+above congruence~\sims.
+%congruent trees:
+%\[                                   %% o8
+%\psset{levelsep=7mm,treesep=6mm,radius=2pt}
+%\raisebox{11mm}{%
+%\pstree{\TC*}{\TC*
+%\pstree{\TC*}{\TC*}
+%\pstree{\TC*}{\pstree{\TC*}{\TC*}}
+%\pstree{\TC*~[tnpos=r,tnsep=6pt]{\raisebox{3pt}{$\dots$}}}{%
+%\pstree{\TC*}{\pstree{\TC*}{\TC*}}}}}
+%\quad\sim^*\quad
+%\raisebox{11mm}{%
+%\pstree{\TC*}{%
+%\pstree{\TC*}{
+%\pstree{\TC*}{
+%\pstree{\TC*}{
+%\pstree{\TC*}{\TC*~[tnpos=b,tnsep=0pt]{\vdots}}}}}
+%\TC*
+%\pstree{\TC*}{\TC*}
+%\pstree{\TC*}{\pstree{\TC*}{\TC*}}
+%\pstree{\TC*~[tnpos=r,tnsep=6pt]{\raisebox{3pt}{$\dots$}}}{%
+%\pstree{\TC*}{\pstree{\TC*}{\TC*}}}}}
+%\]
+\end{pv}
+
+\begin{pv}{2.11 Theorem}
+\itshape
+For every finitary endofunctor~$H$ a terminal coalgebra can be
+described as the quotient
+\[T_\Sigma/_{\sims}\]
+of a terminal $H_\Sigma$-coalgebra~$T_\Sigma$ (of all
+$\Sigma$-trees) modulo the congruence~\sims of Definition 2.9.
+\end{pv}
+
+\begin{pv}{Remark}
+More detailed: given a presentation of~$H$ as a quotient
+$\varepsilon\colon H_\Sigma\to H$
+and defining the quotient map $j^*\colon
+T_\Sigma\to T_\Sigma/_{\sims}$ as in 2.9, there exists a
+unique structure of a coalgebra, $\psi^*$, on~$T_\Sigma/_{\sims}$
+making~$j^*$ a homomorphism:\vspace{3.5mm}
+\[
+\xy
+\xymatrix{
+T_\Sigma
+\ar[0,1]^-{\psi_\Sigma}
+\ar[1,0]_{j^*}
+&
+H_\Sigma T_\Sigma
+\ar[0,1]^-{\varepsilon_{T_\Sigma}}
+&
+HT_\Sigma
+\ar[1,0]^{Hj^*}
+\\
+T_\Sigma/_{\sims}
+\ar[0,2]_-{\psi^*}
+&
+&
+H(T_\Sigma/_{\sims})
+}
+\endxy
+\]\vspace{1mm}
+
+\noindent
+And the coalgebra~$T_\Sigma/_{\sims}$ is terminal for~$H$.
+\end{pv}
+
+We denote $J^*=T_\Sigma/_{\sims}$.
+
+\begin{pf}
+We start with some preliminary facts.
+
+(1) For every natural number~$k$ there is unique
+morphism~$\overline{\partial}_k$ such that the following square
+\vspace{1mm}
+\[
+\xy
+\xymatrix{
+T_\Sigma
+\ar[0,1]^-{\partial_k}
+\ar[1,0]_{j^*}
+&
+I_{\Sigma^\perp}
+\ar[1,0]^{j}
+\\
+J^*
+\ar[0,1]_-{\overline{\partial}_k}
+&
+J
+}
+\endxy
+\]
+\vspace{1mm}
+
+\noindent
+commutes. Moreover, the cone $(\overline{\partial})_{k\in\omega}$ has
+the property that for every finite set $m\colon M\hookrightarrow
+J^*$ there is a~$k$ such that $\overline{\partial}_k{\cdot}m$~is a
+monomorphism.
+
+In fact, the first statement follows from the observation that given
+$s,r\in T_\Sigma$ with $j^*(s)=j^*(r)$, then
+$j(\partial_ks)=j(\partial_kr)$, due to the definition of~\sims.
+
+For the latter statement, find a finite set $m_0\colon
+M_0\hookrightarrow T_\Sigma$ such that $M$~is the image of~$M_0$
+under~$j^*$ and $j^*m_0$~is a monomorphism. For this finite
+set~$M_0$ of $\Sigma$-trees there clearly exists~$k$ such that the
+cutting of all trees of~$M_0$ at level~$k$ yields trees pairwise
+nonequivalent under~$\sim$---in other words, $j{\cdot}\partial_k{\cdot}m_0$
+is a monomorphism. Choose $f\colon M_0\to M$ with $mf=j^*m_0$ to
+conclude that, since
+\[\overline{\partial}_k{\cdot}m{\cdot}f=j{\cdot}\partial_k{\cdot}m_0\]
+is a monomorphism, also $\overline{\partial}_k{\cdot}m$~is a
+monomorphism.
+
+(2) The cone $(H\overline{\partial}_k)_{k\in\omega}$ is
+collectively monomorphic. In fact, given distinct elements $x,y\in
+HT_\Sigma$ there exists a finite nonempty set $m\colon M\to J^*$
+with $x,y \in Hm[HM]$ , see 2.1~(ii). Choose~$k$ with
+$\overline{\partial}_k{\cdot}m$ a monomorphism to conclude
+$H\overline{\partial}_k(x)\neq H\overline{\partial}_k(y)$.
+
+(3) The morphism $\varphi\colon HJ\to J$ of Definition~2.6 is a
+monomorphism. In fact, this states that given two tuples
+\[s=\sigma(s_1,\dots,s_n)\quad\text{and}\quad
+r=\varrho(r_1,\dots,r_m)\]
+in~$H_\Sigma I_{\Sigma^\perp}$ with $\sigma,\varrho\in\Sigma$, then
+if $j\varphi_{\Sigma^\perp}u_{I_{\Sigma_\perp}}$~merges these tuples, then also
+$\varepsilon_J{\cdot}H_\Sigma j$ merges them. In other words if $s$
+and~$r$ are considered as trees in~$I_{\Sigma^\perp}$
+(via~$\varphi_{\Sigma^\perp}$), then
+\[s\sim r\quad\text{implies}\quad \varepsilon_J{\cdot}H_\Sigma
+j\bigl(\sigma(s_i)\bigr) = \varepsilon_J{\cdot}H_\Sigma
+j\bigl(\varrho(r_k)\bigr).\]
+To prove this, we can restrict ourselves to the case that $s$~can be
+obtained from~$r$ by a single  application of some
+$\varepsilon$-equation. If the node of~$r$ at which this equation is
+applied is not the root,
+then that node lies in the subtree~$\varrho_{\llll}$
+for some $\llll=0,\dots,m-\nolinebreak1$. This implies
+\[s=\varrho(r_0,\dots,r_{\llll-1},s_{\llll},r_{\llll+1},\dots,r_{m-1})\]
+and $j(s_{\llll})=j(r_{\llll})$, therefore
+\[H_\Sigma j\bigl(\sigma(s_i)\bigr)=H_\Sigma
+j\bigl(\varrho(r_k)\bigr).\]
+If the above node is he root of~$r$, then the $\varepsilon$-equation
+we apply has to have form
+\[\sigma(x_0,\dots,x_{n-1})=\varrho(y_0,\dots,y_{m-1})\]
+where $x_i$ and~$y_k$ are variables of a set~$X$, and for some
+function $f\colon X\to I_{\Sigma^\perp}$ we have
+\[s_i=f(x_i)\quad\text{and}\quad r_j=f(y_j).\]
+Since the given equation is an $\varepsilon$-equation, i.e., the two
+tuples are merged by~$\varepsilon_{X}$, the naturality
+of~$\varepsilon$ yields
+\begin{align*}
+\varepsilon_J{\cdot}H_\Sigma j\bigl(\sigma(s_i)\bigr)
+&=\varepsilon_J{\cdot}H_\Sigma j{\cdot}H_\Sigma f\bigl(\sigma(x_i)\bigr)\\
+&=Hj{\cdot}Hf{\cdot}\varepsilon_X\bigl(\sigma(x_i)\bigr)\\
+&=Hj{\cdot}Hf{\cdot}\varepsilon_X{\cdot}\bigl(\varrho(y_k)\bigr)\\
+&=\varepsilon_J{\cdot}H_\Sigma j{\cdot}H\Sigma
+f\bigl(\varrho(y_k)\bigr)\\
+&=\varepsilon_J{\cdot}H_\Sigma j\bigl(\varrho(r_k)\bigr).
+\end{align*}
+
+(4) For each $k\in\omega$ the following squares
+\vspace{1.5mm}
+\[
+\vcenter{
+\xy
+\xymatrixcolsep{3pc}
+\xymatrix{
+T_\Sigma
+\ar[0,2]^-{\partial_{k+1}}
+\ar[1,0]_{\psi_\Sigma}
+&
+&
+I_{\Sigma^\perp}
+\\
+H_\Sigma T_\Sigma
+\ar[0,1]_-{u_{T_\Sigma}}
+&
+H_{\Sigma^\perp}T_{\Sigma}
+\ar[0,1]_-{H_{\Sigma^\perp}\partial_k}
+&
+H_{\Sigma^\perp}I_{\Sigma^\perp}
+\ar[-1,0]_{\varphi_{\Sigma^\perp}}
+}
+\endxy
+}
+\qquad
+\text{and}
+\qquad
+\vcenter{
+\xy
+\xymatrix{
+J^*
+\ar[0,1]^-{\overline{\partial}_{k+1}}
+\ar[1,0]_{\varphi^*}
+&
+J
+\\
+HJ^*
+\ar[0,1]_-{H\overline{\partial}_k}
+&
+HJ
+\ar[-1,0]_{\varphi}
+}
+\endxy
+}
+\]\vspace{1mm}
+
+\noindent
+commute. In fact,the left-hand square commutes because for every
+tree $s=\sigma(s_i)$ in~$T_k$ the cutting of~$s$ at
+level~$k+\nolinebreak1$ can be performed by cutting each~$s_i$ at
+level~$k$, i.e.,
+\[\partial_{k+1}s=\sigma(\partial_ks_i).\]
+To prove that the right-hand square commutes, use the fact that
+$j^*\colon T_\Sigma\to J^*$ is an epimorphism with
+\begin{align*}
+\overline{\partial}_{k+1}j^*&=j{\cdot}\partial _{k+1}&&\text{by (1) above}\\
+&=j{\cdot}\varphi_{\Sigma^\perp}{\cdot}H_{\Sigma^\perp}\partial_k{\cdot}
+u_{T_\Sigma}{\cdot}\psi_\Sigma&&\text{see the left-hand square}\\
+&=j{\cdot}\varphi_{\Sigma^\perp}{\cdot}u_{I_{\Sigma^\perp}}{\cdot}
+H_\Sigma\partial_k{\cdot}\psi_{\Sigma}&&\text{by naturality of $u$}\\
+&=\varphi{\cdot}\varepsilon_J{\cdot}H_\Sigma(j{\cdot}\partial_k){\cdot}\psi_\Sigma&&
+\text{by 2.6}\\
+&=\varphi{\cdot}H(j{\cdot}\partial_k){\cdot}\varepsilon_{T_\Sigma}{\cdot}
+\psi_\Sigma&&\text{by naturality of $\varepsilon$}\\
+&=\varphi{\cdot}H(\overline{\partial}_k{\cdot}j^*){\cdot} \varepsilon_{T_\Sigma}
+{\cdot}\psi_\Sigma&&\text{by (1) above}\\
+&=\varphi{\cdot}H\overline{\partial}_k{\cdot}\varphi^*{\cdot}j^*&&
+\text{by Remark 2.11.}
+\end{align*}
+
+(5) The morphism $\psi^*\colon J^*\to HJ^*$ is well-defined in
+the above Remark. In other words, the kernel equivalence of~$j^*$
+contains the kernel equivalence of
+\[\beta\overset{\text{def}}{=}Hj^*{\cdot}\varepsilon_{T_\Sigma}{\cdot}
+\psi_\Sigma\colon T_\Sigma\to HJ^*.\]
+Since the cone of all $\varphi{\cdot}H\overline{\partial}_k\colon
+HJ^*\to J$ ($k\in\omega$) is monomorphic by (2) and~(3) above, it is
+sufficient to show that the kernel equivalence of~$j^*$ contains
+that of the cone $(\varphi{\cdot}H\overline{\partial}_k{\cdot}\beta)$. In
+fact, we prove that
+\[\varphi{\cdot}H\overline{\partial}_k{\cdot}\beta=j{\cdot}\partial_{k+1}\qquad
+\text{for all $k\in\omega$,}\]
+which proves the statement since (by definition of \sims\ and~$j^*$)
+we have $j^*(s)=j^*(r)$ iff
+$j{\cdot}\partial_{k+1}(s)=j{\cdot}\partial_{k+1}(r)$ for all $k\in\omega$.
+The proof is as follows:
+\begin{align*}
+\varphi{\cdot}H\overline{\partial}_k{\cdot}\beta&=
+\varphi{\cdot}(H\overline{\partial}_k{\cdot}\varepsilon_{J^*}){\cdot}
+H_{\Sigma}j^*{\cdot}\psi_\Sigma&&
+\text{by definition of $\beta$}\\
+&=\varphi{\cdot}\varepsilon_J{\cdot}H_\Sigma(\overline{\partial}_kj^*)
+{\cdot}\psi_\Sigma&&\text{by naturality of $\varepsilon$}\\
+&=\varphi{\cdot}\varepsilon_J{\cdot}H_\Sigma(j{\cdot}\partial_k){\cdot}\psi_\Sigma&&
+\text{by (1) above}\\
+&=j{\cdot}\varphi_{\Sigma^\perp}{\cdot}u_{I_{\Sigma^\perp}}{\cdot}H_\Sigma
+\partial_k{\cdot}\psi_\Sigma&&\text{by Definition 2.5}\\
+&=j{\cdot}\varphi_{\Sigma^\perp}{\cdot}H_{\Sigma^\perp}\partial_k{\cdot}
+u_{T_\Sigma}{\cdot}\psi_\Sigma&&\text{by naturality of $u$}\\
+&=j{\cdot}\partial_{k+1}&&\text{by (4) above.}
+\end{align*}
+
+(6) The coalgebra~$J^*$ is terminal. In fact, given a coalgebra
+$C\xrightarrow{\rule{1mm}{0mm}\gamma\rule{1mm}{0mm}}HC$, choose a
+morphism
+\[m\colon HC\to H_\Sigma C\qquad\text{with $\varepsilon_Cm=\id$.}\]
+From the $H_\Sigma$-coalgebra
+$C\xrightarrow{\rule{1mm}{0mm}\gamma\rule{1mm}{0mm}}
+HC\xrightarrow{\rule{1mm}{0mm}m\rule{1mm}{0mm}}H_\Sigma C$ we have a
+unique homomorphism $f\colon C\to T_\Sigma$ in~$\Coalg H_\Sigma$. We
+obtain a homomorphism $j^*{\cdot}f\colon C\to J^*$ in~$\Coalg H$.
+%\vspace{1.5mm}
+%\[
+%\psset{arrows=->,nodesep=3pt}
+%\everypsbox{\scriptstyle}
+%\begin{psmatrix}
+%C&&&HC\\
+%&HC&H_\Sigma C\\
+%T_\Sigma&&H_\Sigma T_\Sigma\\
+%&&&HT_\Sigma\\
+%J^*&&&HJ^*
+%\ncline{1,1}{1,4}^\gamma
+%\ncline{1,1}{2,2}^\gamma
+%\ncline{2,2}{2,3}^m
+%\ncline{2,3}{1,4}^{\varepsilon_C}
+%\ncline{1,1}{3,1}<f
+%\ncline{2,3}{3,3}>{H_\Sigma f}
+%\ncline{3,1}{3,3}^{\psi_\Sigma}
+%\ncline{3,3}{4,4}^{\varepsilon_{T_\Sigma}}
+%\ncline{3,1}{5,1}<{j^*}
+%\ncline{4,4}{5,4}>{Hj^*}
+%\ncline{5,1}{5,4}_{\varphi^*}
+%\ncline{1,4}{4,4}>{Hf}
+%\end{psmatrix}
+%\]\vspace{1mm}
+
+To prove the uniqueness of that homomorphism, let $h_1,h_2\colon
+C\to J^*$ be homomorphisms of $H$-coalgebras. Since (1)~implies that
+cone~$(\overline{\partial}_k)_{k\in\omega}$ is collectively
+monomorphic, it is sufficient to prove
+\[\overline{\partial}_kh_1=\overline{\partial}_kh_2\qquad
+\text{for all $k\in\omega$.}\]
+We proceed by induction in~$k$.
+
+\textit{Case $k=0$}. The function~$\partial_0$ is constant (with
+value~$\perp$), thus, it follows that $\overline{\partial}_0$~is
+also constant.
+
+\textit{Induction step}. Since $h_t$~is a homomorphism for $t=1,2$,
+it follows from (4) above that
+\[\overline{\partial}_{k+1}h_t=\varphi{\cdot}H \overline{\partial}_k
+{\cdot}\varphi^*{\cdot}h_t=\varphi
+{\cdot}H(\overline{\partial}_kh_t){\cdot}\gamma.\]
+Thus, from $\overline{\partial}_kh_1=\overline{\partial}_kh_2$
+we conclude
+$\overline{\partial}_{k+1}h_1=\overline{\partial}_{k+1}h_2$.\qed
+\end{pf}
+
+\section{A Description of Completely Iterative Monads}
+
+\begin{pv}{3.1}
+We use the terminology of ~\cite{aamv}. Given a finitary endofunctor $H$,
+presented as in 2.1 above, we denote by $\TT_\Sigma$ the free completely iterative monad on $H_\Sigma$ (of infinite $\Sigma$-trees) and by $\TT_H$ the free completely iterative monad on $H$. The signature obtained from $\Sigma$ by adding new nullary
+operation symbols from a set $X$ is denoted by $\Sigma+X$.
+\end{pv}
+
+\begin{pv}{3.2 Remark}
+For every finitary functor $H$, see 2.1, and every set $X$ we have a quotient
+\[\varepsilon+\id_X\colon H_{\Sigma+X}=H_\Sigma({-})+X\to
+H({-})+X.\]
+Observe that $\varepsilon$-equations, as defined in
+~2.1, are precisely the same as
+$(\varepsilon+\id_X)$-equations. Denote by
+\[\simx\]
+the corresponding congruence on the
+$(\Sigma+X)$-algebra~$I_{\Sigma^\perp+X}$, see Definition~2.6.
+(For $X\neq\emptyset$ the choice of a new
+symbol~$\perp$ is superfluous---instead, any element of~$X$ would
+have done.)
+
+Further, let
+\[\simxs\]
+denote the congruence on $T_\Sigma X=T_{\Sigma+X}$ of
+Definition~2.9 given by applying the $\varepsilon$-equations
+finitely or infinitely many times. That is, $\Sigma$-trees
+$s$ and~$r$ over~$X$
+are congruent iff $\partial_ks\simx\partial_kr$ holds
+for all $k\in\omega$.
+\end{pv}
+
+\begin{pv}{3.3 Example}
+For $H=\PP_{\!2}$ , see 2.2~(i), the congruence~\simx\ on
+the algebra~$T_{\Sigma^\perp+X}$ (of all finite binary trees with
+leaves labeled in $X+\{b,\perp\}$ and inner nodes labeled by~$\beta$)
+is just the commutativity of the operation~$\beta$. And \simxs~is
+the congruence on the algebra~$T_{\Sigma+X}$ (of all binary trees
+with leaves labeled in $X+\{b\}$) which uses the commutativity
+finitely or infinitely many times.
+%
+%\[
+%\psset{levelsep=10mm,nodesep=3pt}
+%\raisebox{19mm}{$
+%\pstree{\TR{\beta}}{\TR{b}
+%\pstree{\TR{\beta}}{\TR{x_1}
+%\pstree{\TR{\beta}}{\TR{b}
+%\pstree{\TR{\beta}}{\TR{x_2}
+%\pstree{\TR{\beta}}{\TR{b}
+%\Tp~[tnpos=b,tnsep=0pt]{\makebox[0pt]{%
+%\kern5pt\raisebox{7pt}{.}\kern-.7pt\raisebox{3pt}{.}\kern-1.0pt%
+%\raisebox{-.9pt}{.}}}}}}}}$}\quad\simxs\quad
+%\raisebox{19mm}{$
+%\pstree{\TR{\beta}}{%
+%\pstree{\TR{\beta}}{%
+%\pstree{\TR{\beta}}{%
+%\pstree{\TR{\beta}}{%
+%\pstree{\TR{\beta}}{%
+%\Tp~[tnpos=b,tnsep=0pt]{\makebox[0pt]{%
+%\kern-4.5pt\raisebox{-1.1pt}{.}\kern-.9pt\raisebox{3pt}{.}\kern-.9pt%
+%\raisebox{7pt}{.}}}
+%\TR{b}} \Tr{x_2}} \TR{b}} \TR{x_1}} \TR{b}}$}
+%\]
+\end{pv}
+
+\begin{pv}{3.4 Theorem}
+\itshape
+For every finitary endofunctor~$H$ of~\Set\ a free completely
+iterative monad~$\TT_H$ on~$H$ can be defined as the quotient of the
+tree monad~$\TT_\Sigma$ modulo the monad congruence~\simxs\
+\textnormal{(}$X$ a set\textnormal{)}.
+\end{pv}
+
+\begin{pv}{Remark}
+More detailed: given a presentation as a quotient $\varepsilon\colon
+H_\Sigma\to H$, then for the free completely iterative monad~$\TT_H$
+on~$H$ we have a monad homomorphism $h\colon\TT_\Sigma\to\TT_H$ whose
+components~$h_X$ are epimorphisms with the kernel equivalence~\simxs.
+\end{pv}
+
+\begin{pf}
+The universal property of $\TT_\Sigma$ yields a monad homomorphism
+\linebreak
+$h\colon\TT_\Sigma\to\TT_H                        $ with surjective components. We know from
+Theorem~2.11 that a terminal coalgebra, $TX$, of the finitary
+endofunctor $H({-})+X$ can be obtained from the
+tree coalgebra $T_\Sigma X=T_{\Sigma+X}$ modulo the
+congruence~\simxs. Consequently, \simxs~is the kernel equivalence
+of $h_X\colon T_\Sigma X\to TX$.\qed
+\end{pf}
+
+\section{Description of Iterative Monads}
+\begin{pv}{4.1}
+Recall from~\cite{be} or~\cite{e} that iterative monads are those ideal
+monads $S$ which have a unique solution for every guarded equation
+morphism $e\colon X\to S(Y+\nolinebreak Y)$ with $X$ and~$Y$ finite.
+\end{pv}
+
+\begin{pv}{Example}
+(see ~\cite{ebt}). Recall from the Introduction that a tree in~$T_\Sigma X$ is called
+\textit{rational} provided that it has only finitely subtrees.
+The tree monad $\TT_\Sigma$ has a submonad~$\RR_\Sigma$
+formed by all rational $\Sigma$-trees. More precisely, put
+\[\RR_\Sigma=(R_\Sigma,\eta,\mu)\]
+where $R_\Sigma$~assigns to every set~$X$ the subalgebra~$R_\Sigma
+X$ of~$T_\Sigma X$ of all rational trees, $\eta_X$~sends~$x$ to the
+singleton tree labeled by~$x$, and $\mu_X$~is given by tree tupling.
+(It is easy to see that a tree-tupling of rational trees is always
+rational.)
+\end{pv}
+
+\begin{pv}{4.2 Theorem}
+(see ~\cite{ebt}).
+\itshape
+The rational-tree monad~$\RR_\Sigma$ is a free iterative monad on
+the signature~$\Sigma$.
+\end{pv}
+
+\begin{pv}{4.3 Remark}
+Given a finitary endofunctor~$H$ of\/~\Set, we define in~\cite{amv} a
+subfunctor~$R$ of the above free iterative monad~$\TT_H$ on~$H$ by
+\[RY=\bigcup e^\dag[Y]\]
+where the union ranges over all flat equation morphisms $e\colon
+X\to HX+\nolinebreak Y$ with $X$~finite and $e^dag$ denotes the unique
+solution of  e ).
+\end{pv}
+
+\begin{pv}{4.4 Theorem}
+(see AMV]).
+\itshape
+Every finitary endofunctor~$H$ of~\/~\Set\ generates a free
+iterative monad, viz, the submonad~$\RR_H$ of~$\TT_H$ carried by the
+above subfunctor~$R$.
+\end{pv}
+
+\begin{pv}{4.5 Notation}
+Let $H$~be a finitary endofunctor of~\Set\ represented as a quotient
+\[\varepsilon: H_\Sigma\to H.\]
+For every set~$X$ we denote by~\vxs\ the congruence on the
+rational-tree algebra~$R_\Sigma X$ which is the restriction of the
+congruence~\simxs\ of 3.2. That is, two rational
+$\Sigma$-trees $s$ and~$r$ over~$X$ are congruent iff $r$~can be
+obtained from~$s$ by (potentially) infinite applications of
+$\varepsilon$-equations---i.e., iff $\partial_ks\simx\partial_kr$
+for all $k\in\nolinebreak\omega$.
+\end{pv}
+
+\begin{pv}{4.6 Theorem}
+(Description of free iterative monads)
+\itshape
+For every finitary endofunctor~$H$ on\/~\Set\ a free iterative
+monad~$\RR_H$ on~$H$ can be described as the quotient of the
+rational-tree-monad~$\RR_\Sigma$ modulo the monad congruence~\vxs\
+($X$ a set).
+\end{pv}
+
+\begin{pv}{Remark}
+We thus exhibit, for every presentation of~$H$ as a quotient
+$\varepsilon\colon H_\Sigma\to H$, a monad homomorphism
+$h\colon\RR_\Sigma\to\RR$ whose components~$h_X$ are epimorphisms
+with the kernel equivalence~\vxs.
+\end{pv}
+
+\begin{pf}
+Denote by
+\[k\colon\TT_\Sigma\to\TT_H\]
+the quotient of Theorem~3.4. Observe that for every flat equation
+morphism $e\colon X\to H_\Sigma X+\nolinebreak Y$ w.r.t~$\Sigma$ we
+obtain a flat equation morphism
+\[\overline{e}\equiv X\xrightarrow{\rule{1mm}{0mm}e\rule{1mm}{0mm}}
+H_\Sigma X+Y
+\xrightarrow{\rule{1mm}{0mm}\varepsilon_X+\id_Y\rule{1mm}{0mm}}
+HX+Y\]
+w.r.t~$H$ such that the following triangle
+\begin{equation}
+\vcenter{
+\xy
+\xymatrix{
+&
+X
+\ar[1,-1]_{e^\dag}
+\ar[1,1]^{\overline{e}^\dag}
+&
+\\
+T_\Sigma Y
+\ar[0,2]_-{k_Y}
+&
+&
+TY
+}
+\endxy
+}
+\end{equation}
+commutes. In fact, since $e^\dag$~is a coalgebra homomorphism w.r.t
+$H_\Sigma({-})+Y$ (see ~\cite{aamv}, Solution Lemma 3.4 ) so
+is~$k_Ye^\dag$, and this clearly implies that $k_Ye^\dag$~is a
+coalgebra homomorphism w.r.t
+$H_\Sigma({-})+\nolinebreak Y$. Since $TY$~is
+terminal, we conclude $\overline{e}^\dag=k_Ye^\dag$.
+
+This implies that $k_Y$~has a domain-codomain restriction
+$h_Y\colon R_\Sigma Y\to RY$. In fact, every element~$r$ of~$R_\Sigma
+Y$ is a solution of some flat system $e\colon X\to H_\Sigma
+X+\nolinebreak Y$ with $X$~finite, more precisely, $r=e^\dag(x)$ for
+some $x\in X$. Then
+\[k_Y(r)=k_Ye^\dag(x)=\overline{e}(x)\in RY.\]
+Since $k\colon T_\Sigma\to T$ is a natural transformation, it
+follows that the maps~$h_Y$ form a natural transformation $h\colon
+R_\Sigma\to R$. Moreover, $h$~is a monad morphism,
+$h\colon\RR_\Sigma\to\RR$, because it is a restriction of the monad
+morphism $k\colon\TT_\Sigma\to\TT$ to submonads.
+
+It remains to prove that $h_Y$~is surjective. To this end, for every
+flat equation $\overline{e}\colon X\to HX+\nolinebreak Y$ choose a
+splitting of~$\varepsilon_X$:
+\[u\colon HX\to H_\Sigma X,\qquad \varepsilon_Xu=\id\]
+and consider the flat equation $e=(u+\id_Y)\overline{e}\colon X\to
+H_\Sigma X+\nolinebreak Y$ w.r.t.~$H_\Sigma$. Then the above
+triangle~(3) commutes. To verify this, we only need to prove
+that $e^\dag$~is a coalgebra homomorphism w.r.t.
+$H({-})+Y$ from~$\overline{e}$ to the coalgebra
+$T_\Sigma Y\cong H_\Sigma T_\Sigma
+Y+Y\xrightarrow{\rule{1mm}{0mm}\varepsilon_{T_\Sigma
+Y}+\id\rule{1mm}{0mm}}H(T_\Sigma Y)+\nolinebreak Y$. In fact, from
+the Solution Lemma of ~\cite{aamv} we know that $e^\dag$~is a coalgebra homomorphism
+from~$e$ to~$T_\Sigma Y$. That is, in the following diagram
+\vspace{1mm}
+
+\[
+\xy
+\xymatrix{
+X
+\ar[0,1]^-{\overline{e}}
+\ar[3,0]_{e^\dag}
+&
+HX+Y
+\ar[0,2]^-{u+\id_Y}
+\ar @{=} [1,1]
+&
+&
+H_\Sigma X+Y
+\ar[3,0]^{H_\Sigma e^\dag+\id_Y}
+\ar[1,-1]_{\varepsilon_X+\id_Y\phantom{MM}}
+\\
+&
+&
+HX+Y
+\ar[1,0]^{He^\dag+\id_Y}
+&
+\\
+&
+&
+H(T_\Sigma Y)+Y
+&
+\\
+T_\Sigma Y
+\ar[0,3]_-{\cong}
+&
+&
+&
+H_\Sigma(T_\Sigma Y)+Y
+\ar[-1,-1]^{\varepsilon_{T_\Sigma Y}+\id_Y\phantom{MM}}
+}
+\endxy
+\]
+\vspace{1mm}
+
+\noindent
+the outward square commutes. Since the right-hand square commutes by
+naturality of~$\varepsilon$, it follows that $e^\dag$~is a
+homomorphism from~$\overline{e}$ w.r.t $H({-})+Y$, as
+requested. This shows that $h_Y$~is surjective: every element
+$\overline{r}\in RY$ has the form
+$\overline{r}=\overline{e}^\dag(x)$ for some flat equation
+$\overline{e}\colon X\to HX+\nolinebreak Y$ with $X$~finite and some
+$x\in X$, and then we have
+\[\overline{r}=h_Y\bigl(e^\dag(x)\bigr)\qquad\text{with}\qquad
+e^\dag(x)\in R_\Sigma Y.\]
+\mbox{}\vspace{-34pt}\par\mbox{}\qed
+\end{pf}
+
+
+
+\begin{thebibliography}{\text{MMMM}}
+\bibitem[\text{AAMV}]{aamv}
+Aczel,~P., Ad\'amek,~J., Milius,~S. and Ve\-le\-bil,~J.: ``Infinite Trees and
+Completely Iterative Theories''; to appear in Theor. Comps. Science.
+
+%\bibitem[\text{A}]{a}
+%Ad\'amek,~J.: ``Free Algebras and Automata Realizations in the
+%Language of Categoies''; Comment. Math. Univ. Carolin\ae, 15(1974),
+%\mbox{589--602}.
+
+\bibitem[\text{AMV}]{amv}
+Ad\'amek,~J., Milius,~S. and Velebil,~J.: ``On Rational Monads and Free Iterative Theories''; Electr. Notes Theor. Comp. Science 69 (2002)
+
+\bibitem[\text{AT}]{at}
+Ad\'amek,~J. and Trnkov\'a,~V.: ``Automata and Algebras in
+Categories''; Academic Publishers, Dordrecht (1990)
+
+\bibitem[\text{B}]{b}
+Barr,~M.: ``Terminal Coalgebras in Well-founded Set Theory''; Theor.
+Comp. Science 124(1994), \mbox{182--192}.
+
+\bibitem[\text{BE}]{be}
+Bloom, S.~L. and \'Esik,~Z.: ``Iteration Theories: The Equational
+Logic of Iterative Processes''; EATCS Monograph Series on
+Theoretical Computer Science, Springer-Verlag (1993)
+
+\bibitem[\text{E}]{e}
+Elgot, C.~C.: ``Monadic Computation and Iterative Algebraic
+Theories''; in: Logic Colloquium~'73 (eds: H.~E. Rose and J.~C.
+Shepherdson), North-Holland Publishers, Amsterodam (1975),
+\mbox{175--230}.
+
+\bibitem[\text{EBT}]{ebt}
+Elgot, C.~C., Bloom, S.~L. and Tindell,~R.: ``On the Algebraic
+Structure of Rooted Trees''; J. Comp. Syst. Sciences, 16(1978),
+\mbox{361--399}.
+
+\bibitem[\text{L}]{l}
+Lambek,~J.: ``A Fixpoint Theorem for Complete Categories''; Math.
+Z., 103(1968), \mbox{151--161}.
+
+\bibitem[\text{M}]{m}
+Moss,~L.: ``Parametric Corecursion''; Theoretical Computer Science,
+260(2001), \mbox{139--163}.
+
+\end{thebibliography}
+
+
+\end{document}
+
+}
diff --git a/omdoc-semantics/macros/proceedings/Example/cmcs03db.tex b/omdoc-semantics/macros/proceedings/Example/cmcs03db.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e71ec72b8c65ac26b0040f84bcc5ec83aae90526
--- /dev/null
+++ b/omdoc-semantics/macros/proceedings/Example/cmcs03db.tex
@@ -0,0 +1,102 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%                                                     %%%%%
+%%%%      The database of submitted papers               %%%%%
+%%%%                                                     %%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%
+%%%%   Each entry has the following formats:
+%%%%
+%%%%   either:   \article[optionalRemark]
+%%%%                     {fileName}{noOfPages}{author}{title}
+%%%%
+%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%
+%%%%  for instance
+%%%%             \article[(Invited Speaker){pratt}
+%%%%                     {12}
+%%%%                     {Vaughan Pratt}
+%%%%                     {Comonoids in $chu_2$}
+%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ \article[(Invited Speaker)]
+   {pratt}{12}
+   {Vaughan Pratt}
+   {Comonoids in chu: a large cartesian closed sibling of topological spaces}
+
+ \article{power}{16}
+ {John Power}
+ {Towards a theory of mathematical operational semantics}
+
+ \article{adamek}{16}
+ {Ji\v r\'\i\ Ad\'amek}
+ {On a Description of Terminal Coalgebras and Iterative Theories}
+
+ \article{rosu}{18}
+ {Grigore Ro\c{s}u}
+ {Inductive Behavioral Proofs by Unhiding}
+
+ \article{pattinson}{20}
+ {Dirk Pattinson}
+ {Computable Functions on Final Coalgebras}
+
+ \article{bartels}{18}
+ {Falk Bartels, Ana Sokolova, Erik de Vink}
+ {A hierarchy of probabilistic system types}
+
+ \article{palmigiano}{16}
+ {Alessandra Palmigiano}
+ {Coalgebraic Semantics for Positive Modal Logic}
+
+ \article{barbosa}{18}
+ {L. S. Barbosa, J. N. Oliveira}
+ {State-based Components Made Generic}
+
+ \article{kurz}{18}
+ {Clemens Kupke, Alexander Kurz, Yde Venema }
+ {Stone Coalgebras}
+
+ \article{komenda}{20}
+ {Jan Komenda}
+ {Coinduction in Control of Partially Observed Discrete-Event Systems}
+
+ \article{santocanale}{20}
+ {Luigi Santocanale}
+ {Logical Construction of Final Coalgebras}
+
+ \article{rothe}{18}
+ {Jan Rothe, Dragan Ma\v{s}ulovi\'c}
+ {Modal Logics for Observation Equivalences}
+
+ \article{cirstea}{18}
+ {Corina C\^{\i}rstea}
+ {A Note on Expressivity and Compositionality in Logics for Coalgebras}
+
+ \article{roggenbach}{16}
+ {Till Mossakowski, Markus Roggenbach, Lutz Schr{\"o}der}
+ {CoCASL at Work --- Modelling Process Algebra}
+
+ \article{jacobs}{20}
+ {Bart Jacobs, Jesse Hughes}
+ {Simulations in Coalgebra}
+
+ \article{chen}{16}
+ {Hubie Chen, Riccardo Pucella}
+ {A Coalgebraic Approach to Kleene Algebra with Tests}
+
+ \article{uustalu}{16}
+ {Ralph Matthes, Tarmo Uustalu}
+ {Substitution in Non-wellfounded Syntax with Variable Binding}
+
+ \article{lenisa}{18}
+ {Daniela Cancila, Furio Honsell, Marina Lenisa}
+ {Generalized Coiteration Schemata}
+
+\article{baltag}{22}
+ {Alexandru Baltag}
+ {Coalgebraic Semantics for Epistemic Programs}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%           End of article database
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/omdoc-semantics/macros/proceedings/Example/preface_cmcs03.tex b/omdoc-semantics/macros/proceedings/Example/preface_cmcs03.tex
new file mode 100644
index 0000000000000000000000000000000000000000..4d367ed87f3ec7143d6bd22fd8eafbb24eaa95b1
--- /dev/null
+++ b/omdoc-semantics/macros/proceedings/Example/preface_cmcs03.tex
@@ -0,0 +1,159 @@
+\documentclass{article}
+\usepackage{url}
+
+%%%%%%%%%%%% \linie %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\linie}{\noindent {\rule{14cm}{1mm}}}
+\pagenumbering{roman} \sloppy
+
+\begin{document}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%      The titlepage for ENTCS
+%%%      (selfmade)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\thispagestyle{empty} \vskip-2cm
+\begin{sffamily} \noindent{\LARGE
+ Electronic Notes in Theoretical Computer Science}\\
+ \linie
+ \vskip-.2cm
+ \linie
+ \vskip1cm
+ \noindent \large Volume 82.1\\
+ \vskip 1cm
+ \noindent {\Large \sc  Coalgebraic Methods in Computer Science }\\
+
+ \noindent {\Large \sc \bf CMCS'03} \ \ \vskip 1.2cm
+ \noindent\large Warsaw, Poland\\
+
+ \noindent April 5-6, 2003\\
+
+ \vskip.3cm
+ \linie
+ \vskip7cm \noindent
+ Guest Editor:\\
+
+ \noindent {\sc H.~Peter Gumm} \vskip.5cm
+ \linie
+\end{sffamily}
+\newpage
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%      An empty page
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ \
+\newpage
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%      Table of content for proceedings
+%%%      using the proc-package
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%  An entry for the preface
+\addtocontents{toc}{\contentsline {section}{ Preface}{\rm v}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%      Process all entries from cmcs03db.tex
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ \input proctoc         %% macros for generating each entry
+ \input cmcs03db        %% database for the proceedings
+
+%%%       Generate the table of contents :
+
+ \tableofcontents
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%
+%%%%%   The Preface
+%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\newpage
+\section*{Preface}
+This volume contains the proceedings of the Sixth Workshop on
+Coalgebraic Methods in Computer Science (CMCS'03). The workshop
+was held in Warsaw, Poland on April 5 and 6, 2003, as a satellite
+event to the European Joint Conference on Theory and Practice of
+Software (ETAPS'03). The aim of the CMCS workshop series is to
+bring together researchers with a common interest in the theory of
+coalgebras and its applications. Previous workshops have been
+organized in Lisbon (1998), Amsterdam (1999), Berlin (2000), Genoa
+(2001), and Grenoble (2002).
+
+Coalgebras have been found extremely useful for capturing
+state-based dynamical systems, such as transition systems,
+automata, process calculi, and class-based systems. The theory of
+coalgebras has developed into a field of its own interest,
+presenting a deep mathematical foundation, a growing domain of
+applications and interactions with various other fields, such as
+reactive and interactive systems theory, object oriented and
+concurrent programming, formal system specification, modal logic,
+dynamical systems, control systems, category theory, algebra,
+analysis, etc..
+%Much of this is witnessed by the papers in this volume.
+
+ \vskip.5cm
+
+\noindent The program committee of CMCS'03 consisted of
+\begin{itemize}
+ \item Ji\v r\'\i\ Ad\'amek, Technical University of
+ Braunschweig, Germany;
+ \item Corina C\^{\i}rstea, Oxford University, UK;
+ \item H.~Peter Gumm, University of Marburg, Germany, (chair);
+ \item Bart Jacobs, University of Nijmwegen, The Netherlands;
+ \item Alexander Kurz, University of Leicester, UK;
+  \item Marina Lenisa, University of Udine, Italy;
+  \item Ugo Montanari, University of Pisa, Italy;
+ \item Larry Moss, Indiana University, Bloomington, USA;
+ \item Ataru T. Nakagawa, Software Research Associates, Tokyo
+ Japan;
+ \item Horst Reichel, Technical University Dresden, Germany;
+ \item Grigore Ro\c{s}u, University of Illinois, Urbana, USA;
+ \item Jan Rutten, CWI, Amsterdam, The Netherlands;
+ \item James Worrell, Tulane University, New Orleans, USA.
+\end{itemize}
+
+\noindent The papers were refereed by the program committee and by
+several outside referees, whose help is gratefully acknowledged.
+The invited speakers at the conference were
+\begin{itemize}
+ \item Zolt\'{a}n \'{E}sik, University of Szeged, Hungary;
+ \item Vaughan Pratt, Stanford University, USA.
+\end{itemize}
+Vaughan Pratt's lecture is included in the printed version of
+these proceedings, Zolt\'{a}n \'{E}sik's lecture is expected to be
+part of the final ENTCS volume.
+
+
+These proceedings will be published as volume 82.1 in the series
+Electronic Notes in Theoretical Computer Science (ENTCS). The
+proceedings of the previous CMCS workshops appeared as ENTCS
+Volumes 11, 19, 33, 44.1, and 65.1.
+
+ENTCS is published electronically through the facilities of
+Elsevier Science B.V. and under its auspices. The volumes in the
+ENTCS series are available online at
+ \url{http://www.elsevier.nl/locate/entcs}.
+We are grateful to ENTCS for their continuing support, in
+particular to Mike Mislove, Managing Editor of the ENTCS series.
+
+For the sixth time, CMCS has been organized as satellite event to
+ETAPS. We are very grateful to the ETAPS organizers, especially to
+Damian Niwinski, for taking care of all the local organization and
+for accommodating all our special requests. Thanks also to Mikolaj
+Bojanczyk for managing the printing of these proceedings.\\
+
+\noindent \emph{Marburg, February 28, 2003} \hfill \emph{H.~Peter
+Gumm}
+
+\end{document}
diff --git a/omdoc-semantics/macros/proceedings/procnum.tex b/omdoc-semantics/macros/proceedings/procnum.tex
new file mode 100644
index 0000000000000000000000000000000000000000..65a66f7180200e2f710f9954d979d9d4c3d6e894
--- /dev/null
+++ b/omdoc-semantics/macros/proceedings/procnum.tex
@@ -0,0 +1,49 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%
+%%%%   Calculates and sets the correct page
+%%%%   numbers for a particular article.
+%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%
+%%%%   usage: Insert the following lines before
+%%%%          the \begin{document} into the article
+%%%%
+%%%%            \input procnum
+%%%%            \numbering{<database>}{<articleId>}
+%%%%
+%%%%   Replace <articleId> with the id for the current article
+%%%%   and <database> by the name of the textfile containing
+%%%%   an entry for each article:
+%%%%
+%%%%     \article[<optRemark>]{<paperId>}{noPages}{author}{title}
+%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcounter{startPage}
+\setcounter{startPage}{1}
+
+%% Define a command for the entries in the database
+%% of articles :
+%%     A counter is created from the <articleId>
+%%     and initialized to the current startPage
+%%     The startPage counter is incremented by the
+%%     size of the current article :
+%%
+\newcommand{\article}[5][]{
+  \newcounter{#2}
+  \setcounter{#2}{\value{startPage}}
+  \addtocounter{startPage}{#3}
+}
+
+
+%% The argument to the following command will be
+%% the <articleId>. The corresponding counter's
+%% value tells where to start the numbering
+%% of this article.
+
+\newcommand{\numbering}[2]{
+    \input{#1}
+    \setcounter{page}{\value{#2}}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/omdoc-semantics/macros/proceedings/proctoc.tex b/omdoc-semantics/macros/proceedings/proctoc.tex
new file mode 100644
index 0000000000000000000000000000000000000000..5bdc1052d5bdb9e36eb8fd3d86096212d93eb6a6
--- /dev/null
+++ b/omdoc-semantics/macros/proceedings/proctoc.tex
@@ -0,0 +1,54 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%  Creates the correct "Table of Contents" for your proceedings
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% Usage:
+%%%    Paste the following commands into your LaTeX file :
+%%%
+%%%        \input proctoc    %%% this file
+%%%        \input <database>    %%% the list of articles
+%%%        \tableofcontents      %%% generate the table of contents
+%%%
+%%%    and replace <database> by the name of a texfile,
+%%%    containing for each article an entry of the format
+%%%
+%%%     \article[<optRemark>]{<paperId>}{noPages}{author}{title}
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%  Macro for formatting each entry in the table of contents (toc)
+%%%
+%%%  usage:
+%%%     \formatEntry[optionalRemark]{author(s)}{title}{pageNumber}
+%%%
+%%%  redefine this to suit your taste
+%%%
+%%%  Example:
+%%%
+%%%    \newcommand{\formatEntry}[4]{
+%%%         \contentsline{section}{{\sc #2} {\rm #1} \\ {\rm #3 \dotfill}}{\rm #4}}
+
+\newcommand{\formatEntry}[4]{
+    \contentsline{section}{{\sc #2} {\rm #1} \\ {\rm #3 \dotfill}}{\rm #4}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%      Macros for calculating the number
+%%%      of the starting page for each article
+%%%      and for generating its entry in the
+%%%      table of contents
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ \newcounter{startPage}
+ \setcounter{startPage}{1}
+
+ \newcommand{\article}[5][]{
+     \newcounter{#2}
+     \setcounter{#2}{\value{startPage}}
+     \addtocontents{toc}
+        {\formatEntry {#1}{#4}{ #5}{\thestartPage}}
+     \addtocounter{startPage}{#3}
+ }
diff --git a/omdoc-semantics/macros/proceedings/readMe.txt b/omdoc-semantics/macros/proceedings/readMe.txt
new file mode 100644
index 0000000000000000000000000000000000000000..42d94939477037f8e3012bf8ee3d4ec83e8d656d
--- /dev/null
+++ b/omdoc-semantics/macros/proceedings/readMe.txt
@@ -0,0 +1,122 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%   Preparing proceedings of a conference
+%%%
+%%%            H.Peter Gumm
+%%%            Philipps-Universit�t Marburg
+%%%            gumm@mathematik.uni-marburg.de
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+The package "proc" helps preparing proceedings for a 
+conference by
+
+  - keeping track of the correct page numbers for each article 
+  - creating the correct page numbers inside the article
+  - generating a table of contents.
+
+This gives the editor enough flexibility to easily 
+
+ - reorder the articles 
+ - reserve space for articles to be submitted later 
+ - design the appearance of each entry in the table of contents
+ - mark special papers - e.g. as "invited", etc ...
+ 
+Files in this package:
+
+ - procnum.tex  % defines the macro \numbering for
+                % numbering the pages in each article
+
+ - proctoc.tex  % defines the macro \article
+                % and generates entries for the 
+                % table of contents
+
+As an example, we show how the proceedings for CMCS03 were 
+created. The example files are in the subdirectory "Examples".
+ 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%                                                        %%%%
+%%%             How to install this package                %%%%
+%%%                                                        %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+a. Create a directory containing the above three files
+   ( e.g. \texmf\tex\latex\proc )
+
+b. Tell LaTeX out it
+  ( e.g. with WinEdt: From the menu bar choose
+    "Accessories/MikTexOptions" and click on "Refresh Now")
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%                                                        %%%%
+%%%                                                        %%%%
+%%%          How to use this package                       %%%%
+%%%                                                        %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+1. Create a textfile, here referred to as <database>,
+containing an entry for each article:
+
+      \article[optionalRemark]
+         {<articleId>}
+         {<number of pages>}
+         {<author>}{<title>}
+
+Here <articleId> must be any legal name for a (new) \LaTeX counter.
+
+   Example:
+      \article[(Invited Speaker)]
+      {pratt}{12}
+      {Vaughan Pratt}{Comonoids in $chu_2$}
+
+2. To create the table of contents for the proceedings, use the 
+following code
+
+      \input proctoc  
+      \input <database>  
+      \tableofcontents
+      
+   Of course, <database> must be replaced by the name of your 
+   file containing the article-entries...
+
+3. Into each individual article place the following two lines
+
+      \input procnum 
+      \numbering{<database>}{<articleID>}
+
+   They must precede the "\begin{document}".
+
+   Recompile the article, so that it obtains the correct page numbers.
+
+   Each time, you change the order of the entries in the database, 
+   you must of course recompile the articles whose page numbers 
+   may be affected.
+
+--- Optional ---
+
+4. If you desire additional entries in the table of contents,
+   e.g. for the preface, or for an index, you can add them
+   manually before or after the input commands, e.g.
+
+   %%%  An entry for the preface
+   \addtocontents{toc}{\contentsline {section}{ Preface}{\rm vii }}
+
+   %%%  An entry for the index (you can use the counter "startPage"):
+   
+   \addtocontents{toc}{\contentsline {section}{ Index}{\rm \thestartPage}}
+
+5. To change the appearance of the entries in the table of contents, 
+   you may redefine the macro 
+
+     \formatEntry   
+
+   which you can find in "proctoc.tex"
+
+In ted Example-directory, I have supplied the database of the CMCS03, which 
+is contained in the file "cmcs03db.tex". The preface of the proceedings was 
+generated by the file "preface_cmcs03.tex". 
+
+As an exammple, how the line inside the articles are created, I have supplied 
+the file "adamek.tex".
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/omdoc-semantics/macros/publishers/easychair.cls b/omdoc-semantics/macros/publishers/easychair.cls
new file mode 100644
index 0000000000000000000000000000000000000000..1a3ba6e8f4d48abbb941a78a023d6f1af81fb3a7
--- /dev/null
+++ b/omdoc-semantics/macros/publishers/easychair.cls
@@ -0,0 +1,809 @@
+%
+% Some credits
+%
+
+\def\easychairstyleauthor{easychair class style, by Serguei A. Mokhov, with changes by Andrei Voronkov <30 December 2011>}
+\def\easychairstylerevision{CVS Revision: $Id: easychair.cls,v 3.1 2012/12/30 11:41:23 voronkov Exp $}
+\def\easychairstylepurpose{Designed for easyChair.org, under guidelines and suggestions of}
+\def\easychairstylevoronkov{\space\space\space\space\space\space\space\space\space\space\space\space\space Andrei Voronkov <www.voronkov.com>, and}
+\def\easychairstylesutcliffe{\space\space\space\space\space\space\space\space\space\space\space\space\space Geoff Sutcliffe <www.cs.miami.edu/^geoff>}
+\def\easychairstylecopyright{Copyright terms are that of EasyChair.org}
+\def\easychairstylebugs{For bug reports, please contact <andrei@voronkov.com>}
+
+\everyjob{\typeout{\easychairstyleauthor}}
+\everyjob{\typeout{\easychairstylerevision}}
+\everyjob{\typeout{\easychairstylepurpose}}
+\everyjob{\typeout{\easychairstylevoronkov}}
+\everyjob{\typeout{\easychairstylesutcliffe}}
+\everyjob{\typeout{\easychairstylecopyright}}
+\everyjob{\typeout{\easychairstylebugs}}
+
+\immediate\write10{\easychairstyleauthor}
+\immediate\write10{\easychairstylerevision}
+\immediate\write10{\easychairstylepurpose}
+\immediate\write10{\easychairstylevoronkov}
+\immediate\write10{\easychairstylesutcliffe}
+\immediate\write10{\easychairstylecopyright}
+\immediate\write10{\easychairstylebugs}
+
+%
+% Require LaTeX 2.09 or later
+%
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{easychair}[2011/05/02 v3.0]
+\def\@tempa#1#2\@nil{\edef\@classname{#1}}
+\expandafter\@tempa\@currnamestack{}{}{}\@nil
+\ifx\@classname\@empty \edef\@classname{\@currname}\fi
+
+
+%
+% Debug
+%
+
+\def\easychairdebug#1{\gdef\@EasyDebug{#1}}
+\def\@EasyDebug{}
+
+\newif\ifdebug
+\debugfalse
+
+\DeclareOption{debug}{\debugtrue}
+
+\def\easychairframe#1{\gdef\@EasyFrame{#1}}
+\def\@EasyFrame{}
+
+\newif\ifframe
+\framefalse
+
+\DeclareOption{frame}{\frametrue}
+
+\def\easychairverbose#1{\gdef\@EasyVerbose{#1}}
+\def\@EasyVerbose{}
+
+\newif\ifverbose
+\verbosefalse
+
+\DeclareOption{verbose}{\verbosetrue}
+
+
+%
+% Thesis
+% Perh Geoff, February 23, 2010 with support from Andrei
+%
+
+\def\easythesis#1{\gdef\@EasyThesis{#1}}
+\def\@EasyThesis{}
+
+\newif\ifthesis
+\thesisfalse
+
+\DeclareOption{thesis}{\thesistrue}
+
+
+%
+% Times New Roman or not
+%
+
+\def\easytimes#1{\gdef\@EasyTimes{#1}}
+\def\@EasyTimes{}
+
+\newif\ifnotimes
+\notimesfalse
+
+\DeclareOption{notimes}{\notimestrue}
+
+\newif\ifwithtimes
+\withtimesfalse
+
+\DeclareOption{withtimes}{\withtimestrue}
+
+
+%% Code added to use llncs style author list 
+\newcounter{@inst}
+\newcounter{@auth}
+\newcounter{auco}
+\newdimen\instindent
+\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\inst#1{\unskip$^{#1}$}
+\def\fnmsep{\unskip$^,$}
+\def\email#1{{\tt#1}}
+
+%% 
+
+\newif\ifauthorundefined
+\authorundefinedtrue
+
+\let\oldauthor=\author
+\renewcommand
+	{\author}
+	[1]
+	{%
+		\ifauthorundefined
+			\oldauthor{#1}
+			\authorundefinedfalse
+		\else
+			\PackageWarning{easychair}{Another use of author ignored}
+		\fi
+	}
+
+\newif\iftitleundefined
+\titleundefinedtrue
+
+\let\oldtitle=\title
+\renewcommand
+	{\title}
+	[1]
+	{
+		\iftitleundefined
+			\oldtitle{#1}
+			\titleundefinedfalse
+		\else
+			\PackageWarning{easychair}{Another use of title ignored}
+		\fi
+	}
+
+
+%
+% Running heads definitions
+%
+
+%\def\titlerunning#1{\gdef\@titleRunning{#1}}
+%\def\authorrunning#1{\gdef\@authorRunning{#1}}
+%\titlerunning{easychair: Running title head is undefined.}
+%\authorrunning{easychair: Running author head is undefined.}
+
+\newif\iftitlerunningundefined
+\titlerunningundefinedtrue
+
+\newif\ifauthorrunningundefined
+\authorrunningundefinedtrue
+
+\gdef\@titleRunning{easychair: Running title head is undefined.}
+\gdef\@authorRunning{easychair: Running author head is undefined.}
+
+\def\titlerunning#1
+{
+	\iftitlerunningundefined
+		\gdef\@titleRunning{#1}
+		\titlerunningundefinedfalse
+	\else
+		\PackageWarning{easychair}{Another use of titlerunning ignored}
+	\fi
+}
+
+\def\authorrunning#1
+{
+	\ifauthorrunningundefined
+		\gdef\@authorRunning{#1}
+		\authorrunningundefinedfalse
+	\else
+		\PackageWarning{easychair}{Another use of authorrunning ignored}
+	\fi
+}
+
+%
+% Affiliations
+%
+
+\newcommand{\affiliation}[1]{\footnotesize{#1}\vspace{-3pt}}
+
+
+%
+% Decide between letter and A4 paper formats
+% as well as orientation
+%
+
+% Default is 'letterpaper'
+\def\paperformat#1{\gdef\@PaperFormat{#1}}
+\def\@PaperFormat{letterpaper}
+
+\newif\ifletterpaper
+\newif\ifafourpaper
+\newif\ifcustompaper
+
+\letterpapertrue
+
+\DeclareOption{letterpaper}{\paperformat{letterpaper}\afourpaperfalse\custompaperfalse}
+\DeclareOption{a4paper}{\paperformat{a4paper}\afourpapertrue\letterpaperfalse\custompaperfalse}
+\DeclareOption{custompaper}{\paperformat{letterpaper}\afourpaperfalse\letterpaperfalse\custompapertrue}
+
+
+\newlength{\@LMarginSize}
+\newlength{\@RMarginSize}
+\newlength{\@TMarginSize}
+\newlength{\@BMarginSize}
+
+\DeclareOption{lmargin}{}
+\DeclareOption{rmargin}{}
+\DeclareOption{tmargin}{}
+\DeclareOption{bmargin}{}
+
+
+% Default is portrait {}
+\def\paperorientation#1{\gdef\@PaperOrientation{#1}}
+\def\@PaperOrientation{}
+
+\DeclareOption{portrait}{\paperorientation{}}
+\DeclareOption{landscape}{\paperorientation{landscape}}
+
+% Two sided running heads for titlerunning and author running
+% twosided is the default
+\newif\iftwosided
+\twosidedfalse
+
+\DeclareOption{onesided}{}
+\DeclareOption{twosided}{\twosidedtrue}
+
+
+%
+% Decide between 1- or 2-column formats
+%
+
+\def\columnCount#1{\gdef\@ColumnCount{#1}}
+\def\@ColumnCount{onecolumn}
+
+\DeclareOption{onecolumn}{}
+\DeclareOption{twocolumn}{\columnCount{twocolumn}}
+
+
+%
+% Decide on line spacing
+%
+
+\def\lineSpacing#1{\gdef\@LineSpacing{#1}}
+\def\@LineSpacing{1.0}
+
+\DeclareOption{zerospacing}{\lineSpacing{0.0}}
+\DeclareOption{singlespacing}{\lineSpacing{1.0}}
+\DeclareOption{lineandhalfspacing}{\lineSpacing{1.5}}
+\DeclareOption{doublespacing}{\lineSpacing{2.0}}
+
+\DeclareOption{0.0}{\lineSpacing{0.0}}
+\DeclareOption{1.0}{\lineSpacing{1.0}}
+\DeclareOption{1.5}{\lineSpacing{1.5}}
+\DeclareOption{2.0}{\lineSpacing{2.0}}
+
+\DeclareOption{0.0pt}{\lineSpacing{0.0}}
+\DeclareOption{1.0pt}{\lineSpacing{1.0}}
+\DeclareOption{1.5pt}{\lineSpacing{1.5}}
+\DeclareOption{2.0pt}{\lineSpacing{2.0}}
+
+
+%
+% Font point size; default is 10pt
+%
+% The \headheight will have to be changed later accordingly
+% such that fancyhdr does not complain it is too small.
+%
+
+\def\baseFontSize#1{\gdef\@BaseFontSize{#1}}
+\def\headHeightSize#1{\gdef\@HeadHeightSize{#1}}
+\def\headSepSize#1{\gdef\@HeadSepSize{#1}}
+\def\footSkipSize#1{\gdef\@FootSkipSize{#1}}
+
+\def\@BaseFontSize{10pt}
+\def\@HeadHeightSize{12.0pt}
+\def\@HeadSepSize{16.0pt} % instead of the default 25pt
+\def\@FootSkipSize{26.0pt} % instead of the default 30pt
+
+\DeclareOption{8pt}{\PackageWarning{easychair}{Option '\CurrentOption' is not supported.}}
+\DeclareOption{9pt}{\PackageWarning{easychair}{Option '\CurrentOption' is not supported.}}
+\DeclareOption{10pt}{\baseFontSize{10pt}\headHeightSize{12.0pt}\headSepSize{16.0pt}\footSkipSize{26pt}}
+\DeclareOption{11pt}{\baseFontSize{11pt}\headHeightSize{13.6pt}\headSepSize{23.0pt}\footSkipSize{28pt}}
+\DeclareOption{12pt}{\baseFontSize{12pt}\headHeightSize{14.5pt}\headSepSize{25.0pt}\footSkipSize{30pt}}
+\ExecuteOptions{10pt}
+
+%
+% Page sizing
+%
+
+%\newif\iffullpage
+%\newif\ifsavetrees
+%
+%\DeclareOption{fullpage}{\fullpagetrue}
+%\DeclareOption{savetrees}{\savetreestrue}
+
+
+% Bark at any unknown package option
+\DeclareOption*{\PackageWarning{easychair}{Unknown option '\CurrentOption'}}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{geometry}}
+%\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+
+%\ExecuteOptions{centertags,portrait,10pt,twoside,onecolumn,final}
+%\ExecuteOptions{}
+\ProcessOptions\relax
+
+
+%
+% Required packages and classes.
+%
+% All must be standard as per most common LaTeX
+% distributions.
+%
+
+\ifthesis
+	\LoadClass[\@PaperFormat,\@PaperOrientation,\@ColumnCount,\@BaseFontSize,twoside]{report}
+	\RequirePackage{makeidx}
+\else
+	% We are an article (more customized later)
+	\LoadClass[\@PaperFormat,\@PaperOrientation,\@ColumnCount,\@BaseFontSize,twoside]{article}
+	%\LoadClass[\@PaperFormat,\@PaperOrientation,\@ColumnCount,\@BaseFontSize]{article}
+\fi
+
+% Require UTF8 encoding, per Andrei Voronkov, to accomodate
+% all sorts of author names.
+%\RequirePackage[utf8]{inputenc}
+
+% All \urls will be hyperlinked and will deal properly with special characters
+% XXX: url is included by hyperref
+%\RequirePackage{url}
+
+% To ensure the footnotes are always at the bottom.
+% IMPORTANT: footmisc should precede hyperref for the footnotes to hyperlink
+%            correctly to their pages where they are at instead of always at
+%            page 1. Per bug reports from a couple of users and a suggestion by
+%            Uwe Pfeiffer.
+%\RequirePackage[bottom]{footmisc}
+
+%% TOC/thumbnail LHS preview in the PDFs as well as active URLs and other cross-refs
+%% Newer versions of hyperref declare a4paper or letterpaper as obsolete and issue warnings
+%%\RequirePackage[\@PaperFormat,pdfcreator=easychair.cls-2.0]{hyperref}
+%\RequirePackage[linktocpage,pdfcreator=easychair.cls-2.0-Beta-3]{hyperref}
+
+% Traditional graphics processing
+\RequirePackage{graphicx}
+%\RequirePackage{pdflscape}
+%\RequirePackage{lscape}
+
+
+%% Fonts, generally more compact but preserving point size
+
+% Pick "Times Roman" as a base font unless explicitly told not to
+\ifnotimes
+	\ifwithtimes
+		\PackageWarning{easychair}{Cannot really use 'notimes' and 'withtimes' together}
+		\PackageWarning{easychair}{Defaulting to 'notimes'...}
+	\else
+		\PackageWarning{easychair}{'notimes' has been deprecated as it is the default in 2.0}
+	\fi
+\else
+	\ifwithtimes
+		\RequirePackage{mathptmx}
+	\fi
+\fi
+
+% Pick "Helvetica" as a "Sans-Serif" font
+\RequirePackage[scaled=.85]{helvet}
+
+% For algorithm and source code listings
+\RequirePackage{listings}
+
+%% Different Math and non-Math symbols and definitions
+
+\RequirePackage{latexsym}
+\RequirePackage{amsthm}
+\RequirePackage{empheq}
+
+%% Line spacing to be applied AFTER the above space saving packages
+
+\renewcommand{\baselinestretch}{\@LineSpacing}
+
+%% Final text printing area, per Geoff Sutcliffe
+
+\RequirePackage{keyval}
+
+\define@key{Ec}{lmargin}{\Ec@defbylen{lmargin}{#1}}
+
+\newlength{\@MarginSize}
+\setlength{\@MarginSize}{1in}
+
+\setlength{\@LMarginSize}{\@MarginSize}
+%\setlength{\@LMarginSize}{\Ec@lmargin}
+\setlength{\@RMarginSize}{\@MarginSize}
+\setlength{\@TMarginSize}{\@MarginSize}
+\setlength{\@BMarginSize}{\@MarginSize}
+
+
+% Head height is dependent on the font point size
+\setlength{\headheight}{\@HeadHeightSize}
+\setlength{\headsep}{\@HeadSepSize}
+\setlength{\footskip}{\@FootSkipSize}
+
+\ifletterpaper
+	\immediate\write10{easychair: Selecting letter paper margin sizes.}
+ 	\RequirePackage[%
+                papersize={8.5in,11in},
+                total={145mm,224mm},
+                centering,
+                twoside,
+		includeheadfoot]{geometry}
+\fi
+\ifafourpaper
+	\immediate\write10{easychair: Selecting A4 paper margin sizes.}
+ 	\RequirePackage[%
+                papersize={210mm,297mm},
+                total={145mm,224mm},
+                centering,
+                twoside,
+		includeheadfoot]{geometry}
+\fi
+
+\ifcustompaper
+	\immediate\write10{easychair: Selecting custom paper margin sizes.}
+	\RequirePackage[%
+                papersize={189mm,246mm},
+                total={145mm,224mm},
+                top=9mm,
+                left=24mm,
+                twoside,
+		includeheadfoot]{geometry}
+        \headHeightSize{12.0pt}
+        \headSepSize{16.0pt}
+        \footSkipSize{26pt}
+\fi
+
+%\setlength{\textwidth}{16cm}
+%\setlength{\textheight}{9in}
+
+
+%
+% Volume
+%
+
+\RequirePackage{lastpage}
+
+\newif\ifvolumeundefined
+\volumeundefinedtrue
+
+% e.g.
+% \volumeinfo
+%		{J. Bloe}   % editor(s)      #1
+%		{1}         % No. of editors #2
+%		{LICS 2008} % event title    #3
+%		{1}         % volume number  #4
+%		{4}         % issue          #5
+%		{134}       % start page     #6
+
+\def\@EasyFontStyle{\footnotesize}
+\newcommand{\headfootstyle}[1]{\def\@EasyFontStyle{#1}}
+
+\def\@EasyVolumeInfo{}
+
+\ifthesis
+	\newcommand{\volumeinfo}[6]
+		{\PackageWarning{easychair}{Cannot use volumeinfo with 'thesis' option. Ignoring...}}
+\else
+	\newcommand{\volumeinfo}[6]{%
+		\ifvolumeundefined
+	%		\def\@makefntext##1{\noindent ##1}%
+			\def\@EasyEdsNames{#1}%
+			\def\@EasyEds{ed.}%
+			\def\@EasyEvent{#3}%
+			\def\@EasyVolume{}%
+			\def\@EasyIssue{}%
+			\def\@EasyFirstPage{#6}%
+			\ifnum #2>1 \gdef\@EasyEds{eds.}\fi%
+			\ifnum #4>0 \gdef\@EasyVolume{; Volume #4}\fi%
+			\ifnum #5>0 \gdef\@EasyIssue{, issue: #5} \fi%
+	%		\footnotetext[0]{\sf \@EasyEdsNames (\@EasyEds); \@EasyEvent\@EasyVolume\@EasyIssue, pp. #6-\pageref{LastPage}}%
+	%		\def\@EasyVolumeInfo{\footnotesize{\sf\@EasyEdsNames~(\@EasyEds); \@EasyEvent\@EasyVolume\@EasyIssue, pp. \@EasyFirstPage--\pageref{LastPage}}}%
+			\def\@EasyVolumeInfo{\@EasyFontStyle\@EasyEdsNames~(\@EasyEds); \@EasyEvent\@EasyVolume\@EasyIssue, pp. \@EasyFirstPage--\pageref{LastPage}}%
+			%\def\@makefntext##1{\noindent\@makefnmark##1}%
+			\setcounter{page}{\@EasyFirstPage}
+			\volumeundefinedfalse
+		\else
+			{\PackageWarning{easychair}{May not redefine volumeinfo}}
+		\fi
+	}
+\fi
+
+\def\@EventInfo{}
+\def\@VolumeInfo{}
+
+\newif\ifvolumeecpsundefined
+\volumeecpsundefinedtrue
+
+\newcommand{\volumeinfoECPS}[2]{%
+	\ifvolumeecpsundefined
+		\def\@EventInfo{#1}%
+		\def\@VolumeInfo{#2}%
+		\volumeecpsundefinedfalse
+	\else
+		{\PackageWarning{easychair}{Ignoring another definition of volumeinfoECPS}}
+	\fi
+}
+
+
+%
+% Allow for more space to place floats.
+%
+
+\renewcommand{\topfraction}{0.95}
+\renewcommand{\bottomfraction}{0.95}
+\renewcommand{\textfraction}{0.05}
+\renewcommand{\floatpagefraction}{0.8}
+
+
+%
+% Running heads and ``foots''
+%
+
+\RequirePackage{fancyhdr}
+\pagestyle{fancy}
+
+\fancyhead{}
+%\ifdebug
+%	\iftwosided
+%		\fancyhead[RE]{\overline{\@titleRunning}}
+%		\fancyhead[RO]{\overline{\@authorRunning}}
+%	\else
+%		\fancyhead[LO,LE]{\begin{math}\overline{\mbox{\@titleRunning}}\end{math}}
+%		\fancyhead[RO,RE]{\begin{math}\overline{\mbox{\@authorRunning}}\end{math}}
+%	\fi
+%\else
+	\iftwosided
+		\fancyhead[RE]{{\@EasyFontStyle\@titleRunning}}
+		\fancyhead[RO]{{\@EasyFontStyle\@authorRunning}}
+	\else
+		\fancyhead[LO,LE]{{\@EasyFontStyle\@titleRunning}}
+		\fancyhead[RO,RE]{{\@EasyFontStyle\@authorRunning}}
+	\fi
+%\fi
+
+\fancyfoot{}
+%\ifdebug
+%	\fancyfoot[CO,CE]{\underline{\thepage}}
+%	\renewcommand{\headrulewidth}{1pt}
+%	\renewcommand{\footrulewidth}{1pt}
+%\else
+%	\fancyfoot[CO,CE]{\thepage}
+%	\fancyfoot[LO]{{\footnotesize{\sf\@EventInfo}}}
+%	\fancyfoot[LE]{{\footnotesize{\sf\@VolumeInfo}}}
+%	\fancyfoot[LO]{{\@EasyFontStyle\@EventInfo}}
+%	\fancyfoot[LE]{{\@EasyFontStyle\@VolumeInfo}}
+\ifodd\c@page
+	\fancyfoot[LO]{{\@EasyFontStyle\@VolumeInfo}}
+	\fancyfoot[RE]{{\@EasyFontStyle\@EventInfo}}
+\else
+	\fancyfoot[RE]{{\@EasyFontStyle\@VolumeInfo}}
+	\fancyfoot[LO]{{\@EasyFontStyle\@EventInfo}}
+\fi
+%	\fancyfoot[LO,LE]
+%	{
+%\volumeinfoECPS
+%	{A. Editor, B. Editor}         % editors
+%	{2}                                 % number of editors
+%	{EVENT, Month YEAR}      % event
+%	{1}                                 % volume
+%	}
+%	\fancyfoot[RO,RE]{{\@EasyFontStyle\thepage}}
+%	\fancyfoot[RO]{{\@EasyFontStyle\thepage}}
+%	\fancyfoot[LE]{{\@EasyFontStyle\thepage}}
+\ifodd\c@page
+	\fancyfoot[RO]{{\normalsize\thepage}}
+	\fancyfoot[LE]{{\normalsize\thepage}}
+\else
+	\fancyfoot[LE]{{\normalsize\thepage}}
+	\fancyfoot[RO]{{\normalsize\thepage}}
+\fi
+	\renewcommand{\headrulewidth}{0pt}
+	\renewcommand{\footrulewidth}{0pt}
+%\fi
+
+% Suppress the default date, per Geoff
+\date{}
+
+% For the first page
+\fancypagestyle{plain}{%
+\fancyhf{} % clear all header and footer fields
+\ifodd\c@page
+	\fancyfoot[L]{\@EasyVolumeInfo}%
+	\fancyfoot[R]{{\normalsize\thepage}} % except the center
+\else
+	\fancyfoot[R]{\@EasyVolumeInfo}%
+	\fancyfoot[L]{{\normalsize\thepage}} % except the center
+\fi
+\renewcommand{\headrulewidth}{0pt}
+\renewcommand{\footrulewidth}{0pt}}
+
+
+\let\oldmaketitle=\maketitle
+\def\@maketitle{%
+  %% Code added to use llncs style author list 
+\def\andname{and}
+\def\lastandname{\unskip\  and}
+  \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}%
+   %% 
+  \newpage
+	\null
+  % Facelift a bit the title and make it bold, per Geoff
+	\vspace{-1cm}
+	\begin{center}%
+		\let\footnote\thanks%
+		% Do not bold Times title, per Geoff
+		\ifwithtimes
+			{\LARGE{\@title}\par}
+		\else
+			{\LARGE{\bf \@title}\par}
+                 \fi
+                 \vskip \baselineskip
+                 \@date
+                 {\large
+               \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}%
+	%\volumeinfoECPS{\@EventInfo}{\@VolumeInfo}
+	%\titlerunning{EMPTY}%
+	%\authorrunning{EMPTY}%
+	%\authorrunning{\@authorRunning}%
+	%\renewcommand{\titlerunning}[1]{}
+	%\renewcommand{\authorrunning}[1]{}
+	%%\renewcommand{\volumeinfoECPS}[2]{}%
+	%%\renewcommand{\volumeinfo}[6]{}
+	%\gdef\@authorRunning{Gooo\@authorRunning}%
+	%\gdef\@EasyVolumeInfo{Foo\@authorRunning}%
+	%\gdef\@EventInfo{}
+	%\gdef\@VolumeInfo{}
+%\volumeinfo
+	%{NNNNOT A. Voronkov}         % editors
+	%{1}                                 % number of editors
+	%{NYO-YO}      % event
+	%{44}                                 % volume
+	%{1}                                 % issue
+	%{45}                                 % starting page number
+%\volumeinfoECPS
+	%{NNNNOT Super EasyChair Workshop Proceedings}
+	%{NNNNOT ECPS vol. 43}
+	\par
+	%\relax
+}
+
+
+% TOC/thumbnail LHS preview in the PDFs as well as active URLs and other cross-refs
+% Newer versions of hyperref declare a4paper or letterpaper as obsolete and issue warnings
+\RequirePackage[linktocpage,hyperfootnotes=false,pdfcreator=easychair.cls-3.0]{hyperref}
+
+
+% Tighten up bibliography
+\let\oldthebibliography=\thebibliography
+\let\endoldthebibliography=\endthebibliography
+\renewenvironment{thebibliography}[1]
+{
+	\small
+	\begin{oldthebibliography}{#1}
+		\setlength{\parskip}{2pt}
+		\setlength{\itemsep}{0pt}
+}
+{
+	\end{oldthebibliography}
+}
+
+\ifdebug
+	\ifverbose
+		\RequirePackage[colorgrid,pscoord]{eso-pic}%
+	\else
+		\RequirePackage[pscoord]{eso-pic}
+		\newcommand\ShowFramePicture{%
+		  \begingroup
+		    \color{red}
+		    \AtTextLowerLeft{\framebox(\LenToUnit{\textwidth},\LenToUnit{\textheight}){}}%
+		    \AtTextUpperLeft{\put(0,\LenToUnit{\headsep}){\framebox(\LenToUnit{\textwidth},\LenToUnit{\headheight}){}}}%
+		    \AtTextLowerLeft{\put(0,\LenToUnit{-\footskip}){\framebox(\LenToUnit{\textwidth},\LenToUnit{\headheight}){}}}%
+		  \endgroup
+		}
+		\AddToShipoutPicture{\ShowFramePicture}
+	\fi
+	%\RequirePackage[a4,cam,center]{crop}%
+	%\RequirePackage[cam,center]{crop}%
+\fi
+
+\ifframe
+	\ifverbose
+		\RequirePackage[colorgrid,pscoord]{eso-pic}%
+	\else
+		\RequirePackage[pscoord]{eso-pic}
+		\newcommand\ShowBlueFrame{%
+		  \begingroup
+		    \color{blue}
+                    % odd page
+%		    \AtTextLowerLeft{\put(\LenToUnit{-23.6mm},\LenToUnit{-21.8mm}){\framebox(\LenToUnit{188.3mm},\LenToUnit{245.4mm}){}}}%
+                    % even page
+%		    \AtTextLowerLeft{\put(\LenToUnit{-19.6mm},\LenToUnit{-21.8mm}){\framebox(\LenToUnit{188.3mm},\LenToUnit{245.4mm}){}}}%
+		  \endgroup
+		}
+		\AddToShipoutPicture{\ShowBlueFrame}
+	\fi
+\fi
+
+% \geometry{papersize={170mm,240mm},total={124mm,185mm}}
+
+%% Indexing options for proceedings to link up people's names to their
+%% various participation and affiliation options.
+
+\newcommand
+	{\indexedperson}
+	[3]
+	{\index{#2!#1}\index{#1}\index{#1!#3}}
+
+\newcommand
+	{\indexedauthor}
+	[1]
+	{\indexedperson{#1}{Authors}{Author}}
+
+\newcommand
+	{\indexededitor}
+	[1]
+	{\indexedperson{#1}{Editors}{Editor}}
+
+\newcommand
+	{\indexedpcmember}
+	[1]
+	{\indexedperson{#1}{PC Members}{PC Member}}
+
+\newcommand
+	{\indexedreviewer}
+	[1]
+	{\indexedperson{#1}{Reviewers}{Reviewer}}
+
+\newcommand
+	{\indexedorganizer}
+	[1]
+	{\indexedperson{#1}{Organizers}{Organizer}}
+
+\newcommand
+	{\indexedwebmaster}
+	[1]
+	{\indexedperson{#1}{Webmasters}{Webmaster}}
+
+\newcommand
+	{\indexedaffiliation}
+	[2]
+	{\indexedperson{#1}{#2}{#2}}
+
+\newcommand
+	{\indexedsupervisor}
+	[2]
+	{\indexedperson{#1}{}{Supervisor: #2}\indexedperson{#2}{Supervisors}{Supervisor}}
+
+\endinput
+
+% \crop[font=\upshape\mdseries\small\textsf]
+
+% EOF
diff --git a/omdoc-semantics/macros/publishers/eptcs.cls b/omdoc-semantics/macros/publishers/eptcs.cls
new file mode 100644
index 0000000000000000000000000000000000000000..79050bc7a7cb91cfde11587d0b17cf9283448ec0
--- /dev/null
+++ b/omdoc-semantics/macros/publishers/eptcs.cls
@@ -0,0 +1,266 @@
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{eptcs}[2010/01/15 v1.3]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%                             options                            %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newif\ifadraft
+\newif\ifsubmission
+\newif\ifpreliminary
+\newif\ifreplacement
+\newif\ifcopyright
+\newif\ifpublicdomain
+\newif\ifcreativecommons
+\newif\ifnoderivs
+\newif\ifsharealike
+\newif\ifnoncommercial
+\adraftfalse
+\submissionfalse
+\preliminaryfalse
+\replacementfalse
+\copyrightfalse
+\publicdomainfalse
+\creativecommonsfalse
+\noderivsfalse
+\sharealikefalse
+\noncommercialfalse
+\replacementfalse
+\DeclareOption{adraft}{\adrafttrue}
+\DeclareOption{submission}{\submissiontrue}
+\DeclareOption{preliminary}{\preliminarytrue}
+\DeclareOption{replacement}{\replacementtrue}
+\DeclareOption{copyright}{\copyrighttrue}
+\DeclareOption{publicdomain}{\publicdomaintrue}
+\DeclareOption{creativecommons}{\creativecommonstrue}
+\DeclareOption{noderivs}{\noderivstrue}
+\DeclareOption{noncommercial}{\noncommercialtrue}
+\DeclareOption{sharealike}{\sharealiketrue}
+\ProcessOptions\relax
+
+\LoadClass[letterpaper,11pt,twoside]{article}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%   On US letter paper the margins (left-top-right-bottom) are       %%
+%%              2.795cm - 1.23cm - 2.795cm - 3.46cm                   %%
+%%   Note: When \topmargin would be 0, the real top margin would be   %%
+%%   (72-25-12=35pt) + 1pt (unused portion of head) = .5in = 1.27cm.  %%
+%%   The bottom margin is   11in - 1in + 0.04cm - 623/72in = 3.46cm.  %%
+%%   On the first page the bottom margin contains various footers.    %%
+%%   When translating from US letter to A4 paper, without scaling, by %%
+%%   leaving the centre of the paper invariant (as is possible when   %%
+%%   printing the paper with acroread), the resulting A4 margins are  %%
+%%                2.5cm - 2.11cm - 2.5cm - 4.34cm                     %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\textwidth              16cm             % A4 width is 21cm            %
+\textheight             623.01pt         % 46 lines exactly = 21.98cm  %
+\oddsidemargin          -0.04cm          % +1 inch = 2.5cm             %
+\evensidemargin         -0.04cm          % +1 inch = 2.5cm             %
+\topmargin              -0.04cm          % +1 inch = 2.5cm             %
+\advance\topmargin-\headheight           % 12pt                        %
+\advance\topmargin-\headsep              % 25pt                        %
+\advance\evensidemargin  .295cm          % centre w.r.t. letter paper  %
+\advance\oddsidemargin   .295cm          % centre w.r.t. letter paper  %
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%                  load eptcsdata when available                 %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\IfFileExists{eptcsdata.tex}{\input{eptcsdata}}{}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%			Pagestyle and titlepage      		    %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pagestyle{myheadings}
+
+\renewcommand\maketitle{\par
+  \begingroup
+    \providecommand{\event}{}
+    \providecommand{\volume}{??}
+    \providecommand{\anno}{20??}
+    \providecommand{\firstpage}{1}
+    \providecommand{\eid}{??}
+    \providecommand{\titlerunning}{Please define {\tt $\backslash$titlerunning}}
+    \providecommand{\authorrunning}{Please define {\tt $\backslash$authorrunning}}
+    \providecommand{\copyrightholders}{\authorrunning}
+    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+    \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
+    \long\def\@makefntext##1{\parindent 1em\noindent
+            \hb@xt@1.8em{%
+                \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
+    \newpage
+    \global\@topnum\z@   % Prevents figures from going at top of page.
+    \@maketitle
+    \thispagestyle{empty}\@thanks
+  \endgroup
+  \setcounter{footnote}{0}%
+  \label{FirstPage}
+  \global\let\thanks\relax
+  \global\let\maketitle\relax
+  \global\let\@maketitle\relax
+  \global\let\@thanks\@empty
+  \global\let\@author\@empty
+  \global\let\@date\@empty
+  \global\let\@title\@empty
+  \global\let\title\relax
+  \global\let\author\relax
+  \global\let\date\relax
+  \global\let\and\relax
+}
+\def\@maketitle{%                       adapted from article.cls
+  \newpage
+\noindent
+\raisebox{-22.8cm}[0pt][0pt]{\footnotesize
+\begin{tabular}{@{}l}
+\ifadraft
+  \Large DRAFT\quad\today
+\else\ifsubmission
+  Submitted to:\\
+  \event
+\else\ifpreliminary
+  Preliminary Report. Final version to appear in:\\
+  \event
+\else\ifreplacement
+  This is a revision of a paper with the same title,\\
+  published in EPTCS \volume, \anno.
+\else
+  \event\\
+  EPTCS \volume, \anno, pp.\ \pageref*{FirstPage}--\pageref{LastPage},
+  doi:\href{http://dx.doi.org/10.4204/EPTCS.\volume.\eid}{10.4204/EPTCS.\volume.\eid}
+\fi\fi\fi\fi
+\end{tabular}}
+\hfill\vspace{-1em}
+\raisebox{-22.8cm}[0pt][0pt]{\footnotesize
+\makebox[0pt][r]{
+\begin{tabular}{l@{}}
+\ifpublicdomain
+  This work is \href{http://creativecommons.org/licenses/publicdomain/}
+  {dedicated to the public domain}.
+\else
+  \ifcopyright
+    \copyright~\copyrightholders\\
+  \fi
+  \ifcreativecommons
+    This work is licensed under the
+    \ifnoncommercial
+      \href{http://creativecommons.org}{Creative Commons}\\
+      \ifnoderivs
+	\href{http://creativecommons.org/licenses/by-nc-nd/3.0/}
+	{Attribution-Noncommercial-No Derivative Works} License.
+      \else\ifsharealike
+	\href{http://creativecommons.org/licenses/by-nc-sa/3.0/}
+	{Attribution-Noncommercial-Share Alike} License.
+      \else
+	\href{http://creativecommons.org/licenses/by-nc/3.0/}
+	{Attribution-Noncommercial} License.
+      \fi\fi
+    \else
+      \ifnoderivs
+        \href{http://creativecommons.org}{Creative Commons}\\
+	\href{http://creativecommons.org/licenses/by-nd/3.0/}
+	{Attribution-No Derivative Works} License.
+      \else\ifsharealike
+        \href{http://creativecommons.org}{Creative Commons}\\
+	\href{http://creativecommons.org/licenses/by-sa/3.0/}
+	{Attribution-Share Alike} License.
+      \else
+        \\\href{http://creativecommons.org}{Creative Commons}
+	\href{http://creativecommons.org/licenses/by/3.0/}
+	{Attribution} License.
+      \fi\fi
+    \fi
+  \fi
+\fi
+\end{tabular}}}
+  \null
+  %\vskip 2em%				a bit of space removed (< 2em)
+  \begin{center}%
+  \let \footnote \thanks
+    {\LARGE\bf \@title \par}%		\bf added
+    \vskip 2em%				was: 1.5em
+    {\large
+      \lineskip .5em%
+      \begin{tabular}[t]{c}%
+        \@author
+      \end{tabular}\par}%
+    \vskip 1em%			       \date and extra space removed
+  \end{center}%
+  \par
+  \markboth{\hfill\titlerunning}{\authorrunning\hfill}
+  \setcounter{firstpage}{\firstpage}
+  \setcounter{page}{\firstpage}
+  \vskip .5em}
+
+\newcommand{\institute}[1]{\\{\scriptsize
+   \begin{tabular}[t]{@{\footnotesize}c@{}}#1\end{tabular}}}
+\newcommand{\email}[1]{\\{\footnotesize\tt #1}}
+
+\renewenvironment{abstract}{\begin{list}{}%   header removed and noindent
+			{\rightmargin\leftmargin
+			\listparindent 1.5em
+			\parsep 0pt plus 1pt}
+			\small\item}{\end{list}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{hyperref} % add hyperlinks
+\RequirePackage{mathptmx} % Pick Times Roman as a base font
+\RequirePackage{lastpage} % Remembers page number of last page
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%			Remember page numbers      		    %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcounter{firstpage}
+\setcounter{firstpage}{1}
+\AtEndDocument{%
+   \addtocounter{page}{-1}
+   \newwrite\pages
+   \immediate\openout\pages=\jobname.pag
+   \immediate\write\pages{\arabic{firstpage}-\arabic{page}}
+   \addtocounter{page}{1}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%			Less space in lists      		    %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\@listi{\leftmargin\leftmargini
+            \parsep 2.5\p@ \@plus1.5\p@ \@minus\p@
+            \topsep 5\p@   \@plus2\p@ \@minus5\p@
+            \itemsep2.5\p@ \@plus1.5\p@ \@minus\p@}
+\let\@listI\@listi
+\@listi
+\def\@listii {\leftmargin\leftmarginii
+              \labelwidth\leftmarginii
+              \advance\labelwidth-\labelsep
+              \topsep    1\p@ \@plus\p@ \@minus\p@
+              \parsep    1\p@   \@plus\p@  \@minus\p@
+              \itemsep   \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+              \labelwidth\leftmarginiii
+              \advance\labelwidth-\labelsep
+              \topsep    \z@
+              \parsep    \z@
+              \itemsep   \topsep}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%       References small and with less space between items       %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\renewenvironment{thebibliography}[1]
+     {\section*{\refname}\small%              small added
+      \list{\@biblabel{\@arabic\c@enumiv}}%
+           {\settowidth\labelwidth{\@biblabel{#1}}%
+            \leftmargin\labelwidth
+            \advance\leftmargin\labelsep
+            \@openbib@code
+            \usecounter{enumiv}%
+            \let\p@enumiv\@empty
+            \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+      \sloppy
+      \clubpenalty4000
+      \@clubpenalty \clubpenalty
+      \widowpenalty4000%
+      \sfcode`\.\@m
+		\setlength{\parskip}{0pt}%
+		\setlength{\itemsep}{3pt plus 2pt}% less space between items
+     }
+     {\def\@noitemerr
+       {\@latex@warning{Empty `thebibliography' environment}}%
+      \endlist}
diff --git a/omdoc-semantics/macros/publishers/mscs/mscs.cls b/omdoc-semantics/macros/publishers/mscs/mscs.cls
new file mode 100644
index 0000000000000000000000000000000000000000..d6b1bf85777964efa29c9610bc32bb81d4f36021
--- /dev/null
+++ b/omdoc-semantics/macros/publishers/mscs/mscs.cls
@@ -0,0 +1,1031 @@
+%%
+%% This is file `mscs.cls'
+%%
+%% CUP Journal MSCS document class
+%% Copyright (1996-2001) Cambridge University Press
+%%
+%% by Mark A. Reed
+%%   based on MSCS.STY
+%%
+%% Bugs (in the case of unchanged files) should be reported to
+%% texline@cambridge.org
+%%
+%% This software may only be used in the preparation of journal articles
+%% or books or parts of books to be published by Cambridge University Press.
+%% Any other use constitutes an infringement of copyright.
+%%
+%% \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}[1997/12/01]
+\ProvidesClass{mscs}[2001/10/03 v1.27 Mathematical Structures in Computer
+  ^^JScience document class]
+
+\newif\ifprodtf
+
+\DeclareOption{oneside}{\relax}
+\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
+\DeclareOption{draft}{\setlength\overfullrule{5\p@}}
+\DeclareOption{final}{\setlength\overfullrule{\z@}}
+\DeclareOption{onecolumn}{\@twocolumnfalse}
+\DeclareOption{twocolumn}{\relax}
+\DeclareOption{titlepage}{\relax}
+\DeclareOption{notitlepage}{\relax}
+\DeclareOption{leqno}{\relax}
+\DeclareOption{fleqn}{\relax}
+\DeclareOption{prodtf}{\prodtftrue}
+
+\ExecuteOptions{twoside,final,onecolumn}
+\ProcessOptions\relax
+
+\ifprodtf \RequirePackage{CUPTimes,mscs2esy}\fi
+
+\setlength\lineskip{1\p@}
+\setlength\normallineskip{1\p@}
+\renewcommand\baselinestretch{}
+
+\renewcommand\normalsize{%
+  \@setfontsize\normalsize\@xpt{13}%
+  \abovedisplayskip 6.5\p@ \@plus 1\p@ \@minus 1\p@
+  \belowdisplayskip \abovedisplayskip
+  \abovedisplayshortskip 3\p@ \@plus 1\p@
+  \belowdisplayshortskip \abovedisplayshortskip
+  \let\@listi\@listI
+}
+
+\normalsize
+
+\newdimen\oneem \oneem=1em
+
+\newcommand\small{%
+  \@setfontsize\small\@ixpt{12}%
+  \abovedisplayskip 6\p@ \@plus 1\p@ \@minus 1\p@
+  \belowdisplayskip \abovedisplayskip
+  \abovedisplayshortskip 3\p@ \@plus 1\p@
+  \belowdisplayshortskip \abovedisplayshortskip
+  \def\@listi{\leftmargin\leftmargini
+    \topsep 2\p@ \@plus 1\p@ \@minus 1\p@
+    \parsep \z@
+    \itemsep \parsep}%
+}
+
+\newcommand\footnotesize{%
+  \@setfontsize\footnotesize\@viiipt{10}%
+  \abovedisplayskip 5\p@ \@plus 1\p@ \@minus 1\p@
+  \belowdisplayskip \abovedisplayskip
+  \abovedisplayshortskip \z@ \@plus 1\p@
+  \belowdisplayshortskip \abovedisplayshortskip
+  \def\@listi{\leftmargin\leftmargini
+    \topsep 2\p@ \@plus 1\p@ \@minus 1\p@
+    \parsep \z@
+    \itemsep \parsep}%
+}
+
+\newcommand\indexsize{\@setfontsize\indexsize\@viiipt{9}}
+\newcommand\scriptsize{\@setfontsize\scriptsize\@viipt{8}}
+\newcommand\tiny{\@setfontsize\tiny\@vpt{6}}
+\newcommand\large{\@setfontsize\large\@xiipt{14}}
+\newcommand\Large{\@setfontsize\Large\@xivpt{18}}
+\newcommand\LARGE{\@setfontsize\LARGE\@xviipt{21}}
+\newcommand\huge{\@setfontsize\huge\@xxpt{25}}
+\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
+
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+
+\ifprodtf \else
+  \setlength\oddsidemargin{2pc}
+  \setlength\evensidemargin{2pc}
+  \setlength\topmargin{3pc}
+\fi
+
+\setlength\marginparwidth{2.0cm}
+\setlength\marginparsep{10\p@}
+
+\setlength\headheight{13\p@}
+\setlength\headsep{13\p@}
+\setlength\topskip{13\p@}
+\setlength\footskip{26\p@}
+
+\setlength\textheight{43\baselineskip}
+\addtolength\textheight{\topskip}
+\setlength\textwidth{32pc}
+\setlength\columnsep{10\p@}
+\setlength\columnseprule{\z@}
+
+\setlength\footnotesep{6.65\p@}
+\setlength{\skip\footins}{19.5\p@ \@plus 12\p@ \@minus 1\p@}
+
+\setlength\floatsep{13\p@ \@plus 6.5\p@ \@minus 1\p@}
+\setlength\textfloatsep{15\p@ \@plus 4.5\p@ \@minus 3\p@}
+\setlength\intextsep{13\p@ \@plus 6.5\p@ \@minus 2\p@}
+
+\setlength\dblfloatsep{13\p@ \@plus 6.5\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{15\p@ \@plus 4.5\p@ \@minus 3\p@}
+\setlength\@fptop{\z@ \@plus 0fil}
+\setlength\@fpsep{13\p@ \@plus 0fil}
+\setlength\@fpbot{\z@ \@plus 3fil}
+\setlength\@dblfptop{\z@ \@plus 0fil}
+\setlength\@dblfpsep{13\p@ \@plus 0fil}
+\setlength\@dblfpbot{\z@ \@plus 3fil}
+\setlength\marginparpush{5\p@}
+
+\setlength\parskip{\z@ \@plus .3\p@}
+\setlength\parindent{1em}
+\setlength\partopsep{\z@ \@plus 1\p@}
+\@lowpenalty  51
+\@medpenalty 151
+\@highpenalty 301
+\@beginparpenalty -\@lowpenalty
+\@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty
+\clubpenalty\z@
+\widowpenalty\@M
+
+\newcommand\section{%
+  \@startsection{section}{1}{\z@}
+    {-19.5\p@ \@plus -6.5\p@ \@minus -3.25\p@}
+    {6.5\p@ \@minus 1\p@}
+    {\normalsize\normalfont\bfseries\raggedright}%
+}
+
+\newcommand\subsection{%
+  \@startsection{subsection}{2}{\z@}
+    {-19.5\p@ \@plus -3.25\p@ \@minus -3.25\p@}
+    {6.5\p@ \@minus 1\p@}
+    {\normalsize\normalfont\itshape\raggedright}%
+}
+
+\newcommand\subsubsection{%
+  \@startsection{subsubsection}{3}{\z@}
+    {13\p@ \@plus 3.25\p@ \@minus 1\p@}
+    {-0.5em}
+    {\normalsize\normalfont\itshape}%
+}
+
+\newcommand\paragraph{%
+  \@startsection{paragraph}{4}{\z@}
+    {13\p@ \@plus 3.25\p@ \@minus 1\p@}
+    {-0.5em}
+    {\normalsize\normalfont\rmfamily}%
+}
+
+\newcommand\subparagraph{%
+  \@startsection{subparagraph}{4}{\parindent}
+    {13\p@ \@plus 3.25\p@ \@minus 1\p@}
+    {-0.5em}
+    {\normalsize\normalfont\rmfamily}%
+}
+
+\newcommand\xhead{% as \section
+  \@startsection{section}{5}{\z@}
+    {-19.5\p@ \@plus -6.5\p@ \@minus -3.25\p@}
+    {6.5\p@ \@minus 1\p@}
+    {\normalsize\normalfont\bfseries\raggedright}%
+}
+
+\newif\ifappendix \appendixfalse
+
+\def\@startsection#1#2#3#4#5#6{% FROM LATEX.LTX
+  \if@noskipsec \leavevmode \fi
+  \par \@tempskipa #4\relax
+  \@afterindenttrue
+  \ifdim \@tempskipa <\z@
+    \@tempskipa -\@tempskipa \@afterindentfalse
+  \fi
+  \if@nobreak
+    \everypar{}%
+  \else
+    \addpenalty{\@secpenalty}\addvspace{\@tempskipa}%
+  \fi
+  \@ifstar
+  {\@ssect{#3\ifappendix\ifnum #2=\@ne \appendixname. %
+    \addcontentsline{toc}{#1}{\appendixname}\fi\fi}{#4}{#5}{#6}}%
+  {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
+}
+
+\def\rm@seccntformat#1{{\normalfont\rmfamily\csname the#1\endcsname.\enskip}}
+\def\bf@seccntformat#1{{\normalfont\bfseries\ifappendix \appendixname\ \fi
+  \csname the#1\endcsname.\enskip}}
+
+\def\numberline#1{\hb@xt@\@tempdima{#1\hss}}
+
+\def\@sect#1#2#3#4#5#6[#7]#8{% FROM LATEX.LTX
+  \ifnum #2>\c@secnumdepth
+    \let\@svsec\@empty
+  \else
+    \refstepcounter{#1}%
+    \ifnum #2>\@ne
+      \protected@edef\@svsec{\rm@seccntformat{#1}}%
+    \else
+      \protected@edef\@svsec{\bf@seccntformat{#1}}%
+    \fi
+  \fi
+  \@tempskipa #5\relax
+  \ifdim \@tempskipa>\z@
+    \begingroup #6\relax
+    \@hangfrom{\hskip #3\relax\@svsec}%
+    {\interlinepenalty \@M #8\par}%
+    \endgroup
+    \csname #1mark\endcsname{#7}%
+    \addcontentsline{toc}{#1}{%
+      \ifnum #2>\c@secnumdepth
+      \else
+        \protect\numberline{\ifnum#2=\@ne\ifappendix \appendixname\ \fi\fi
+          \csname the#1\endcsname}%
+      \fi
+      \ifnum#2=\@ne\ifappendix \hspace{48\p@}\fi\fi
+    #7}%
+  \else
+    \def\@svsechd{#6\hskip #3\relax
+      \@svsec #8\csname #1mark\endcsname{#7}%
+      \addcontentsline{toc}{#1}{%
+        \ifnum #2>\c@secnumdepth
+        \else
+          \protect\numberline{\csname the#1\endcsname}%
+        \fi
+      #7}%
+    }%
+  \fi
+  \@xsect{#5}%
+}
+
+\newcommand\appendix{\par
+  \appendixtrue
+  \setcounter{section}\z@
+  \setcounter{subsection}\z@
+  \def\thesection{\@Alph\c@section}%
+  \def\thesubsection{\thesection.\@arabic\c@subsection}%
+  \def\thesubsubsection{\thesubsection.\@arabic\c@subsubsection}%
+}
+
+\setlength\leftmargini   {1.25pc}
+\setlength\leftmarginii  {1.25pc}
+\setlength\leftmarginiii {1.25pc}
+\setlength\leftmarginiv  {1.25pc}
+\setlength\leftmarginv   {1pc}
+\setlength\leftmarginvi  {1pc}
+
+\setlength\leftmargin   {\leftmargini}
+\setlength\labelsep     {2.5\p@}
+\setlength\labelwidth   {\leftmargini}
+\addtolength\labelwidth {-\labelsep}
+
+\def\makeRLlabel#1{\rlap{#1}\hss}
+\def\makeRRlabel#1{\hss\llap{#1}}
+
+\def\@listI{%
+  \leftmargin\leftmargini
+  \parsep \z@
+  \topsep 3\p@ \@plus 1\p@ \@minus 1\p@
+  \itemsep \z@ \@plus 1\p@ \@minus 1\p@
+}
+\let\@listi\@listI
+\@listi
+
+\def\@listii{%
+  \leftmargin\leftmarginii
+  \labelwidth\leftmarginii
+  \advance\labelwidth-\labelsep
+  \topsep 3\p@ \@plus 1\p@ \@minus 1\p@
+  \parsep \z@
+  \itemsep \parsep
+}
+
+\def\@listiii{%
+  \leftmargin\leftmarginiii
+  \labelwidth\leftmarginiii
+  \advance\labelwidth-\labelsep
+  \topsep 3\p@ \@plus 1\p@ \@minus 1\p@
+  \parsep \z@
+  \partopsep \z@
+  \itemsep \topsep
+}
+
+\def\@listiv{%
+  \leftmargin\leftmarginiv
+  \labelwidth\leftmarginiv
+  \advance\labelwidth-\labelsep
+}
+
+\def\@listv{%
+  \leftmargin\leftmarginv
+  \labelwidth\leftmarginv
+  \advance\labelwidth-\labelsep
+}
+
+\def\@listvi{%
+  \leftmargin\leftmarginvi
+  \labelwidth\leftmarginvi
+  \advance\labelwidth-\labelsep
+}
+
+\renewenvironment{itemize}
+  {\ifnum \@itemdepth>\thr@@
+     \@toodeep
+   \else
+     \advance\@itemdepth \@ne
+     \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+     \list{\csname\@itemitem\endcsname}%
+       {\let\makelabel\makeRLlabel}%
+   \fi}
+  {\endlist}
+
+\newcommand\labelitemi{\normalfont\bfseries ---}
+\newcommand\labelitemii{\normalfont\bfseries --}
+\newcommand\labelitemiii{$\m@th\bullet$}
+\newcommand\labelitemiv{$\m@th\cdot$}
+
+\renewenvironment{enumerate}
+  {\ifnum \@enumdepth>\thr@@
+     \@toodeep
+   \else
+     \advance\@enumdepth \@ne
+     \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
+   \fi
+   \@ifnextchar [{\@enumeratetwo}{\@enumerateone}}
+  {\endlist}
+
+\def\@enumeratetwo[#1]{%
+  \list{\csname label\@enumctr\endcsname}%
+   {\settowidth\labelwidth{#1}%
+    \leftmargin\labelwidth
+    \advance\leftmargin\labelsep
+    \usecounter{\@enumctr}%
+   \let\makelabel\makeRLlabel}%
+}
+
+\def\@enumerateone{%
+  \list{\csname label\@enumctr\endcsname}%
+   {\usecounter{\@enumctr}%
+   \let\makelabel\makeRLlabel}%
+}
+
+\newcommand\labelenumi  {\theenumi}
+\renewcommand\theenumi  {\@arabic\c@enumi}
+\newcommand\labelenumii {(\theenumii)}
+\renewcommand\theenumii {\@alph\c@enumii}
+\renewcommand\p@enumii  {\theenumi}
+\newcommand\labelenumiii{\theenumiii}
+\renewcommand\theenumiii{\@roman\c@enumiii}
+\renewcommand\p@enumiii {\theenumi(\theenumii)}
+\newcommand\labelenumiv {\theenumiv}
+\renewcommand\theenumiv {\@Alph\c@enumiv}
+\renewcommand\p@enumiv  {\p@enumiii\theenumiii}
+
+\newcommand*\descriptionlabel[1]{\hspace\labelsep \normalfont\bfseries #1}
+\newenvironment{description}
+  {\list{}{\labelwidth\z@
+           \itemindent-\leftmargin
+   \let\makelabel\descriptionlabel}}
+  {\endlist}
+
+\newenvironment{verse}
+  {\let\\=\@centercr
+   \list{}{\itemsep\z@
+     \itemindent -1.25pc
+     \listparindent \itemindent
+     \rightmargin\leftmargin
+     \advance\leftmargin 1.25pc}\item[]}
+  {\endlist}
+
+\newenvironment{quotation}
+  {\list{}{\listparindent 1em%
+    \itemindent\listparindent
+    \leftmargin\z@
+    \rightmargin\leftmargin
+    \parsep \z@ \@plus 1\p@}\item[]%
+    \small\normalfont}
+  {\endlist}
+
+\newenvironment{quote}
+  {\quotation}
+  {\endquotation}
+
+\newcommand\maketitle{\par
+  \begingroup
+    \def\@makefnmark{{$^{\@thefnmark}$}}%
+    \newpage
+    \global\@topnum\z@
+    \@maketitle \thispagestyle{titlepage}\@thanks
+  \endgroup
+  \setcounter{footnote}\z@
+  \global\let\@maketitle\relax
+  \global\let\@thanks\relax
+  \global\let\@title\relax
+  \global\let\@author\relax
+  \global\let\maketitle\relax
+  \global\let\thanks\relax
+}
+
+\renewcommand\and{%
+  \end{author@tabular}\vskip 6\p@\par
+  \begin{author@tabular}[t]{@{}l@{}}%
+}
+
+\let\addressbreak\relax
+
+\def\author@tabular{\def\@halignto{}\@authortable}
+\let\endauthor@tabular=\endtabular
+\def\author@tabularcr{{\ifnum0=`}\fi
+  \@xtabularcr[5\p@]\small\normalfont\itshape\ignorespaces}
+\def\author@tabularcrnospace{{\ifnum0=`}\fi
+  \@xtabularcr[-2\p@]\small\normalfont\itshape\ignorespaces}
+\def\@authortable{\leavevmode \hbox \bgroup $\let\@acol\@tabacol
+ \let\@classz\@tabclassz \let\@classiv\@tabclassiv
+ \let\\\author@tabularcr \@tabarray}
+
+\def\@maketitle{%
+  \newpage
+  \vspace*{3\p@}%
+  {\raggedright \sloppy
+  {\LARGE\strut \normalfont\bfseries \@title \par}%
+  \vskip 14\p@
+  {\normalsize\normalfont
+   \let\addressbreak\author@tabularcrnospace
+   \begin{author@tabular}[t]{@{}l@{}}\@author
+   \end{author@tabular}\par}%
+  \vskip 13\p@
+  {\small\strut\normalfont\itshape Received \@date}}%
+  \par\noindent
+  \vskip 37\p@
+}
+
+\newenvironment{abstract}
+  {\list{}{\leftmargin\z@
+    \rightmargin 2pc
+    \parsep \z@ \@plus 1\p@}%
+   \raggedright\item[]\small\normalfont}
+  {\endlist}
+
+\mark{{}{}}
+\gdef\@author{\mbox{}}
+\renewcommand\author{\@ifnextchar [{\@authortwo}{\@authorone}}
+\def\@authortwo[#1]#2{\gdef\@author{#2}\gdef\@shortauthor{#1}}
+\def\@authorone#1{\gdef\@author{#1}\gdef\@shortauthor{#1}}
+\newcommand\shortauthor[1]{\gdef\@shortauthor{#1}}
+\gdef\@shortauthor{}
+\gdef\@title{\mbox{}}
+\renewcommand\title{\@ifnextchar [{\@titletwo}{\@titleone}}
+\def\@titletwo[#1]#2{\gdef\@title{#2}\gdef\@shorttitle{#1}}
+\def\@titleone#1{\gdef\@title{#1}\gdef\@shorttitle{#1}}
+\newcommand\shorttitle[1]{\gdef\@shorttitle{#1}}
+\gdef\@shorttitle{}
+\newcommand\pubyear[1]{\gdef\@year{#1}}
+\gdef\@year{19XX}
+\newcommand\volume[1]{\gdef\@volume{#1}}
+\gdef\@volume{00}
+\newcommand\pagerange[1]{\gdef\@pagerange{#1}}
+\gdef\@pagerange{1--000}
+\def\press{DOI: \@doi\quad {Printed in the United Kingdom}}
+\newcommand\doi[1]{\gdef\@doi{10.1017/#1}}
+\gdef\@doi{10.1017/S0000000000000000}
+
+\newcommand\journal[1]{\gdef\@journal{#1}}
+\def\@journal{%
+  \vbox to 5.6\p@{\noindent
+    \parbox[t]{5in}{%
+      \ifprodtf
+        {\normalfont\itshape Math. Struct. in Comp. Science\/}
+        (\@year), {\normalfont\itshape vol.} \@volume, {\normalfont\itshape pp.}
+        \@pagerange.\quad \copyright\ \@year\ Cambridge University 
+        Press\\[2.5\p@]
+       \press
+      \else
+        {\normalfont\itshape Under consideration for publication in
+         Math. Struct. in Comp. Science}%
+      \fi}%
+  \vss}%
+}
+
+\def\ps@headings{\let\@mkboth\markboth
+  \def\@oddhead{\normalfont\rmfamily {\itshape\@shorttitle}\hfill \thepage}%
+  \def\@evenhead{\normalfont\rmfamily {\itshape\@shortauthor}\hfill \thepage}%
+  \let\@evenfoot\@empty
+  \let\@oddfoot\@evenfoot
+  \def\sectionmark##1{\markboth{##1}{}}%
+  \def\subsectionmark##1{\markright{##1}}%
+}
+
+\def\ps@myheadings{\let\@mkboth\@gobbletwo
+  \def\@oddhead{\normalfont\rmfamily {\itshape\rightmark}\hfill \thepage}%
+  \def\@evenhead{\normalfont\rmfamily {\itshape\leftmark}\hfill \thepage}%
+  \let\@oddfoot\@empty
+  \let\@evenfoot\@oddfoot
+  \let\sectionmark\@gobble
+  \let\subsectionmark\@gobble
+}
+
+\def\ps@titlepage{\leftskip\z@ \let\@mkboth\@gobbletwo
+  \def\@oddhead{\footnotesize\normalfont\@journal \hfill}%
+  \def\@evenhead{\footnotesize\normalfont\@journal \hfill}%
+  \let\@oddfoot\@empty
+  \let\@evenfoot\@oddfoot
+  \let\sectionmark\@gobble
+  \let\subsectionmark\@gobble
+}
+
+\def\@xnthm#1#2[#3]{% FROM LATEX.LTX
+\expandafter\@ifdefinable\csname #1\endcsname
+  {\@definecounter{#1}\@newctr{#1}[#3]%
+   \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
+   \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}%
+   \global\@namedef{#1}{\@thm{#1}{#2}}%
+   \global\@namedef{#1*}{\@thmstar{#1}{#2}}%
+   \global\@namedef{end#1}{\@endtheorem}%
+   \global\@namedef{end#1*}{\@endthmstar}}%
+}
+
+\def\@ynthm#1#2{% FROM LATEX.LTX
+\expandafter\@ifdefinable\csname #1\endcsname
+  {\@definecounter{#1}%
+   \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
+   \global\@namedef{#1}{\@thm{#1}{#2}}%
+   \global\@namedef{#1*}{\@thmstar{#1}{#2}}%
+   \global\@namedef{end#1}{\@endtheorem}%
+   \global\@namedef{end#1*}{\@endthmstar}}%
+}
+
+\def\@othm#1[#2]#3{% FROM LATEX.LTX
+  \@ifundefined{c@#2}{\@nocounterr{#2}}%
+    {\expandafter\@ifdefinable\csname #1\endcsname
+    {\global\@namedef{the#1}{\@nameuse{the#2}}%
+     \global\@namedef{#1}{\@thm{#2}{#3}}%
+     \global\@namedef{#1*}{\@thmstar{#2}{#3}}%
+     \global\@namedef{end#1}{\@endtheorem}%
+     \global\@namedef{end#1*}{\@endthmstar}}}%
+}
+
+\def\@thmstar#1#2{\@ifnextchar[{\@ythmstar{#1}{#2}}{\@xthmstar{#1}{#2}}}
+\def\@xthmstar#1#2{\@beginthmstar{#2}{\csname the#1\endcsname}\ignorespaces}
+\def\@ythmstar#1#2[#3]{\@opargbeginthmstar{#2}{\csname the#1\endcsname}{#3}%
+  \ignorespaces}
+
+\def\@thmstarcounter#1{{}}
+\def\@thmstarcountersep{{}}
+
+\newif\ifrembrks
+\newcommand\removebrackets{\rembrkstrue}
+
+\def\thm@body{\topsep .5\baselineskip \@plus .2\baselineskip
+  \leftmargin\z@ \rightmargin\leftmargin \listparindent\parindent
+}
+
+\def\prf@body{\thm@body \itemindent\parindent \labelsep\z@ \labelwidth\z@}
+
+\def\@begintheorem#1#2{\list{}{\thm@body}%
+  \item[]{\normalfont\bfseries #1\ #2.}%
+  \normalfont\rmfamily\enskip\ignorespaces}
+
+\def\@opargbegintheorem#1#2#3{\list{}{\thm@body}%
+  \item[]{\normalfont\bfseries #1\ #2\ %
+          \ifrembrks #3\global\rembrksfalse\else (#3)\fi.}%
+  \normalfont\rmfamily\enskip\ignorespaces}
+
+\let\@endtheorem\endlist
+
+\def\@beginthmstar#1#2{\list{}{\thm@body}%
+  \item[]{\normalfont\bfseries #1.}%
+  \normalfont\rmfamily\enskip\ignorespaces}
+
+\def\@opargbeginthmstar#1#2#3{\list{}{\thm@body}%
+  \item[]{\normalfont\bfseries #1\ %
+          \ifrembrks #3\global\rembrksfalse\else (#3)\fi.}%
+  \normalfont\rmfamily\enskip\ignorespaces}
+
+\let\@endthmstar\endlist
+
+\newsavebox{\proofbox}
+\savebox{\proofbox}{%
+  \begin{picture}(7,7)\put(0,0){\framebox(7,7){}}\end{picture}%
+}
+
+\newenvironment{proof}
+  {\@ifnextchar[{\@oprf}{\@nprf}}
+  {\hspace*{\fill}{\usebox{\proofbox}}\endlist}
+
+\newenvironment{proof*}{\proof}{\endlist}
+
+\def\@oprf[#1]{%
+  \list{}{\prf@body}%
+  \item[]{{\normalfont\itshape #1}}%
+  \normalfont\rmfamily\enskip\ignorespaces
+}
+
+\def\@nprf{%
+  \list{}{\prf@body}%
+  \item[]{\normalfont\itshape Proof.}%
+  \normalfont\rmfamily\enskip\ignorespaces
+}
+
+\setlength\arraycolsep       {5\p@}
+\setlength\tabcolsep         {6\p@}
+\setlength\arrayrulewidth    {.5\p@}
+\setlength\doublerulesep     {1.5\p@}
+
+\setlength\tabbingsep        {\labelsep}
+\setlength{\skip\@mpfootins} {10\p@ \@plus 5\p@ \@minus 1\p@}
+
+\setlength\fboxsep           {3\p@}
+\setlength\fboxrule          {.5\p@}
+
+\setcounter{secnumdepth}{3}
+\newcounter{part}
+\newcounter{section}
+\newcounter{subsection}[section]
+\newcounter{subsubsection}[subsection]
+\newcounter{paragraph}[subsubsection]
+\newcounter{subparagraph}[paragraph]
+\renewcommand\thepart          {\@arabic\c@part}
+\renewcommand\thesection       {\@arabic\c@section}
+\renewcommand\thesubsection    {\thesection.\@arabic\c@subsection}
+\renewcommand\thesubsubsection {\thesubsection.\@arabic\c@subsubsection}
+\renewcommand\theparagraph     {\thesubsubsection.\@arabic\c@paragraph}
+\renewcommand\thesubparagraph  {\theparagraph.\@arabic\c@subparagraph}
+
+\def\@pnumwidth{1.55em}
+\def\@tocrmarg {2.55em}
+\def\@dotsep{4.5}
+\setcounter{tocdepth}{2}
+
+\def\@dottedtocline#1#2#3#4#5{% FROM LATEX.LTX
+  \ifnum #1>\c@tocdepth \else
+    \vskip \z@ \@plus.2\p@
+    {\leftskip #2\relax
+     \rightskip\@tocrmarg \parfillskip -\rightskip
+     \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}
+
+\newcommand\tableofcontents{%
+  \xhead*{\contentsname}\@starttoc{toc}%
+  \par\vspace{13\p@}%
+}
+
+\newcommand*\l@section[2]{\addpenalty{\@secpenalty}%
+ \@tempdima 1.5em%
+ \begingroup
+  \parindent \z@ \rightskip \@pnumwidth
+  \parfillskip -\@pnumwidth \normalfont\rmfamily \leavevmode
+  \advance\leftskip\@tempdima \hskip -\leftskip
+  #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \endgroup}
+
+\newcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
+\newcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
+\newcommand*\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
+\newcommand*\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
+
+\newcommand\listoffigures{%
+  \xhead*{\listfigurename}\@starttoc{lof}%
+}
+
+\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
+\let\l@table\l@figure
+
+\newcommand\listoftables{%
+  \xhead*{\listtablename}\@starttoc{lot}%
+}
+
+\newenvironment{thebibliography}[1]
+  {\xhead*{\refname}%
+   \addcontentsline{toc}{section}{\refname}%
+   \list{}{\labelwidth\z@ \leftmargin 1em \itemindent-\leftmargin}%
+   \small\normalfont \parindent\z@
+   \parskip\z@ \@plus .1\p@\relax
+   \sloppy\clubpenalty\z@ \widowpenalty\@M
+   \sfcode`\.\@m\relax}
+  {\def\@noitemerr
+       {\@latex@warning{Empty `thebibliography' environment}}%
+   \endlist}
+
+\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
+
+\def\@cite#1#2{(#1\if@tempswa , #2\fi)}% FROM LATEX.LTX
+\def\@biblabel#1{}% FROM LATEX.LTX
+
+\def\@citex[#1]#2{% FROM LATEX.LTX
+  \let\@citea\@empty
+  \@cite{\@for\@citeb:=#2\do
+    {\@citea\def\@citea{;\ }%
+     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
+     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+     \@ifundefined{b@\@citeb}{{\normalfont\bfseries ?}%
+       \G@refundefinedtrue
+       \@latex@warning
+         {Citation `\@citeb' on page \thepage \space undefined}}%
+       {{\csname b@\@citeb\endcsname}}}}{#1}}
+
+\newenvironment{theindex}
+  {\xhead*{\indexname}%
+   \addcontentsline{toc}{section}{\indexname}%
+   \footnotesize\normalfont \parindent\z@ \parskip\z@ \@plus .1\p@\relax
+   \let\item\@idxitem}
+  {\relax}
+
+\newcommand\@idxitem  {\par\hangindent 1em}
+\newcommand\subitem   {\par\hangindent 3em\hspace*{1em}}
+\newcommand\subsubitem{\par\hangindent 4em \hspace*{2em}}
+\newcommand\indexspace{\par\vskip\baselineskip \relax}
+
+\renewcommand\footnoterule{% FROM LATEX.LTX
+  \kern-3\p@
+  \hrule\@width.4\columnwidth \@height\z@
+  \kern 3\p@}
+
+\def\@makefnmark{\@textsuperscript{\normalfont\@thefnmark}} % FROM LATEX.LTX
+
+\newcommand\@makefntext[1]{%
+  \@setpar{\@@par\@tempdima \hsize
+    \advance\@tempdima-\oneem
+    \parshape \@ne \oneem \@tempdima}\par
+  \noindent \hb@xt@\z@{\hss\@makefnmark\ }#1}
+
+\renewcommand\thefootnote{\@fnsymbol\c@footnote}
+
+\def\@fnsymbol#1{\ensuremath{\ifcase#1\or \dagger\or \ddagger\or % FROM LATEX.LTX
+  \mathsection\or \mathparagraph\or \|\or \dagger\dagger\or \ddagger\ddagger\or
+  \mathsection\mathsection\or \mathparagraph\mathparagraph\or \|\| \else
+  \@ctrerr\fi\relax}}
+
+\setcounter{topnumber}{2}
+\setcounter{bottomnumber}{1}
+\setcounter{totalnumber}{3}
+\setcounter{dbltopnumber}{2}
+\renewcommand\topfraction{.9}
+\renewcommand\bottomfraction{.9}
+\renewcommand\textfraction{.1}
+\renewcommand\floatpagefraction{.75}
+\renewcommand\dbltopfraction{.9}
+\renewcommand\dblfloatpagefraction{.5}
+
+\newif\if@contcap
+\let\@@caption\caption
+\newcommand\contcaption{\@contcaptrue\addtocounter{\@captype}{-1}\@@caption}
+
+\long\def\@makecaption#1#2{\vskip 6.5\p@
+  \raggedright\sloppy #1\if@contcap {\normalfont\itshape\ continued}\fi.\ #2\par
+  \@contcapfalse
+}
+
+\newcounter{table}
+\renewcommand\thetable{\@arabic\c@table}
+
+\def\fps@table{tbp}
+\def\ftype@table{1}
+\def\ext@table{lot}
+\def\fnum@table{\tablename\ \thetable}
+
+\newenvironment{table}
+  {\@float{table}}
+  {\end@float}
+\newenvironment{table*}
+  {\let\SFB@currenthline=\SFB@fullhline
+   \@dblfloat{table}}
+  {\end@dblfloat}
+
+\def\fstyle@table{\footnotesize\normalfont\rmfamily}
+\def\fjust@table{\raggedright}
+\def\fcapjust@table{\raggedright\sloppy}
+\def\fcapsize@table{\normalsize\normalfont\rmfamily}
+\def\fcapstyle@table{\normalsize\normalfont\itshape}
+
+\newcounter{figure}
+\renewcommand\thefigure{\@arabic\c@figure}
+
+\def\fps@figure{tbp}
+\def\ftype@figure{2}
+\def\ext@figure{lof}
+\def\fnum@figure{\figurename\ \thefigure}
+
+\newenvironment{figure}
+  {\@float{figure}}
+  {\end@float}
+\newenvironment{figure*}
+  {\@dblfloat{figure}}
+  {\end@dblfloat}
+
+\def\fstyle@figure{\small\normalfont\rmfamily}
+\def\fjust@figure{\raggedright}
+\def\fcapjust@figure{\raggedright\sloppy}
+\def\fcapsize@figure{\small\normalfont\rmfamily}
+\def\fcapstyle@figure{\small\normalfont\rmfamily}
+
+\newif\ifwide@float
+
+\long\def\@caption#1[#2]#3{%  FROM LATEX.LTX
+  \par
+  \addcontentsline{\csname ext@#1\endcsname}{#1}%
+    {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
+  \begingroup
+    \ifwide@float \@parboxrestore\else \@myparboxrestore\fi
+    \if@minipage
+      \@setminipage
+    \fi
+    \@makecaption{\csname fcapjust@#1\endcsname \csname fcapsize@#1\endcsname
+      \csname fnum@#1\endcsname}
+      {\csname fcapstyle@#1\endcsname \ignorespaces #3}\par
+  \endgroup}
+
+\def\@xfloat #1[#2]{% FROM LATEX.LTX
+%  \@nodocument
+  \def \@captype {#1}%
+   \def \@fps {#2}%
+   \@onelevel@sanitize \@fps
+   \def \reserved@b {!}%
+   \ifx \reserved@b \@fps
+     \@fpsadddefault
+   \else
+     \ifx \@fps \@empty
+       \@fpsadddefault
+     \fi
+   \fi
+   \ifhmode
+     \@bsphack
+     \@floatpenalty -\@Mii
+   \else
+     \@floatpenalty-\@Miii
+   \fi
+  \ifinner
+     \@parmoderr\@floatpenalty\z@
+  \else
+    \@next\@currbox\@freelist
+      {%
+       \@tempcnta \sixt@@n
+       \expandafter \@tfor \expandafter \reserved@a
+         \expandafter :\expandafter =\@fps
+         \do
+          {%
+           \if \reserved@a h%
+             \ifodd \@tempcnta
+             \else
+               \advance \@tempcnta \@ne
+             \fi
+           \fi
+           \if \reserved@a t%
+             \@setfpsbit \tw@
+           \fi
+           \if \reserved@a b%
+             \@setfpsbit 4%
+           \fi
+           \if \reserved@a p%
+             \@setfpsbit 8%
+           \fi
+           \if \reserved@a !%
+             \ifnum \@tempcnta>15
+               \advance\@tempcnta -\sixt@@n\relax
+             \fi
+           \fi
+           }%
+       \@tempcntb \csname ftype@\@captype \endcsname
+       \multiply \@tempcntb \@xxxii
+       \advance \@tempcnta \@tempcntb
+       \global \count\@currbox \@tempcnta
+       }%
+    \@fltovf
+  \fi
+  \global \setbox\@currbox
+    \color@vbox
+      \normalcolor
+      \vbox \bgroup
+        \hsize\columnwidth
+        \ifwide@float
+          \@parboxrestore \linewidth\textwidth
+        \else
+          \advance\hsize -2pc \@rightskip 2pc%
+          \@myparboxrestore \linewidth\hsize
+        \fi
+        \@floatboxreset
+        \csname fstyle@#1\endcsname \csname fjust@#1\endcsname
+}
+
+\def\@myarrayparboxrestore{%
+  \let\if@nobreak\iffalse
+  \let\if@noskipsec\iffalse
+  \let\par\@@par
+  \let\-\@dischyph
+  \let\'\@acci\let\`\@accii\let\=\@acciii
+  \parindent\z@ \parskip\z@skip
+  \everypar{}%
+  \linewidth\hsize
+  \@totalleftmargin\z@
+  \leftskip\z@skip \rightskip\@rightskip
+  \parfillskip\@flushglue \lineskip\normallineskip
+  \baselineskip\normalbaselineskip
+  \sloppy}
+
+\def\@myparboxrestore{\@myarrayparboxrestore\let\\\@normalcr}
+
+\let\@@dblfloat\@dblfloat
+\def\@dblfloat{\wide@floattrue\@@dblfloat}% FROM LATEX.LTX
+
+\let\@@end@dblfloat\end@dblfloat
+\def\end@dblfloat{\@@end@dblfloat\wide@floatfalse}% FROM LATEX.LTX
+
+\def\SFB@fullhline{%
+  \noalign{\ifnum0=`}\fi
+  \vskip 3\p@
+  \hrule \@height\arrayrulewidth \@width\textwidth
+  \vskip 3\p@
+  \futurelet \@tempa\@xhline
+}
+
+\def\SFB@hline{%
+  \noalign{\ifnum0=`}\fi
+  \vskip 3\p@
+  \hrule \@height \arrayrulewidth
+  \vskip 3\p@
+  \futurelet \@tempa\@xhline
+}
+
+\let\SFB@currenthline=\SFB@hline
+
+\renewcommand\hline{% FROM LATEX.LTX
+  \noalign{\ifnum0=`}\fi
+  \vskip 6\p@
+  \hrule \@height \arrayrulewidth
+  \vskip 6\p@
+  \futurelet \@tempa\@xhline
+}
+
+\def\@xhline{%
+  \ifx\@tempa\hline
+    \vskip -12\p@
+    \vskip \doublerulesep
+  \fi
+  \ifnum0=`{\fi}%
+}
+
+\let\SFB@currenthline\SFB@hline
+
+\renewcommand\tabular{\let\@halignto\@empty % FROM LATEX.LTX
+  \let\hline\SFB@currenthline
+  \def\@xhline{%
+    \ifx\@tempa\hline
+      \vskip -6\p@
+      \vskip \doublerulesep
+    \fi
+    \ifnum0=`{\fi}%
+  }
+  \def\@arrayrule{\@addtopreamble{\hskip -.5\arrayrulewidth
+%                 \vrule \@width \arrayrulewidth
+                  \hskip .5\arrayrulewidth}}%
+  \@tabular}
+
+\newcommand\ls{\kern.15em}
+\newcommand\ns{\kern.5em}
+
+\newcommand\contentsname{Contents}
+\newcommand\listfigurename{List of figures}
+\newcommand\listtablename{List of tables}
+\newcommand\refname{References}
+\newcommand\indexname{Index}
+\newcommand\figurename{Fig.}
+\newcommand\tablename{Table}
+\newcommand\appendixname{Appendix}
+\newcommand\today{}
+\edef\today{\number\day\ \ifcase\month\or
+  January\or February\or March\or April\or May\or June\or
+  July\or August\or September\or October\or November\or December\fi
+  \ \number\year
+}
+
+\pagestyle{headings}
+\pagenumbering{arabic}
+\flushbottom
+\frenchspacing
+
+\endinput
+
+% End of file mscs.cls
diff --git a/omdoc-semantics/macros/publishers/mscs/mscs.sty b/omdoc-semantics/macros/publishers/mscs/mscs.sty
new file mode 100644
index 0000000000000000000000000000000000000000..86ce879f43962564a926f14875ebb4a9dcefb163
--- /dev/null
+++ b/omdoc-semantics/macros/publishers/mscs/mscs.sty
@@ -0,0 +1,867 @@
+% CUP Journal MSCS document style
+% v1.11 released 30th April 1998
+% Copyright 1991-3, 1997-8 Cambridge University Press
+%
+% This software may only be used in the preparation of journal articles
+% or books or parts of books to be published by Cambridge University Press.
+% Any other use constitutes an infringement of copyright.
+%
+%    for LaTeX version 2.09
+% based on ARTICLE DOCUMENT STYLE
+%     by Leslie Lamport
+%
+%    v0.92      by Sue Brooks,  4 March 1991
+%    v0.93 mods by Rod Mulvey, 12 March 1991
+%    v0.94 mods by Rod Mulvey, 20 March 1991
+%    v0.95 mods by Sue Brooks, 12 May 1991
+%    v0.96 mods by Sue Brooks, 10 June 1991
+%    v0.97 mods by Sue Brooks, 17 June 1991
+%    v0.98 mods by Sue Brooks, 17 March 1992
+%    v1.00 mods by Alison Woollatt, 15 January 1993 to complete catchline,
+%            add \affilskip, \proofbox, new biblio, toc, \ns and \ls
+%    v1.01 mods by Sue Brooks, 7 February 1993 to correct \hlines in table*
+%    v1.1  mods by M. Reed, 21st March 1997. Changed \year to \pubyear. Fixed
+%            lack of \parindent in proof, proof* and abstract environments.
+%            Replaced \affilskip by \addressbreak. Added \contcaption for
+%            continued captions. Fixed overfull boxes when 'Appendix' appears
+%            in contents.  Added mscssym input.
+%    v1.1a  mods by M. Reed, 16th April 1997. Changed titlepage catchline.
+%    v1.11  mods by M. Reed, 30th April 1998.
+
+\newif\ifoldfss
+\newif\ifnfssone
+\newif\ifnfsstwo
+\def\f@s@s{}%
+%
+\@ifundefined{DeclareFontShape}%
+  {%
+   \@ifundefined{selectfont}%
+    {\global\oldfsstrue\def\f@s@s{(with OFSS)\space}%
+       \let\reset@font=\relax}% old font selection scheme
+    {\global\nfssonetrue\def\f@s@s{(with NFSS release 1)\space}}%
+  }%
+  {\global\nfsstwotrue\def\f@s@s{(with NFSS release 2)\space}}%
+
+\typeout{Document Style `MSCS journal style' \f@s@s v1.11 released 30th April 1998}
+%
+%  Journals use two-sided printing.
+%
+\@twosidetrue
+\@mparswitchtrue
+\def\ds@draft{\overfullrule 5pt}
+\@options
+
+
+%  ****************************************
+%  *               FONTS                  *
+%  ****************************************
+%
+\newif\ifCUPmtlplainloaded
+\ifx\CUP@mtlplain@loaded\undefined
+\else
+  \global\CUPmtlplainloadedtrue
+\fi
+\lineskip 1pt
+\normallineskip 1pt
+\def\baselinestretch{1}
+\def\@normalsize{\@setsize\normalsize{13pt}\xpt\@xpt
+ \abovedisplayskip 6.5pt plus 1pt minus 1pt
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip 3pt plus 1pt
+ \belowdisplayshortskip  \abovedisplayshortskip
+ \let\@listi\@listI}
+\def\small{\@setsize\small{12pt}\ixpt\@ixpt
+ \abovedisplayskip 6pt plus 1pt minus 1pt
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip 3pt plus 1pt
+ \belowdisplayshortskip  \abovedisplayshortskip
+ \def\@listi{\leftmargin\leftmargini
+  \topsep 2pt plus 1pt minus 1pt
+  \parsep \z@
+  \itemsep \parsep}}
+\def\footnotesize{\@setsize\footnotesize{10pt}\viiipt\@viiipt
+ \abovedisplayskip 5pt plus 1pt minus 1pt
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus 1pt
+ \belowdisplayshortskip  \abovedisplayshortskip
+ \def\@listi{\leftmargin\leftmargini
+  \topsep 2pt plus 1pt minus 1pt
+  \parsep \z@
+  \itemsep \parsep}}
+\def\indexsize{\@setsize\indexsize{9pt}\viiipt\@viiipt}
+\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
+\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
+\def\large{\@setsize\large{14pt}\xiipt\@xiipt}
+\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
+\def\LARGE{\@setsize\LARGE{21pt}\xviipt\@xviipt}
+\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
+\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
+\normalsize
+
+
+%  ****************************************
+%  *            PAGE LAYOUT               *
+%  ****************************************
+%
+% SIDE MARGINS:
+\oddsidemargin  2pc
+\evensidemargin 2pc
+\marginparwidth 2.0cm
+\marginparsep 10pt
+
+% VERTICAL SPACING:
+\topmargin 3pc
+\headheight 13pt
+\headsep   13pt
+\topskip = 13pt
+\footheight 13pt
+\footskip 26pt
+
+% DIMENSION OF TEXT:
+\textheight = 43\baselineskip \advance\textheight by \topskip
+\textwidth 32pc
+\columnsep 10pt
+\columnseprule 0pt
+
+% FOOTNOTES:
+\footnotesep 6.65pt
+\skip\footins 19.5pt plus 12pt minus 1pt
+
+% FLOATS:
+\floatsep 13pt plus 6.5pt minus 1pt
+\textfloatsep 15pt plus 4.5pt minus 3pt
+\intextsep 13pt plus 6.5pt minus 2pt
+\@maxsep 15pt
+\dblfloatsep 13pt plus 6.5pt minus 2pt
+\dbltextfloatsep 15pt plus 4.5pt minus 3pt
+\@dblmaxsep 15pt
+\@fptop 0pt plus 0fil
+\@fpsep 13pt plus 0fil
+\@fpbot 0pt plus 3fil
+\@dblfptop 0pt plus 0fil
+\@dblfpsep 13pt plus 0fil
+\@dblfpbot 0pt plus 3fil
+\marginparpush 5pt
+
+
+%  ****************************************
+%  *           PARAGRAPHING               *
+%  ****************************************
+%
+\parskip \z@ plus .3pt
+\parindent 1em
+\partopsep 0pt plus 1pt
+\@lowpenalty   51
+\@medpenalty  151
+\@highpenalty 301
+\@beginparpenalty -\@lowpenalty
+\@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty
+\clubpenalty=0
+\widowpenalty=10000
+
+
+%  ****************************************
+%  *                 PARTS                *
+%  ****************************************
+%
+\def\part{\par \addvspace{4ex}\@afterindentfalse
+ \secdef\@part\@spart}
+\def\@part[#1]#2{\ifnum \c@secnumdepth >\m@ne
+  \refstepcounter{part}
+  \addcontentsline{toc}{part}{Part \thepart: #1}
+ \else \addcontentsline{toc}{part}{#1}
+ \fi
+ {\parindent 0pt \raggedright
+  \ifnum \c@secnumdepth >\m@ne
+   \large\rm PART
+   \ifcase\thepart \or ONE \or TWO \or THREE \or FOUR \or FIVE
+    \or SIX \or SEVEN \or EIGHT \or NINE \or TEN \else \fi
+   \par \nobreak
+  \fi
+  \LARGE \rm #2 \markboth{}{}\par }
+ \nobreak \vskip 3ex \@afterheading}
+\def\@spart#1{{\parindent 0pt \raggedright
+  \LARGE \rm #1\par}
+ \nobreak \vskip 3ex \@afterheading}
+
+
+%  ****************************************
+%  *               SECTIONS               *
+%  ****************************************
+%
+\def\section{\@startsection{section}{1}{\z@}
+ {-19.5pt plus -6.5pt minus -3.25pt}
+ {6.5pt plus 0pt minus 1pt}
+ {\raggedright\normalsize\bf}}
+\def\subsection{\@startsection{subsection}{2}{\z@}
+ {-19.5pt plus -3.25pt minus -3.25pt}
+ {6.5pt plus 0pt minus 1pt}
+ {\raggedright\normalsize\it}}
+\def\subsubsection{\@startsection{subsubsection}{3}{\z@}
+ {13pt plus 3.25pt minus 1pt}
+ {-0.5em}
+ {\normalsize\it}}
+\def\paragraph{\@startsection{paragraph}{4}{\z@}
+ {13pt plus 3.25pt minus 1pt}
+ {-0.5em}
+ {\normalsize\rm}}
+\def\subparagraph{\@startsection{subparagraph}{4}{\parindent}
+ {13pt plus 3.25pt minus 1pt}
+ {-0.5em}
+ {\normalsize\rm}}
+\setcounter{secnumdepth}{3}
+%
+\newif\ifappendix \appendixfalse
+\newif\ifStarAppendix \StarAppendixfalse
+
+\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
+   \par \@tempskipa #4\relax
+   \@afterindenttrue
+   \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi
+   \if@nobreak \everypar{}\else
+     \addpenalty{\@secpenalty}\addvspace{\@tempskipa}\fi \@ifstar
+     {\@ssect{#3 \ifappendix\StarAppendixtrue\ifnum #2=1 Appendix.  
+  \addcontentsline{toc}{#1}{Appendix} 
+  \fi\fi}{#4}{#5}{#6}}
+     {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+\def\numberline#1{\hbox to\@tempdima{#1\hss}}
+     
+\def\@sect#1#2#3#4#5#6[#7]#8{%
+ \ifnum #2>\c@secnumdepth
+  \def\@svsec{}%
+ \else
+  \refstepcounter{#1}
+  \ifnum #2>1 % - roman numerals in sub-heads
+   \edef\@svsec{{\rm \csname the#1\endcsname.\hskip 0.5em}}%
+  \else % default is bf numerals in section-heads
+   \edef\@svsec{\csname the#1\endcsname.\hskip 0.5em}%
+  \fi
+ \fi
+ \@tempskipa #5\relax
+ \ifdim \@tempskipa>\z@
+  \begingroup #6\relax
+   \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}
+  \endgroup
+  \csname #1mark\endcsname{#7}%
+  \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth \else
+     \protect\numberline{\csname the#1\endcsname}\fi 
+     \ifappendix \ifnum #2=\@ne \hspace{48pt}\fi\fi #7}
+ \else
+  \def\@svsechd{#6\hskip #3\@svsec #8\csname #1mark\endcsname
+    {#7}\addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth \else
+      \protect\numberline{\csname the#1\endcsname}\fi#7}}%
+ \fi
+ \@xsect{#5}}
+%
+\def\appendix{\appendixtrue\par
+ \setcounter{section}{0}
+ \setcounter{subsection}{0}
+ \def\thesection{Appendix \Alph{section}}
+ \def\thesubsection{\Alph{section}.\arabic{subsection}}
+ \def\thesubsubsection{\thesubsection.\arabic{subsubsection}}
+ }
+
+
+%  ****************************************
+%  *       PARTS & SECTIONS NUMBERS       *
+%  ****************************************
+%
+\newcounter{part}
+\newcounter {section}
+\newcounter {subsection}[section]
+\newcounter {subsubsection}[subsection]
+\newcounter {paragraph}[subsubsection]
+\newcounter {subparagraph}[paragraph]
+\def\thepart          {\arabic{part}}
+\def\thesection       {\arabic{section}}
+\def\thesubsection    {\thesection.\arabic{subsection}}
+\def\thesubsubsection {\thesubsection .\arabic{subsubsection}}
+\def\theparagraph     {\thesubsubsection.\arabic{paragraph}}
+\def\thesubparagraph  {\theparagraph.\arabic{subparagraph}}
+
+
+%  ****************************************
+%  *               SKIPS                  *
+%  ****************************************
+%
+\newskip\@indentskip
+\newskip\smallindent
+\newskip\@footindent
+\newskip\@leftskip
+\@indentskip=1.25pc
+\smallindent=1em
+\@footindent=\smallindent
+\@leftskip=\z@
+%\def\affilskip{\vspace{-7pt}} %corrects baselineskip for affiliations
+
+
+%  ****************************************
+%  *                LISTS                 *
+%  ****************************************
+%
+\leftmargini   \@indentskip
+\leftmarginii  1.25pc
+\leftmarginiii 1.25pc
+\leftmarginiv  1.25pc
+\leftmarginv   1pc
+\leftmarginvi  1pc
+\leftmargin\leftmargini
+\labelsep 2.5pt
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+%
+% label macros for Range-Left and Range-Right labels
+\def\makeRLlabel#1{\rlap{#1}\hss}
+\def\makeRRlabel#1{\hss\llap{#1}}
+%\def\makeRLlabel#1{\hss\llap{#1}}
+%
+\def\@listI{\leftmargin\leftmargini
+ \parsep \z@
+ \topsep 3pt plus 1pt minus 1pt
+ \itemsep \z@ plus 1pt minus 1pt
+}
+\let\@listi\@listI
+\@listi
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 3pt plus 1pt minus 1pt
+ \parsep \z@
+ \itemsep \parsep
+}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 3pt plus 1pt minus 1pt
+ \parsep \z@
+ \partopsep \z@
+ \itemsep \topsep
+}
+\def\@listiv{\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv\advance\labelwidth-\labelsep
+}
+\def\@listv{\leftmargin\leftmarginv
+ \labelwidth\leftmarginv\advance\labelwidth-\labelsep
+}
+\def\@listvi{\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi\advance\labelwidth-\labelsep
+}
+%
+% ITEMIZE
+\def\itemize{\ifnum \@itemdepth >3 \@toodeep
+  \else \advance\@itemdepth \@ne
+   \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+   \list{\csname\@itemitem\endcsname}%
+    {\let\makelabel\makeRLlabel}%
+  \fi}
+\def\labelitemi{---}
+\def\labelitemii{--}
+\def\labelitemiii{$\bullet$}
+\def\labelitemiv{$\cdot$}
+%
+% ENUMERATE
+% enumerate with optional argument to set left margin...
+\def\enumerate{\ifnum \@enumdepth >3 \@toodeep \else
+  \advance\@enumdepth \@ne
+  \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
+ \fi
+ \@ifnextchar [{\@enumeratetwo}{\@enumerateone}%
+}
+\def\@enumeratetwo[#1]{%
+ \list{\csname label\@enumctr\endcsname}%
+  {\settowidth\labelwidth{[#1]}
+   \leftmargin\labelwidth \advance\leftmargin\labelsep
+   \usecounter{\@enumctr}
+   \let\makelabel\makeRLlabel}
+}
+\def\@enumerateone{%
+ \list{\csname label\@enumctr\endcsname}%
+  {\usecounter{\@enumctr}
+   \let\makelabel\makeRLlabel}}
+%
+\def\labelenumi{\theenumi}
+\def\theenumi{\arabic{enumi}}
+\def\labelenumii{(\theenumii)}
+\def\theenumii{\alph{enumii}}
+\def\p@enumii{\theenumi}
+\def\labelenumiii{\theenumiii}
+\def\theenumiii{\roman{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+\def\labelenumiv{\theenumiv}
+\def\theenumiv{\Alph{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+%
+% DESCRIPTION
+\def\descriptionlabel#1{\hspace\labelsep \bf #1}
+\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
+  \let\makelabel\descriptionlabel}}
+\let\enddescription\endlist
+
+
+%  ****************************************
+%  *            DISPLAYED TEXT            *
+%  ****************************************
+%
+% VERSE
+\def\verse{\let\\=\@centercr
+ \list{}{\itemsep\z@
+  \itemindent -\@indentskip
+  \listparindent \itemindent
+  \rightmargin\leftmargin
+  \advance\leftmargin \@indentskip}\item[]}
+\let\endverse\endlist
+%
+% QUOTATION
+\def\quotation{\list{}{\listparindent \smallindent
+  \itemindent\listparindent
+  \leftmargin\z@\rightmargin\leftmargin
+  \parsep 0pt plus 1pt}\item[]\small}
+\let\endquotation=\endlist
+%
+% QUOTE
+\def\quote{\list{}{\leftmargin\z@\rightmargin\leftmargin}\item[]\small}
+\let\endquote=\endlist
+
+
+%  ****************************************
+%  *         OTHER ENVIRONMENTS           *
+%  ****************************************
+%
+% THEOREM
+%\def\@begintheorem#1#2{\rm \trivlist \item[\hskip \labelsep{\bf #1\ #2.}]}
+%\def\@opargbegintheorem#1#2#3{\rm \trivlist
+%  \item[\hskip \labelsep{\bf #1\ #2.\ (#3)}]}
+%\def\@endtheorem{\endtrivlist}
+\def\@begintheorem#1#2{\list{}{\leftmargin\z@\rightmargin\leftmargin}
+			   \item[]{\bf #1\ #2. }\rm}
+\def\@opargbegintheorem#1#2#3{\list{}{\leftmargin\z@
+  \rightmargin\leftmargin} \item[]{\bf #1\ #2.\ (#3) }\rm}
+\def\@endtheorem{\endlist}
+%
+% PROOF
+\newsavebox{\proofbox}
+\savebox{\proofbox}{\begin{picture}(7,7)%
+  \put(0,0){\framebox(7,7){}}\end{picture}}
+\def\proof{\list{}{\leftmargin\z@\rightmargin\leftmargin
+  \listparindent\parindent}%
+ \item[]{\hspace*{1em}\it Proof.\ }}
+\def\endproof{\hspace*{\fill}{\usebox{\proofbox}}\endlist}
+\@namedef{proof*}{\list{}{\leftmargin\z@\rightmargin\leftmargin
+  \listparindent\parindent}%
+ \item[]{\hspace*{1em}\it Proof.\ }}
+\@namedef{endproof*}{\endlist}
+%
+% TITLEPAGE
+\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+  \else \newpage \fi \thispagestyle{empty}\c@page\z@}
+\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi}
+\arraycolsep 5pt
+\tabcolsep 6pt
+\arrayrulewidth .5pt
+\doublerulesep 1.5pt
+\tabbingsep \labelsep
+\skip\@mpfootins = \skip\footins
+\fboxsep = 3pt
+\fboxrule = .5pt
+
+
+%  ****************************************
+%  *         TITLE AND ABSTRACT           *
+%  ****************************************
+%
+\def\maketitle{\par
+ \begingroup
+  \def\thefootnote{\fnsymbol{footnote}}
+  \def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}}
+  \newpage \global\@topnum\z@
+  \@maketitle \thispagestyle{titlepage} \@thanks
+ \endgroup
+ \setcounter{footnote}{0}
+ \let\maketitle\relax \let\@maketitle\relax
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}
+
+\def\and{\end{author@tabular}\vskip 6pt\par
+ \begin{author@tabular}[t]{@{}l@{}}}
+
+\let\addressbreak\relax
+
+\def\@maketitle{\newpage
+ \vspace*{-3pt}% -15pt
+ {\raggedright \sloppy
+  {\LARGE \bf \@title \par}
+  \vskip 16pt%
+  {\normalsize
+   \let\addressbreak\author@tabularcrnospace
+   \begin{author@tabular}[t]{@{}l@{}}\@author
+   \end{author@tabular}\par}
+  \vskip 13pt
+  {\small\it Received \@date}}
+ \par\noindent
+ \vskip 37pt}
+
+\def\abstract{\@tempskipa\parindent\small\raggedright
+  \list{}{\leftmargin\z@\rightmargin 2pc
+  \parsep 0pt plus 1pt \listparindent\@tempskipa}%
+  \item[]}
+\def\endabstract{\endlist}
+
+\def\author@tabular{\def\@halignto{}\@authortable}
+\let\endauthor@tabular=\endtabular
+\def\author@tabularcr{{\ifnum0=`}\fi
+ \@xtabularcr[5pt]\small\it\ignorespaces}
+\def\author@tabularcrnospace{{\ifnum0=`}\fi
+  \@xtabularcr[-2\p@]\small\it\ignorespaces}
+\def\@authortable{\leavevmode \hbox \bgroup $\let\@acol\@tabacol
+ \let\@classz\@tabclassz \let\@classiv\@tabclassiv
+ \let\\\author@tabularcr \@tabarray}
+
+
+%  ****************************************
+%  *            PAGE STYLES               *
+%  ****************************************
+%
+\mark{{}{}}
+\gdef\@author{\mbox{}}
+\def\author{\@ifnextchar [{\@authortwo}{\@authorone}}
+\def\@authortwo[#1]#2{\gdef\@author{#2}\gdef\@shortauthor{#1}}
+\def\@authorone#1{\gdef\@author{#1}\gdef\@shortauthor{#1}}
+\def\shortauthor#1{\gdef\@shortauthor{#1}}
+\gdef\@shortauthor{}
+\gdef\@title{\mbox{}}
+\def\title{\@ifnextchar [{\@titletwo}{\@titleone}}
+\def\@titletwo[#1]#2{\gdef\@title{#2}\gdef\@shorttitle{#1}}
+\def\@titleone#1{\gdef\@title{#1}\gdef\@shorttitle{#1}}
+\def\shorttitle#1{\gdef\@shorttitle{#1}}
+\gdef\@shorttitle{}
+\def\pubyear#1{\gdef\@year{#1}}
+\gdef\@year{1993}
+\def\volume#1{\gdef\@volume{#1}}
+\gdef\@volume{11}
+\def\pagerange#1{\gdef\@pagerange{#1}}
+\gdef\@pagerange{1--000}
+\def\copyright{{\ooalign{\hfil\raise.16ex\hbox{c}\hfil\crcr\mathhexbox20D}}}
+\def\press{\copyright\ \@year\ Cambridge University Press}
+\def\journal#1{\gdef\@journal{#1}}
+%
+\gdef\@journal{%
+  \vbox to 5.6pt{\noindent
+    \parbox[t]{5in}{{\it Math.\ Struct.\ in Comp.\ Science\/}
+    (\@year), {\it vol.} \@volume, {\it pp.} \@pagerange.\quad
+    Printed in the United Kingdom\\[2.5pt]
+      \press}%
+  \vss}%
+}
+%
+% \ps@empty and \ps@plain defined in LATEX.TEX
+%
+\def\ps@headings{\let\@mkboth\markboth
+ \def\@oddhead{\it \@shorttitle \hfill \rm \thepage}
+ \def\@oddfoot{}
+ \def\@evenhead{\it \@shortauthor \hfill \rm \thepage}
+ \def\@evenfoot{}
+ \def\sectionmark##1{\markboth{##1}{}}
+ \def\subsectionmark##1{\markright{##1}}}
+\def\ps@myheadings{\let\@mkboth\@gobbletwo
+ \def\@oddhead{\it \rightmark \hfill \rm \thepage}
+ \def\@oddfoot{}
+ \def\@evenhead{\it \leftmark \hfill \rm \thepage}
+ \def\@evenfoot{}
+ \def\sectionmark##1{}
+ \def\subsectionmark##1{}}
+\def\ps@titlepage{\let\@mkboth\@gobbletwo
+ \def\@oddhead{\footnotesize\@journal \hfill}
+ \def\@oddfoot{}
+ \def\@evenhead{\footnotesize\@journal \hfill}
+ \def\@evenfoot{}
+ \def\sectionmark##1{}
+ \def\subsectionmark##1{}}
+
+
+%  ****************************************
+%  *         TABLE OF CONTENTS, ETC.      *
+%  ****************************************
+%
+\def\@pnumwidth{1.55em}
+\def\@tocrmarg {2.55em}
+\def\@dotsep{4.5}
+\setcounter{tocdepth}{2}
+
+\def\@undottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth
+ \else
+  \vskip \z@ plus .2pt
+  {\hangindent #2\relax
+   \rightskip \@tocrmarg \parfillskip -\rightskip
+   \parindent #2\relax \@afterindenttrue
+   \interlinepenalty\@M \leavevmode
+   \@tempdima #3\relax #4\nobreak \hfill \nobreak
+   \hbox to\@pnumwidth{\hfil\rm #5}\par}\fi}
+\def\tableofcontents{\@restonecolfalse
+ \if@twocolumn\@restonecoltrue\onecolumn\fi
+ \section*{Contents} \@starttoc{toc}
+ \if@restonecol\twocolumn\fi \par\vspace{13pt}}
+\def\l@part#1#2{\addpenalty{-\@highpenalty}
+ \addvspace{2.25em plus 1pt}
+ \begingroup
+  \parindent \z@ \rightskip \@pnumwidth
+  \parfillskip -\@pnumwidth
+  {\normalsize\rm
+   \leavevmode \hspace*{3pc}
+   #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
+   \nobreak \global\@nobreaktrue
+   \everypar{\global\@nobreakfalse\everypar{}}\endgroup}
+\def\l@section#1#2{\addpenalty{\@secpenalty}
+ \@tempdima 1.5em
+ \begingroup
+  \parindent \z@ \rightskip \@pnumwidth
+  \parfillskip -\@pnumwidth \rm \leavevmode
+  \advance\leftskip\@tempdima \hskip -\leftskip
+  #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par 
+ \endgroup}
+\def\l@subsection{\@undottedtocline{2}{1.5em}{2.3em}}
+\def\l@subsubsection{\@undottedtocline{3}{3.8em}{3.2em}}
+\def\l@paragraph{\@undottedtocline{4}{7.0em}{4.1em}}
+\def\l@subparagraph{\@undottedtocline{5}{10em}{5em}}
+\def\listoffigures{\@restonecolfalse
+ \if@twocolumn\@restonecoltrue\onecolumn\fi
+ \section*{LIST OF FIGURES\@mkboth{List of Figures}{List of Figures}}
+ \@starttoc{lof} \if@restonecol\twocolumn\fi}
+\def\l@figure{\@undottedtocline{1}{1.5em}{2.3em}}
+\def\listoftables{\@restonecolfalse
+ \if@twocolumn\@restonecoltrue\onecolumn\fi
+ \section*{LIST OF TABLES\@mkboth{List of Tables}{List of Tables}}
+ \@starttoc{lot} \if@restonecol\twocolumn\fi}
+\let\l@table\l@figure
+
+
+%  ****************************************
+%  *             BIBLIOGRAPHY             *
+%  ****************************************
+%
+%\def\@biblabel#1{#1}
+\def\thebibliography#1{\section*{References}
+ \addcontentsline{toc}{section}{References}
+ \list{}{\labelwidth\z@ \leftmargin 1em \itemindent-\leftmargin}
+ \small \parindent\z@
+ \parskip\z@ plus .1pt\relax
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}
+\let\endthebibliography=\endlist
+
+% the following was adapted from apalike.sty:
+\def\@cite#1#2{(#1\if@tempswa , #2\fi)}
+\def\@biblabel#1{}
+
+\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
+  \def\@citea{}\@cite{\@for\@citeb:=#2\do
+    {\@citea\def\@citea{; }\@ifundefined
+       {b@\@citeb}{{\bf ?}\@warning
+       {Citation `\@citeb' on page \thepage \space undefined}}%
+{\csname b@\@citeb\endcsname}}}{#1}}
+
+
+%  ****************************************
+%  *              THE INDEX               *
+%  ****************************************
+%
+\newif\if@restonecol
+\def\theindex{\section*{Index}
+ \addcontentsline{toc}{section}{Index}
+ \footnotesize \parindent\z@ \parskip\z@ plus .1pt\relax
+ \let\item\@idxitem}
+\def\@idxitem{\par\hangindent 1em}
+\def\subitem {\par\hangindent 1em \hspace*{1em}}
+\def\subsubitem{\par\hangindent 1em\hspace*{1em}}
+\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
+\def\indexspace{\par\vskip\baselineskip \relax}
+
+
+%  ****************************************
+%  *             FOOTNOTES                *
+%  ****************************************
+%
+\def\footnoterule{\kern-3\p@
+ \hrule width .4\columnwidth height \z@ \kern 3\p@}
+\long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize
+ \advance\@tempdima-\@footindent
+ \parshape \@ne \@footindent \@tempdima}\par
+ \noindent \hbox to \z@{\hss$^{\@thefnmark}$\ }#1}
+
+\def\@fnsymbol#1{\ifcase#1\or \dagger\or \ddagger\or
+   \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
+   \or \ddagger\ddagger \else\@ctrerr\fi\relax}
+
+
+%  ****************************************
+%  *         FIGURES AND TABLES           *
+%  ****************************************
+%
+\setcounter{topnumber}{2}
+\def\topfraction{.9}
+\setcounter{bottomnumber}{1}
+\def\bottomfraction{.9}
+\setcounter{totalnumber}{3}
+\def\textfraction{.1}
+\def\floatpagefraction{.75}
+\setcounter{dbltopnumber}{2}
+\def\dbltopfraction{.9}
+\def\dblfloatpagefraction{.5}
+
+\newif\if@contcap
+\let\@@caption\caption
+\def\contcaption{\@contcaptrue\addtocounter{\@captype}{-1}\@@caption}
+
+\long\def\@makecaption#1#2{\vskip 6.5pt
+  \raggedright\sloppy #1\if@contcap {\it\ continued}.\else.\fi\ #2\par
+  \@contcapfalse
+}
+% \ifwide@float \raggedright\sloppy #1. #2\par
+% \else \raggedright\sloppy #1. #2\par \fi}
+
+\newcounter{table}
+\def\thetable{\@arabic\c@table}
+\def\fps@table{tbp}
+\def\ftype@table{1}
+\def\ext@table{lot}
+\def\fnum@table{Table \thetable}
+\def\table{\@float{table}}
+\let\endtable\end@float
+\@namedef{table*}{\let\SFB@currenthline=\SFB@fullhline
+ \@dblfloat{table}}
+\@namedef{endtable*}{\end@dblfloat}
+\def\fstyle@table{\footnotesize\rm}
+\def\fjust@table{\raggedright}
+\def\fcapjust@table{\raggedright\sloppy}
+\def\fcapsize@table{\normalsize\rm}
+\def\fcapstyle@table{\normalsize\it}
+\newcounter{figure}
+\def\thefigure{\@arabic\c@figure}
+\def\fps@figure{tbp}
+\def\ftype@figure{2}
+\def\ext@figure{lof}
+\def\fnum@figure{Fig.\ \thefigure}
+\def\figure{\@float{figure}}
+\let\endfigure\end@float
+\@namedef{figure*}{\@dblfloat{figure}}
+\@namedef{endfigure*}{\end@dblfloat}
+\def\fstyle@figure{\small\rm}
+\def\fjust@figure{\raggedright}
+\def\fcapjust@figure{\raggedright\sloppy}
+\def\fcapsize@figure{\small\rm}
+\def\fcapstyle@figure{\small\rm}
+\newif\ifwide@float
+\wide@floatfalse
+\long\def\@caption#1[#2]#3{%
+ \addcontentsline{\csname ext@#1\endcsname}{#1}%
+ {\protect\numberline{\csname the#1\endcsname}%
+  {\ignorespaces #2}}\par
+ \begingroup
+  \ifwide@float\@parboxrestore\else\@myparboxrestore\fi
+  \@makecaption{\csname fcapjust@#1\endcsname
+   \csname fcapsize@#1\endcsname
+   \csname fnum@#1\endcsname}%
+   {\csname fcapstyle@#1\endcsname \ignorespaces #3}\par
+ \endgroup}
+\def\@xfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty-\@Mii
+ \else \@floatpenalty-\@Miii \fi
+ \def\@captype{#1}%
+ \ifinner \@parmoderr\@floatpenalty\z@
+ \else \@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
+  \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
+  \@tfor \@tempa :=#2\do
+   {\if\@tempa h\advance\@tempcnta \@ne\fi
+    \if\@tempa t\advance\@tempcnta \tw@\fi
+    \if\@tempa b\advance\@tempcnta 4\relax\fi
+    \if\@tempa p\advance\@tempcnta 8\relax\fi
+   }\global\count\@currbox\@tempcnta}\@fltovf
+  \fi
+  \global\setbox\@currbox\vbox\bgroup
+  \boxmaxdepth\z@
+  \csname fstyle@#1\endcsname
+  \ifwide@float \hsize\textwidth \linewidth\textwidth \@parboxrestore
+  \else \hsize\columnwidth \addtolength{\hsize}{-2pc} \@rightskip 2pc
+   \@myparboxrestore
+  \fi \csname fjust@#1\endcsname}
+\def\@myarrayparboxrestore{\let\par\@@par
+ \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii
+ \parindent\z@ \everypar{}\linewidth\hsize
+ \@totalleftmargin\z@ \leftskip\@leftskip \rightskip\@rightskip
+ \parfillskip\@flushglue \lineskip\normallineskip
+ \baselineskip\normalbaselineskip\sloppy}
+\def\@myparboxrestore{\@myarrayparboxrestore\let\\=\@normalcr}
+\def\@dblfloat{\wide@floattrue\@float}
+\def\end@dblfloat{\if@twocolumn\egroup
+ \ifnum\@floatpenalty <\z@ \@cons\@dbldeferlist\@currbox\fi
+ \ifnum \@floatpenalty =-\@Mii \@esphack\fi\else\end@float\fi
+ \wide@floatfalse}
+
+
+%  ****************************************
+%  *           CUP specials               *
+%  ****************************************
+%
+\def\ls{\kern.15em} % for letterspacing; .15em is a hair less than thinspace
+\def\ns{\kern.5em} % for name-spacing
+\renewcommand{\thefootnote}{\mbox{$\fnsymbol{footnote}$}}
+%
+% redefinition of \hline and friends -- v1.01
+%
+\def\SFB@fullhline{\noalign{\ifnum0=`}\fi \vskip 3pt
+ \hrule \@height\arrayrulewidth width\textwidth
+ \vskip 3pt
+ \futurelet \@tempa\@xhline}
+\def\SFB@hline{\noalign{\ifnum0=`}\fi
+  \vskip 3pt
+  \hrule \@height \arrayrulewidth
+  \vskip 3pt
+  \futurelet \@tempa\@xhline}
+\let\SFB@currenthline=\SFB@hline
+\def\hline{\noalign{\ifnum0=`}\fi \vskip 6pt
+ \hrule \@height \arrayrulewidth \vskip 6pt
+ \futurelet \@tempa\@xhline}
+\def\@xhline{\ifx\@tempa\hline \vskip -12pt
+ \vskip \doublerulesep \fi \ifnum0=`{\fi}}
+\let\SFB@currenthline=\SFB@hline
+%
+% redefinition of tabular to get rid of vertical lines in tables and
+% get correct width of rules in wide tables (v.1.01)
+%
+\def\tabular{\def\@halignto{}%
+ \let\hline=\SFB@currenthline
+ \def\@xhline{\ifx\@tempa\hline
+   \vskip -6pt
+   \vskip \doublerulesep
+  \fi
+  \ifnum0=`{\fi}}%
+ \def\@arrayrule{\@addtopreamble{\hskip -.5\arrayrulewidth
+%                                  \vrule \@width \arrayrulewidth
+                                  \hskip .5\arrayrulewidth}}%
+ \@tabular}
+
+
+%  ****************************************
+%  *            MISCELLANEOUS             *
+%  ****************************************
+%
+% DATE
+\def\today{\number\day\ \ifcase\month\or
+  January\or February\or March\or April\or May\or June\or
+  July\or August\or September\or October\or November\or December
+ \fi \ \number\year}
+
+
+%  ****************************************
+%  *           INITIALIZATION             *
+%  ****************************************
+%
+\ps@headings
+\pagenumbering{arabic}
+\onecolumn \let\onecolumn=\relax
+\def\twocolumn{\typeout{Two column mode not available with MSCS style.}}
+\flushbottom
+\frenchspacing
+
+\ifCUPmtlplainloaded \input mscssym.sty\fi
+
+\endinput
+
+% end of mscs.sty
diff --git a/omdoc-semantics/macros/publishers/sig-alternate.cls b/omdoc-semantics/macros/publishers/sig-alternate.cls
new file mode 100644
index 0000000000000000000000000000000000000000..694a8974a043e616448faa43bfe38a627738436a
--- /dev/null
+++ b/omdoc-semantics/macros/publishers/sig-alternate.cls
@@ -0,0 +1,1649 @@
+% SIG-ALTERNATE.CLS - VERSION 2.5
+% "COMPATIBLE" WITH THE "ACM_PROC_ARTICLE-SP.CLS" V3.2SP
+% Gerald Murray - May 23rd 2012
+%
+% ---- Start of 'updates'  ----
+% Changed $10 fee to $15 -- May 2012  --  Gerry
+% Changed $5 fee to $10 --  April 2009 -- Gerry
+% April 22nd. 2009 - Fixed 'Natbib' incompatibility problem - Gerry
+% April 22nd. 2009 - Fixed 'Babel' incompatibility problem - Gerry
+% April 22nd. 2009 - Inserted various bug-fixes and improvements - Gerry
+%
+% To produce Type 1 fonts in the document plus allow for 'normal LaTeX accenting' in the critical areas;
+% title, author block, section-heads, confname, etc. etc. 
+% i.e. the whole purpose of this version update is to NOT resort to 'inelegant accent patches'.
+% After much research, three extra .sty packages were added to the the tail (ae, aecompl, aeguill) to solve,
+% in particular, the accenting problem(s). We _could_ ask authors (via instructions/sample file) to 'include' these in
+% the source .tex file - in the preamble - but if everything is already provided ('behind the scenes' - embedded IN the .cls)
+% then this is less work for authors and also makes everything appear 'vanilla'.
+% NOTE: all 'patchwork accenting" has been commented out (here) and is no longer 'used' in the sample .tex file (either).
+% Gerry June 2007
+%
+% Patch for accenting in conference name/location. Gerry May 3rd. 2007
+% Rule widths changed to .5, author count (>6) fixed, roll-back for Type 3 problem. Gerry March 20th. 2007
+% Changes made to 'modernize' the fontnames but esp. for MikTeX users V2.4/2.5 - Nov. 30th. 2006
+% Updated the \email definition to allow for its use inside of 'shared affiliations' - Nov. 30th. 2006
+% Fixed the 'section number depth value' - Nov. 30th. 2006
+%
+% Footnotes inside table cells using \minipage (Oct. 2002)
+% Georgia fixed bug in sub-sub-section numbering in paragraphs (July 29th. 2002)
+% JS/GM fix to vertical spacing before Proofs (July 30th. 2002)
+%
+% Made the Permission Statement / Conference Info / Copyright Info
+% 'user definable' in the source .tex file OR automatic if
+% not specified.
+%
+% Allowance made to switch default fonts between those systems using
+% normal/modern font names and those using 'Type 1' or 'Truetype' fonts.
+% See LINE NUMBER 255 for details.
+% Also provided for enumerated/annotated Corollaries 'surrounded' by
+% enumerated Theorems (line 848).
+% Gerry November 11th. 1999
+%
+% ---- End of 'updates' ----
+%
+\def\fileversion{v2.5}          % for ACM's tracking purposes
+\def\filedate{May 23, 2012}    % Gerry Murray's tracking data
+\def\docdate {Wednesday 23rd. May 2012} % Gerry Murray (with deltas to doc}
+\usepackage{epsfig}
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{amsfonts}
+% Need this for accents in Arial/Helvetica
+%\usepackage[T1]{fontenc}  % Gerry March 12, 2007 - causes Type 3 problems (body text)
+%\usepackage{textcomp}
+%
+% SIG-ALTERNATE DOCUMENT STYLE
+% G.K.M. Tobin August-October 1999
+%    adapted from ARTICLE document style by Ken Traub, Olin Shivers
+%    also using elements of esub2acm.cls
+% HEAVILY MODIFIED, SUBSEQUENTLY, BY GERRY MURRAY 2000
+% ARTICLE DOCUMENT STYLE -- Released 16 March 1988
+%    for LaTeX version 2.09
+% Copyright (C) 1988 by Leslie Lamport
+%
+%
+%%% sig-alternate.cls is an 'ALTERNATE' document style for producing
+%%% two-column camera-ready pages for ACM conferences.
+%%% THIS FILE DOES NOT STRICTLY ADHERE TO THE SIGS (BOARD-ENDORSED)
+%%% PROCEEDINGS STYLE. It has been designed to produce a 'tighter'
+%%% paper in response to concerns over page budgets.
+%%% The main features of this style are:
+%%%
+%%% 1)  Two columns.
+%%% 2)  Side and top margins of 4.5pc, bottom margin of 6pc, column gutter of
+%%%     2pc, hence columns are 20pc wide and 55.5pc tall.  (6pc =3D 1in, approx)
+%%% 3)  First page has title information, and an extra 6pc of space at the
+%%%     bottom of the first column for the ACM copyright notice.
+%%% 4)  Text is 9pt on 10pt baselines; titles (except main) are 9pt bold.
+%%%
+%%%
+%%% There are a few restrictions you must observe:
+%%%
+%%% 1)  You cannot change the font size; ACM wants you to use 9pt.
+%%% 3)  You must start your paper with the \maketitle command.  Prior to the
+%%%     \maketitle you must have \title and \author commands.  If you have a
+%%%     \date command it will be ignored; no date appears on the paper, since
+%%%     the proceedings will have a date on the front cover.
+%%% 4)  Marginal paragraphs, tables of contents, lists of figures and tables,
+%%%     and page headings are all forbidden.
+%%% 5)  The `figure' environment will produce a figure one column wide; if you
+%%%     want one that is two columns wide, use `figure*'.
+%%%
+%
+%%% Copyright Space:
+%%% This style automatically reserves 1" blank space at the bottom of page 1/
+%%% column 1.  This space can optionally be filled with some text using the
+%%% \toappear{...} command.  If used, this command must be BEFORE the \maketitle
+%%% command.  If this command is defined AND [preprint] is on, then the
+%%% space is filled with the {...} text (at the bottom); otherwise, it is
+%%% blank.  If you use \toappearbox{...} instead of \toappear{...} then a
+%%% box will be drawn around the text (if [preprint] is on).
+%%%
+%%% A typical usage looks like this:
+%%%     \toappear{To appear in the Ninth AES Conference on Medievil Lithuanian
+%%%               Embalming Technique, June 1991, Alfaretta, Georgia.}
+%%% This will be included in the preprint, and left out of the conference
+%%% version.
+%%%
+%%% WARNING:
+%%% Some dvi-ps converters heuristically allow chars to drift from their
+%%% true positions a few pixels. This may be noticeable with the 9pt sans-serif
+%%% bold font used for section headers.
+%%% You may turn this hackery off via the -e option:
+%%%     dvips -e 0 foo.dvi >foo.ps
+%%%
+\typeout{Document Class 'sig-alternate' <23rd. May '12>.  Modified by G.K.M. Tobin/Gerry Murray}
+\typeout{Based in part upon document Style `acmconf' <22 May 89>. Hacked 4/91 by}
+\typeout{shivers@cs.cmu.edu, 4/93 by theobald@cs.mcgill.ca}
+\typeout{Excerpts were taken from (Journal Style) 'esub2acm.cls'.}
+\typeout{****** Bugs/comments/suggestions/technicalities to Gerry Murray -- murray@hq.acm.org ******}
+\typeout{Questions on the style, SIGS policies, etc. to Adrienne Griscti griscti@acm.org}
+\oddsidemargin 4.5pc
+\evensidemargin 4.5pc
+\advance\oddsidemargin by -1in  % Correct for LaTeX gratuitousness
+\advance\evensidemargin by -1in % Correct for LaTeX gratuitousness
+\marginparwidth 0pt             % Margin pars are not allowed.
+\marginparsep 11pt              % Horizontal space between outer margin and
+                                % marginal note
+
+                                % Top of page:
+\topmargin 4.5pc                % Nominal distance from top of page to top of
+                                % box containing running head.
+\advance\topmargin by -1in      % Correct for LaTeX gratuitousness
+\headheight 0pt                 % Height of box containing running head.
+\headsep 0pt                    % Space between running head and text.
+                                % Bottom of page:
+\footskip 30pt                  % Distance from baseline of box containing foot
+                                % to baseline of last line of text.
+\@ifundefined{footheight}{\newdimen\footheight}{}% this is for LaTeX2e
+\footheight 12pt                % Height of box containing running foot.
+
+%% Must redefine the top margin so there's room for headers and
+%% page numbers if you are using the preprint option. Footers
+%% are OK as is. Olin.
+\advance\topmargin by -37pt     % Leave 37pt above text for headers
+\headheight 12pt                % Height of box containing running head.
+\headsep 25pt                   % Space between running head and text.
+
+\textheight 666pt       % 9 1/4 column height
+\textwidth 42pc         % Width of text line.
+                        % For two-column mode:
+\columnsep 2pc          %    Space between columns
+\columnseprule 0pt      %    Width of rule between columns.
+\hfuzz 1pt              % Allow some variation in column width, otherwise it's
+                        % too hard to typeset in narrow columns.
+
+\footnotesep 5.6pt      % Height of strut placed at the beginning of every
+                        % footnote =3D height of normal \footnotesize strut,
+                        % so no extra space between footnotes.
+
+\skip\footins 8.1pt plus 4pt minus 2pt  % Space between last line of text and
+                                        % top of first footnote.
+\floatsep 11pt plus 2pt minus 2pt       % Space between adjacent floats moved
+                                        % to top or bottom of text page.
+\textfloatsep 18pt plus 2pt minus 4pt   % Space between main text and floats
+                                        % at top or bottom of page.
+\intextsep 11pt plus 2pt minus 2pt      % Space between in-text figures and
+                                        % text.
+\@ifundefined{@maxsep}{\newdimen\@maxsep}{}% this is for LaTeX2e
+\@maxsep 18pt                           % The maximum of \floatsep,
+                                        % \textfloatsep and \intextsep (minus
+                                        % the stretch and shrink).
+\dblfloatsep 11pt plus 2pt minus 2pt    % Same as \floatsep for double-column
+                                        % figures in two-column mode.
+\dbltextfloatsep 18pt plus 2pt minus 4pt% \textfloatsep for double-column
+                                        % floats.
+\@ifundefined{@dblmaxsep}{\newdimen\@dblmaxsep}{}% this is for LaTeX2e
+\@dblmaxsep 18pt                        % The maximum of \dblfloatsep and
+                                        % \dbltexfloatsep.
+\@fptop 0pt plus 1fil    % Stretch at top of float page/column. (Must be
+                         % 0pt plus ...)
+\@fpsep 8pt plus 2fil    % Space between floats on float page/column.
+\@fpbot 0pt plus 1fil    % Stretch at bottom of float page/column. (Must be
+                         % 0pt plus ... )
+\@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...)
+\@dblfpsep 8pt plus 2fil % Space between floats on float page.
+\@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be
+                         % 0pt plus ... )
+\marginparpush 5pt       % Minimum vertical separation between two marginal
+                         % notes.
+
+\parskip 0pt plus 1pt            % Extra vertical space between paragraphs.
+\parindent 9pt  % GM July 2000 / was 0pt - width of paragraph indentation.
+\partopsep 2pt plus 1pt minus 1pt% Extra vertical space, in addition to
+                                 % \parskip and \topsep, added when user
+                                 % leaves blank line before environment.
+
+\@lowpenalty   51       % Produced by \nopagebreak[1] or \nolinebreak[1]
+\@medpenalty  151       % Produced by \nopagebreak[2] or \nolinebreak[2]
+\@highpenalty 301       % Produced by \nopagebreak[3] or \nolinebreak[3]
+
+\@beginparpenalty -\@lowpenalty % Before a list or paragraph environment.
+\@endparpenalty   -\@lowpenalty % After a list or paragraph environment.
+\@itempenalty     -\@lowpenalty % Between list items.
+
+%\@namedef{ds@10pt}{\@latexerr{The `10pt' option is not allowed in the `acmconf'
+\@namedef{ds@10pt}{\ClassError{The `10pt' option is not allowed in the `acmconf'	% January 2008
+  document style.}\@eha}
+%\@namedef{ds@11pt}{\@latexerr{The `11pt' option is not allowed in the `acmconf'
+\@namedef{ds@11pt}{\ClassError{The `11pt' option is not allowed in the `acmconf'	% January 2008
+  document style.}\@eha}
+%\@namedef{ds@12pt}{\@latexerr{The `12pt' option is not allowed in the `acmconf'
+\@namedef{ds@12pt}{\ClassError{The `12pt' option is not allowed in the `acmconf'	% January 2008
+  document style.}\@eha}
+
+\@options
+
+\lineskip 2pt           % \lineskip is 1pt for all font sizes.
+\normallineskip 2pt
+\def\baselinestretch{1}
+
+\abovedisplayskip 9pt plus2pt minus4.5pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip  \z@ plus3pt%
+\belowdisplayshortskip  5.4pt plus3pt minus3pt%
+\let\@listi\@listI     % Setting of \@listi added 9 Jun 87
+
+\def\small{\@setsize\small{9pt}\viiipt\@viiipt
+\abovedisplayskip 7.6pt plus 3pt minus 4pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus2pt%
+\belowdisplayshortskip 3.6pt plus2pt minus 2pt
+\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+\topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt
+\itemsep \parsep}}
+
+\def\footnotesize{\@setsize\footnotesize{9pt}\ixpt\@ixpt
+\abovedisplayskip 6.4pt plus 2pt minus 4pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus 1pt%
+\belowdisplayshortskip 2.7pt plus 1pt minus 2pt
+\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+\topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt
+\itemsep \parsep}}
+
+\newcount\aucount
+\newcount\originalaucount
+\newdimen\auwidth
+\auwidth=\textwidth
+\newdimen\auskip
+\newcount\auskipcount
+\newdimen\auskip
+\global\auskip=1pc
+\newdimen\allauboxes
+\allauboxes=\auwidth
+\newtoks\addauthors
+\newcount\addauflag
+\global\addauflag=0 %Haven't shown additional authors yet
+
+\newtoks\subtitletext
+\gdef\subtitle#1{\subtitletext={#1}}
+
+\gdef\additionalauthors#1{\addauthors={#1}}
+
+\gdef\numberofauthors#1{\global\aucount=#1
+\ifnum\aucount>3\global\originalaucount=\aucount \global\aucount=3\fi %g}  % 3 OK - Gerry March 2007
+\global\auskipcount=\aucount\global\advance\auskipcount by 1
+\global\multiply\auskipcount by 2
+\global\multiply\auskip by \auskipcount
+\global\advance\auwidth by -\auskip
+\global\divide\auwidth by \aucount}
+
+% \and was modified to count the number of authors.  GKMT 12 Aug 1999
+\def\alignauthor{%                  % \begin{tabular}
+\end{tabular}%
+  \begin{tabular}[t]{p{\auwidth}}\centering}%
+
+%  *** NOTE *** NOTE *** NOTE *** NOTE ***
+%  If you have 'font problems' then you may need
+%  to change these, e.g. 'arialb' instead of "arialbd".
+%  Gerry Murray 11/11/1999
+%  *** OR ** comment out block A and activate block B or vice versa.
+% **********************************************
+%
+%  -- Start of block A -- (Type 1 or Truetype fonts)
+%\newfont{\secfnt}{timesbd at 12pt} % was timenrb originally - now is timesbd
+%\newfont{\secit}{timesbi at 12pt}   %13 Jan 00 gkmt
+%\newfont{\subsecfnt}{timesi at 11pt} % was timenrri originally - now is timesi
+%\newfont{\subsecit}{timesbi at 11pt} % 13 Jan 00 gkmt -- was times changed to timesbi gm 2/4/2000
+%                         % because "normal" is italic, "italic" is Roman
+%\newfont{\ttlfnt}{arialbd at 18pt} % was arialb originally - now is arialbd
+%\newfont{\ttlit}{arialbi at 18pt}    % 13 Jan 00 gkmt
+%\newfont{\subttlfnt}{arial at 14pt} % was arialr originally - now is arial
+%\newfont{\subttlit}{ariali at 14pt} % 13 Jan 00 gkmt
+%\newfont{\subttlbf}{arialbd at 14pt}  % 13 Jan 00 gkmt
+%\newfont{\aufnt}{arial at 12pt} % was arialr originally - now is arial
+%\newfont{\auit}{ariali at 12pt} % 13 Jan 00 gkmt
+%\newfont{\affaddr}{arial at 10pt} % was arialr originally - now is arial
+%\newfont{\affaddrit}{ariali at 10pt} %13 Jan 00 gkmt
+%\newfont{\eaddfnt}{arial at 12pt} % was arialr originally - now is arial
+%\newfont{\ixpt}{times at 9pt} % was timenrr originally - now is times
+%\newfont{\confname}{timesi at 8pt} % was timenrri - now is timesi
+%\newfont{\crnotice}{times at 8pt} % was timenrr originally - now is times
+%\newfont{\ninept}{times at 9pt} % was timenrr originally - now is times
+
+% *********************************************
+%  -- End of block A --
+%
+%
+% -- Start of block B -- UPDATED FONT NAMES
+% *********************************************
+% Gerry Murray 11/30/2006
+% *********************************************
+\newfont{\secfnt}{ptmb8t at 12pt}
+\newfont{\secit}{ptmbi8t at 12pt}    %13 Jan 00 gkmt
+\newfont{\subsecfnt}{ptmri8t at 11pt}
+\newfont{\subsecit}{ptmbi8t at 11pt}  % 
+\newfont{\ttlfnt}{phvb8t at 18pt}
+\newfont{\ttlit}{phvbo8t at 18pt}    % GM 2/4/2000
+\newfont{\subttlfnt}{phvr8t at 14pt}
+\newfont{\subttlit}{phvro8t at 14pt} % GM 2/4/2000
+\newfont{\subttlbf}{phvb8t at 14pt}  % 13 Jan 00 gkmt
+\newfont{\aufnt}{phvr8t at 12pt}
+\newfont{\auit}{phvro8t at 12pt}     % GM 2/4/2000
+\newfont{\affaddr}{phvr8t at 10pt}
+\newfont{\affaddrit}{phvro8t at 10pt} % GM 2/4/2000
+\newfont{\eaddfnt}{phvr8t at 12pt}
+\newfont{\ixpt}{ptmr8t at 9pt}
+\newfont{\confname}{ptmri8t at 8pt}
+\newfont{\crnotice}{ptmr8t at 8pt}
+\newfont{\ninept}{ptmr8t at 9pt}
+% +++++++++++++++++++++++++++++++++++++++++++++
+% -- End of block B --
+
+%\def\email#1{{{\eaddfnt{\vskip 4pt#1}}}}
+% If we have an email, inside a "shared affiliation" then we need the following instead
+\def\email#1{{{\eaddfnt{\par #1}}}}       % revised  - GM - 11/30/2006
+
+\def\addauthorsection{\ifnum\originalaucount>6  % was 3 - Gerry March 2007
+    \section{Additional Authors}\the\addauthors
+  \fi}
+
+\newcount\savesection
+\newcount\sectioncntr
+\global\sectioncntr=1
+
+\setcounter{secnumdepth}{3}
+
+\def\appendix{\par
+\section*{APPENDIX}
+\setcounter{section}{0}
+ \setcounter{subsection}{0}
+ \def\thesection{\Alph{section}} }
+
+\leftmargini 22.5pt
+\leftmarginii 19.8pt    % > \labelsep + width of '(m)'
+\leftmarginiii 16.8pt   % > \labelsep + width of 'vii.'
+\leftmarginiv 15.3pt    % > \labelsep + width of 'M.'
+\leftmarginv 9pt
+\leftmarginvi 9pt
+
+\leftmargin\leftmargini
+\labelsep 4.5pt
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+
+\def\@listI{\leftmargin\leftmargini \parsep 3.6pt plus 2pt minus 1pt%
+\topsep 7.2pt plus 2pt minus 4pt%
+\itemsep 3.6pt plus 2pt minus 1pt}
+
+\let\@listi\@listI
+\@listi
+
+\def\@listii{\leftmargin\leftmarginii
+   \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+   \topsep 3.6pt plus 2pt minus 1pt
+   \parsep 1.8pt plus 0.9pt minus 0.9pt
+   \itemsep \parsep}
+
+\def\@listiii{\leftmargin\leftmarginiii
+    \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+    \topsep 1.8pt plus 0.9pt minus 0.9pt
+    \parsep \z@ \partopsep 1pt plus 0pt minus 1pt
+    \itemsep \topsep}
+
+\def\@listiv{\leftmargin\leftmarginiv
+     \labelwidth\leftmarginiv\advance\labelwidth-\labelsep}
+
+\def\@listv{\leftmargin\leftmarginv
+     \labelwidth\leftmarginv\advance\labelwidth-\labelsep}
+
+\def\@listvi{\leftmargin\leftmarginvi
+     \labelwidth\leftmarginvi\advance\labelwidth-\labelsep}
+
+\def\labelenumi{\theenumi.}
+\def\theenumi{\arabic{enumi}}
+
+\def\labelenumii{(\theenumii)}
+\def\theenumii{\alph{enumii}}
+\def\p@enumii{\theenumi}
+
+\def\labelenumiii{\theenumiii.}
+\def\theenumiii{\roman{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+
+\def\labelenumiv{\theenumiv.}
+\def\theenumiv{\Alph{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+
+\def\verse{\let\\=\@centercr
+  \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent
+          \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
+\let\endverse\endlist
+
+\def\quotation{\list{}{\listparindent 1.5em
+    \itemindent\listparindent
+    \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]}
+\let\endquotation=\endlist
+
+\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
+\let\endquote=\endlist
+
+\def\descriptionlabel#1{\hspace\labelsep \bf #1}
+\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
+       \let\makelabel\descriptionlabel}}
+
+\let\enddescription\endlist
+
+\def\theequation{\arabic{equation}}
+
+\arraycolsep 4.5pt   % Half the space between columns in an array environment.
+\tabcolsep 5.4pt    % Half the space between columns in a tabular environment.
+\arrayrulewidth .5pt % Width of rules in array and tabular environment. % (was .4) updated Gerry March 20 2007
+\doublerulesep 1.8pt % Space between adjacent rules in array or tabular env.
+
+\tabbingsep \labelsep   % Space used by the \' command.  (See LaTeX manual.)
+
+\skip\@mpfootins =\skip\footins
+
+\fboxsep =2.7pt      % Space left between box and text by \fbox and \framebox.
+\fboxrule =.5pt      % Width of rules in box made by \fbox and \framebox. % (was .4) updated Gerry March 20 2007
+
+\def\thepart{\Roman{part}} % Roman numeral part numbers.
+\def\thesection       {\arabic{section}}
+\def\thesubsection    {\thesection.\arabic{subsection}}
+%\def\thesubsubsection {\thesubsection.\arabic{subsubsection}} % GM 7/30/2002
+%\def\theparagraph     {\thesubsubsection.\arabic{paragraph}}  % GM 7/30/2002
+\def\thesubparagraph  {\theparagraph.\arabic{subparagraph}}
+
+\def\@pnumwidth{1.55em}
+\def\@tocrmarg {2.55em}
+\def\@dotsep{4.5}
+\setcounter{tocdepth}{3}
+
+%\def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not
+%  allowed in the `acmconf' document style.}\@eha}
+
+\def\tableofcontents{\ClassError{%
+    \string\tableofcontents\space is not allowed in the `acmconf' document	% January 2008
+    style}\@eha}
+
+\def\l@part#1#2{\addpenalty{\@secpenalty}
+   \addvspace{2.25em plus 1pt}  % space above part line
+   \begingroup
+   \@tempdima 3em       % width of box holding part number, used by
+     \parindent \z@ \rightskip \@pnumwidth      %% \numberline
+     \parfillskip -\@pnumwidth
+     {\large \bf        % set line in \large boldface
+     \leavevmode        % TeX command to enter horizontal mode.
+     #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
+     \nobreak           % Never break after part entry
+   \endgroup}
+
+\def\l@section#1#2{\addpenalty{\@secpenalty} % good place for page break
+   \addvspace{1.0em plus 1pt}   % space above toc entry
+   \@tempdima 1.5em             % width of box holding section number
+   \begingroup
+    \parindent  \z@ \rightskip \@pnumwidth
+     \parfillskip -\@pnumwidth
+     \bf                        % Boldface.
+     \leavevmode                % TeX command to enter horizontal mode.
+      \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to
+      \hskip -\leftskip           %% 25 Jan 88 change to \numberline
+     #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
+   \endgroup}
+
+
+\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
+\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
+\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
+\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
+
+%\def\listoffigures{\@latexerr{\listoffigures: Lists of figures are not
+%  allowed in the `acmconf' document style.}\@eha}
+
+\def\listoffigures{\ClassError{%
+    \string\listoffigures\space is not allowed in the `acmconf' document	% January 2008
+    style}\@eha}
+
+\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
+
+%\def\listoftables{\@latexerr{\listoftables: Lists of tables are not
+%  allowed in the `acmconf' document style.}\@eha}
+%\let\l@table\l@figure
+
+\def\listoftables{\ClassError{%
+    \string\listoftables\space is not allowed in the `acmconf' document		% January 2008
+    style}\@eha}
+ \let\l@table\l@figure
+
+\def\footnoterule{\kern-3\p@
+  \hrule width .5\columnwidth   % (was .4) updated Gerry March 20 2007
+  \kern 2.6\p@}                 % The \hrule has default height of .4pt % (was .4) updated Gerry March 20 2007
+% ------
+\long\def\@makefntext#1{\noindent 
+%\hbox to .5em{\hss$^{\@thefnmark}$}#1}   % original
+\hbox to .5em{\hss\textsuperscript{\@thefnmark}}#1}  % C. Clifton / GM Oct. 2nd. 2002
+% -------
+
+\long\def\@maketntext#1{\noindent
+#1}
+
+\long\def\@maketitlenotetext#1#2{\noindent
+            \hbox to 1.8em{\hss$^{#1}$}#2}
+
+\setcounter{topnumber}{2}
+\def\topfraction{.7}
+\setcounter{bottomnumber}{1}
+\def\bottomfraction{.3}
+\setcounter{totalnumber}{3}
+\def\textfraction{.2}
+\def\floatpagefraction{.5}
+\setcounter{dbltopnumber}{2}
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
+
+%
+\long\def\@makecaption#1#2{
+   \vskip \baselineskip
+   \setbox\@tempboxa\hbox{\textbf{#1: #2}}
+   \ifdim \wd\@tempboxa >\hsize % IF longer than one line:
+       \textbf{#1: #2}\par               %   THEN set as ordinary paragraph.
+     \else                      %   ELSE  center.
+       \hbox to\hsize{\hfil\box\@tempboxa\hfil}\par
+   \fi}
+
+%
+
+\long\def\@makecaption#1#2{
+   \vskip 10pt
+   \setbox\@tempboxa\hbox{\textbf{#1: #2}}
+   \ifdim \wd\@tempboxa >\hsize % IF longer than one line:
+       \textbf{#1: #2}\par                %   THEN set as ordinary paragraph.
+     \else                      %   ELSE  center.
+       \hbox to\hsize{\hfil\box\@tempboxa\hfil}
+   \fi}
+
+\@ifundefined{figure}{\newcounter {figure}} % this is for LaTeX2e
+
+\def\fps@figure{tbp}
+\def\ftype@figure{1}
+\def\ext@figure{lof}
+\def\fnum@figure{Figure \thefigure}
+\def\figure{\@float{figure}}
+%\let\endfigure\end@float
+\def\endfigure{\end@float} 		% Gerry January 2008
+\@namedef{figure*}{\@dblfloat{figure}}
+\@namedef{endfigure*}{\end@dblfloat}
+
+\@ifundefined{table}{\newcounter {table}} % this is for LaTeX2e
+
+\def\fps@table{tbp}
+\def\ftype@table{2}
+\def\ext@table{lot}
+\def\fnum@table{Table \thetable}
+\def\table{\@float{table}}
+%\let\endtable\end@float
+\def\endtable{\end@float}		% Gerry January 2008
+\@namedef{table*}{\@dblfloat{table}}
+\@namedef{endtable*}{\end@dblfloat}
+
+\newtoks\titleboxnotes
+\newcount\titleboxnoteflag
+
+\def\maketitle{\par
+ \begingroup
+   \def\thefootnote{\fnsymbol{footnote}}
+   \def\@makefnmark{\hbox
+       to 0pt{$^{\@thefnmark}$\hss}}
+     \twocolumn[\@maketitle]
+\@thanks
+ \endgroup
+ \setcounter{footnote}{0}
+ \let\maketitle\relax
+ \let\@maketitle\relax
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\gdef\@subtitle{}\let\thanks\relax
+ \@copyrightspace}
+
+%% CHANGES ON NEXT LINES
+\newif\if@ll % to record which version of LaTeX is in use
+
+\expandafter\ifx\csname LaTeXe\endcsname\relax % LaTeX2.09 is used
+\else% LaTeX2e is used, so set ll to true
+\global\@lltrue
+\fi
+
+\if@ll
+  \NeedsTeXFormat{LaTeX2e}
+  \ProvidesClass{sig-alternate} [2012/05/23 - V2.5 - based on acmproc.cls V1.3 <Nov. 30 '99>]
+  \RequirePackage{latexsym}% QUERY: are these two really needed?
+  \let\dooptions\ProcessOptions
+\else
+  \let\dooptions\@options
+\fi
+%% END CHANGES
+
+\def\@height{height}
+\def\@width{width}
+\def\@minus{minus}
+\def\@plus{plus}
+\def\hb@xt@{\hbox to}
+\newif\if@faircopy
+\@faircopyfalse
+\def\ds@faircopy{\@faircopytrue}
+
+\def\ds@preprint{\@faircopyfalse}
+
+\@twosidetrue
+\@mparswitchtrue
+\def\ds@draft{\overfullrule 5\p@}
+%% CHANGE ON NEXT LINE
+\dooptions
+
+\lineskip \p@
+\normallineskip \p@
+\def\baselinestretch{1}
+\def\@ptsize{0} %needed for amssymbols.sty
+
+%% CHANGES ON NEXT LINES
+\if@ll% allow use of old-style font change commands in LaTeX2e
+\@maxdepth\maxdepth
+%
+\DeclareOldFontCommand{\rm}{\ninept\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+\fi
+%
+\if@ll
+ \renewcommand{\rmdefault}{cmr}  % was 'ttm'
+% Note! I have also found 'mvr' to work ESPECIALLY well.
+% Gerry - October 1999
+% You may need to change your LV1times.fd file so that sc is
+% mapped to cmcsc - -for smallcaps -- that is if you decide
+% to change {cmr} to {times} above. (Not recommended)
+  \renewcommand{\@ptsize}{}
+  \renewcommand{\normalsize}{%
+    \@setfontsize\normalsize\@ixpt{10.5\p@}%\ninept%
+    \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@
+    \belowdisplayskip \abovedisplayskip
+    \abovedisplayshortskip 6\p@ \@minus 3\p@
+    \belowdisplayshortskip 6\p@ \@minus 3\p@
+    \let\@listi\@listI
+  }
+\else
+  \def\@normalsize{%changed next to 9 from 10
+    \@setsize\normalsize{9\p@}\ixpt\@ixpt
+   \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@
+    \belowdisplayskip \abovedisplayskip
+    \abovedisplayshortskip 6\p@ \@minus 3\p@
+    \belowdisplayshortskip 6\p@ \@minus 3\p@
+    \let\@listi\@listI
+  }%
+\fi
+\if@ll
+  \newcommand\scriptsize{\@setfontsize\scriptsize\@viipt{8\p@}}
+  \newcommand\tiny{\@setfontsize\tiny\@vpt{6\p@}}
+  \newcommand\large{\@setfontsize\large\@xiipt{14\p@}}
+  \newcommand\Large{\@setfontsize\Large\@xivpt{18\p@}}
+  \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{20\p@}}
+  \newcommand\huge{\@setfontsize\huge\@xxpt{25\p@}}
+  \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30\p@}}
+\else
+  \def\scriptsize{\@setsize\scriptsize{8\p@}\viipt\@viipt}
+  \def\tiny{\@setsize\tiny{6\p@}\vpt\@vpt}
+  \def\large{\@setsize\large{14\p@}\xiipt\@xiipt}
+  \def\Large{\@setsize\Large{18\p@}\xivpt\@xivpt}
+  \def\LARGE{\@setsize\LARGE{20\p@}\xviipt\@xviipt}
+  \def\huge{\@setsize\huge{25\p@}\xxpt\@xxpt}
+  \def\Huge{\@setsize\Huge{30\p@}\xxvpt\@xxvpt}
+\fi
+\normalsize
+
+% make aubox hsize/number of authors up to 3, less gutter
+% then showbox gutter showbox gutter showbox -- GKMT Aug 99
+\newbox\@acmtitlebox
+\def\@maketitle{\newpage
+ \null
+ \setbox\@acmtitlebox\vbox{%
+\baselineskip 20pt
+\vskip 2em                   % Vertical space above title.
+   \begin{center}
+    {\ttlfnt \@title\par}       % Title set in 18pt Helvetica (Arial) bold size.
+    \vskip 1.5em                % Vertical space after title.
+%This should be the subtitle.
+{\subttlfnt \the\subtitletext\par}\vskip 1.25em%\fi
+    {\baselineskip 16pt\aufnt   % each author set in \12 pt Arial, in a
+     \lineskip .5em             % tabular environment
+     \begin{tabular}[t]{c}\@author
+     \end{tabular}\par}
+    \vskip 1.5em               % Vertical space after author.
+   \end{center}}
+ \dimen0=\ht\@acmtitlebox
+ \advance\dimen0 by -12.75pc\relax % Increased space for title box -- KBT
+ \unvbox\@acmtitlebox
+ \ifdim\dimen0<0.0pt\relax\vskip-\dimen0\fi}
+
+
+\newcount\titlenotecount
+\global\titlenotecount=0
+\newtoks\tntoks
+\newtoks\tntokstwo
+\newtoks\tntoksthree
+\newtoks\tntoksfour
+\newtoks\tntoksfive
+
+\def\abstract{
+\ifnum\titlenotecount>0 % was =1
+    \insert\footins{%
+    \reset@font\footnotesize
+        \interlinepenalty\interfootnotelinepenalty
+        \splittopskip\footnotesep
+        \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+        \hsize\columnwidth \@parboxrestore
+        \protected@edef\@currentlabel{%
+        }%
+        \color@begingroup
+\ifnum\titlenotecount=1
+      \@maketntext{%
+         \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\@finalstrut\strutbox}%
+\fi
+\ifnum\titlenotecount=2
+      \@maketntext{%
+      \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
+\@maketntext{%
+         \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\@finalstrut\strutbox}%
+\fi
+\ifnum\titlenotecount=3
+      \@maketntext{%
+         \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
+\@maketntext{%
+         \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
+\@maketntext{%
+         \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\@finalstrut\strutbox}%
+\fi
+\ifnum\titlenotecount=4
+      \@maketntext{%
+         \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
+\@maketntext{%
+         \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
+\@maketntext{%
+         \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}%
+\@maketntext{%
+         \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\@finalstrut\strutbox}%
+\fi
+\ifnum\titlenotecount=5
+      \@maketntext{%
+         \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
+\@maketntext{%
+         \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
+\@maketntext{%
+         \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}%
+\@maketntext{%
+         \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\par\@finalstrut\strutbox}%
+\@maketntext{%
+         \raisebox{4pt}{$\P$}\rule\z@\footnotesep\ignorespaces\the\tntoksfive\@finalstrut\strutbox}%
+\fi
+   \color@endgroup} %g}
+\fi
+\setcounter{footnote}{0}
+\section*{ABSTRACT}\normalsize%\ninept
+}
+
+\def\endabstract{\if@twocolumn\else\endquotation\fi}
+
+\def\keywords{\if@twocolumn
+\section*{Keywords}
+\else \small
+\quotation
+\fi}
+
+\def\terms{\if@twocolumn
+\section*{General Terms}
+\else \small
+\quotation
+\fi}
+
+% -- Classification needs to be a bit smart due to optionals - Gerry/Georgia November 2nd. 1999
+\newcount\catcount
+\global\catcount=1
+
+\def\category#1#2#3{%
+\ifnum\catcount=1
+\section*{Categories and Subject Descriptors}
+\advance\catcount by 1\else{\unskip; }\fi
+    \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}%
+}
+
+\def\@category#1#2#3[#4]{%
+    \begingroup
+        \let\and\relax
+            #1 [\textbf{#2}]%
+            \if!#4!%
+                \if!#3!\else : #3\fi
+            \else
+                :\space
+                \if!#3!\else #3\kern\z@---\hskip\z@\fi
+                \textit{#4}%
+            \fi
+    \endgroup
+}
+%
+
+%%% This section (written by KBT) handles the 1" box in the lower left
+%%% corner of the left column of the first page by creating a picture,
+%%% and inserting the predefined string at the bottom (with a negative
+%%% displacement to offset the space allocated for a non-existent
+%%% caption).
+%%%
+\newtoks\copyrightnotice
+\def\ftype@copyrightbox{8}
+\def\@copyrightspace{
+\@float{copyrightbox}[b]
+\begin{center}
+\setlength{\unitlength}{1pc}
+\begin{picture}(20,6) %Space for copyright notice
+\put(0,-0.95){\crnotice{\@toappear}}
+\end{picture}
+\end{center}
+\end@float}
+
+\def\@toappear{} % Default setting blank - commands below change this.
+\long\def\toappear#1{\def\@toappear{\parbox[b]{20pc}{\baselineskip 9pt#1}}}
+\def\toappearbox#1{\def\@toappear{\raisebox{5pt}{\framebox[20pc]{\parbox[b]{19pc}{#1}}}}}
+
+\newtoks\conf
+\newtoks\confinfo
+\def\conferenceinfo#1#2{\global\conf={#1}\global\confinfo{#2}}
+
+
+%\def\marginpar{\@latexerr{The \marginpar command is not allowed in the
+%  `acmconf' document style.}\@eha}
+
+\def\marginpar{\ClassError{%
+    \string\marginpar\space is not allowed in the `acmconf' document		% January 2008
+    style}\@eha}
+
+\mark{{}{}}     % Initializes TeX's marks
+
+\def\today{\ifcase\month\or
+  January\or February\or March\or April\or May\or June\or
+  July\or August\or September\or October\or November\or December\fi
+  \space\number\day, \number\year}
+
+\def\@begintheorem#1#2{%
+    \parskip 0pt % GM July 2000 (for tighter spacing)
+    \trivlist
+    \item[%
+        \hskip 10\p@
+        \hskip \labelsep
+        {{\sc #1}\hskip 5\p@\relax#2.}%
+    ]
+    \it
+}
+\def\@opargbegintheorem#1#2#3{%
+    \parskip 0pt % GM July 2000 (for tighter spacing)
+    \trivlist
+    \item[%
+        \hskip 10\p@
+        \hskip \labelsep
+        {\sc #1\ #2\             % This mod by Gerry to enumerate corollaries
+   \setbox\@tempboxa\hbox{(#3)}  % and bracket the 'corollary title'
+        \ifdim \wd\@tempboxa>\z@ % and retain the correct numbering of e.g. theorems
+            \hskip 5\p@\relax    % if they occur 'around' said corollaries.
+            \box\@tempboxa       % Gerry - Nov. 1999.
+        \fi.}%
+    ]
+    \it
+}
+\newif\if@qeded
+\global\@qededfalse
+
+% -- original
+%\def\proof{%
+%  \vspace{-\parskip} % GM July 2000 (for tighter spacing)
+%    \global\@qededfalse
+%    \@ifnextchar[{\@xproof}{\@proof}%
+%}
+% -- end of original
+
+% (JSS) Fix for vertical spacing bug - Gerry Murray July 30th. 2002
+\def\proof{%
+\vspace{-\lastskip}\vspace{-\parsep}\penalty-51%
+\global\@qededfalse
+\@ifnextchar[{\@xproof}{\@proof}%
+}
+
+\def\endproof{%
+    \if@qeded\else\qed\fi
+    \endtrivlist
+}
+\def\@proof{%
+    \trivlist
+    \item[%
+        \hskip 10\p@
+        \hskip \labelsep
+        {\sc Proof.}%
+    ]
+    \ignorespaces
+}
+\def\@xproof[#1]{%
+    \trivlist
+    \item[\hskip 10\p@\hskip \labelsep{\sc Proof #1.}]%
+    \ignorespaces
+}
+\def\qed{%
+    \unskip
+    \kern 10\p@
+    \begingroup
+        \unitlength\p@
+        \linethickness{.4\p@}%
+        \framebox(6,6){}%
+    \endgroup
+    \global\@qededtrue
+}
+
+\def\newdef#1#2{%
+    \expandafter\@ifdefinable\csname #1\endcsname
+        {\@definecounter{#1}%
+         \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
+         \global\@namedef{#1}{\@defthm{#1}{#2}}%
+         \global\@namedef{end#1}{\@endtheorem}%
+    }%
+}
+\def\@defthm#1#2{%
+    \refstepcounter{#1}%
+    \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}%
+}
+\def\@xdefthm#1#2{%
+    \@begindef{#2}{\csname the#1\endcsname}%
+    \ignorespaces
+}
+\def\@ydefthm#1#2[#3]{%
+    \trivlist
+    \item[%
+        \hskip 10\p@
+        \hskip \labelsep
+        {\it #2%
+%         \savebox\@tempboxa{#3}%
+         \saveb@x\@tempboxa{#3}%		% January 2008
+         \ifdim \wd\@tempboxa>\z@
+            \ \box\@tempboxa
+         \fi.%
+        }]%
+    \ignorespaces
+}
+\def\@begindef#1#2{%
+    \trivlist
+    \item[%
+        \hskip 10\p@
+        \hskip \labelsep
+        {\it #1\ \rm #2.}%
+    ]%
+}
+\def\theequation{\arabic{equation}}
+
+\newcounter{part}
+\newcounter{section}
+\newcounter{subsection}[section]
+\newcounter{subsubsection}[subsection]
+\newcounter{paragraph}[subsubsection]
+\def\thepart{\Roman{part}}
+\def\thesection{\arabic{section}}
+\def\thesubsection{\thesection.\arabic{subsection}}
+\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} %removed \subsecfnt 29 July 2002 gkmt
+\def\theparagraph{\thesubsubsection.\arabic{paragraph}} %removed \subsecfnt 29 July 2002 gkmt
+\newif\if@uchead
+\@ucheadfalse
+
+%% CHANGES: NEW NOTE
+%% NOTE: OK to use old-style font commands below, since they were
+%% suitably redefined for LaTeX2e
+%% END CHANGES
+\setcounter{secnumdepth}{3}
+\def\part{%
+    \@startsection{part}{9}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}
+        {4\p@}{\normalsize\@ucheadtrue}%
+}
+\def\section{%
+    \@startsection{section}{1}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}% GM
+    {4\p@}{\baselineskip 14pt\secfnt\@ucheadtrue}%
+}
+
+\def\subsection{%
+    \@startsection{subsection}{2}{\z@}{-8\p@ \@plus -2\p@ \@minus -\p@}
+    {4\p@}{\secfnt}%
+}
+\def\subsubsection{%
+    \@startsection{subsubsection}{3}{\z@}{-8\p@ \@plus -2\p@ \@minus -\p@}%
+    {4\p@}{\subsecfnt}%
+}
+%\def\paragraph{%
+%    \vskip 12pt\@startsection{paragraph}{3}{\z@}{6\p@ \@plus \p@}% original
+%    {-5\p@}{\subsecfnt}%
+%}
+%  If one wants sections, subsections and subsubsections numbered,
+%  but not paragraphs, one usually sets secnumepth to 3.
+%  For that, the "depth" of paragraphs must be given correctly
+%  in the definition (``4'' instead of ``3'' as second argument
+%  of @startsection):
+\def\paragraph{%
+    \vskip 12pt\@startsection{paragraph}{4}{\z@}{6\p@ \@plus \p@}%    % GM and Wolfgang May - 11/30/06
+    {-5\p@}{\subsecfnt}%
+}
+\let\@period=.
+\def\@startsection#1#2#3#4#5#6{%
+        \if@noskipsec  %gkmt, 11 aug 99
+        \global\let\@period\@empty
+        \leavevmode
+        \global\let\@period.%
+    \fi
+      \par %
+    \@tempskipa #4\relax
+    \@afterindenttrue
+    \ifdim \@tempskipa <\z@
+        \@tempskipa -\@tempskipa
+        \@afterindentfalse
+    \fi
+    \if@nobreak
+    \everypar{}%
+    \else
+        \addpenalty\@secpenalty
+        \addvspace\@tempskipa
+    \fi
+\parskip=0pt % GM July 2000 (non numbered) section heads
+    \@ifstar
+        {\@ssect{#3}{#4}{#5}{#6}}
+        {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
+}
+\def\@sect#1#2#3#4#5#6[#7]#8{%
+    \ifnum #2>\c@secnumdepth
+        \let\@svsec\@empty
+    \else
+        \refstepcounter{#1}%
+        \edef\@svsec{%
+            \begingroup
+                %\ifnum#2>2 \noexpand\rm \fi % changed to next 29 July 2002 gkmt
+            \ifnum#2>2 \noexpand#6 \fi
+                \csname the#1\endcsname
+            \endgroup
+            \ifnum #2=1\relax .\fi
+            \hskip 1em
+        }%
+    \fi
+    \@tempskipa #5\relax
+    \ifdim \@tempskipa>\z@
+        \begingroup
+            #6\relax
+            \@hangfrom{\hskip #3\relax\@svsec}%
+            \begingroup
+                \interlinepenalty \@M
+                \if@uchead
+                    \uppercase{#8}%
+                \else
+                    #8%
+                \fi
+                \par
+            \endgroup
+        \endgroup
+        \csname #1mark\endcsname{#7}%
+        \vskip -12pt  %gkmt, 11 aug 99 and GM July 2000 (was -14) - numbered section head spacing
+\addcontentsline{toc}{#1}{%
+            \ifnum #2>\c@secnumdepth \else
+                \protect\numberline{\csname the#1\endcsname}%
+            \fi
+            #7%
+        }%
+    \else
+        \def\@svsechd{%
+            #6%
+            \hskip #3\relax
+            \@svsec
+            \if@uchead
+                \uppercase{#8}%
+            \else
+                #8%
+            \fi
+            \csname #1mark\endcsname{#7}%
+            \addcontentsline{toc}{#1}{%
+                \ifnum #2>\c@secnumdepth \else
+                    \protect\numberline{\csname the#1\endcsname}%
+                \fi
+                #7%
+            }%
+        }%
+    \fi
+    \@xsect{#5}\hskip 1pt
+    \par
+}
+\def\@xsect#1{%
+    \@tempskipa #1\relax
+    \ifdim \@tempskipa>\z@
+        \par
+        \nobreak
+        \vskip \@tempskipa
+        \@afterheading
+    \else
+        \global\@nobreakfalse
+        \global\@noskipsectrue
+        \everypar{%
+            \if@noskipsec
+                \global\@noskipsecfalse
+                \clubpenalty\@M
+                \hskip -\parindent
+                \begingroup
+                    \@svsechd
+                    \@period
+                \endgroup
+                \unskip
+                \@tempskipa #1\relax
+                \hskip -\@tempskipa
+            \else
+                \clubpenalty \@clubpenalty
+                \everypar{}%
+            \fi
+        }%
+    \fi
+    \ignorespaces
+}
+\def\@trivlist{%
+    \@topsepadd\topsep
+    \if@noskipsec
+        \global\let\@period\@empty
+        \leavevmode
+        \global\let\@period.%
+    \fi
+    \ifvmode
+        \advance\@topsepadd\partopsep
+    \else
+        \unskip
+        \par
+    \fi
+    \if@inlabel
+        \@noparitemtrue
+        \@noparlisttrue
+    \else
+        \@noparlistfalse
+        \@topsep\@topsepadd
+    \fi
+    \advance\@topsep \parskip
+    \leftskip\z@skip
+    \rightskip\@rightskip
+    \parfillskip\@flushglue
+    \@setpar{\if@newlist\else{\@@par}\fi}
+    \global\@newlisttrue
+    \@outerparskip\parskip
+}
+
+%%% Actually, 'abbrev' works just fine as the default
+%%% Bibliography style.
+
+\typeout{Using 'Abbrev' bibliography style}
+\newcommand\bibyear[2]{%
+    \unskip\quad\ignorespaces#1\unskip
+    \if#2..\quad \else \quad#2 \fi
+}
+\newcommand{\bibemph}[1]{{\em#1}}
+\newcommand{\bibemphic}[1]{{\em#1\/}}
+\newcommand{\bibsc}[1]{{\sc#1}}
+\def\@normalcite{%
+    \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}%
+}
+\def\@citeNB{%
+    \def\@cite##1##2{##1\if@tempswa , ##2\fi}%
+}
+\def\@citeRB{%
+    \def\@cite##1##2{##1\if@tempswa , ##2\fi]}%
+}
+\def\start@cite#1#2{%
+    \edef\citeauthoryear##1##2##3{%
+        ###1%
+        \ifnum#2=\z@ \else\ ###2\fi
+    }%
+    \ifnum#1=\thr@@
+        \let\@@cite\@citeyear
+    \else
+        \let\@@cite\@citenormal
+    \fi
+    \@ifstar{\@citeNB\@@cite}{\@normalcite\@@cite}%
+}
+%\def\cite{\start@cite23}
+\DeclareRobustCommand\cite{\start@cite23}		% January 2008
+\def\citeNP{\cite*}					% No Parentheses e.g. 5
+%\def\citeA{\start@cite10}
+\DeclareRobustCommand\citeA{\start@cite10}		% January 2008
+\def\citeANP{\citeA*}
+%\def\shortcite{\start@cite23}				
+\DeclareRobustCommand\shortcite{\start@cite23}		% January 2008
+\def\shortciteNP{\shortcite*}
+%\def\shortciteA{\start@cite20}
+\DeclareRobustCommand\shortciteA{\start@cite20}		% January 2008
+\def\shortciteANP{\shortciteA*}
+%\def\citeyear{\start@cite30}
+\DeclareRobustCommand\citeyear{\start@cite30}		% January 2008
+\def\citeyearNP{\citeyear*}
+%\def\citeN{%
+\DeclareRobustCommand\citeN{%				% January 2008
+    \@citeRB
+    \def\citeauthoryear##1##2##3{##1\ [##3%
+        \def\reserved@a{##1}%
+        \def\citeauthoryear####1####2####3{%
+            \def\reserved@b{####1}%
+            \ifx\reserved@a\reserved@b
+                ####3%
+            \else
+                \errmessage{Package acmart Error: author mismatch
+                         in \string\citeN^^J^^J%
+                    See the acmart package documentation for explanation}%
+            \fi
+        }%
+    }%
+    \@ifstar\@citeyear\@citeyear
+}
+%\def\shortciteN{%
+\DeclareRobustCommand\shortciteN{%			% January 2008
+    \@citeRB
+    \def\citeauthoryear##1##2##3{##2\ [##3%
+        \def\reserved@a{##2}%
+        \def\citeauthoryear####1####2####3{%
+            \def\reserved@b{####2}%
+            \ifx\reserved@a\reserved@b
+                ####3%
+            \else
+                \errmessage{Package acmart Error: author mismatch
+                         in \string\shortciteN^^J^^J%
+                    See the acmart package documentation for explanation}%
+            \fi
+        }%
+    }%
+    \@ifstar\@citeyear\@citeyear  % GM July 2000
+}
+
+\def\@citenormal{%
+    \@ifnextchar [{\@tempswatrue\@citex;}%
+% original                 {\@tempswafalse\@citex,[]}% was ; Gerry 2/24/00
+{\@tempswafalse\@citex[]}%  	% GERRY FIX FOR BABEL 3/20/2009
+}
+
+\def\@citeyear{%
+    \@ifnextchar [{\@tempswatrue\@citex,}%
+% original                  {\@tempswafalse\@citex,[]}%
+{\@tempswafalse\@citex[]}%	%  GERRY FIX FOR BABEL 3/20/2009
+}
+
+\def\@citex#1[#2]#3{%
+    \let\@citea\@empty
+    \@cite{%
+        \@for\@citeb:=#3\do{%
+            \@citea
+% original            \def\@citea{#1 }%
+            \def\@citea{#1, }% 	% GERRY FIX FOR BABEL 3/20/2009 -- SO THAT YOU GET [1, 2] IN THE BODY TEXT
+            \edef\@citeb{\expandafter\@iden\@citeb}%
+            \if@filesw
+                \immediate\write\@auxout{\string\citation{\@citeb}}%
+            \fi
+            \@ifundefined{b@\@citeb}{%
+                {\bf ?}%
+                \@warning{%
+                    Citation `\@citeb' on page \thepage\space undefined%
+                }%
+            }%
+            {\csname b@\@citeb\endcsname}%
+        }%
+    }{#2}%
+}
+%\let\@biblabel\@gobble   % Dec. 2008 - Gerry
+% ----
+\def\@biblabelnum#1{[#1]} % Gerry's solution #1 - for Natbib -- April 2009
+\let\@biblabel=\@biblabelnum  % Gerry's solution #1 - for Natbib -- April 2009
+\def\newblock{\relax} % Gerry Dec. 2008
+% ---
+\newdimen\bibindent
+\setcounter{enumi}{1}
+\bibindent=0em
+\def\thebibliography#1{% 
+\ifnum\addauflag=0\addauthorsection\global\addauflag=1\fi
+     \section[References]{%    <=== OPTIONAL ARGUMENT ADDED HERE
+        {References} % was uppercased but this affects pdf bookmarks (SP/GM October 2004)
+          {\vskip -9pt plus 1pt} % GM Nov. 2006 / GM July 2000 (for somewhat tighter spacing) 
+         \@mkboth{{\refname}}{{\refname}}%
+     }%
+     \list{[\arabic{enumi}]}{%
+         \settowidth\labelwidth{[#1]}%
+         \leftmargin\labelwidth
+         \advance\leftmargin\labelsep
+         \advance\leftmargin\bibindent
+         \parsep=0pt\itemsep=1pt % GM July 2000
+         \itemindent -\bibindent
+         \listparindent \itemindent
+         \usecounter{enumi}
+     }%
+     \let\newblock\@empty
+     \raggedright % GM July 2000
+     \sloppy
+     \sfcode`\.=1000\relax
+}
+
+
+\gdef\balancecolumns
+{\vfill\eject
+\global\@colht=\textheight
+\global\ht\@cclv=\textheight
+}
+
+\newcount\colcntr
+\global\colcntr=0
+%\newbox\savebox
+\newbox\saveb@x				% January 2008
+
+\gdef \@makecol {%
+\global\advance\colcntr by 1
+\ifnum\colcntr>2 \global\colcntr=1\fi
+   \ifvoid\footins
+     \setbox\@outputbox \box\@cclv
+   \else
+     \setbox\@outputbox \vbox{%
+\boxmaxdepth \@maxdepth
+       \@tempdima\dp\@cclv
+       \unvbox \@cclv
+       \vskip-\@tempdima
+       \vskip \skip\footins
+       \color@begingroup
+         \normalcolor
+         \footnoterule
+         \unvbox \footins
+       \color@endgroup
+       }%
+   \fi
+   \xdef\@freelist{\@freelist\@midlist}%
+   \global \let \@midlist \@empty
+   \@combinefloats
+   \ifvbox\@kludgeins
+     \@makespecialcolbox
+   \else
+     \setbox\@outputbox \vbox to\@colht {%
+\@texttop
+       \dimen@ \dp\@outputbox
+       \unvbox \@outputbox
+   \vskip -\dimen@
+       \@textbottom
+       }%
+   \fi
+   \global \maxdepth \@maxdepth
+}
+\def\titlenote{\@ifnextchar[\@xtitlenote{\stepcounter\@mpfn
+\global\advance\titlenotecount by 1
+\ifnum\titlenotecount=1
+    \raisebox{9pt}{$\ast$}
+\fi
+\ifnum\titlenotecount=2
+    \raisebox{9pt}{$\dagger$}
+\fi
+\ifnum\titlenotecount=3
+    \raisebox{9pt}{$\ddagger$}
+\fi
+\ifnum\titlenotecount=4
+\raisebox{9pt}{$\S$}
+\fi
+\ifnum\titlenotecount=5
+\raisebox{9pt}{$\P$}
+\fi
+         \@titlenotetext
+}}
+
+\long\def\@titlenotetext#1{\insert\footins{%
+\ifnum\titlenotecount=1\global\tntoks={#1}\fi
+\ifnum\titlenotecount=2\global\tntokstwo={#1}\fi
+\ifnum\titlenotecount=3\global\tntoksthree={#1}\fi
+\ifnum\titlenotecount=4\global\tntoksfour={#1}\fi
+\ifnum\titlenotecount=5\global\tntoksfive={#1}\fi
+    \reset@font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+    \protected@edef\@currentlabel{%
+    }%
+    \color@begingroup
+   \color@endgroup}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\ps@plain
+\baselineskip=11pt
+\let\thepage\relax % For NO page numbers - GM Nov. 30th. 1999 and July 2000
+\def\setpagenumber#1{\global\setcounter{page}{#1}}
+%\pagenumbering{arabic}  % Arabic page numbers GM July 2000
+\twocolumn             % Double column.
+\flushbottom           % Even bottom -- alas, does not balance columns at end of document
+\pagestyle{plain}
+
+% Need Copyright Year and Copyright Data to be user definable (in .tex file).
+% Gerry Nov. 30th. 1999
+\newtoks\copyrtyr
+\newtoks\acmcopyr
+\newtoks\boilerplate
+\global\acmcopyr={X-XXXXX-XX-X/XX/XX}  % Default - 5/11/2001 *** Gerry
+\global\copyrtyr={20XX}                % Default - 3/3/2003 *** Gerry
+\def\CopyrightYear#1{\global\copyrtyr{#1}}
+\def\crdata#1{\global\acmcopyr{#1}}
+\def\permission#1{\global\boilerplate{#1}}
+%
+\global\boilerplate={Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page.  To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.}
+\newtoks\copyrightetc
+\global\copyrightetc{Copyright \the\copyrtyr\ ACM \the\acmcopyr\ ...\$15.00} % Gerry changed to 15 May 2012
+\toappear{\the\boilerplate\par
+{\confname{\the\conf}} \the\confinfo\par \the\copyrightetc.}
+%\DeclareFixedFont{\altcrnotice}{OT1}{tmr}{m}{n}{8}  % << patch needed for accenting e.g. Montreal - Gerry, May 2007
+%\DeclareFixedFont{\altconfname}{OT1}{tmr}{m}{it}{8}  % << patch needed for accenting in italicized confname - Gerry, May 2007
+%
+%{\altconfname{{\the\conf}}} {\altcrnotice\the\confinfo\par} \the\copyrightetc.}  % << Gerry, May 2007
+%
+% The following section (i.e. 3 .sty inclusions) was added in May 2007 so as to fix the problems that many
+% authors were having with accents. Sometimes accents would occur, but the letter-character would be of a different
+% font. Conversely the letter-character font would be correct but, e.g. a 'bar' would appear superimposed on the
+% character instead of, say, an unlaut/diaresis. Sometimes the letter-character would NOT appear at all.
+% Using [T1]{fontenc} outright was not an option as this caused 99% of the authors to 'produce' a Type-3 (bitmapped)
+% PDF file - useless for production. 
+%
+% For proper (font) accenting we NEED these packages to be part of the .cls file i.e. 'ae', 'aecompl' and 'aeguil' 
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%% This is file `ae.sty' 
+\def\fileversion{1.3}
+\def\filedate{2001/02/12}
+\NeedsTeXFormat{LaTeX2e}
+%\ProvidesPackage{ae}[\filedate\space\fileversion\space  % GM
+% Almost European Computer Modern]                       % GM - keeping the log file clean(er)
+\newif\if@ae@slides \@ae@slidesfalse
+\DeclareOption{slides}{\@ae@slidestrue}
+\ProcessOptions
+\fontfamily{aer}
+\RequirePackage[T1]{fontenc}
+\if@ae@slides
+    \renewcommand{\sfdefault}{laess}
+    \renewcommand{\rmdefault}{laess} % no roman
+    \renewcommand{\ttdefault}{laett}
+\else
+    \renewcommand{\sfdefault}{aess}
+    \renewcommand{\rmdefault}{aer}
+    \renewcommand{\ttdefault}{aett}
+\fi
+\endinput
+%% 
+%% End of file `ae.sty'.
+%
+%
+\def\fileversion{0.9}
+\def\filedate{1998/07/23}
+\NeedsTeXFormat{LaTeX2e}
+%\ProvidesPackage{aecompl}[\filedate\space\fileversion\space   % GM
+%T1 Complements for AE fonts (D. Roegel)]                      % GM -- keeping the log file clean(er)
+ 
+\def\@ae@compl#1{{\fontencoding{T1}\fontfamily{cmr}\selectfont\symbol{#1}}}
+\def\guillemotleft{\@ae@compl{19}}
+\def\guillemotright{\@ae@compl{20}}
+\def\guilsinglleft{\@ae@compl{14}}
+\def\guilsinglright{\@ae@compl{15}}
+\def\TH{\@ae@compl{222}}
+\def\NG{\@ae@compl{141}}
+\def\ng{\@ae@compl{173}}
+\def\th{\@ae@compl{254}}
+\def\DJ{\@ae@compl{208}}
+\def\dj{\@ae@compl{158}}
+\def\DH{\@ae@compl{208}}
+\def\dh{\@ae@compl{240}}
+\def\@perthousandzero{\@ae@compl{24}}
+\def\textperthousand{\%\@perthousandzero}
+\def\textpertenthousand{\%\@perthousandzero\@perthousandzero}
+\endinput
+%
+%
+%% This is file `aeguill.sty' 
+% This file gives french guillemets (and not guillemots!)
+% built with the Polish CMR fonts (default), WNCYR fonts, the LASY fonts 
+% or with the EC fonts. 
+% This is useful in conjunction with the ae package
+% (this package loads the ae package in case it has not been loaded)
+%  and with or without the french(le) package.
+%
+% In order to get the guillemets, it is necessary to either type
+% \guillemotleft and \guillemotright, or to use an 8 bit encoding
+% (such as ISO-Latin1) which selects these two commands, 
+% or, if you use the french package (but not the frenchle package), 
+% to type << or >>.
+%
+% By default, you get the Polish CMR guillemets; if this package is loaded
+% with the `cm' option, you get the LASY guillemets; with `ec,' you
+% get the EC guillemets, and with `cyr,' you get the cyrillic guillemets.
+%
+% In verbatim mode, you always get the EC/TT guillemets.
+%
+% The default option is interesting in conjunction with PDF,
+% because there is a Type 1 version of the Polish CMR fonts
+% and these guillemets are very close in shape to the EC guillemets.
+% There are no free Type 1 versions of the EC fonts.
+%
+% Support for Polish CMR guillemets was kindly provided by 
+% Rolf Niepraschk <niepraschk@ptb.de> in version 0.99 (2000/05/22).
+% Bernd Raichle provided extensive simplifications to the code
+% for version 1.00.
+%
+% This package is released under the LPPL.
+%
+% Changes:
+%   Date        version
+%   2001/04/12  1.01    the frenchle and french package are now distinguished.
+%
+\def\fileversion{1.01}
+\def\filedate{2001/04/12}
+\NeedsTeXFormat{LaTeX2e}
+%\ProvidesPackage{aeguill}[2001/04/12 1.01 %    % GM
+%AE fonts with french guillemets (D. Roegel)]   % GM - keeping the log file clean(er)
+%\RequirePackage{ae}  % GM May 2007 - already embedded here
+
+\newcommand{\@ae@switch}[4]{#4}
+\DeclareOption{ec}{\renewcommand\@ae@switch[4]{#1}}
+\DeclareOption{cm}{\renewcommand\@ae@switch[4]{#2}}
+\DeclareOption{cyr}{\renewcommand\@ae@switch[4]{#3}}
+\DeclareOption{pl}{\renewcommand\@ae@switch[4]{#4}}
+\ExecuteOptions{pl}
+\ProcessOptions
+
+%
+% Load necessary packages
+%
+\@ae@switch{% ec
+  % do nothing
+}{% cm
+  \RequirePackage{latexsym}%  GM - May 2007 - already 'mentioned as required' up above
+}{% cyr
+  \RequirePackage[OT2,T1]{fontenc}%
+}{% pl
+  \RequirePackage[OT4,T1]{fontenc}%
+}
+
+% The following command will be compared to \frenchname,
+% as defined in french.sty and frenchle.sty.
+\def\aeguillfrenchdefault{french}%
+
+\let\guill@verbatim@font\verbatim@font
+\def\verbatim@font{\guill@verbatim@font\ecguills{cmtt}%
+                   \let\guillemotleft\@oguills\let\guillemotright\@fguills}
+
+\begingroup \catcode`\<=13 \catcode`\>=13
+\def\x{\endgroup
+ \def\ae@lfguill{<<}%
+ \def\ae@rfguill{>>}%
+}\x
+
+\newcommand{\ecguills}[1]{%
+  \def\selectguillfont{\fontencoding{T1}\fontfamily{#1}\selectfont}%
+  \def\@oguills{{\selectguillfont\symbol{19}}}%
+  \def\@fguills{{\selectguillfont\symbol{20}}}%
+  } 
+
+\newcommand{\aeguills}{%
+  \ae@guills
+  % We redefine \guillemotleft and \guillemotright
+  % in order to catch them when they are used 
+  % with \DeclareInputText (in latin1.def for instance)
+  % We use \auxWARNINGi as a safe indicator that french.sty is used.
+  \gdef\guillemotleft{\ifx\auxWARNINGi\undefined
+                         \@oguills % neither french.sty nor frenchle.sty
+                      \else
+                         \ifx\aeguillfrenchdefault\frenchname
+                           \ae@lfguill  % french.sty
+                         \else
+                           \@oguills    % frenchle.sty
+                         \fi
+                      \fi}%
+  \gdef\guillemotright{\ifx\auxWARNINGi\undefined
+                         \@fguills % neither french.sty nor frenchle.sty
+                       \else
+                         \ifx\aeguillfrenchdefault\frenchname
+                           \ae@rfguill  % french.sty
+                         \else
+                           \@fguills    % frenchle.sty
+                         \fi
+                       \fi}%
+  }
+
+%
+% Depending on the class option
+% define the internal command \ae@guills
+\@ae@switch{% ec
+  \newcommand{\ae@guills}{%
+    \ecguills{cmr}}%
+}{% cm
+  \newcommand{\ae@guills}{%
+    \def\selectguillfont{\fontencoding{U}\fontfamily{lasy}%
+            \fontseries{m}\fontshape{n}\selectfont}%
+    \def\@oguills{\leavevmode\nobreak
+                \hbox{\selectguillfont (\kern-.20em(\kern.20em}\nobreak}%
+    \def\@fguills{\leavevmode\nobreak
+                \hbox{\selectguillfont \kern.20em)\kern-.2em)}%
+                \ifdim\fontdimen\@ne\font>\z@\/\fi}}%
+}{% cyr
+  \newcommand{\ae@guills}{%
+    \def\selectguillfont{\fontencoding{OT2}\fontfamily{wncyr}\selectfont}%
+    \def\@oguills{{\selectguillfont\symbol{60}}}%
+    \def\@fguills{{\selectguillfont\symbol{62}}}}
+}{% pl
+  \newcommand{\ae@guills}{%
+    \def\selectguillfont{\fontencoding{OT4}\fontfamily{cmr}\selectfont}%
+    \def\@oguills{{\selectguillfont\symbol{174}}}%
+    \def\@fguills{{\selectguillfont\symbol{175}}}}
+}
+
+
+\AtBeginDocument{%
+  \ifx\GOfrench\undefined
+    \aeguills
+  \else
+    \let\aeguill@GOfrench\GOfrench
+    \gdef\GOfrench{\aeguill@GOfrench \aeguills}%
+  \fi
+  }
+
+\endinput
+%
+
diff --git a/omdoc-semantics/macros/response.sty b/omdoc-semantics/macros/response.sty
new file mode 100644
index 0000000000000000000000000000000000000000..1dc00ff4921d83e2cfd3caa32e0422279a4d56ac
--- /dev/null
+++ b/omdoc-semantics/macros/response.sty
@@ -0,0 +1,14 @@
+\RequirePackage{framed}
+\newenvironment{marked}{%
+  \def\FrameCommand{\vrule width 1pt \hspace{5pt}}%
+  \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+
+\newcommand{\markEnv}[1]{%
+\expandafter\let\csname theorems@#1\expandafter\endcsname\csname#1\endcsname% \begin{theorems@#1} = \begin{#1}
+\expandafter\let\csname theorems@end#1\expandafter\endcsname\csname end#1\endcsname% \begin{theorems@end#1} = \end{#1}
+\renewenvironment{#1}{\begin{marked}\begin{theorems@#1}}{\end{theorems@#1}\end{marked}}%
+}
+
+\newenvironment{reviewer}{\em}{}
+\markEnv{reviewer}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/sembracket.sty b/omdoc-semantics/macros/sembracket.sty
new file mode 100644
index 0000000000000000000000000000000000000000..341d4ac9fae50b6f230097a4302a824667ebf545
--- /dev/null
+++ b/omdoc-semantics/macros/sembracket.sty
@@ -0,0 +1,4 @@
+\RequirePackage{stmaryrd} % semantic brackets
+
+\newcommand{\sqrbrc}[1]{\llbracket #1\rrbracket}
+\newcommand{\sem}[3][]{\sqrbrc{\ifnonempty{#1}{#1|}#2}^{#3}}
diff --git a/omdoc-semantics/macros/splncs.bst b/omdoc-semantics/macros/splncs.bst
new file mode 100644
index 0000000000000000000000000000000000000000..b20b8b42fab4ccdb6130bff2633184fb156edf0d
--- /dev/null
+++ b/omdoc-semantics/macros/splncs.bst
@@ -0,0 +1,1088 @@
+% BibTeX bibliography style `splncs'
+
+% An attempt to match the bibliography style required for use with
+% numbered references in Springer Verlag's "Lecture Notes in Computer
+% Science" series.  (See Springer's documentation for llncs.sty for
+% more details of the suggested reference format.)  Note that this
+% file will not work for author-year style citations.
+
+% Use \documentclass{llncs} and \bibliographystyle{splncs}, and cite
+% a reference with (e.g.) \cite{smith77} to get a "[1]" in the text.
+
+% Copyright (C) 1999 Jason Noble.
+% Last updated: Friday 05 November 2004, 15:18:19  Frank Holzwarth, Springer
+%
+% Based on the BibTeX standard bibliography style `unsrt'
+
+ENTRY
+  { address
+    author
+    booktitle
+    chapter
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    volume
+    year
+  }
+  {}
+  { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence
+           after.block after.authors between.elements}
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+  #4 'after.authors :=
+  #5 'between.elements :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { " " * write$ }
+    { output.state after.block =
+        { add.period$ write$
+          newline$
+          "\newblock " write$
+        }
+        {
+          output.state after.authors =
+          { ": " * write$
+            newline$
+            "\newblock " write$
+          }
+          { output.state between.elements =
+              { ", " * write$ }
+              { output.state before.all =
+                   'write$
+                  { add.period$ " " * write$ }
+                  if$
+              }
+              if$
+          }
+          if$
+        }
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+  "\bibitem{" write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+
+FUNCTION {stupid.colon}
+{ after.authors 'output.state := }
+
+FUNCTION {insert.comma}
+{ output.state before.all =
+    'skip$
+    { between.elements 'output.state := }
+  if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+        'skip$
+        { after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "" swap$ * "" * }
+  if$
+}
+
+FUNCTION {bold}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "\textbf{" swap$ * "}" * }
+  if$
+}
+
+FUNCTION {parens}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "(" swap$ * ")" * }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.springer.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr "{vv~}{ll}{, jj}{, f{.}.}" format.name$ 't :=
+      nameptr #1 >
+        { namesleft #1 >
+            { ", " * t * }
+            { numnames #1 >
+                { ", " * }
+                'skip$
+              if$
+              t "others" =
+                { " et~al." * }
+                { "" * t * }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {format.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
+      nameptr #1 >
+        { namesleft #1 >
+            { ", " * t * }
+            { numnames #2 >
+                { "," * }
+                'skip$
+              if$
+              t "others" =
+                { " et~al." * }
+                { " \& " * t * }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+    { "" }
+    { author format.springer.names }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.springer.names
+      editor num.names$ #1 >
+        { ", eds." * }
+        { ", ed." * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+    { "" }
+    { title "t" change.case$ }
+  if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+        { t #1 #2 substring$ "--" = not
+            { "--" *
+              t #2 global.max$ substring$ 't :=
+            }
+            {   { t #1 #1 substring$ "-" = }
+                { "-" *
+                  t #2 global.max$ substring$ 't :=
+                }
+              while$
+            }
+          if$
+        }
+        { t #1 #1 substring$ *
+          t #2 global.max$ substring$ 't :=
+        }
+      if$
+    }
+  while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+   { "there's no year in " cite$ * warning$ }
+    'year
+  if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { "Volume" volume tie.or.space.connect
+      series empty$
+        'skip$
+        { " of " * series emphasize * }
+      if$
+      add.period$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+        { series field.or.null }
+        { output.state mid.sentence =
+            { "number" }
+            { "Number" }
+          if$
+          number tie.or.space.connect
+          series empty$
+            { "there's a number but no series in " cite$ * warning$ }
+            { " in " * series * }
+          if$
+        }
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+    { "" }
+    { output.state mid.sentence =
+        { edition "l" change.case$ " edn." * }
+        { edition "t" change.case$ " edn." * }
+      if$
+    }
+  if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+        { #1 'multiresult := }
+        { t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+        { "" pages n.dashify tie.or.space.connect }
+        { "" pages tie.or.space.connect }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.vol}
+{ volume bold
+}
+
+FUNCTION {format.vol.num}
+{ volume bold
+number empty$
+{ }
+{ number "(" swap$ * * ")" * }
+if$
+}
+
+FUNCTION {pre.format.pages}
+{ pages empty$
+    'skip$
+    { duplicate$ empty$
+        { pop$ format.pages }
+        { " " * pages n.dashify * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+        { "chapter" }
+        { type "l" change.case$ }
+      if$
+      chapter tie.or.space.connect
+      pages empty$
+        'skip$
+        { " " * format.pages * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { editor empty$
+        { "In: " booktitle emphasize * }
+        { "In " format.editors * ": " * booktitle emphasize * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+  month empty$ year empty$ note empty$
+  and and and and and
+    { "all relevant fields are empty in " cite$ * warning$ }
+    'skip$
+  if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+    'skip$
+    { pop$
+      type "t" change.case$
+    }
+  if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+    { "Technical Report" }
+    'type
+  if$
+  number empty$
+    { "t" change.case$ }
+    { number tie.or.space.connect }
+  if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+    { journal empty$
+        { "need key or journal for " cite$ * " to crossref " * crossref *
+          warning$
+          ""
+        }
+        { "In {\em " journal * "\/}" * }
+      if$
+    }
+    { "In " key * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+  editor num.names$ duplicate$
+  #2 >
+    { pop$ " et~al." * }
+    { #2 <
+        'skip$
+        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+            { " et~al." * }
+            { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      "In "
+    }
+    { "Volume" volume tie.or.space.connect
+      " of " *
+    }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+        { booktitle empty$
+            { "need editor, key, or booktitle for " cite$ * " to crossref " *
+              crossref * warning$
+              ""
+            }
+            { "" }
+          if$
+        }
+        { "" }
+      if$
+    }
+    { "" }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {and.the.note}
+{ note output
+  note empty$
+     'skip$
+     { add.period$ }
+  if$
+}
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { journal emphasize "journal" output.check
+      format.vol.num output
+      format.date parens output
+      format.pages output
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  stupid.colon
+  format.btitle "title" output.check
+  new.sentence
+  crossref missing$
+    { format.edition output
+      format.bvolume output
+      new.block
+      format.number.series output
+      new.sentence
+      publisher "publisher" output.check
+      address empty$
+         'skip$
+         { insert.comma }
+      if$
+      address output
+      format.date parens output
+    }
+    { format.book.crossref output.nonnull
+    }
+  if$
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  stupid.colon
+  format.title "title" output.check
+  howpublished address new.block.checkb
+  howpublished output
+  address empty$
+     'skip$
+     { insert.comma }
+  if$
+  address output
+  format.date parens output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  stupid.colon
+  crossref missing$
+    { chapter output
+      new.block
+      format.number.series output
+      new.sentence
+      "In:" output
+      format.btitle "title" output.check
+      new.sentence
+      format.edition output
+      format.bvolume output
+      publisher "publisher" output.check
+      address empty$
+         'skip$
+         { insert.comma }
+      if$
+      address output
+      format.date parens output
+    }
+    { chapter output
+      new.block
+      format.incoll.inproc.crossref output.nonnull
+    }
+  if$
+  format.pages output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      new.sentence
+      format.bvolume output
+      format.number.series output
+      new.block
+      format.edition output
+      publisher "publisher" output.check
+      address empty$
+         'skip$
+         { insert.comma }
+      if$
+      address output
+      format.date parens output
+      format.pages output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      new.sentence
+      format.bvolume output
+      format.number.series output
+      address empty$
+        { organization publisher new.sentence.checkb
+          organization empty$
+             'skip$
+             { insert.comma }
+          if$
+          organization output
+          publisher empty$
+             'skip$
+             { insert.comma }
+          if$
+          publisher output
+          format.date parens output
+        }
+        { insert.comma
+          address output.nonnull
+          organization empty$
+             'skip$
+             { insert.comma }
+          if$
+          organization output
+          publisher empty$
+             'skip$
+             { insert.comma }
+          if$
+          publisher output
+          format.date parens output
+        }
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+    }
+  if$
+  format.pages output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+  author empty$
+    { organization empty$
+        'skip$
+        { organization output.nonnull
+          address output
+        }
+      if$
+    }
+    { format.authors output.nonnull }
+  if$
+  stupid.colon
+  format.btitle "title" output.check
+  author empty$
+    { organization empty$
+        { address new.block.checka
+          address output
+        }
+        'skip$
+      if$
+    }
+    { organization address new.block.checkb
+      organization output
+      address empty$
+         'skip$
+         { insert.comma }
+      if$
+      address output
+    }
+  if$
+  new.sentence
+  format.edition output
+  format.date parens output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  new.block
+  "Master's thesis" format.thesis.type output.nonnull
+  school empty$
+     'skip$
+     { insert.comma }
+  if$
+  school "school" output.check
+  address empty$
+     'skip$
+     { insert.comma }
+  if$
+  address output
+  format.date parens output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  howpublished new.block.checka
+  howpublished output
+  format.date parens output
+  and.the.note
+  fin.entry
+  empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.btitle "title" output.check
+  new.block
+  "PhD thesis" format.thesis.type output.nonnull
+  school empty$
+     'skip$
+     { insert.comma }
+  if$
+  school "school" output.check
+  address empty$
+     'skip$
+     { insert.comma }
+  if$
+  address output
+  format.date parens output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  editor empty$
+    { organization empty$
+        { "" }
+        { organization output
+          stupid.colon }
+      if$
+    }
+    { format.editors output.nonnull
+      stupid.colon
+    }
+  if$
+  format.btitle "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      new.sentence
+      format.bvolume output
+      format.number.series output
+      address empty$
+        { organization publisher new.sentence.checkb
+          organization empty$
+             'skip$
+             { insert.comma }
+          if$
+          organization output
+          publisher empty$
+             'skip$
+             { insert.comma }
+          if$
+          publisher output
+          format.date parens output
+        }
+        { insert.comma
+          address output.nonnull
+          organization empty$
+             'skip$
+             { insert.comma }
+          if$
+          organization output
+          publisher empty$
+             'skip$
+             { insert.comma }
+          if$
+          publisher output
+          format.date parens output
+        }
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+    }
+  if$
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  new.block
+  format.tr.number output.nonnull
+  institution empty$
+     'skip$
+     { insert.comma }
+  if$
+  institution "institution" output.check
+  address empty$
+     'skip$
+     { insert.comma }
+  if$
+  address output
+  format.date parens output
+  and.the.note
+  fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  stupid.colon
+  format.title "title" output.check
+  new.block
+  note "note" output.check
+  format.date parens output
+  fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+  #1 'number.label :=
+  #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+  number.label #1 + 'number.label :=
+  label width$ longest.label.width >
+    { label 'longest.label :=
+      label width$ 'longest.label.width :=
+    }
+    'skip$
+  if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+
+
+
diff --git a/omdoc-semantics/macros/sprmindx.sty b/omdoc-semantics/macros/sprmindx.sty
new file mode 100644
index 0000000000000000000000000000000000000000..8f17772e10b7a3cb7e32740d71c8ec711b0c1638
--- /dev/null
+++ b/omdoc-semantics/macros/sprmindx.sty
@@ -0,0 +1,4 @@
+delim_0 "\\idxquad "
+delim_1 "\\idxquad "
+delim_2 "\\idxquad "
+delim_n ",\\,"
diff --git a/omdoc-semantics/macros/teaching/assignment.pdf b/omdoc-semantics/macros/teaching/assignment.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..531739898183831b62127ea24479cc575ef8e7e8
Binary files /dev/null and b/omdoc-semantics/macros/teaching/assignment.pdf differ
diff --git a/omdoc-semantics/macros/teaching/assignment.sty b/omdoc-semantics/macros/teaching/assignment.sty
new file mode 100644
index 0000000000000000000000000000000000000000..f5be50e8022e35f12a1af8c84bd65516b9e528e5
--- /dev/null
+++ b/omdoc-semantics/macros/teaching/assignment.sty
@@ -0,0 +1,68 @@
+%%
+%% This is file `assignment.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% assignment.dtx  (with options: `package')
+%% 
+\RequirePackage{keyval}[1997/11/10]
+\RequirePackage{teaching/problem}
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{assignment}[2006/01/13 v0.9a assignment documents]
+\newif\iftest\testfalse
+\DeclareOption{test}{\testtrue\solutionsfalse}
+\newif\ifmultiple\multiplefalse
+\DeclareOption{multiple}{\multipletrue}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{problem}}
+\DeclareOption{showsection}{\renewcommand{\prob@showsection}[1]{#1}} %show section numbers in problem numbers
+\ProcessOptions
+\define@key{assig}{number}{\def\ass@num{#1}}
+\define@key{assig}{title}{\def\ass@title{#1}}
+\define@key{assig}{type}{\def\ass@type{#1}}
+\define@key{assig}{given}{\def\ass@given{#1}}
+\define@key{assig}{due}{\def\ass@due{#1}}
+\def\AssignmentType#1{\gdef\ass@default@type{#1}}
+\def\ass@default@type{Assignment}
+\def\Ass@Type{\@ifundefined{ass@type}{\ass@default@type}{\ass@type}}
+\def\Ass@Title{\@ifundefined{ass@title}{}{\ass@title~}}
+\def\given@due#1#2{%
+\@ifundefined{ass@given}{}{\@ifundefined{ass@due}{}{#1}}%
+\@ifundefined{ass@given}{}{Given {\ass@given}}%
+\@ifundefined{ass@given}{}{\@ifundefined{ass@due}{}{, }}%
+\@ifundefined{ass@due}{}{Due {\ass@due}}%
+\@ifundefined{ass@given}{}{\@ifundefined{ass@due}{}{#2}}}
+\newenvironment{assignment}[1][]% keyval args
+{\setkeys{assig}{#1}% collect the keys and correct them from the outside
+\@ifundefined{incl@ass@title}{}{\def\ass@title{\incl@ass@title}}
+\@ifundefined{incl@ass@type}{}{\def\ass@type{\incl@ass@type}}
+\@ifundefined{incl@ass@num}{}{\def\ass@num{\incl@ass@num}}
+\@ifundefined{incl@ass@due}{}{\def\ass@due{\incl@ass@due}}
+\@ifundefined{incl@ass@given}{}{\def\ass@given{\incl@ass@given}}
+\@ifundefined{ass@num}{\stepcounter{section}}%
+{\setcounter{section}{\ass@num}\setcounter{problem}{0}}
+\ifmultiple%
+\section*{\Ass@Type~\arabic{section}:~\Ass@Title\given@due{\\(})}
+  \addcontentsline{toc}{section}{\Ass@Type~{\arabic{section}}:~\Ass@Title}
+\else
+\begin{center}
+%\Large\Course@Title\\
+{\bf{\Ass@Type}~{\arabic{section}}:~\Ass@Title\strut\\\large{\given@due()}}
+\end{center}
+\fi%ifmultiple
+}{}
+\define@key{incl@assig}{number}{\def\incl@ass@num{#1}}
+\define@key{incl@assig}{title}{\def\incl@ass@title{#1}}
+\define@key{incl@assig}{type}{\def\incl@ass@type{#1}}
+\define@key{incl@assig}{given}{\def\incl@ass@given{#1}}
+\define@key{incl@assig}{due}{\def\incl@ass@due{#1}}
+\newcommand{\includeassignment}[2][]{\bgroup\setkeys{incl@assig}{#1}\include{#2}\egroup}
+\def\CourseTitle#1{\gdef\Course@Title{#1}}
+\def\testspace#1{\iftest\vspace*{#1}\fi}
+\def\testnewpage{\iftest\newpage\fi}
+\def\testemptypage{\iftest
+%\begin{center}This page was intentionally left blank for extra space\end{center}\vfill
+\hbox{\tb}\eject\else\fi}
+\endinput
+%%
+%% End of file `assignment.sty'.
diff --git a/omdoc-semantics/macros/teaching/my_extensions.txt b/omdoc-semantics/macros/teaching/my_extensions.txt
new file mode 100644
index 0000000000000000000000000000000000000000..73b24868fc3110565e2d3c131ca68d4043ea72ac
--- /dev/null
+++ b/omdoc-semantics/macros/teaching/my_extensions.txt
@@ -0,0 +1 @@
+option showsection of package assignment switches off section numbers in problem numbers
\ No newline at end of file
diff --git a/omdoc-semantics/macros/teaching/problem.pdf b/omdoc-semantics/macros/teaching/problem.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..fb7da0c0414ea5b2a18157116624f7831c818f5c
Binary files /dev/null and b/omdoc-semantics/macros/teaching/problem.pdf differ
diff --git a/omdoc-semantics/macros/teaching/problem.sty b/omdoc-semantics/macros/teaching/problem.sty
new file mode 100644
index 0000000000000000000000000000000000000000..b426e2b840b3df95e983e3b482d62ee2b8a81d34
--- /dev/null
+++ b/omdoc-semantics/macros/teaching/problem.sty
@@ -0,0 +1,99 @@
+%%
+%% This is file `problem.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% problem.dtx  (with options: `package')
+%% 
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{problem}[2007/01/07 v0.9a Markup for Problem]
+\newif\ifexnotes\exnotesfalse\DeclareOption{notes}{\exnotestrue}
+\newif\ifhints\hintsfalse\DeclareOption{hints}{\hintstrue}
+\newif\ifsolutions\solutionsfalse\DeclareOption{solutions}{\solutionstrue}
+\newif\ifpts\ptsfalse\DeclareOption{pts}{\ptstrue}
+\newif\ifmin\minfalse\DeclareOption{min}{\mintrue}
+\newif\ifdraft\draftfalse\DeclareOption{draft}{\drafttrue}
+\newif\ifboxed\boxedfalse\DeclareOption{boxed}{\boxedtrue}
+\ProcessOptions
+%\RequirePackage{keyval}[1997/11/10]
+%\RequirePackage{xcomment}
+\define@key{problem}{id}{\def\problem@id{#1}}
+\define@key{problem}{pts}{\def\problem@pts{#1}}
+\define@key{problem}{min}{\def\problem@min{#1}}
+\define@key{problem}{title}{\def\problem@title{#1}}
+\newsavebox{\probbox}
+\newcounter{problem}[section]
+\newcommand{\prob@showsection}[1]{}
+%redefined to \newcommand{\prob@showsection}[1]{#1} by assignments packages if problem numbers shall include section number
+\def\prob@heading{{\bf{Problem} \prob@showsection{\arabic{section}.}\arabic{problem}%
+\@ifundefined{problem@id}{}{\label{\problem@id}\ifdraft~[\problem@id]\fi}%
+\@ifundefined{incl@prob@title}% if there is no outside title
+{\@ifundefined{problem@title}% and no local title
+{:\quad}% do nothing,
+{\quad(\problem@title)\hfill\\}}% else show it
+{\quad(\incl@prob@title)\hfill\\}}}% else show the outside title
+\ifboxed
+\newenvironment{problem}[1][]{% keyval attributes
+\setkeys{problem}{#1}\refstepcounter{problem}\show@pts\show@min
+\begin{lrbox}{\probbox}\begin{minipage}{.9\textwidth}}
+{\end{minipage}\end{lrbox}
+\setbox0=\hbox{\begin{minipage}{.9\textwidth}%
+\noindent\prob@heading\rm%
+\end{minipage}}
+\smallskip\noindent\fbox{\vbox{\box0\vspace*{.2em}\usebox\probbox}}\smallskip}
+\else
+\newenvironment{problem}[1][]{% keyval attributes id, pts, min, title
+\setkeys{problem}{#1}\refstepcounter{problem}\show@pts\show@min%
+\par\noindent\prob@heading\rm}
+{\smallskip}
+\fi%boxed
+\define@key{soln}{id}{\def\soln@id{#1}}
+\define@key{soln}{for}{\def\soln@for{#1}}
+\define@key{soln}{height}{\def\soln@height{#1}}
+\newsavebox{\solution@box}
+\newlength{\solution@width}
+\setlength{\solution@width}{12cm}
+\newenvironment{solution}[1][]%
+{\begin{lrbox}{\solution@box}\begin{minipage}{\solution@width}
+\hrule\smallskip{\bf Solution: }\small}
+{\smallskip\hrule\end{minipage}\end{lrbox}
+\ifsolutions\begin{center}\usebox{\solution@box}\end{center}\fi}
+\ifexnotes
+\newenvironment{exnote}[1][]%
+{\par\noindent\hrule\smallskip{\bf Note: }\small}
+{\smallskip\hrule}
+\else%ifexnotes
+\newxcomment[]{exnote}
+\fi%ifexnotes
+\ifhints
+\newenvironment{hint}[1][]%
+{\par\noindent\hrule\smallskip{\bf Hint: }\small}
+{\smallskip\hrule}
+\else%ifhints
+\newxcomment[]{hint}
+\fi%ifhints
+\define@key{inclprob}{pts}{\def\incl@prob@pts{#1}}
+\define@key{inclprob}{min}{\def\incl@prob@min{#1}}
+\define@key{inclprob}{title}{\def\incl@prob@title{#1}}
+\newcommand{\includeproblem}[2][]{\bgroup\setkeys{inclprob}{#1}\input{#2}\egroup}
+\def\pts#1{\ifpts\marginpar{#1 pt}\fi}
+\def\minutes#1{\ifpts\marginpar{#1 pt}\fi} %redefined from \min because MK overwrote standard Latex commands agains
+\def\ptsmsg{\ifpts\message{Total: \arabic{pts} points}\fi}
+\def\minmsg{\ifmin\message{Total: \arabic{min} minutes}\fi}
+\newcounter{pts}\newcounter{min}
+\def\show@pts{% show the points, if desired
+\@ifundefined{incl@prob@pts}% if no points are given from the outside
+{\@ifundefined{problem@pts}% if also no points are given locally
+{}% do nothing, else show and add
+{\ifpts\marginpar{\problem@pts pt}\addtocounter{pts}{\problem@pts}\fi}}
+{\ifpts\marginpar{\incl@prob@pts pt}\addtocounter{pts}{\incl@prob@pts}\fi}}
+\def\show@min{% show the minutes, if desired
+\@ifundefined{incl@prob@min}% if no minute sare given from the outside
+{\@ifundefined{problem@min}% if also no minutes are given locally
+{}% do nothing, else show and add
+{\ifmin\marginpar{\problem@min min}\addtocounter{min}{\problem@min}\fi}}
+{\ifmin\marginpar{\incl@prob@min min}\addtocounter{min}{\incl@prob@min}\fi}}
+\endinput
+%%
+%% End of file `problem.sty'.
diff --git a/omdoc-semantics/macros/technix_center.dic b/omdoc-semantics/macros/technix_center.dic
new file mode 100644
index 0000000000000000000000000000000000000000..3225eaace4b5a45e2efc9d0f160b4ec8874528d9
--- /dev/null
+++ b/omdoc-semantics/macros/technix_center.dic
@@ -0,0 +1,8 @@
+7
+comorphism
+defi
+Diaconescu
+functoriality
+codomain
+supremum
+tightitemize
diff --git a/omdoc-semantics/macros/theorems.sty b/omdoc-semantics/macros/theorems.sty
new file mode 100644
index 0000000000000000000000000000000000000000..2697f29cf9dd5c03ba23865e22dd15d508cb19a1
--- /dev/null
+++ b/omdoc-semantics/macros/theorems.sty
@@ -0,0 +1,52 @@
+%Theorems
+\newif\ifllncs
+
+\DeclareOption{book}{\theoremstyle{plain}\newtheorem{theorem}{Theorem}[chapter]}
+\DeclareOption{nobook}{\theoremstyle{plain}\newtheorem{theorem}{Theorem}[section]}
+\DeclareOption{llncs}{\llncstrue}
+
+\newcommand{\theorems@mark}{}
+\DeclareOption{mark}{
+\renewcommand{\theorems@mark}{
+\markEnv{definition}
+\markEnv{theorem}
+\markEnv{example}
+\markEnv{remark}
+\markEnv{notation}
+}
+}
+
+\ProcessOptions
+
+\ifllncs
+%\newenvironment{notation}[1][]{}{}
+%\newenvironment{terminology}[1][]{}{}
+\spnewtheorem{notation}{Notation}{\itshape}{\rmfamily}
+\spnewtheorem{terminology}{Terminology}{\itshape}{\rmfamily}
+\newcommand{\myqed}{\qed}
+\else
+\newtheorem{lemma}[theorem]{Lemma}
+\theoremstyle{definition}
+\newtheorem{definition}[theorem]{Definition}
+\theoremstyle{remark}
+\newtheorem{example}[theorem]{Example}
+\newtheorem{notation}[theorem]{Notation}
+\newtheorem{terminology}[theorem]{Terminology}
+\newtheorem{remark}[theorem]{Remark}
+\newcommand{\myqed}{}
+\fi
+
+\RequirePackage{framed}
+\newenvironment{marked}{%
+  \def\FrameCommand{\vrule width 1pt \hspace{5pt}}%
+  \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+
+\newcommand{\markEnv}[1]{%
+\expandafter\let\csname theorems@#1\expandafter\endcsname\csname#1\endcsname% \begin{theorems@#1} = \begin{#1}
+\expandafter\let\csname theorems@end#1\expandafter\endcsname\csname end#1\endcsname% \begin{theorems@end#1} = \end{#1}
+\renewenvironment{#1}{\begin{marked}\begin{theorems@#1}}{\end{theorems@#1}\end{marked}}%
+}
+
+%% handle the mark option
+\theorems@mark
\ No newline at end of file
diff --git a/omdoc-semantics/macros/twelf-math.sty b/omdoc-semantics/macros/twelf-math.sty
new file mode 100644
index 0000000000000000000000000000000000000000..4bb5b7132f66c2dcee3a900609e3cb0cf1e82511
--- /dev/null
+++ b/omdoc-semantics/macros/twelf-math.sty
@@ -0,0 +1,89 @@
+\newif\iflfsyntax
+\DeclareOption{lfsyntax}{\lfsyntaxtrue}
+\ProcessOptions
+
+% key words
+\newcommand{\lfkw}[1]{\%\texttt{#1}}
+
+% Strangely, ooptional arguments in the \t... commands don't work. They seem to conflict with \multicolumn
+
+% customizable parts (use renewcommand to set)
+\newcommand{\dotatend}{} % placed at the end of a declaration
+\newcommand{\assigoperator}{:=} % operator in assignments
+
+% environment and commands for Twelf signatures, include "\\" after every declarations
+\newenvironment{twelfsig}{\par\medskip\begin{tabular}{@{\tb}lllr}}{\end{tabular}\medskip\par}
+\newenvironment{twelfdecls}{\par\medskip\begin{tabular}{lllr}}{\end{tabular}\medskip\par}
+\newcommand{\tnamespace}[2]{\multicolumn{4}{l}{$\lfkw{namespace}\;\ifnonempty{#1}{#1=\;} "\mathtt{#2}"\dotatend$}} % \tnamespace[PREFIX]{URI}
+\newcommand{\tcomment}[1]{\multicolumn{4}{r}{{\color{gray}\%\%\;#1}}} % \tcomment{COMMENT}
+\newcommand{\tsig}[1]{\multicolumn{3}{l}{$\lfkw{sig}\;#1\;=\;\{$}} % \tsig{NAME}
+\newcommand{\tview}[3]{\multicolumn{3}{l}{$\lfkw{view}\;#1\;:#2\;\arr#3\;=\{$}} % \tview{NAME}{FROM}{TO}
+\newcommand{\trel}[3]{\multicolumn{3}{l}{$\lfkw{rel}\;#1:\fold{\times}{#2}\ifnonempty{#3}{:#3}\;=\{$}} % \trel{NAME}{MORPHS}{FROM\arr TO}
+\newcommand{\tstruct}[3]{\multicolumn{4}{@{\tb}l}{$\lfkw{struct}\;#2\;:#3\ifnonempty{#1}{\;=\{#1\}}\dotatend$}} % \tstruct[SIGMA]{s}{S}
+\newcommand{\tinclude}[2]{\multicolumn{3}{@{\tb}l}{$\lfkw{include}\;#1$\ifnonempty{#2}{ #2}\dotatend}} % \tinclude{S}{OPEN}
+% \newcommand{\tmodend}{\multicolumn{3}{l}{$\}$}} deprecated
+\newcommand{\tsigend}{\multicolumn{3}{l}{$\}\dotatend$}} % \tsigend
+\newcommand{\tviewend}{\multicolumn{3}{l}{$\}\dotatend$}} % \tviewend
+\newcommand{\trelend}{\multicolumn{3}{l}{$\}\dotatend$}} % \trelend
+
+\newcommand{\tcolon}{& \ensuremath{:} &}
+\newcommand{\tequal}{\ensuremath{=}}
+\newcommand{\tcoleq}{& \ensuremath{\assigoperator} &}
+\newcommand{\tnl}{$\\ & & $} % newline within the type/definiens of \decl
+\newcommand{\decl}[3][]{$#2$\tcolon $#3$\dotatend & #1} % \decl[COMMENTorFIXITY]{c}{F}
+\newcommand{\decldef}[4][]{$#2$\tcolon $#3\tequal #4$\dotatend & #1} % \decl[COMMENTorFIXITY]{c}{F}{f}
+\newcommand{\decldefnl}[4][]{$#2$\tcolon $#3$ \\ & \tequal & $#4$\dotatend & #1} % \decl[COMMENTorFIXITY]{c}{F}{f}
+\newcommand{\assig}[2]{$#1$ \tcoleq $#2$}      % \assig{c}{E}
+\newcommand{\assigs}[3][]{\lfkw{struct} $#2\ifnonempty{#1}{:#1}$\tcoleq $#3$} % \assigs[R]{s}{\mu}
+\newcommand{\assigi}[2][]{\lfkw{include} $\ifnonempty{#1}{#1}$ \tcoleq $#2$} % \assigi[R]{s}{\mu}
+
+\newcommand{\textension}[2]{\multicolumn{3}{l}{$\lfkw{extension}\;#1 = #2$}}
+\newcommand{\tpragmatic}[3]{\multicolumn{3}{l}{$#2\;#1\;\fold{\,}{#3}$}}
+
+% inline versions of the above, to be called in math mode
+\newcommand{\itnamespace}[2][]{\lfkw{namespace}\;\ifnonempty{#1}{#1=\;} "#2"}
+\newcommand{\itnamespacethis}{\lfkw{namespace}}
+\newcommand{\itcomment}[1]{{\color{gray}\%\%\;#1}}
+\newcommand{\itsig}[2]{\lfkw{sig}\; #1\;=\;\{#2\}}
+\newcommand{\itview}[4]{\lfkw{view}\; #1\;:#2\;\arr#3\;=\{#4\}}
+\newcommand{\itrel}[4][]{\lfkw{rel}\; #2\;:\fold{\times}{#3}\ifnonempty{#1}{:#1}\;=\{#4\}}
+\newcommand{\itinclude}[3][]{\lfkw{include}\; \ifnonempty{#1}{ #1 := }#2\ifnonempty{#3}{ #3}}
+\newcommand{\idecl}[2]{#1:#2}
+\newcommand{\iassig}[2]{#1:=#2}
+\newcommand{\iassigs}[3][]{\lfkw{struct}\;#2\ifnonempty{#1}{:#1}:=#3}
+\newcommand{\iassigi}[2][]{\lfkw{include}\;\ifnonempty{#1}{#1}:=#2}
+\newcommand{\itstruct}[3][]{\lfkw{struct}\; #2\;:#3\ifnonempty{#1}{\;=\{#1\}}}
+
+% fixity declarations
+\newcommand{\infix}[3][]{\lfkw{infix} #2\ifnonempty{#3}{ #3}\ifnonempty{#1}{ #1}}
+\newcommand{\prefix}[2][]{\lfkw{prefix} #2\ifnonempty{#1}{ #1}}
+
+% expressions
+\newcommand{\type}{\mathtt{type}}
+\newcommand{\kind}{\mathtt{kind}}
+\iflfsyntax
+  \newcommand{\tPi}[2][]{\Pi_{#2\ifnonempty{#1}{:#1}}\,}
+  \newcommand{\tlam}[2][]{\lambda_{#2\ifnonempty{#1}{:#1}}\,}
+\else
+  \newcommand{\tPi}[2][]{\{#2\ifnonempty{#1}{:#1}\}\,}
+  \newcommand{\tlam}[2][]{[#2\ifnonempty{#1}{:#1}]\,}
+\fi
+\newcommand{\tPis}[2][]{\{#2\ifnonempty{#1}{:#1}\}\,}
+\newcommand{\tlams}[2][]{[#2\ifnonempty{#1}{:#1}]\,}
+
+% identifiers
+\newcommand{\mpath}[2]{#1.#2}
+\newcommand{\ma}[2]{#1^{#2}}
+\newcommand{\mc}[3]{#1.#2^{#3}}
+
+% judgments
+%\newcommand{\issig}[1]{\der #1\;\mathtt{Sig}} %well-formed signature
+%\newcommand{\iscont}[2]{\der_{#1} #2\;\mathtt{Ctx}} %well-formed context
+%\newcommand{\issubs}[4]{\der_{#1}#4:#2\arr #3} %well-formed substitution from #2 into #3
+%\newcommand{\iskind}[3]{#2\der_{#1} #3\;\mathtt{kind}} %well-formed kind
+%\newcommand{\oftype}[4]{#2\der_{#1} #3:#4} %typing judgment
+
+%hiding
+\newcommand{\thide}{\lfkw{hide}}
+\newcommand{\ihide}[1]{\thide\;#1}
+\newcommand{\ihides}[1]{\thide\;\lfkw{struct}\;#1}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/twelf.sty b/omdoc-semantics/macros/twelf.sty
new file mode 100644
index 0000000000000000000000000000000000000000..e75b838935583bdae6b6b72ad169f52b5b0622f9
--- /dev/null
+++ b/omdoc-semantics/macros/twelf.sty
@@ -0,0 +1,11 @@
+\RequirePackage{xcolor}
+\RequirePackage{listings}
+\lstdefinelanguage{Twelf}{alsoletter={\%},
+  keywords=[1]{type},keywords=[2]{\%namespace,\%sig,\%struct,\%view,\%include,\%open,\%as,\%infix,\%prefix},
+  otherkeywords={:,=,:=,->,[,],\{,\}},
+  comment=[l]\%\%,morecomment=[s]{\%\{}{\}\%},
+  literate={\ ->\ }{{\ }{$\to$}{\ }}4{\ <-\ }{{\ }{$\leftarrow$}{\ }}4
+}
+\lstset{basicstyle=\footnotesize,breaklines,mathescape,columns=[c]fixed,
+  language=Twelf,keywordstyle=,keywordstyle=[2]\bf,commentstyle=\color{gray},
+  emphstyle=[1]\color{red},emphstyle=[2]\color{blue},emphstyle=[3]\color{olive}}
\ No newline at end of file
diff --git a/omdoc-semantics/macros/typetheory.sty b/omdoc-semantics/macros/typetheory.sty
new file mode 100644
index 0000000000000000000000000000000000000000..46b7b599559bd4f69de79b54440d5ab8469a7895
--- /dev/null
+++ b/omdoc-semantics/macros/typetheory.sty
@@ -0,0 +1,30 @@
+%flat
+\newcommand{\emptysig}{\cdot} %empty signature
+\providecommand{\emptycon}{\cdot} %empty context
+\newcommand{\decl}[2]{#1\!:\!#2}
+\newcommand{\declo}[2]{\decl{\op{#1}}{#2}} %first argument is not a meta-variable; then different font
+\renewcommand{\P}[2]{\Pi_{#1:#2}\,}
+\newcommand{\lam}[2]{\lambda_{#1:#2}\,}
+\renewcommand{\S}[2]{\Sigma_{#1:#2}\,}
+\newcommand{\pair}[2]{\rang{#1,#2}}
+\newcommand{\kity}{\mathtt{type}}
+\newcommand{\kiki}{\mathtt{kind}}
+\newcommand{\subap}[2]{#1(#2)}
+\newcommand{\subapexpl}[2]{#1[#2]}
+%EVIL; do not use \renewcommand
+\renewcommand{\sb}[2]{#1/#2} %Syntax: \sb{x}{t}
+\newcommand{\subapo}[3]{\subapexpl{#1}{\sb{#2}{#3}}}
+
+%Judgements
+\newcommand{\issig}[1]{\der #1\;\mathtt{Sig}} %well-formed signature
+\newcommand{\iscont}[2]{\der_{#1} #2\;\mathtt{Ctx}} %well-formed context
+\newcommand{\issubs}[4]{\der_{#1}#4:#2\arr #3} %well-formed substitution from #2 into #3
+\newcommand{\iskind}[3]{#2\der_{#1} #3\;\kiki} %well-formed kind
+\newcommand{\oftype}[4]{#2\der_{#1} #3:#4} %typing judgment
+\newcommand{\Ciskind}[2]{\der_{#1} #2\;\kiki} %closed kind
+\newcommand{\Coftype}[3]{\der_{#1} #2:#3} %closed term
+\newcommand{\oftypeval}[5]{#1,#2\der #3\equiv #5:#4} %typing and equality
+\newcommand{\Coftypeval}[4]{\der_{#1} #2\equiv #4:#3} %closed term with typing and equality
+
+\newcommand{\ext}[2]{\ov{#1}\left(#2\right)}
+\newcommand{\extf}[1]{\ov{#1}}
diff --git a/omdoc-semantics/paper.tex b/omdoc-semantics/paper.tex
index 0f89a3588a3ac171e9a915024a3fbd29f4079ddd..e182e58323349b14bded53f468ad0fee88823e44 100644
--- a/omdoc-semantics/paper.tex
+++ b/omdoc-semantics/paper.tex
@@ -57,9 +57,6 @@
 %\usepackage{arydshln} % dashed lines in tables
 %\usepacakge{tabularx} % for columns that stretch
 \usepackage{xspace}
-\usepackage[eso-foot,today, final]{svninfo}
-\svnInfo $Id: paper.tex 197 2014-09-16 21:00:52Z miancu $
-\svnKeyword $HeadURL: https://svn.kwarc.info/repos/miancu/omdoc-semantics/paper.tex $
 
 \setlength{\hfuzz}{3pt} \hbadness=10001
 \setcounter{tocdepth}{2} % for pdf bookmarks
diff --git a/omdoc-semantics/phenomena.tex b/omdoc-semantics/phenomena.tex
index e49591d8f5fc90d96fc798d79b9e4d7834f94e97..90b6d41c54e50f31d221983fa260c01efa232cc5 100644
--- a/omdoc-semantics/phenomena.tex
+++ b/omdoc-semantics/phenomena.tex
@@ -1,6 +1,3 @@
-\svnInfo $Id: phenomena.tex 197 2014-09-16 21:00:52Z miancu $
-\svnKeyword $HeadURL: https://svn.kwarc.info/repos/miancu/omdoc-semantics/phenomena.tex $
- 
 Common Mathematical Language (CML) is the sublanguage of natural language used for
 expressing mathematical knowledge. Like any sublanguage, it has developed particular
 linguistic devices that make it more suitable for expressing mathematical thoughts and
@@ -45,11 +42,11 @@ measured by their subjectively perceived beauty rather than their precision or e
 correctness.
 
 Therefore, in practice, the form of each narrative projection of mathematical results
-depends on notational, didactic and linguistic considerations. It is an important
+depends on notational, didactic, and linguistic considerations. It is an important
 observation that mathematical texts can only be understood as a projection of abstract
 mathematical results. This is of course true for any language as it is just a code for
-encoding information.  However, in mathematics, the background knowledge is crucial because
-mathematical texts often require a more active reader.
+encoding information.  However, in mathematics, the background knowledge is crucial
+because mathematical texts often require a more active reader.
 
 In the interest of conciseness, mathematical discourse may carry that to an extreme. In
 practice, ambiguities are accepted if they can be resolved from the context. The correct
@@ -154,8 +151,8 @@ in linguistics) and the second as a \emph{propositional restriction}; we disting
 as they are usually handled differently in reasoning: types are built into the
 substitution mechanism (type checking, usually kept implicit), whereas propositional
 restrictions are subject to the general reasoning process. The declaration
-\nlex{$x,y\in\mathbb{R}$ with $|x-y|\leq\delta$} has a compound restriction and is
-placed after $x$ and $y$ have been used; a rather common practice used to make the syntactic
+\nlex{$x,y\in\mathbb{R}$ with $|x-y|\leq\delta$} has a compound restriction and is placed
+after $x$ and $y$ have been used; a rather common practice used to make the syntactic
 structure of the assertion easier to comprehend. For verbalized binders, the scoping of
 introduced identifiers is often ambiguous.  For instance, in (\ref{ex:scope}) the scope of
 $n$ extends to the second sentence. The fact that the construction is that of a ``donkey
@@ -219,7 +216,7 @@ also be extended to most infix binary operators in the presence of associativity
 
 \phenomenon[statements]{Mathematical Statements} At the discourse level, CML is more
 explicit in delineating the role of important paragraphs than common natural language.
-Definitions, theorems, lemmas, corollaries, examples, or proofs are often marked up --
+Definitions, theorems, lemmata, corollaries, examples, or proofs are often marked up --
 even in informal text -- using specific fonts, emphasis or keywords and numbers for
 referencing.  Moreover, statements often have specific relations to others depending on
 their type. For instance, a proof proves an assertion, a definition defines one or more
diff --git a/omdoc-semantics/requirements.tex b/omdoc-semantics/requirements.tex
index 7046241bb5a1f486dbb25fb21de0ce62dfacb4a0..ac75181af24ba7fb48e8a914ba9976eb9e7d3264 100644
--- a/omdoc-semantics/requirements.tex
+++ b/omdoc-semantics/requirements.tex
@@ -1,6 +1,3 @@
-\svnInfo $Id: requirements.tex 197 2014-09-16 21:00:52Z miancu $
-\svnKeyword $HeadURL: https://svn.kwarc.info/repos/miancu/omdoc-semantics/requirements.tex $
- 
 In this section, we will develop some additional requirements for semantic target
 formats. These come from management, efficiency, and interoperability considerations
 induced by the observation that linguistic studies of mathematical documents is a niche
diff --git a/omdoc-semantics/tikz/externals.txt b/omdoc-semantics/tikz/externals.txt
new file mode 100644
index 0000000000000000000000000000000000000000..31a6f6f15678c8b0bb00910ae6a8da0b7fac351c
--- /dev/null
+++ b/omdoc-semantics/tikz/externals.txt
@@ -0,0 +1,3 @@
+omdoc https://tnt.kwarc.info/repos/stc/slides/omdoc/tikz
+mathml https://tnt.kwarc.info/repos/stc/slides/mathml/tikz
+planetary https://tnt.kwarc.info/repos/stc/slides/planetary/tikz
diff --git a/omdoc-semantics/tikz/mathml/Makefile b/omdoc-semantics/tikz/mathml/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f17302d922b27e5a6136f41c24dde9b2a76f8eec
--- /dev/null
+++ b/omdoc-semantics/tikz/mathml/Makefile
@@ -0,0 +1,3 @@
+STCDIR ?= ../../..
+BUTFILES = template.tex
+include $(STCDIR)/lib/make/Makefile.tikz
diff --git a/omdoc-semantics/tikz/mathml/all.pdf b/omdoc-semantics/tikz/mathml/all.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..17a24f8930eb0509909551edb43e9b7c80006e73
Binary files /dev/null and b/omdoc-semantics/tikz/mathml/all.pdf differ
diff --git a/omdoc-semantics/tikz/mathml/all.tex b/omdoc-semantics/tikz/mathml/all.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c0d3cef4ff68863bdbd996fb08a40af39146f7e4
--- /dev/null
+++ b/omdoc-semantics/tikz/mathml/all.tex
@@ -0,0 +1,41 @@
+\documentclass[notes]{mikoslides}
+\usepackage{amsmath,amssymb,eurosym,wasysym,multirow,paralist}
+\usepackage{lststex,lstomdoc}
+\usepackage{stc-smglom}
+\usepackage{ded,calbf,url,rotating}
+\usepackage{wrapfig,colortbl,wasysym}
+\usepackage[show]{ed}
+\usetikzlibrary{shapes}
+\usetikzlibrary{shadows}
+\usetikzlibrary{patterns}
+\usetikzlibrary{arrows}
+\usetikzlibrary{backgrounds}
+\usetikzlibrary{mmt}
+\usetikzlibrary{tikzmark}
+\usetikzlibrary{decorations,decorations.markings,decorations.text}
+\input{../../../lib/paths}
+\input{\MathHub{lib/etc/WApersons}}
+\coolurion
+\usepackage[bookmarks,linkcolor=black,citecolor=black,urlcolor=black,colorlinks,breaklinks,bookmarksopen,bookmarksnumbered]{hyperref}
+\begin{document}
+\begin{center}\LARGE File: \url{ctree-parallel.tex}\end{center}
+\input{ctree-parallel}\newpage
+\begin{center}\LARGE File: \url{functional-markup.tex}\end{center}
+\input{functional-markup}\newpage
+\begin{center}\LARGE File: \url{layout-schemata.tex}\end{center}
+\input{layout-schemata}\newpage
+\begin{center}\LARGE File: \url{parallel-xml.tex}\end{center}
+\input{parallel-xml}\newpage
+\begin{center}\LARGE File: \url{parallel.tex}\end{center}
+\input{parallel}\newpage
+\begin{center}\LARGE File: \url{ptree-parallel.tex}\end{center}
+\input{ptree-parallel}\newpage
+\bibliographystyle{alpha}
+\bibliography{kwarc}
+\printindex
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
+\end{document}
diff --git a/omdoc-semantics/tikz/mathml/ctree-parallel.png b/omdoc-semantics/tikz/mathml/ctree-parallel.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb9892b54966fbaba2b87add707eea70829b1e44
Binary files /dev/null and b/omdoc-semantics/tikz/mathml/ctree-parallel.png differ
diff --git a/omdoc-semantics/tikz/mathml/ctree-parallel.tex b/omdoc-semantics/tikz/mathml/ctree-parallel.tex
new file mode 100644
index 0000000000000000000000000000000000000000..876ff281ead234814cfc743856563ad170478f7b
--- /dev/null
+++ b/omdoc-semantics/tikz/mathml/ctree-parallel.tex
@@ -0,0 +1,77 @@
+\documentclass{standalone}
+\usepackage{tikz}
+% put any importmodules into the preamble
+\begin{document}
+\begin{tikzpicture} 
+% product 
+\node (c1f) at (4,1) {$f$};
+\node (c1a1) at (5,2) {$*$};
+\node (c1a2) at (6,1) {$@$};
+\node (c1p) at (5,0) {$+$};
+\node (c1a) at (6,0) {$a$};
+\node (c1b) at (7,0) {$b$};
+\draw (c1a1) -- (c1f);
+\draw (c1a1) -- (c1a2);
+\draw (c1a2) -- (c1p);
+\draw (c1a2) -- (c1a);
+\draw (c1a2) -- (c1b);
+% presentation tree
+\node (p1f) at (0,1) {$f$};
+\node (p1a1) at (1,2) {row};
+\node (p1a2o) at (1.3,1) {$($};
+\node (p1a2) at (2,1) {row};
+\node (p1a2c) at (2.7,1) {$)$};
+\node (p1o) at (.7,0) {$($};
+\node (p1a) at (1.3,0) {$a$};
+\node (p1p) at (2,0) {$+$};
+\node (p1b) at (2.7,0) {$b$};
+\node (p1c) at (3.4,0) {$)$};
+\draw (p1a1) -- (p1f);
+\draw (p1a1) -- (p1a2o);
+\draw (p1a1) -- (p1a2);
+\draw (p1a1) -- (p1a2c);
+\draw (p1a2) -- (p1p);
+\draw (p1a2) -- (p1a);
+\draw (p1a2) -- (p1b);
+\draw (p1a2) -- (p1o);
+\draw (p1a2) -- (p1c);
+\draw[<-,green,dashed] (c1f) to[out=195,in=-15] (p1f);
+\draw[<-,green,dashed] (c1a1) to[out=195,in=-15] (p1a1);
+\draw[<-,green,dashed] (c1a2) to[out=195,in=-15] (p1a2);
+\draw[<-,green,dashed] (c1p) to[out=195,in=-15] (p1p);
+\draw[<-,green,dashed] (c1a) to[out=195,in=-15] (p1a);
+\draw[<-,green,dashed] (c1b) to[out=195,in=-15] (p1b);
+% presentation tree2
+\node (p2f) at (8,1) {$f$};
+\node (p2t) at (8.65,1) {$\cdot$};
+\node (p2a1) at (9,2) {row};
+\node (p2a2o) at (9.3,1) {$($};
+\node (p2a2) at (10,1) {row};
+\node (p2a2c) at (10.7,1) {$)$};
+\node (p2o) at (8.7,0) {$($};
+\node (p2a) at (9.3,0) {$a$};
+\node (p2p) at (10,0) {$+$};
+\node (p2b) at (10.7,0) {$b$};
+\node (p2c) at (11.4,0) {$)$};
+\draw (p2a1) -- (p2f);
+\draw (p2a1) -- (p2t);
+\draw (p2a1) -- (p2a2o);
+\draw (p2a1) -- (p2a2);
+\draw (p2a1) -- (p2a2c);
+\draw (p2a2) -- (p2p);
+\draw (p2a2) -- (p2a);
+\draw (p2a2) -- (p2b);
+\draw (p2a2) -- (p2o);
+\draw (p2a2) -- (p2c);
+\draw[<-,green,dashed] (c1f) to[out=15,in=165] (p2f);
+\draw[<-,green,dashed] (c1a1) to[out=15,in=165] (p2a1);
+\draw[<-,green,dashed] (c1a2) to[out=15,in=165] (p2a2);
+\draw[<-,green,dashed] (c1p) to[out=15,in=165] (p2p);
+\draw[<-,green,dashed] (c1a) to[out=15,in=165] (p2a);
+\draw[<-,green,dashed] (c1b) to[out=15,in=165] (p2b);
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/mathml/functional-markup.png b/omdoc-semantics/tikz/mathml/functional-markup.png
new file mode 100644
index 0000000000000000000000000000000000000000..b0e173d8f16fe491886ebbdb071e65d0770d3222
Binary files /dev/null and b/omdoc-semantics/tikz/mathml/functional-markup.png differ
diff --git a/omdoc-semantics/tikz/mathml/functional-markup.tex b/omdoc-semantics/tikz/mathml/functional-markup.tex
new file mode 100644
index 0000000000000000000000000000000000000000..0381c5823a1a5f2719db146df2516d2397c7a3fe
--- /dev/null
+++ b/omdoc-semantics/tikz/mathml/functional-markup.tex
@@ -0,0 +1,41 @@
+\documentclass{standalone}
+\usepackage{stex,lstomdoc}
+\usepackage{tikz,amstext}
+\input{../../../lib/paths}
+% put any importmodules into the preamble
+\begin{document}
+\lstset{language=MathML}
+  \begin{tikzpicture}
+    \node (app1) at (2,4) {@};
+    \node (3) at (2,2.5){3};
+    \node (app2) at (3,2.5) {@}; 
+    \node (div) at (1,2.5){/};
+    \node (+) at (2,1.5) {+};
+    \node (x) at (3,1.5) {x};
+    \node (2) at (4,1.5) {2};
+    \draw (app1) -- (div);
+    \draw (app1) -- (3);
+    \draw (app1) -- (app2);
+    \draw (app2) -- (x);
+    \draw (app2) -- (+);
+    \draw (app2) -- (2);
+
+    \node (capp1) at (7.5,4) {\lstinline!<apply>...</apply>!};
+    \node (cdiv) at (5.5,3) {\lstinline!<div/>!};
+    \node (c3) at (7.5,3) {\lstinline!<cn>3</cn>!};
+    \node (capp2) at (9,2.5) {\lstinline!<apply>...</apply>!};
+    \node (c+) at (6.5,1.5) {\lstinline!<plus/>!};
+    \node (cx) at (9,1.5) {\lstinline!<ci>x</ci>!};
+    \node (c2) at (11.5,1.5) {\lstinline!<mn>2</mn>!};
+    \draw (capp1) -- (c3);
+    \draw (capp1) -- (cdiv);
+    \draw (capp1) -- (capp2);
+    \draw (capp2) -- (cx);
+    \draw (capp2) -- (c+);
+    \draw (capp2) -- (c2);
+  \end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/mathml/layout-schemata.png b/omdoc-semantics/tikz/mathml/layout-schemata.png
new file mode 100644
index 0000000000000000000000000000000000000000..857607ec0a223e1285b6023e5d077239656d79ad
Binary files /dev/null and b/omdoc-semantics/tikz/mathml/layout-schemata.png differ
diff --git a/omdoc-semantics/tikz/mathml/layout-schemata.tex b/omdoc-semantics/tikz/mathml/layout-schemata.tex
new file mode 100644
index 0000000000000000000000000000000000000000..1041bd77a1368611069687ae944963b0b8b2253b
--- /dev/null
+++ b/omdoc-semantics/tikz/mathml/layout-schemata.tex
@@ -0,0 +1,37 @@
+\documentclass{standalone}
+\usepackage{stex,lstomdoc}
+\usepackage{tikz,amstext}
+\input{../../../lib/paths}
+% put any importmodules into the preamble
+\begin{document}
+  \begin{tikzpicture}
+    \tikzstyle{layout} = [draw,line width=1.5pt,color=blue];
+    \node[layout] (frac) at (2.5,4) {$\fbox{3}\over\hbox{\fbox{(x+2)}}$};
+    \node[layout] (3) at (1,2.5){3};
+    \node[layout] (fence) at (3,2.5) {\fbox{(}\kern1pt\fbox{x+2}\kern1pt\fbox{)}};
+    \node[layout] (x) at (2,1.5) {x};
+    \node[layout] (+) at (3,1.5) {+};
+    \node[layout] (2) at (4,1.5) {2};
+    \draw (frac) -- (3);
+    \draw (frac) -- (fence);
+    \draw (fence) -- (x);
+    \draw (fence) -- (+);
+    \draw (fence) -- (2);
+
+    \node (mfrac) at (7.5,4) {\lstinline!<mfrac>...</mfrac>!};
+    \node (m3) at (6.5,3) {\lstinline!<mn>3</mn>!};
+    \node (mfence) at (9,2.5) {\lstinline!<mfenced>...</mfenced>!};
+    \node (mx) at (6.5,1.5) {\lstinline!<mi>x</mi>!};
+    \node (m+) at (9,1.5) {\lstinline!<mo>+</mo>!};
+    \node (m2) at (11.5,1.5) {\lstinline!<mn>2</mn>!};
+    \draw (mfrac) -- (m3);
+    \draw (mfrac) -- (mfence);
+    \draw (mfence) -- (mx);
+    \draw (mfence) -- (m+);
+    \draw (mfence) -- (m2);
+  \end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/mathml/parallel-xml.png b/omdoc-semantics/tikz/mathml/parallel-xml.png
new file mode 100644
index 0000000000000000000000000000000000000000..b97aec4de77d18e18864a08ca35de75536659a99
Binary files /dev/null and b/omdoc-semantics/tikz/mathml/parallel-xml.png differ
diff --git a/omdoc-semantics/tikz/mathml/parallel-xml.tex b/omdoc-semantics/tikz/mathml/parallel-xml.tex
new file mode 100644
index 0000000000000000000000000000000000000000..094279d07b267ac6948ae6831b26b78b11512236
--- /dev/null
+++ b/omdoc-semantics/tikz/mathml/parallel-xml.tex
@@ -0,0 +1,51 @@
+\documentclass{standalone}
+\usepackage{stex,lstomdoc}
+\usepackage{tikz,amstext}
+\input{../../../lib/paths}
+% put any importmodules into the preamble
+\begin{document}
+\def\layoutbox{\node[draw,line width=2pt,color=blue]}
+ \begin{tikzpicture}[scale=.7]\footnotesize
+    \node (semantics) at (6,6) {\lstinline!<semantics>...</semantics>!};
+    \node (ann) at (8,5) {\lstinline!<annotation-xml>...</annotation-xml>!};
+    \node (mfrac) at (1.5,4) {\blue{\lstinline!<mfrac id="M">...</mfrac>!}};
+    \node (m3) at (0.5,3) {\lstinline!<mn id="3">3</mn>!};
+    \node (mfence) at (3,2) {\lstinline!<mfenced id="f">...</mfenced>!};
+    \node (mx) at (0.5,0) {\lstinline!<mi id="x">x</mi>!};
+    \node (m+) at (3,1) {\lstinline!<mo id="p">+</mo>!};
+    \node (m2) at (5.5,-1) {\lstinline!<mn id="2">2</mn>!};
+    \node (apply) at (9.5,4) {\lstinline!<apply href="M">...</apply>!};
+    \node (divides) at (7.5,3) {\lstinline!<divide/>!};
+    \node (c3) at (11.5,3) {\lstinline!<ci href="3">3<ci/>!};
+    \node (apply2) at (9.5,2) {\lstinline!<apply href="f">...</apply>!};
+    \node (plus) at (7.5,1) {\lstinline!<plus href="p"/>!};
+    \node (cx) at (9.5,0) {\lstinline!<ci href="x">x</ci>!};
+    \node (c2) at (11.5,-1) {\lstinline!<cn href="2">2</cn>!};
+
+    \draw (semantics) -- (ann);
+    \draw (semantics) -- (mfrac);
+    \draw (mfrac) -- (m3);
+    \draw (mfrac) -- (mfence);
+    \draw (mfence) -- (mx);
+    \draw (mfence) -- (m+);
+    \draw (mfence) -- (m2);
+    \draw (ann) -- (apply);
+    \draw (apply) -- (divides);
+    \draw (apply) -- (apply2);
+    \draw (apply) -- (c3);
+    \draw (apply2) -- (plus);
+    \draw (apply2) -- (cx);
+    \draw (apply2) -- (c2);
+
+    \draw[->,dashed,color=green,line width=.5pt] (1.4,4.2) .. controls +(up:.5cm) and +(up:.5cm)  .. (9.5,4.1);
+    \draw[->,dashed,color=green,line width=.5pt] (.7,3.2) .. controls +(up:.5cm) and +(up:.5cm)  .. (11,3.2);
+    \draw[->,dashed,color=green,line width=.5pt] (3,2.2) .. controls +(up:.5cm) and +(up:.5cm)  .. (9.3,2.2);
+    \draw[->,dashed,color=green,line width=.5pt] (3.2,1.2) .. controls +(up:.5cm) and +(up:.5cm)  .. (8.3,1.2);
+    \draw[->,dashed,color=green,line width=.5pt] (.7,.2) .. controls +(up:.5cm) and +(up:.5cm)  .. (9.6,.2);
+    \draw[->,dashed,color=green,line width=.5pt] (5.3,-.8) .. controls +(up:.5cm) and +(up:.5cm)  .. (11.4,-.8);
+  \end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/mathml/parallel.png b/omdoc-semantics/tikz/mathml/parallel.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb719c92c8032c2774a0bee62d7e42f48a017ed3
Binary files /dev/null and b/omdoc-semantics/tikz/mathml/parallel.png differ
diff --git a/omdoc-semantics/tikz/mathml/parallel.tex b/omdoc-semantics/tikz/mathml/parallel.tex
new file mode 100644
index 0000000000000000000000000000000000000000..43393ba9d1f9fa6cd2424736fa130cdb0d2e16e9
--- /dev/null
+++ b/omdoc-semantics/tikz/mathml/parallel.tex
@@ -0,0 +1,44 @@
+\documentclass{standalone}
+\usepackage{tikz}
+% put any importmodules into the preamble
+\begin{document}
+  \begin{tikzpicture}
+    \tikzstyle{layout} = [draw,line width=1.5pt,color=blue];
+    \node[layout] (frac) at (2.5,4) {$\fbox{3}\over\hbox{\fbox{(x+2)}}$};
+    \node[layout] (3) at (1,2.5){3};
+    \node[layout] (fence) at (3,2.5) {\fbox{(}\kern1pt\fbox{x+2}\kern1pt\fbox{)}};
+    \node[layout] (x) at (2,1.5) {x};
+    \node[layout] (+) at (3,1.5) {+};
+    \node[layout] (2) at (4,1.5) {2};
+    \draw (frac) -- (3);
+    \draw (frac) -- (fence);
+    \draw (fence) -- (x);
+    \draw (fence) -- (+);
+    \draw (fence) -- (2);
+
+    \node (app1) at (6,4) {@};
+    \node (f3) at (6,2.5){3};
+    \node (app2) at (7,2.5) {@}; 
+    \node (div) at (5,2.5){/};
+    \node (f+) at (6,1.5) {+};
+    \node (fx) at (7,1.5) {x};
+    \node (f2) at (8,1.5) {2};
+    \draw (app1) -- (div);
+    \draw (app1) -- (f3);
+    \draw (app1) -- (app2);
+    \draw (app2) -- (fx);
+    \draw (app2) -- (f+);
+    \draw (app2) -- (f2);
+    
+    \draw[dashed,green] (frac) -- (app1);
+    \draw[dashed,green] (3) to[out=-23,in=203] (f3);
+    \draw[dashed,green] (fence) to[out=10,in=160] (app2);
+    \draw[dashed,green] (+) to[out=-20,in=200] (f+);
+    \draw[dashed,green] (x) to[out=-20,in=200] (fx);
+    \draw[dashed,green] (2) to[out=-20,in=200] (f2);
+  \end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/mathml/ptree-parallel.png b/omdoc-semantics/tikz/mathml/ptree-parallel.png
new file mode 100644
index 0000000000000000000000000000000000000000..8345057192c68d79d427704bfa6566ad920765e9
Binary files /dev/null and b/omdoc-semantics/tikz/mathml/ptree-parallel.png differ
diff --git a/omdoc-semantics/tikz/mathml/ptree-parallel.tex b/omdoc-semantics/tikz/mathml/ptree-parallel.tex
new file mode 100644
index 0000000000000000000000000000000000000000..29a954dbc3f99c0aba69c2e2f25df225f54cb9ec
--- /dev/null
+++ b/omdoc-semantics/tikz/mathml/ptree-parallel.tex
@@ -0,0 +1,72 @@
+\documentclass{standalone}
+\usepackage{tikz}
+% put any importmodules into the preamble
+\begin{document}
+\begin{tikzpicture}[xscale=.85] 
+% presentation tree
+\node (p1f) at (0,1) {$f$};
+\node (p1a1) at (1,2) {row};
+\node (p1a2o) at (1.3,1) {$($};
+\node (p1a2) at (2,1) {row};
+\node (p1a2c) at (2.7,1) {$)$};
+%\node (p1o) at (.7,0) {$($};
+\node (p1a) at (1.0,0) {$a$};
+\node (p1p) at (2,0) {$+$};
+\node (p1b) at (3.0,0) {$b$};
+%\node (p1c) at (3.4,0) {$)$};
+\draw (p1a1) -- (p1f);
+\draw (p1a1) -- (p1a2o);
+\draw (p1a1) -- (p1a2);
+\draw (p1a1) -- (p1a2c);
+\draw (p1a2) -- (p1p);
+\draw (p1a2) -- (p1a);
+\draw (p1a2) -- (p1b);
+%\draw (p1a2) -- (p1o);
+%\draw (p1a2) -- (p1c);
+% product 
+\node (c1a1) at (5,2) {$@$};
+\node (c1t) at (4,1) {$*$};
+\node (c1f) at (5,1) {$f$};
+\node (c1a2) at (6,1) {$@$};
+\node (c1p) at (5,0) {$+$};
+\node (c1a) at (6,0) {$a$};
+\node (c1b) at (7,0) {$b$};
+\draw (c1a1) -- (c1f);
+\draw (c1a1) -- (c1t);
+\draw (c1a1) -- (c1a2);
+\draw (c1a2) -- (c1p);
+\draw (c1a2) -- (c1a);
+\draw (c1a2) -- (c1b);
+\draw[->,green,dashed] (c1f) to[out=165,in=15] (p1f);
+\draw[->,green,dashed] (c1a1) to[out=165,in=15] (p1a1);
+\draw[->,green,dashed] (c1a2) to[out=165,in=15] (p1a2);
+\draw[->,green,dashed] (c1p) to[out=165,in=15] (p1p);
+\draw[->,green,dashed] (c1a) to[out=165,in=15] (p1a);
+\draw[->,green,dashed] (c1b) to[out=165,in=15] (p1b);
+
+% application
+\node (c2f) at (-4,1) {$f$};
+\node (c2a1) at (-3,2) {$@$};
+\node (c2a2) at (-2,1) {$@$};
+\node (c2p) at (-3,0) {$+$};
+\node (c2a) at (-2,0) {$a$};
+\node (c2b) at (-1,0) {$b$};
+\draw (c2a1) -- (c2f);
+\draw (c2a1) -- (c2a2);
+\draw (c2a2) -- (c2p);
+\draw (c2a2) -- (c2a);
+\draw (c2a2) -- (c2b);
+\draw[->,green,dashed] (c2f) to[out=-15,in=195] (p1f);
+\draw[->,green,dashed] (c2a1) to[out=-15,in=195] (p1a1);
+\draw[->,green,dashed] (c2a2) to[out=-15,in=195] (p1a2);
+\draw[->,green,dashed] (c2p) to[out=-15,in=195] (p1p);
+\draw[->,green,dashed] (c2a) to[out=-15,in=195] (p1a);
+\draw[->,green,dashed] (c2b) to[out=-15,in=195] (p1b);
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
+
+% LocalWords:  tikzpicture
diff --git a/omdoc-semantics/tikz/omdoc/Makefile b/omdoc-semantics/tikz/omdoc/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..a8e10aa6991261a8d85be5b9c0056be249642f96
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/Makefile
@@ -0,0 +1,3 @@
+STCDIR ?= ../../..
+BUTFILES = test.tex foo.tex
+include $(STCDIR)/lib/make/Makefile.tikz
diff --git a/omdoc-semantics/tikz/omdoc/adopt-elalg.png b/omdoc-semantics/tikz/omdoc/adopt-elalg.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb017f6ae5da797ebfa3b09b6f920a76df0c5c28
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/adopt-elalg.png differ
diff --git a/omdoc-semantics/tikz/omdoc/adopt-elalg.tex b/omdoc-semantics/tikz/omdoc/adopt-elalg.tex
new file mode 100644
index 0000000000000000000000000000000000000000..5df65a3eef81437226b5fe51b723c9588d754576
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/adopt-elalg.tex
@@ -0,0 +1,49 @@
+\documentclass{standalone}
+\usepackage{tikz,stex}
+\input{../../../lib/paths}
+\usetikzlibrary{mmt}
+\begin{document}
+%\importmodule[\MathHub{talks/omdoc/en/theory-of-theories}]{theory-of-theories}
+\newcommand\thmo[2]{\mathsf{#1}\colon\kern-.15em{#2}}
+\begin{tikzpicture}[xscale=.7,yscale=.9]\scriptsize
+
+  \node[thy] (r) at (5,5.4) {$\mmtthy{AlgRecap}{G,\bullet}{}$};
+  \node[thygraph] (pl) at (5,6.7) {document payload};
+  
+  \node[thy] (sg2) at (1,1) {$\mmtthy{semigroup}{S,\circ}{}$};
+  \node[thy] (mon2) at (1,2.5) {$\mmtthy{monoid}{S,\circ,e}{}$};
+  \node[thy] (grp2) at (1,4) {$\mmtthy{Agroup}{S,\circ,e,\cdot^{-1}}{}$};
+  \node[thy] (ring2) at (1,5.4) {$\mmtthy{ring}{R,+,0,-,*,1}{}$};
+  \node (mu) at (5,3)
+  {$\mu\colon=\scriptscriptstyle\left\{\begin{array}{c}
+       S\mapsto R\\\circ\mapsto *\\e\mapsto 1
+      \end{array}\right\}$};
+
+  \node (alpha) at (5,1.5)
+  {$\alpha\colon=\scriptscriptstyle\left\{\begin{array}{c}
+        S\mapsto R\\\circ\mapsto +\\e\mapsto 0\\\cdot^{-1}\mapsto -
+      \end{array}\right\}$};
+
+  \node (rho) at (5,4.4)  {$\rho\colon=\scriptscriptstyle\left\{\begin{array}{c}
+        G\mapsto R\\\bullet\mapsto\ast
+      \end{array}\right\}$};
+
+  
+  \draw[include](sg2) -- (mon2);
+  \draw[include](mon2) -- (grp2);
+  \draw[struct](mon2) to[out=30,in=330] node[right] {$\thmo{m}{\mu}$} (ring2);
+  \draw[struct](grp2)  -- node[right,near start] {$\thmo{a}{\alpha}$} (ring2);
+
+%  \draw[pinclude] (ring2) to[out=5,in=175] (r);
+  \draw[view] (r) -- node[below] {$\thmo{r}{\rho}$} (ring2);
+  \draw[include] (r) -- (pl);
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
+
+% LocalWords: omdoc newcommand thmo mathsf tikzpicture xscale pl
+% LocalWords:  yscale scriptsize mmtthy AlgRecap thygraph sg2 circ grp2 Agroup
+% LocalWords:  cdot scriptscriptstyle mapsto mapsto mapsto pinclude
diff --git a/omdoc-semantics/tikz/omdoc/all.pdf b/omdoc-semantics/tikz/omdoc/all.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..6770e6c17573251f98dfb840f0f78234010f18eb
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/all.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/all.tex b/omdoc-semantics/tikz/omdoc/all.tex
new file mode 100644
index 0000000000000000000000000000000000000000..fda67ac31ff20230518c498c2d3c40e4b92d5030
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/all.tex
@@ -0,0 +1,61 @@
+\documentclass[notes]{mikoslides}
+\usepackage{amsmath,amssymb,eurosym,wasysym,multirow,paralist}
+\usepackage{lststex,lstomdoc}
+\usepackage{stc-smglom}
+\usepackage{ded,calbf,url,rotating}
+\usepackage{wrapfig,colortbl,wasysym}
+\usepackage[show]{ed}
+\usetikzlibrary{shapes}
+\usetikzlibrary{shadows}
+\usetikzlibrary{patterns}
+\usetikzlibrary{arrows}
+\usetikzlibrary{backgrounds}
+\usetikzlibrary{mmt}
+\usetikzlibrary{tikzmark}
+\usetikzlibrary{decorations,decorations.markings,decorations.text}
+\input{../../../lib/paths}
+\input{\MathHub{lib/etc/WApersons}}
+\coolurion
+\usepackage[bookmarks,linkcolor=black,citecolor=black,urlcolor=black,colorlinks,breaklinks,bookmarksopen,bookmarksnumbered]{hyperref}
+\begin{document}
+\begin{center}\LARGE File: \url{elalg-shared.tex}\end{center}
+\input{elalg-shared}\newpage
+\begin{center}\LARGE File: \url{elalg-unshared.tex}\end{center}
+\input{elalg-unshared}\newpage
+\begin{center}\LARGE File: \url{framing-ex.tex}\end{center}
+\input{framing-ex}\newpage
+\begin{center}\LARGE File: \url{framing.tex}\end{center}
+\input{framing}\newpage
+\begin{center}\LARGE File: \url{group-nat-example.tex}\end{center}
+\input{group-nat-example}\newpage
+\begin{center}\LARGE File: \url{logic-morphism.tex}\end{center}
+\input{logic-morphism}\newpage
+\begin{center}\LARGE File: \url{nat-ex-cex.tex}\end{center}
+\input{nat-ex-cex}\newpage
+\begin{center}\LARGE File: \url{notation-definition.tex}\end{center}
+\input{notation-definition}\newpage
+\begin{center}\LARGE File: \url{omdoc-levels.tex}\end{center}
+\input{omdoc-levels}\newpage
+\begin{center}\LARGE File: \url{omdoc-rdf.tex}\end{center}
+\input{omdoc-rdf}\newpage
+\begin{center}\LARGE File: \url{ontology-core.tex}\end{center}
+\input{ontology-core}\newpage
+\begin{center}\LARGE File: \url{semweb-challenge.tex}\end{center}
+\input{semweb-challenge}\newpage
+\begin{center}\LARGE File: \url{strawman.tex}\end{center}
+\input{strawman}\newpage
+\begin{center}\LARGE File: \url{theory-inclusion.tex}\end{center}
+\input{theory-inclusion}\newpage
+\begin{center}\LARGE File: \url{theory-of-theories.tex}\end{center}
+\input{theory-of-theories}\newpage
+\begin{center}\LARGE File: \url{tree-height.tex}\end{center}
+\input{tree-height}\newpage
+\bibliographystyle{alpha}
+\bibliography{kwarc}
+\printindex
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
+\end{document}
diff --git a/omdoc-semantics/tikz/omdoc/elalg-nat-graph-crop.pdf b/omdoc-semantics/tikz/omdoc/elalg-nat-graph-crop.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..0f2eba3373d59b3cbb645fd504871326dd3ed698
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/elalg-nat-graph-crop.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/elalg-nat-graph.pdf b/omdoc-semantics/tikz/omdoc/elalg-nat-graph.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9e1321ab05e0a1aed61b659e0bd323c8bc365528
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/elalg-nat-graph.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/elalg-shared-crop.pdf b/omdoc-semantics/tikz/omdoc/elalg-shared-crop.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..58d52f2916a879bdf6a5e1df504d482cd7c2f0b1
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/elalg-shared-crop.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/elalg-shared.pdf b/omdoc-semantics/tikz/omdoc/elalg-shared.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..56f7ef474f6e521068a96ad76a186a75601422f7
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/elalg-shared.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/elalg-shared.png b/omdoc-semantics/tikz/omdoc/elalg-shared.png
new file mode 100644
index 0000000000000000000000000000000000000000..f27cfdd9e433810638660a629a58d30cf96f04c9
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/elalg-shared.png differ
diff --git a/omdoc-semantics/tikz/omdoc/elalg-shared.tex b/omdoc-semantics/tikz/omdoc/elalg-shared.tex
new file mode 100644
index 0000000000000000000000000000000000000000..a674f574570206d32d8cf4a5e4bac15b70e156f0
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/elalg-shared.tex
@@ -0,0 +1,32 @@
+\documentclass{standalone}
+\usepackage{tikz,stex}
+\input{../../../lib/paths}
+\usetikzlibrary{mmt}
+\begin{document}
+\importmodule[load=\MathHub{talks/omdoc/en/theory-of-theories}]{theory-of-theories}
+\symdef{thmo}[2]{\mathsf{#1}\colon\kern-.15em{#2}}
+\begin{tikzpicture}[xscale=.7,yscale=.9]\scriptsize
+  \node[thy] (sg2) at (11,1) {$\mmtthy{semigroup}{S,\circ}{}$};
+  \node[thy] (mon2) at (11,2.5) {$\mmtthy{monoid}{S,\circ,e}{}$};
+  \node[thy] (grp2) at (11,4) {$\mmtthy{Agroup}{S,\circ,e,\cdot^{-1}}{}$};
+  \node[thy] (ring2) at (15,5) {$\mmtthy{ring}{R,+,0,-,*,1}{}$};
+  \node (sig) at (15,3)
+  {$\mu\colon=\scriptscriptstyle\left\{\begin{array}{c}
+       G\mapsto R^*\\\circ\mapsto *\\e\mapsto 1
+      \end{array}\right\}$};
+
+  \node (sig) at (15,1.5)
+  {$\alpha\colon=\scriptscriptstyle\left\{\begin{array}{c}
+        G\mapsto R\\\circ\mapsto +\\e\mapsto 0\\\cdot^{-1}\mapsto -
+      \end{array}\right\}$};
+  
+  \draw[include](sg2) -- (mon2);
+  \draw[include](mon2) -- (grp2);
+  \draw[struct](mon2) -- node[right] {$\thmo{m}{\mu}$} (ring2);
+  \draw[struct](grp2) -- node[above,near start] {$\thmo{a}{\alpha}$} (ring2);
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/omdoc/elalg-unshared-crop.pdf b/omdoc-semantics/tikz/omdoc/elalg-unshared-crop.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..e79924c92ab8e7aac4d299de06c93ebee52d4130
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/elalg-unshared-crop.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/elalg-unshared.pdf b/omdoc-semantics/tikz/omdoc/elalg-unshared.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..3e0a4fe629e2be358532ef08cbd429dba8873355
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/elalg-unshared.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/elalg-unshared.png b/omdoc-semantics/tikz/omdoc/elalg-unshared.png
new file mode 100644
index 0000000000000000000000000000000000000000..653a70cdfee1fb474778c7afa9b10922388a61c2
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/elalg-unshared.png differ
diff --git a/omdoc-semantics/tikz/omdoc/elalg-unshared.tex b/omdoc-semantics/tikz/omdoc/elalg-unshared.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f07a0b0b1a40f67199cdefc0fa766b32abae6863
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/elalg-unshared.tex
@@ -0,0 +1,26 @@
+\documentclass{standalone}
+\usepackage{tikz,stex}
+\input{../../../lib/paths}
+\usetikzlibrary{mmt}
+\begin{document}
+\importmodule[load=\MathHub{talks/omdoc/en/theory-of-theories}]{theory-of-theories}
+\symdef{thmo}[2]{\mathsf{#1}\colon\kern-.15em{#2}}
+\begin{tikzpicture}[xscale=.7,yscale=.9]\scriptsize
+  \node[thy] (sg) at (1,1) {$\mmtthy{semigroup\textsuperscript{+}}{R,+}{}$};
+  \node[thy] (mon) at (1,2.5) {$\mmtthy{monoid\textsuperscript{+}}{R,+,0}{}$};
+  \node[thy] (grp) at (1,4) {$\mmtthy{Agroup\textsuperscript{+}}{R,+,0,-}{}$};
+  \node[thy] (ring) at (5,5) {$\mmtthy{ring\textsuperscript{+,*}}{R,+,0,-*,1}{}$};
+  \node[thy] (sg1) at (5,1) {$\mmtthy{semigroup\textsuperscript{*}}{R,*}{}$};
+  \node[thy] (mon1) at (5,2.5) {$\mmtthy{monoid\textsuperscript{*}}{R,*,1}{}$};
+  
+  \draw[include](sg)   -- (mon);
+  \draw[include](sg1)  -- (mon1); 
+  \draw[include](mon)  -- (grp); 
+  \draw[include](mon1) -- (ring); 
+  \draw[include](grp)  -- (ring);
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/omdoc/framing-crop.pdf b/omdoc-semantics/tikz/omdoc/framing-crop.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..387e0740af2449a503e8491bd12c592028660e33
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/framing-crop.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/framing-ex-crop.pdf b/omdoc-semantics/tikz/omdoc/framing-ex-crop.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..567f631d681e4e9f41dd6c75e23d3aa070cca7b9
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/framing-ex-crop.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/framing-ex.pdf b/omdoc-semantics/tikz/omdoc/framing-ex.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..1c10bb6badc9d67f49969705240893fd1f826b4f
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/framing-ex.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/framing-ex.png b/omdoc-semantics/tikz/omdoc/framing-ex.png
new file mode 100644
index 0000000000000000000000000000000000000000..bbb4880a2108e7d53b0113c5d11fbc9b61248765
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/framing-ex.png differ
diff --git a/omdoc-semantics/tikz/omdoc/framing-ex.tex b/omdoc-semantics/tikz/omdoc/framing-ex.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b112ec6ff757c571c8648aecc063837ae45e7182
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/framing-ex.tex
@@ -0,0 +1,21 @@
+\documentclass{standalone}
+\usepackage{tikz,stex,amstext}
+\usetikzlibrary{shapes,arrows,mmt}
+\input{../../../lib/paths}
+\begin{document}
+ \importmodule[load=\MathHub{talks/omdoc/en/inheritance_via_translations}]{inheritance-via-translations}
+\begin{tikzpicture}[xscale=2]
+  \node (m) at (0,0) {\textsf{Manifold}};
+  \node (g) at (1,0) {\textsf{Group}};
+  \node (lg) at (.5,1) {\textsf{LieGroup}};
+  \draw[struct] (m) -- node[left] {$\thmo{i}\eset$} (lg);
+  \draw[struct] (g) -- node[right] {$\thmo{j}\eset$} (lg);
+  \node (s) at (2,.5) {\textsf{BoolAlg}};
+  \node (t) at (4,.5) {\textsf{SetField}};
+  \draw[view] (s) -- node[above] {$\thmo{Stone}\sigma$} (t);
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/omdoc/framing.pdf b/omdoc-semantics/tikz/omdoc/framing.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..93ce10ac763c688ebe9b87917f41072cdb8e52e8
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/framing.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/framing.png b/omdoc-semantics/tikz/omdoc/framing.png
new file mode 100644
index 0000000000000000000000000000000000000000..fea3d781cffb2d6e7897f6f5c277eb8c513d1884
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/framing.png differ
diff --git a/omdoc-semantics/tikz/omdoc/framing.tex b/omdoc-semantics/tikz/omdoc/framing.tex
new file mode 100644
index 0000000000000000000000000000000000000000..5a12adac0bfd29516ce65be8a9e84972b51bd4b0
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/framing.tex
@@ -0,0 +1,16 @@
+\documentclass{standalone}
+\usepackage{tikz,stex,amstext}
+\usetikzlibrary{shapes,arrows,mmt}
+\input{../../../lib/paths}
+\begin{document}
+ \importmodule[load=\MathHub{talks/omdoc/en/inheritance_via_translations}]{inheritance-via-translations}
+\begin{tikzpicture}[xscale=2]
+  \node (s) at (0,0) {$\mathcal{S}$};
+  \node (t) at (1,0) {$\mathcal{P}$};
+  \draw[struct] (s) -- node[above] {$\thmo{f}\sigma$} (t);
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/omdoc/group-nat-example-crop.pdf b/omdoc-semantics/tikz/omdoc/group-nat-example-crop.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..43e2e863410bbaa937d992983a103e7951e2159c
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/group-nat-example-crop.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/group-nat-example.pdf b/omdoc-semantics/tikz/omdoc/group-nat-example.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..441be8e6689c03c3e459d1224dde24345fc9077e
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/group-nat-example.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/group-nat-example.png b/omdoc-semantics/tikz/omdoc/group-nat-example.png
new file mode 100644
index 0000000000000000000000000000000000000000..64ada959d53182ae4228aa9a836eae9f3cbeca16
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/group-nat-example.png differ
diff --git a/omdoc-semantics/tikz/omdoc/group-nat-example.tex b/omdoc-semantics/tikz/omdoc/group-nat-example.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2087a842b67eec2d17e2d737475658473575db6f
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/group-nat-example.tex
@@ -0,0 +1,45 @@
+\documentclass{standalone}
+\usepackage{tikz,stex,amstext}
+\usetikzlibrary{shapes,arrows,mmt}
+\input{../../../lib/paths}
+\begin{document}
+\importmodule[load=\MathHub{talks/omdoc/en/structures-views}]{structures-views}
+\begin{tikzpicture}[scale=.9]\footnotesize
+\begin{scope}[inner sep=0pt]
+\node[thy] (Mon) at (0,0) {$\mmtthy{monoid}{\gray{\text{comp},\;\text{unit}}}{}$};
+\node[thy] (CGr) at (0,3) {$\mmtthy{cgroup}{\gray{\text{mon},\;\text{inv}}}{}$};
+\node[thy] (Ring) at (-3.5,3) {$\mmtthy{ring}{\gray{\text{add}},\;\gray{\text{mult}}}{}$};
+\node[thy] (Int) at (3,3) {$\mmtthy{integers}{\gray{0,+,-}}{}$};
+\node[draw] (v2) at (6.9,1.5) {
+ $\mathll{l}{
+   \text{v2} \\
+   \gray{\left\{\mathll{c}{
+             \map{\cnpath{mon,comp}}{+} \\
+             \map{\cnpath{mon,unit}}{0}
+   }\right\}}
+    \;\mathrm{or}\; \gray{\map{\text{mon}}{\text{v1}}} \\
+   \gray{\map{\text{inv}}{-}}
+ }$b
+};
+\end{scope}
+\draw[struct](Mon) -- node[left,near end]{$\spath{\text{cgroup}}{\text{mon}}$} (CGr);
+\draw[struct](CGr) -- node[above]{$\spath{\text{ring}}{\text{add}}$}(Ring);
+\draw[struct](Mon) -- node[left]{$\spath{\text{ring}}{\text{mult}}$} (Ring);
+\draw[view](Mon) -- node[draw,right=0.3cm]{
+  $\mathll{c}{
+    \text{v1}\\
+    \gray{\map{\text{comp}}{+}} \\
+    \gray{\map{\text{unit}}{0}}
+  }$
+} (Int);
+\draw[view](CGr) -- node[above]{$\text{v2}$}(Int);
+\draw[struct] (4,0.5) -- +(1,0);
+\draw[view] (4,0) -- +(1,0);
+\node[right] at (5,0.5) {structure};
+\node[right] at (5,0) {view};
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/omdoc/logic-morphism.png b/omdoc-semantics/tikz/omdoc/logic-morphism.png
new file mode 100644
index 0000000000000000000000000000000000000000..e49b159d7dd4bac5ee445f1f470fabe305c70a24
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/logic-morphism.png differ
diff --git a/omdoc-semantics/tikz/omdoc/logic-morphism.tex b/omdoc-semantics/tikz/omdoc/logic-morphism.tex
new file mode 100644
index 0000000000000000000000000000000000000000..1935623ab4d73a36a674551fe5c3fea44e07230e
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/logic-morphism.tex
@@ -0,0 +1,48 @@
+\documentclass{standalone}
+\usepackage{tikz,stex,amsfonts,calbf}
+\usepackage{amstext}
+\usetikzlibrary{mmt}
+\input{../../../lib/paths}
+\begin{document}
+\def\MV{\cM\kern -.2em\cV}
+\def\BaseMV{\cB\kern-.2em\cM\kern-.2em\cV}
+\def\SZF{\mathbb{S}\text{ZF}}
+\def\TS{\mathcal{T}\text{Set}}
+\def\STLC{\lambda^{\rightarrow}}
+\small
+\begin{tikzpicture}[yscale=1.1]
+      \node[thy] (zf) at (3.8,2.2) {ZF};
+      \node[thy] (sorts) at (3,2.8) {$\SZF$}; 
+      \node[thy] (lambda) at (3.8,3.5) {$\TS$};
+      \node[thy] (records) at (4.5,2.8) {RZF}; 
+      \node[thy] (stlc) at (3.8,4.3){{\red{$\STLC$}}};
+      \node[thy] (koh) at (3,5.1) {{\red{[Koh94]}}};
+      \node[thy] (ohori) at (4.5,5.1) {[Oho95]};
+      \node[thy] (bmv) at (3.8,5.9) {{\red{$\BaseMV$}}};
+      \node[thy] (mv) at (3.8,6.7) {{\red{$\MV$}}}; 
+      \draw[struct] (zf) -- (sorts);
+      \draw[struct] (zf) -- (records); 
+      \draw[struct] (lambda) -- (stlc);
+      \draw[struct] (sorts) -- (lambda);
+      \draw[color=red,struct] (stlc) -- (koh);
+      \draw[struct] (sorts) -- (koh); 
+      \draw[struct] (records) -- (ohori); 
+      \draw[struct] (stlc) -- (ohori);
+      \draw[color=red,struct] (koh) -- (bmv);
+      \draw[struct] (ohori) -- (bmv);
+      \draw[color=red,struct] (bmv) -- (mv);
+      
+      \node[thy] (izf) at (3.8,1) {iZF}; 
+      \node[thy] (isorts) at (3,1.6) {i$\TS$};
+      \node[thy] (irecords) at (4.5,1.6) {i$RZF$}; 
+      \draw[struct] (izf) -- (isorts);
+      \draw[struct] (izf) -- (irecords); 
+      \draw[view] (izf) -- (zf); 
+      \draw[view] (isorts) -- (sorts); 
+      \draw[view] (irecords) -- (records);
+   \end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/omdoc/nat-ex-cex-crop.pdf b/omdoc-semantics/tikz/omdoc/nat-ex-cex-crop.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..c4a38c8d743e5bf5b87a966d8e4ba8d470b31ba5
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/nat-ex-cex-crop.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/nat-ex-cex.pdf b/omdoc-semantics/tikz/omdoc/nat-ex-cex.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..8ae85d5c9508133434462d5b14a92906158bd4a8
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/nat-ex-cex.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/nat-ex-cex.png b/omdoc-semantics/tikz/omdoc/nat-ex-cex.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b6620f7435dd0ff57712a9e2e45d3616e8c8d4e
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/nat-ex-cex.png differ
diff --git a/omdoc-semantics/tikz/omdoc/nat-ex-cex.tex b/omdoc-semantics/tikz/omdoc/nat-ex-cex.tex
new file mode 100644
index 0000000000000000000000000000000000000000..288a1c0a9d2aa90177bba223180c3baa04a4ad25
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/nat-ex-cex.tex
@@ -0,0 +1,29 @@
+\documentclass{standalone}
+\usepackage{tikz,stex,amstext,amssymb}
+\usetikzlibrary{mmt}
+\input{../../../lib/paths}
+\begin{document}
+\importmodule[load=\MathHub{talks/omdoc/en/thgraph-examples}]{thgraph-examples}
+\begin{tikzpicture}[xscale=4,yscale=2]\footnotesize
+\node[thy] (N) at (2,0) {$\mmtthy{NatNums}{\NaturalNumbers,s,0}{\scriptstyle P1,\ldots \scriptstyle P5}$};
+\node[thy] (m) at (1,0) {$\mmtthy{Monoid}{G,\circ,e}{\scriptstyle e\circ a=a}$};
+\node[thy] (e) at (2,1) {$\mmtthy{\ensuremath\NPlusEx}{+}{\scriptstyle n+0=n,\; n+s(m)=s(n+m)}$};
+\node[thy] (g) at (0.1,1) {$\mmtthy{Group}{}{\scriptstyle\forall x:G.\exists y:G.x\circ y=e}$};
+\node[thy] (n) at (1,1) {$\mmtthy{NonGrpMon}{}{\scriptstyle\exists x:G.\forall y:G.x\circ y\ne e}$};
+\node (phi) at (0.1,0) {$\phi=\left\{\begin{array}{l}
+                                    G\mapsto\NaturalNumbers\\
+                                    \circ\mapsto +\\
+                                    e\mapsto 0\end{array}\right\}$};
+\draw[struct] (N) -- (e);                          
+\draw[view] (m) -- node[above] {$\thmo{e}\phi$} (e);                          
+\draw[struct] (m) -- node[right] (mg) {$\mathsf{g}$} (g);
+\draw[view] (n) -- node[above] {$\thmo{c}\phi$} (e);
+\draw[struct] (m) --  node[left] (mn){$\mathsf{f}$} (n);
+\draw[\mmtarrowtip-\mmtarrowtip,dotted] (mg) -- (mn);
+\draw[\mmtarrowtip-\mmtarrowtip,dotted] (.42,.85) -- (.68,.85);
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/omdoc/notation-definition.tex b/omdoc-semantics/tikz/omdoc/notation-definition.tex
new file mode 100644
index 0000000000000000000000000000000000000000..da7d1ba0bf36a9d741a55be7f84b133d31722959
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/notation-definition.tex
@@ -0,0 +1,29 @@
+\documentclass{standalone}
+\usepackage{tikz}
+% put any importmodules into the preamble
+\begin{document}
+  \begin{tikzpicture}
+    \tikzstyle{layout} = [draw,line width=1.5pt,color=blue];
+    \node[layout] (frac) at (4.5,4) {\renewcommand{\arraystretch}{2}$\begin{array}{c}\fbox{\#1}\\\hline\fbox{\#2}\end{array}$};
+    \node[layout] (3) at (3,2.5){\#1};
+    \node[layout] (fence) at (5,2.5) {\#2};
+    \draw (frac) -- (3);
+    \draw (frac) -- (fence);
+
+    \node (app1) at (0,4) {@};
+    \node (f3) at (0,2.5){\#1};
+    \node (app2) at (1,2.5) {\#2}; 
+    \node (div) at (-1,2.5){/};
+    \draw (app1) -- (div);
+    \draw (app1) -- (f3);
+    \draw (app1) -- (app2);
+    
+    \draw[dashed,green] (frac) -- (app1);
+    \draw[dashed,green] (3) to[in=-23,out=203] (f3);
+    \draw[dashed,green] (fence) to[in=10,out=160] (app2);
+  \end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/omdoc/omdoc-levels.png b/omdoc-semantics/tikz/omdoc/omdoc-levels.png
new file mode 100644
index 0000000000000000000000000000000000000000..c07d29eab145e6ffc27f40e40bce5fc4792eb0af
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/omdoc-levels.png differ
diff --git a/omdoc-semantics/tikz/omdoc/omdoc-levels.tex b/omdoc-semantics/tikz/omdoc/omdoc-levels.tex
new file mode 100644
index 0000000000000000000000000000000000000000..9f5123c23905adbf75645881141f7241149c4677
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/omdoc-levels.tex
@@ -0,0 +1,18 @@
+\documentclass{standalone}
+\usepackage{tikz,stex,amstext,rotating}
+\begin{document}
+\begin{tikzpicture}[yscale=.7]
+\draw (0,0) rectangle (3,3);
+\draw (0,1) -- (2,1);
+\draw (0,2) -- (2,2);
+\draw (2,0) -- (2,3);
+\node (thy) at (1,2.5) {Theories};
+\node (st) at (1,1.5) {Statements};
+\node (obj) at (1,0.5) {Objects};
+\node (doc) at (2.5,1.5){\begin{sideways}Documents\end{sideways}};
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/omdoc/omdoc-rdf.png b/omdoc-semantics/tikz/omdoc/omdoc-rdf.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad30c2ffebd5aafe2ce39091cecf0ced73560661
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/omdoc-rdf.png differ
diff --git a/omdoc-semantics/tikz/omdoc/omdoc-rdf.tex b/omdoc-semantics/tikz/omdoc/omdoc-rdf.tex
new file mode 100644
index 0000000000000000000000000000000000000000..bb2b5fc336e8184f1fa9ff366abc4f57b2488915
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/omdoc-rdf.tex
@@ -0,0 +1,18 @@
+\documentclass{standalone}
+\usepackage{tikz,stex,amstext}
+\usetikzlibrary{shapes,arrows}
+\input{../../../lib/paths}
+\begin{document}
+\begin{tikzpicture}[xscale=3]
+\tikzstyle abox=[font=\scriptsize,draw,minimum height=2.5ex,rounded corners];
+\tikzstyle tbox=[font=\scriptsize\bfseries\itshape,draw,minimum height=2.5ex];
+\node[abox] (pp) at (0,0) {pyth-proof};
+\node[abox] (pt) at (1,0) {pythagoras};
+\node[tbox] (P) at (0,1) {\bfseries Proof};
+\node[tbox] (T) at (1,1) {\bfseries Theorem};
+\draw[-open triangle 60] (pp) -- node[left=.4em] {type} (P);
+\draw[-open triangle 60] (pt) -- node[right=.5em] {type} (T);
+\draw[->] (pp) -- node[below=-.3ex] {proves} (pt);
+\draw[->] (P) -- node[below=-.3ex,font=\scriptsize\bfseries\itshape] {proves} (T);
+\end{tikzpicture}
+\end{document}
diff --git a/omdoc-semantics/tikz/omdoc/ontology-core.png b/omdoc-semantics/tikz/omdoc/ontology-core.png
new file mode 100644
index 0000000000000000000000000000000000000000..07f3181eb96141c5e4767a4ee7a05c33ee543b5f
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/ontology-core.png differ
diff --git a/omdoc-semantics/tikz/omdoc/ontology-core.tex b/omdoc-semantics/tikz/omdoc/ontology-core.tex
new file mode 100644
index 0000000000000000000000000000000000000000..18dee1045253711674b000353284a306d0f34cf1
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/ontology-core.tex
@@ -0,0 +1,117 @@
+\documentclass{standalone}
+\usepackage{tikz,stex,amstext}
+\input{../../../lib/paths}
+\usetikzlibrary{shadows,shapes,positioning,arrows}
+\begin{document}
+\begin{tikzpicture}
+\setlength{\unitlength}{.08\textwidth}
+\begin{scope}[
+legend/.style={font=\small\sffamily},
+Resource/.style={draw,drop shadow={shadow xshift=.3ex,shadow yshift=-.3ex},fill=white,font=\sffamily},
+Class/.style={Resource,rectangle,rounded corners,font=\sffamily},%minimum height?
+subClassOf/.style={thick,-open triangle 60},
+property/.style={-stealth'},
+Property/.style={font=\footnotesize\sffamily},
+blank/.style={Resource,circle,minimum size=.5\unitlength},
+node distance=\unitlength]
+% Things intentionally omitted in this picture:
+% * formal/informal knowledge items
+% * subclasses of Type, GeneralDefinition, Assertion
+% * proof steps (and the Statement/StatementInTheory distinction)
+
+%% Classes
+\node[Class]
+  (MathKnowledgeItem)
+  {MathKnowledgeItem};
+\node[Class]
+  (Statement)
+  [below right=\unitlength and -\unitlength of MathKnowledgeItem] {Statement};
+\node[Class]
+  (Theory)
+  [below left=\unitlength and 0pt of MathKnowledgeItem] {Theory};
+\node[Class]
+  (Type)
+  [below left=0pt and \unitlength of MathKnowledgeItem] {Type};
+\node[Class,text width=5em,text centered]
+  (ConstitutiveStatement)
+  [below left=2\unitlength and \unitlength of Statement] {Constitutive\\ Statement};
+\node[Class,text width=7em,text centered]
+  (NonConstitutiveStatement)
+  [below right=.75\unitlength and 0pt of Statement] {NonConstitutive\\ Statement};
+\node[Class]
+  (Import)
+  [above left=.5\unitlength and 0pt of ConstitutiveStatement] {Import};
+\node[Class]
+  (Symbol)
+  [below left=.5\unitlength and 1.5\unitlength of ConstitutiveStatement] {Symbol};
+% \node[Class] (DeclaredType) {DeclaredType};
+% \node[Class] (AssertedType) {AssertedType};
+\node[Class]
+  (Definition)
+  [below=of ConstitutiveStatement] {Definition};
+\node[Class]
+  (Axiom)
+  [below right=.75\unitlength and .25\unitlength of ConstitutiveStatement] {Axiom};
+\node[Class]
+  (Example)
+  [below left=\unitlength and 0pt of NonConstitutiveStatement] {Example};
+\node[Class]
+  (Assertion)
+  [below=of NonConstitutiveStatement] {Assertion};
+% AlternativeDefiniton?
+\node[Class]
+  (Proof)
+  [below right=.75\unitlength and -.25\unitlength of NonConstitutiveStatement] {Proof};
+\node[Class,text width=4em,text centered]
+  (NotationDefinition)
+  [below right=0pt and \unitlength of NonConstitutiveStatement] {Notation\\ Definition};
+
+\node[legend,anchor=north east,text width=1.75\unitlength]
+  at (NotationDefinition.east |- MathKnowledgeItem.north) {
+\begin{tikzpicture}
+\draw[subClassOf] (0pt,0pt) to node[Property,pos=.4,anchor=north,text width=1.5\unitlength,text centered] {subClassOf} (1.5\unitlength,0pt);
+\draw[property] (0pt,-.75\unitlength) to node[Property,pos=.4,anchor=north,text width=1.5\unitlength,text centered] {other properties} (1.5\unitlength,-.75\unitlength);
+\end{tikzpicture}
+};
+
+%% subClassOf properties
+\draw[subClassOf] (Statement) to (MathKnowledgeItem);
+\draw[subClassOf] (Theory) to (MathKnowledgeItem);
+\draw[subClassOf] (Type) to (MathKnowledgeItem);
+\draw[subClassOf] (ConstitutiveStatement) to (Statement);
+\draw[subClassOf] (NonConstitutiveStatement) to (Statement);
+\draw[subClassOf] (Import) to (ConstitutiveStatement);
+\draw[subClassOf] (Symbol) to (ConstitutiveStatement);
+\draw[subClassOf] (Axiom) to (ConstitutiveStatement);
+\draw[subClassOf] (Definition) to (ConstitutiveStatement);
+\draw[subClassOf] (Example) to (NonConstitutiveStatement);
+\draw[subClassOf] (Assertion) to (NonConstitutiveStatement);
+\draw[subClassOf] (Proof) to (NonConstitutiveStatement);
+\draw[subClassOf] (NotationDefinition) to (NonConstitutiveStatement);
+
+%% other properties
+\draw[property] (MathKnowledgeItem) edge [out=-7.5,in=7.5,max distance=\unitlength,loop]
+  node[Property,right,text width=10em] {dependsOn,\\ hasPart,\\ verbalizes}
+  ();
+\draw[property] (Theory) edge [out=-60,in=-30,max distance=\unitlength,loop]
+  node[Property,below,text width=4em,text centered] {imports,\\ metaTheory}
+  ();
+\draw[property] (Import) to node[Property,above left,text width=2em,at start] {imports\\ From} (Theory);
+\draw[property] (Statement) to node[Property,below] {homeTheory} (Theory);
+\draw[property] (Symbol) to [bend left=10] node[Property,above left,sloped,text width=1em,text centered] {hasType} (Type);
+\draw[property] (Proof.south) to [bend left] node[Property,below] {proves} (Assertion.south);
+\draw[property] (Symbol) to node[Property,above,sloped,midway] {hasDefinition} (Definition);
+\draw[property] (Example) to
+  % node[Property] {exemplifies}
+  (Assertion);
+\draw[property] (Example) to
+  % node[Property] {exemplifies}
+  (Axiom);
+\draw[property] (Example) to [out=-90,in=-15]
+  % node[Property] {exemplifies}
+  (Definition.south east);
+\draw[property] (Example) to [out=-75,in=-22.5] node[Property,right,very near start] {exemplifies} (Symbol.south east);
+\draw[property] (NotationDefinition) to [bend left=35] node[Property,below,sloped,near start] {rendersSymbol} (Symbol);
+\end{scope}
+\end{tikzpicture}
+\end{document}
diff --git a/omdoc-semantics/tikz/omdoc/semweb-challenge.png b/omdoc-semantics/tikz/omdoc/semweb-challenge.png
new file mode 100644
index 0000000000000000000000000000000000000000..a428744e574465e91edede7dc3d48be671d37665
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/semweb-challenge.png differ
diff --git a/omdoc-semantics/tikz/omdoc/semweb-challenge.tex b/omdoc-semantics/tikz/omdoc/semweb-challenge.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f095d2765095f2b2eb3e73be2b07474787a473c0
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/semweb-challenge.tex
@@ -0,0 +1,36 @@
+\documentclass{standalone}
+\usepackage{tikz,stex,amstext}
+\usetikzlibrary{shapes,arrows}
+\input{../../../lib/paths}
+\begin{document}
+\begin{tikzpicture}%[xscale=1.3,yscale=.8]
+\draw[->] (0,0) -- (5,0);
+\draw[->] (0,0) -- (0,5);
+
+\node[anchor=west] at (5,0) {Investment};
+\node[anchor=south] at (0,5) {Return};
+
+\draw[dashed] (0,0) -- node [above=5pt,sloped,pos=0.85] {Break-Even Line} (4.8,4.8);
+
+\fill (1,1.3) circle (3pt);
+\node[anchor=north west] at (1,1.2) {Web~1.0};
+
+\fill (.8,1.6) circle (3pt);
+\node[anchor=south] at (.8,1.7) {Web~2.0};
+
+\fill (4,4.1) circle (3pt);
+\node[anchor=north west] at (4,4) {Formal Methods};
+
+\fill[green] (2.1,2.9) circle (4pt);
+\fill[red] (2.9,2.1) circle (4pt);
+\node[anchor=north west,text width=4cm] at (2.9,2.1) {Math on the \newline Semantic Web (today)};
+
+\draw[->,>=stealth',ultra thick,blue] (2.8,2.2) -- (2.2,2.8);
+\node[anchor=south west] at (2.7,2.2) {Our Challenge};
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: LaTeX
+%%% TeX-master: t
+%%% End: 
+
diff --git a/omdoc-semantics/tikz/omdoc/strawman.png b/omdoc-semantics/tikz/omdoc/strawman.png
new file mode 100644
index 0000000000000000000000000000000000000000..ccae0bf0122f23e7f107e933ef919477e3b15cac
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/strawman.png differ
diff --git a/omdoc-semantics/tikz/omdoc/strawman.tex b/omdoc-semantics/tikz/omdoc/strawman.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e6e6ee944cdafcbfa0e6106ab1ac25905cec02a8
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/strawman.tex
@@ -0,0 +1,58 @@
+\documentclass{standalone}
+\usepackage{tikz,stex}
+\usetikzlibrary{mmt}
+\input{../../../lib/paths}
+\begin{document}
+ \begin{tikzpicture}[yscale=.9,xscale=.9]\small
+   \node[thy] (N)  at (2,0.5) {$\cal N$};
+   \node[thy] (EN) at (0,1.5) {$\cal E_N$};
+   \node[thy] (F)  at (5,1.5) {$\cal F$};
+   \node[thy] (S)  at (3,1.5) {$\cal S$};
+   \node[thy] (EF) at (6,2.5) {$\cal E_F$};
+   \node[thy] (ES) at (4,2.5) {$\cal E_S$};
+   \draw[struct] (N) -- (EN);
+   \draw[struct] (N) -- (F);
+   \draw[struct] (N) -- (S);
+   \draw[struct] (S) -- (ES);
+   \draw[struct] (F) -- (EF);
+   \draw[->,gray,line width=3pt] (ES) -- (EF);
+   \begin{scope}
+     \tikzstyle{every node}=[draw]
+     \node (top) at (3,5.2) {lecture};
+     \node (sl1) at (0,4.5) {$sl_1$};
+     \node (sl2) at (1,4.5) {$sl_2$};
+     \node (sl3) at (2,4.5) {$sl_3$};
+     \node (sl4) at (3,4.5) {$sl_4$};
+     \node (an) at (4,4.5) {$sl_5$};
+     \node (sl5) at (5,4.5) {$sl_6$};
+     \node (sl6) at (6,4.5) {$sl_7$};
+     \node (n1) at (0,3.5) {$n_1$};
+     \node (n2) at (1.2,3.5) {$n_2$};
+     \node (n5) at (4.5,3.5){\ldots};
+     \node (n6) at (5.5,3.5) {$n_3$};
+   \end{scope}
+    \draw[->,dashed] (top) -- (sl1);
+    \draw[->,dashed] (top) -- (sl1);
+    \draw[->,dashed] (top) -- (sl2);
+    \draw[->,dashed] (top) -- (sl3);
+    \draw[->,dashed] (top) -- (sl4);
+    \draw[->,dashed] (top) -- (an);
+    \draw[->,dashed] (top) -- (sl5);
+    \draw[->,dashed] (top) -- (sl6);
+    \draw[->,dashed] (sl2) -- (n1);
+    \draw[->,dashed] (sl2) -- (n2);
+    \draw[->,dashed] (an) -- (n5);
+    \draw[->,dashed] (sl5) -- (n6);
+
+    \draw[->,dotted] (sl1) -- (N);
+    \draw[->,dotted] (sl2) -- (EN);
+    \draw[->,dotted] (sl3) -- (S);
+    \draw[->,dotted] (sl4) -- (ES);
+    \draw[->,dotted] (sl5) -- (F);
+    \draw[->,dotted] (sl6) -- (EF);
+  \end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/omdoc/theory-inclusion.png b/omdoc-semantics/tikz/omdoc/theory-inclusion.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa185ea87d16877249095f16b908df915660c974
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/theory-inclusion.png differ
diff --git a/omdoc-semantics/tikz/omdoc/theory-inclusion.tex b/omdoc-semantics/tikz/omdoc/theory-inclusion.tex
new file mode 100644
index 0000000000000000000000000000000000000000..d0fe4376ddef72ec4a478039b333d7b566f1abca
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/theory-inclusion.tex
@@ -0,0 +1,44 @@
+\documentclass{standalone}
+\usepackage{tikz,stex,calbf}
+\input{../../../lib/paths}
+\usetikzlibrary{mmt}
+\begin{document}
+  \begin{tikzpicture}
+    \begin{scope}
+      \tikzstyle{every node}=[thy]
+      \node (th1) at (2,-0.5) {$\cT_1$};
+      \node (th2) at (5,-0.5) {$\cT_2$};
+      \node (a1) at (0,1.2) {$\cA_1$};
+      \node (b1) at (2,0.65) {$\cB_1$};
+      \node (c1) at (1,2) {$\cC_1$};
+      \node (a2) at (4,1.2) {$\cA_2$};
+      \node (b2) at (6,0.65) {$\cB_2$};
+      \node (c2) at (5,2) {$\cC_2$};
+    \end{scope}
+    \draw[struct](th1) -- (a1);
+   \draw[struct](th1) -- (a2);
+   \draw[struct](th2) -- (b1);
+   \draw[struct](th2) -- (a2);
+   \draw[struct](th2) -- (b2);
+   \draw[struct](a1) -- (c1);
+   \draw[struct](a2) -- (c2);
+   \draw[struct](b1) -- (c1);
+   \draw[struct](b2) -- node[left] {$\sigma$} (c2);
+
+   \draw[view](a1) -- node[below,near end]{$\alpha$} (a2);
+   \draw[view](b1) -- node[below]{$\beta$} (b2);
+   \draw[view](c1) -- node[below]{$\gamma$} (c2);
+   \draw[view,line width=1.5pt] (c1) .. controls (2.5,2.3) and (4,2.3) .. 
+       node[above]{$\Gamma$} (c2);
+   \draw[view,line width=1.5pt] (6.7,2) -- (7.7,2);
+   \node (ti) at (9,2) {theory inclusion};
+   \draw[view] (6.7,1.5) -- (7.7,1.5);
+   \node (ai) at (9,1.5) {axiom inclusion};
+   \draw[struct] (6.7,1) -- (7.7,1);
+   \node (i) at (9,1) {inheritance};
+ \end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/omdoc/theory-of-theories.png b/omdoc-semantics/tikz/omdoc/theory-of-theories.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca1f2cefb409a3a9120654a01428c496068f752e
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/theory-of-theories.png differ
diff --git a/omdoc-semantics/tikz/omdoc/theory-of-theories.tex b/omdoc-semantics/tikz/omdoc/theory-of-theories.tex
new file mode 100644
index 0000000000000000000000000000000000000000..8549cf34fec3e5a401ae5f151bc09199c8b9ae0d
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/theory-of-theories.tex
@@ -0,0 +1,17 @@
+\documentclass{standalone}
+\usepackage{tikz,stex}
+\usetikzlibrary{mmt}
+\input{../../../lib/paths}
+\begin{document}
+\begin{tikzpicture}[yscale=1.2]
+  \node[thy] (sg) at (1,1) {$\mmtthy{semigroup}{R,\circ}{}$};
+  \node[thy] (mon) at (1,2.5) {$\mmtthy{monoid}{R,\circ,e}{}$};
+  \node[thy] (grp) at (1,4) {$\mmtthy{group}{R,\circ,e,i}{}$};
+  \draw[include](sg)   -- (mon);
+  \draw[include](mon)  -- (grp); 
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/omdoc/tree-height-crop.pdf b/omdoc-semantics/tikz/omdoc/tree-height-crop.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..cf3a7693dabd029726f7d25700d7fd0fc990fac1
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/tree-height-crop.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/tree-height.pdf b/omdoc-semantics/tikz/omdoc/tree-height.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9b2a0f5dfe044a7e5f947c3847b931f9b5b77aad
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/tree-height.pdf differ
diff --git a/omdoc-semantics/tikz/omdoc/tree-height.png b/omdoc-semantics/tikz/omdoc/tree-height.png
new file mode 100644
index 0000000000000000000000000000000000000000..528556cb0f02af0989f51e4e220090eebc395294
Binary files /dev/null and b/omdoc-semantics/tikz/omdoc/tree-height.png differ
diff --git a/omdoc-semantics/tikz/omdoc/tree-height.tex b/omdoc-semantics/tikz/omdoc/tree-height.tex
new file mode 100644
index 0000000000000000000000000000000000000000..613c0db0511ecff20a0dba7fda9c4dff4c039ede
--- /dev/null
+++ b/omdoc-semantics/tikz/omdoc/tree-height.tex
@@ -0,0 +1,34 @@
+\documentclass{standalone}
+\usepackage{tikz,stex,amstext}
+\usetikzlibrary{mmt}
+\input{../../../lib/paths}
+
+\begin{document}
+  \importmodule[load=\MathHub{talks/omdoc/en/inheritance_via_translations}]{inheritance-via-translations}
+\begin{tikzpicture}[xscale=3.5,yscale=1.2]\footnotesize
+    \node[thy] (pg) at (2,0.5) {\textsf{PlanarGeo}};
+    \node at (.9,1.9) {\textsf{PGP}};
+    \node[thy] (pg1) at (1,1) 
+      {\includegraphics[width=1.6cm,angle=180]{\MathHub{talks/omdoc/PIC/PGP}}};
+   \node at (1.83,2.9) {\textsf{PGS}};
+   \node[thy] (pg2) at (2,2) 
+      {\includegraphics[width=2cm,angle=180]{\MathHub{talks/omdoc/PIC/PGS}}};
+   \node at (-.1,2.9) {\textsf{Problem}};
+    \node[thy] (tree) at (0,2) 
+      {\includegraphics[width=2.3cm,angle=180]{\MathHub{talks/omdoc/PIC/PRO}}};
+    \node at (.45,3.45) {\textsf{SOL}};
+    \node[thy] (soln) at (1,3) 
+       {\includegraphics[width=2.6cm,angle=180]{\MathHub{talks/omdoc/PIC/SOL}}};
+   \node[thy] (forestry) at (0,.55) {\textsf{Forestry}};
+   \draw[include] (pg) -- (pg1);
+   \draw[include] (pg1) -- node[above] {$\mathsf{q}$} (pg2);
+   \draw[view] (pg2) -- node[above] {$\thmo{\primvar{p}}\phi$} (soln);
+   \draw[view] (pg1) -- node[above] {$\thmo{p}\phi$} (tree);
+   \draw[include] (tree) -- node[above] {$\mathsf{\primvar{q}}$} (soln);
+   \draw[include] (forestry) -- (tree);
+ \end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/planetary/Makefile b/omdoc-semantics/tikz/planetary/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..272eb3dd074bd6f7585e24e2acaaa33eec266dfc
--- /dev/null
+++ b/omdoc-semantics/tikz/planetary/Makefile
@@ -0,0 +1,3 @@
+STCDIR ?= ../../..
+BUTFILES = test.tex
+include $(STCDIR)/lib/make/Makefile.tikz
diff --git a/omdoc-semantics/tikz/planetary/adp.png b/omdoc-semantics/tikz/planetary/adp.png
new file mode 100644
index 0000000000000000000000000000000000000000..37e9d08f814df1be84dd1a41420623d40ef745e0
Binary files /dev/null and b/omdoc-semantics/tikz/planetary/adp.png differ
diff --git a/omdoc-semantics/tikz/planetary/adp.tex b/omdoc-semantics/tikz/planetary/adp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e805356a94a03ed0984c0bd05f8a18cc6acf1d73
--- /dev/null
+++ b/omdoc-semantics/tikz/planetary/adp.tex
@@ -0,0 +1,59 @@
+\documentclass{standalone}
+\usepackage{tikz}
+\usetikzlibrary{positioning,arrows,shapes,fit,snakes}
+\begin{document}
+\begin{tikzpicture}
+[scale=.8,inner sep=2mm, node distance=2cm,
+place/.style={circle,draw=blue!50,fill=blue!20,thick},
+transition/.style={regular polygon,regular polygon sides=4,draw=blue!50,fill=blue!20,thick},
+block/.style={rectangle, draw, fill=blue!20, 
+    text width=5em, text centered, rounded corners, minimum height=4em}]
+
+%% the diagram, which is also defines the origin
+\node (center) at ( 0,0) [place] {};
+\node (middleleft) at (-1.5,0) [transition] {};
+\node (middleright) at (1.5,0) [transition] {};
+
+\node (righttop) at ( 1,1) [place] {};
+\node (lefttop) at (-1,1) [place] {};
+
+\node (leftbottom) at (-1,-1) [place] {};
+\node (rightbottom) at (1,-1) [place] {};
+
+%% labels
+\coordinate (A) at (-2.5,5);
+\coordinate (B) at (-2.5,-1.5);
+\coordinate [label=left:{Document Commons}] (C) at (-3,4.5);
+\coordinate [label=right:{Content Commons}] (D) at (-2,4.5);
+\node[text width=5em] at (2.5,1.2) {Content Objects};
+
+%% lines
+
+\draw[-] (center) -- (lefttop);
+\draw[-] (center) -- (rightbottom);
+\draw[-] (center) -- (leftbottom);
+\draw[-] (center) -- (righttop);
+\draw[-] (lefttop) -- (righttop);
+\draw[-] (leftbottom) -- (rightbottom);
+\draw[-] (leftbottom) -- (middleleft);
+\draw[-] (middleleft) -- (lefttop);
+\draw[-] (middleright) -- (righttop);
+\draw[-] (middleright) -- (rightbottom);
+\draw[->,dashed] (lefttop.north) to [bend left=45] (righttop.north);
+\draw[->,dashed] (leftbottom) -- (lefttop);
+
+\draw[-,dashed] (A) -- (B);
+
+%% active documents and player
+\node (activedocs) at (-5,0) [block] {Active Documents};
+\node at (-4.6,0.4) [block] {Active Documents};
+\node at (-4.8,0.2) [block] {Active Documents};
+\node at (-5,0) [block] {Active Documents};
+
+\node (player) at (-2.5,3) [block] {Document Player};
+
+\draw[<->,draw,thick] (-2,0) -- (-3,0);
+\draw[<->,draw,thick] (-4,1.5) -- (-3,2);
+\draw[<->,draw,thick] (-2,2) -- (-1,1.5);
+\end{tikzpicture}
+\end{document}
diff --git a/omdoc-semantics/tikz/planetary/adp2.png b/omdoc-semantics/tikz/planetary/adp2.png
new file mode 100644
index 0000000000000000000000000000000000000000..c9e45dac49b1b920f937b7b6edbe0058b1b879a6
Binary files /dev/null and b/omdoc-semantics/tikz/planetary/adp2.png differ
diff --git a/omdoc-semantics/tikz/planetary/adp2.tex b/omdoc-semantics/tikz/planetary/adp2.tex
new file mode 100644
index 0000000000000000000000000000000000000000..28aad008b22597d23551c26b90e4178c6601ccbf
--- /dev/null
+++ b/omdoc-semantics/tikz/planetary/adp2.tex
@@ -0,0 +1,67 @@
+\documentclass{standalone}
+\usepackage{stex}
+\usepackage{tikz}
+\usetikzlibrary{positioning,arrows,shapes,fit,snakes}
+\input{../../../lib/paths}
+\begin{document}
+\begin{tikzpicture}
+[inner sep=1.5mm, node distance=2cm,outer sep = 0pt,
+place/.style={circle,draw=blue!50,fill=blue!20,thick,outer sep = 0pt},
+transition/.style={regular polygon,regular polygon sides=4,draw=blue!50,fill=blue!20,thick},
+dblock/.style={rectangle, draw, fill=blue!20, 
+    text width=4em, text centered, minimum height=3.5em},
+wblock/.style={rectangle, draw, fill=blue!20, rounded corners,
+    text width=5em, text centered, minimum height=3.5em,outer sep=4pt},
+scale=.7]
+\pgfdeclareimage[width=1cm]{user}{\MathHub{talks/planetary/PIC/user}}
+
+%% the diagram, which is also defines the origin
+\node (center) at ( 0,0) [place] {};
+\node (middleleft) at (-1.5,0) [transition] {};
+\node (middleright) at (1.5,0) [transition] {};
+
+\node (righttop) at ( 1,1) [place] {};
+\node (lefttop) at (-1,1) [place] {};b
+
+\node (leftbottom) at (-1,-1) [place] {};
+\node (rightbottom) at (1,-1) [place] {};
+
+%% labels
+\coordinate (A) at (-2.5,5);
+\coordinate (B) at (-2.5,-1.5);
+\coordinate [label=left:{Document Commons}] (C) at (-3,4.8);
+\coordinate [label=right:{Content Commons}] (D) at (-2,4.8);
+\node[text width=4em] at (2.5,1.2) {\footnotesize Content Objects};
+
+%% lines
+
+\draw[-] (center) -- (lefttop);
+\draw[-] (center) -- (rightbottom);
+\draw[-] (center) -- (leftbottom);
+\draw[-] (center) -- (righttop);
+\draw[-] (lefttop) -- (righttop);
+\draw[-] (leftbottom) -- (rightbottom);
+\draw[-] (leftbottom) -- (middleleft);
+\draw[-] (middleleft) -- (lefttop);
+\draw[-] (middleright) -- (righttop);
+\draw[-] (middleright) -- (rightbottom);
+\draw[->,dashed] (lefttop.north) to [bend left=45] (righttop.north);
+\draw[->,dashed] (leftbottom) -- (lefttop);
+
+\draw[-,dashed] (A) -- (B);
+
+%% active documents and player
+\node (activedocs) at (-5,0) [dblock] {Semantic Documents};
+\node at (-4.6,0.4) [dblock] {Semantic Documents};
+\node at (-4.8,0.2) [dblock] {Semantic Documents};
+\node at (-5,0) [dblock] {Semantic Documents};
+
+\node (player) at (-2.5,3.2) [wblock] {Active Document Player};
+\node[rectangle,left=1.4cm of player] (user) {\pgfuseimage{user}}; 
+\draw[<->,draw,dashed] (player) -- node[above]{view} node[below]{interact} (user);
+
+\draw[<->,draw,thick] (-1.5,0) -- (-3.5,0);
+\draw[<->,draw,thick] (-4.5,1.1) -- (-3.5,2.5);
+\draw[<->,draw,thick] (-.3,1.1) -- (-1.5,2.5);
+\end{tikzpicture}
+\end{document}
diff --git a/omdoc-semantics/tikz/planetary/all.pdf b/omdoc-semantics/tikz/planetary/all.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..f7fc113586cf984188810b6e7338df8d61d71223
Binary files /dev/null and b/omdoc-semantics/tikz/planetary/all.pdf differ
diff --git a/omdoc-semantics/tikz/planetary/all.tex b/omdoc-semantics/tikz/planetary/all.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f92003e5e5ab88b00d83d4f348f8de3202b0126b
--- /dev/null
+++ b/omdoc-semantics/tikz/planetary/all.tex
@@ -0,0 +1,31 @@
+\documentclass[notes]{mikoslides}
+\usepackage{amsmath,amssymb,eurosym,wasysym,multirow,paralist}
+\usepackage{lststex,lstomdoc}
+\usepackage{ded,calbf,url,rotating}
+\usepackage{wrapfig,colortbl,wasysym}
+\usepackage[show]{ed}
+\usetikzlibrary{shapes}
+\usetikzlibrary{patterns}
+\usetikzlibrary{arrows}
+\usetikzlibrary{mmt}
+\usetikzlibrary{tikzmark}
+\input{../../../lib/paths}
+\input{\MathHub{lib/etc/WApersons}}
+\coolurion
+\usepackage[bookmarks,linkcolor=black,citecolor=black,urlcolor=black,colorlinks,breaklinks,bookmarksopen,bookmarksnumbered]{hyperref}
+\begin{document}
+\begin{center}\LARGE File: \url{adp.tex}\end{center}
+\input{adp}\newpage
+\begin{center}\LARGE File: \url{adp2.tex}\end{center}
+\input{adp2}\newpage
+\begin{center}\LARGE File: \url{course-reuse.tex}\end{center}
+\input{course-reuse}\newpage
+\begin{center}\LARGE File: \url{documentlayers.tex}\end{center}
+\input{documentlayers}\newpage
+\begin{center}\LARGE File: \url{moc-arch.tex}\end{center}
+\input{moc-arch}\newpage
+\begin{center}\LARGE File: \url{planetary-arch.tex}\end{center}
+\input{planetary-arch}\newpage
+\bibliographystyle{alpha}
+\bibliography{kwarc}
+\end{document}
diff --git a/omdoc-semantics/tikz/planetary/course-reuse.tex b/omdoc-semantics/tikz/planetary/course-reuse.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2e5868413e6ed798208af15fcafcc4f2b2b42935
--- /dev/null
+++ b/omdoc-semantics/tikz/planetary/course-reuse.tex
@@ -0,0 +1,51 @@
+\documentclass{standalone}
+\usepackage{tikz}
+\usetikzlibrary{shapes}
+\begin{document}
+\begin{tikzpicture}\footnotesize
+  \tikzstyle{course} = [draw,rounded corners,inner sep=0pt]
+  \tikzstyle{topic} = [draw,inner sep=2pt]
+
+  \node[topic] (strings) at (1,0) {strings};
+  \node[topic] (pref) at (2.5,0) {\begin{tabular}{c}prefix\\codes\end{tabular}};
+  \node[topic] (codes) at (1.5,1) {codes};
+  
+  \node[topic] (xml) at (5.3,0) {DAG};
+  \node[topic] (uc) at (4,0) {Trees};
+  \node[topic] (html) at (4.5,1) {GraphTheo};
+  
+  \node[topic] (docbook) at (8,0) {NatDed};
+  \node[topic] (dita) at (6.8,0) {FOL};
+  \node[topic] (man) at (7.5,1) {Logic};
+  
+  \node[course] (gencs) at (3,2) {\begin{tabular}{c}GenCS\\2011\end{tabular}};
+  \node[course] (gencs10) at (1.5,2) {\begin{tabular}{c}GenCS\\2010\end{tabular}};
+  \node[course] (gencs12) at (4.5,2) {\begin{tabular}{c}GenCS\\2012\end{tabular}};
+  \node (gdots) at (3,1) {\ldots};
+  \node[course] (tdm) at (6.5,2) {\begin{tabular}{c}AdvCS\\2011\end{tabular}};
+  \node[course] (tdm12) at (8,2) {\begin{tabular}{c}AdvCS\\2012\end{tabular}};
+  \node (tdots) at (6,1) {\ldots};
+  
+  \draw (gencs) -- (codes) -- (strings);
+  \draw (gencs) -- (html) -- (uc);
+  \draw (tdm) -- (man) -- (docbook);
+  \draw (tdm) -- (html) -- (xml);
+  \draw (codes) -- (pref);
+  \draw (man) -- (dita);
+  \draw (gencs) -- (gdots);
+  \draw (tdm) -- (tdots);
+  \draw (gencs12) -- (codes);
+  \draw (gencs10) -- (codes);
+  \draw (gencs12) -- (gdots);
+  \draw (gencs10) -- (gdots);
+  \draw (gencs12) -- (html);
+  \draw (gencs10) -- (html);
+  \draw (tdm12) -- (html);
+  \draw (tdm12) -- (tdots);
+  \draw (tdm12) -- (man);
+\end{tikzpicture}
+\end{document}
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
diff --git a/omdoc-semantics/tikz/planetary/documentlayers.png b/omdoc-semantics/tikz/planetary/documentlayers.png
new file mode 100644
index 0000000000000000000000000000000000000000..e1f583e8974fb9c21b6b0f4dfa948ce7a250435f
Binary files /dev/null and b/omdoc-semantics/tikz/planetary/documentlayers.png differ
diff --git a/omdoc-semantics/tikz/planetary/documentlayers.tex b/omdoc-semantics/tikz/planetary/documentlayers.tex
new file mode 100644
index 0000000000000000000000000000000000000000..bfd2a85dbd941904cbd2f2dd78b6f2c73f190462
--- /dev/null
+++ b/omdoc-semantics/tikz/planetary/documentlayers.tex
@@ -0,0 +1,57 @@
+\documentclass{standalone}
+\usepackage{stex,amstext}
+\input{../../../lib/paths}
+\usepackage{tikz}
+\usetikzlibrary{positioning,arrows,shapes,fit,snakes}
+\begin{document}
+\begin{module}
+  \importmodule[load=\MathHub{talks/planetary/en/pantarhei}]{pantarhei}
+
+\def\ccc{3.6}\def\lev{0}\def\adc{2}\def\aadc{.7}
+  \begin{tikzpicture}[xscale=2.2,yscale=.9]
+    \draw[dashed,thick] (2.9,4.3) -- (2.9,-1.5);
+    \node (cc) at (4,4) {\large\bf Content Commons};
+    \node (dc) at (1.4,4) {\large\bf Active Documents};
+    \node (lev) at (\lev,4) {Level};
+
+    \node (1) at (\lev,0) {1};
+    \node (0) at (\lev,-1) {0};
+    \node (2) at (\lev,1) {2};
+    \node (3) at (\lev,2) {3};
+    \node (4) at (\lev,3) {4};
+
+    \node[draw] (panta) at (\adc,3) {$\pantarhei$ Instance};
+    \node[draw] (course) at (\adc,2) {Course};
+    \node[draw] (lect) at (\adc,1) {Notes/Problems/Exams};
+    \node[draw] (lo) at (\adc,0) {Learning Object};
+    \node[draw,dashed] (slide) at (\adc,-1) {Slide};
+
+    \draw[->] (course) -- (panta);
+    \draw[->] (lect) -- (course);
+    \draw[->] (lo) -- (lect);
+    \draw[->,dashed] (slide) -- (lo);
+
+    \node[draw] (planets) at (\aadc,3) {PlanetMath};
+    \node[draw] (enc) at (\aadc,2) {Encyclopedia};
+    \node[draw] (art) at (\aadc,0) {Article};
+
+    \draw[->] (enc) -- (planets);
+    \draw[->] (art) -- (enc);
+
+    \node[draw] (lib) at (\ccc,3) {Library};
+    \node[draw] (coll) at (\ccc,2) {Collection};
+    \node[draw] (mono) at (\ccc,1) {Monograph};
+    \node[draw] (mod) at (\ccc,0) {Module};
+    \node[draw,dashed] (obj) at (\ccc,-1) {Object};
+
+    \draw[->] (mod) -- (mono);
+    \draw[->] (mono) -- (coll);
+    \draw[->] (coll) -- (lib);
+    \draw[<-] (mod) to[loop right] (mod);
+    \draw[->,dashed] (obj) -- (mod);
+    \draw[<-,dashed] (obj) to[loop right] (obj);
+%    \draw[->] (coll) to[loop right] (coll);
+
+\end{tikzpicture}
+\end{module}
+\end{document}
diff --git a/omdoc-semantics/tikz/planetary/moc-arch.png b/omdoc-semantics/tikz/planetary/moc-arch.png
new file mode 100644
index 0000000000000000000000000000000000000000..f77ecefa5902b55a46db1365108bf6d0a6ee164c
Binary files /dev/null and b/omdoc-semantics/tikz/planetary/moc-arch.png differ
diff --git a/omdoc-semantics/tikz/planetary/moc-arch.tex b/omdoc-semantics/tikz/planetary/moc-arch.tex
new file mode 100644
index 0000000000000000000000000000000000000000..146932f7800a8120fa8b19ea9169c5264bef9f81
--- /dev/null
+++ b/omdoc-semantics/tikz/planetary/moc-arch.tex
@@ -0,0 +1,33 @@
+\documentclass{standalone}
+\usepackage{stex,amstext}
+\input{../../../lib/paths}
+\usepackage{tikz}
+\usetikzlibrary{positioning,arrows,shapes,fit,snakes}
+\begin{document}
+\begin{module}
+  \importmodule[load=\MathHub{talks/planetary/en/realizing}]{realizing-planetary}
+  \importmodule[load=\MathHub{talks/omoc/en/nutshell}]{omoc-nutshell}
+
+\begin{tikzpicture}[scale=0.75,transform shape]
+\pgfdeclareimage[width=1cm]{user}{\MathHub{talks/planetary/PIC/user}}
+
+\tikzstyle{system} = [rectangle, draw, fill=blue!20, text width=1.6cm, text centered, rounded corners, minimum height=1cm,shade, top color=white, bottom color=blue!20 ]
+\tikzstyle{arrowleft} = [single arrow, draw, inner sep=1pt, anchor=west,minimum width=1cm, minimum height=1.7cm, fill=lightgray!20,single arrow head indent=.4ex]
+\tikzstyle{arrowright} = [single arrow, shape border rotate=180, draw, inner sep=1pt, anchor=west,minimum width=1cm,minimum height=1.7cm,fill=lightgray!20,single arrow head indent=.5ex]
+
+  \node[rectangle] (user) {\pgfuseimage{user}};
+  \node[system,right=1.7cm of user] (planetary) {$\planetary$};
+  \node[system,right=1.9cm of planetary] (tnt) {$\tntbase$};
+  \node[system, right=1.9cm of tnt] (doctip) {$\doctip$};
+
+  \node[above right=0.1cm of planetary, arrowleft] (ar1) {$\sTeX$};
+  \node[below right=0.1cm of planetary, arrowright] (ar2) {XHTML};
+
+  \node[above right=0.1cm of tnt, arrowleft] (ar3) {$\omdoc$};
+  \node[below right=0.1cm of tnt, arrowright] (ar4) {Impacts};
+  \node [double arrow, left=0.1cm of planetary,draw, minimum height=1.7cm, minimum width=1cm, fill=lightgray!20, double arrow head indent=.5ex] {};
+	
+\node[rectangle,rounded corners,draw,inner sep=12pt,dashed, fit=(user) (doctip) (ar1) (ar4)] (pacbox) {};
+\end{tikzpicture}
+\end{module}
+\end{document}
diff --git a/omdoc-semantics/tikz/planetary/planetary-arch.pdf b/omdoc-semantics/tikz/planetary/planetary-arch.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..bf7ac0beacb08d8bbce8e32bf0a2380c578953c0
Binary files /dev/null and b/omdoc-semantics/tikz/planetary/planetary-arch.pdf differ
diff --git a/omdoc-semantics/tikz/planetary/planetary-arch.png b/omdoc-semantics/tikz/planetary/planetary-arch.png
new file mode 100644
index 0000000000000000000000000000000000000000..a8c1d624629118fdbd2c1c5e259c9d26af6588b2
Binary files /dev/null and b/omdoc-semantics/tikz/planetary/planetary-arch.png differ
diff --git a/omdoc-semantics/tikz/planetary/planetary-arch.tex b/omdoc-semantics/tikz/planetary/planetary-arch.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f491df10417c87c9d857410f1d5faa636680acef
--- /dev/null
+++ b/omdoc-semantics/tikz/planetary/planetary-arch.tex
@@ -0,0 +1,65 @@
+\documentclass{standalone}
+\usepackage{stex,amstext}
+\input{../../../lib/paths}
+\usepackage{tikz}
+\usetikzlibrary{positioning,arrows,shapes,fit,snakes}
+\begin{document}
+\begin{module}
+  \importmodule[load=\MathHub{talks/planetary/en/realizing}]{realizing-planetary}
+  \importmodule[load=\MathHub{CompLog/semweb/en/sparql}]{sparql}
+
+\begin{tikzpicture}[scale=0.75,transform shape]
+  \pgfdeclareimage[width=1cm]{user}{\MathHub{talks/planetary/PIC/user}}
+ 
+  \tikzstyle{system} = [rectangle, draw, fill=blue!20, text width=1.6cm, text centered,
+                                    rounded corners, minimum height=1cm,shade, 
+                                    top color=white, bottom color=blue!20]
+  \tikzstyle{arrowleft} = [single arrow, draw, inner sep=1pt, anchor=west,
+                                       minimum width=1cm, minimum height=1.7cm, 
+                                       fill=lightgray!20,single arrow head indent=.4ex]
+  \tikzstyle{arrowright} = [single arrow, shape border rotate=180, draw, inner sep=1pt,
+                                         anchor=west,minimum width=1cm,minimum height=1.7cm,
+                                         fill=lightgray!20,single arrow head indent=.5ex]
+ \tikzstyle{arrowdown} = [single arrow,rotate=270, draw, inner sep=1pt,
+                                         anchor=west,minimum width=1cm,minimum height=1.7cm,
+                                         fill=lightgray!20,single arrow head indent=.5ex] 
+
+\node[rectangle] (user) {\pgfuseimage{user}}; 
+\node[system,right=1.7cm of user] (firefox) {Firefox}; 
+\node[system,right=1.7cm of firefox] (drupal) {$\drupal$};
+\node[system,right=1.9cm of drupal] (tnt) {$\tntbase$};
+
+% \node[above right=0.1cm of drupal, arrowleft] (ar1) {$\sTeX$/LF};
+\node[right=0.1cm of drupal, arrowright] (ar2) {HTML5};
+\node[system, above=1.4cm of ar2] (latexml) {$\latexml$}; 
+\node[system, below=1.4cm of ar2] (virtuoso) {Virtuoso};
+\node[above right=0.1cm of firefox, arrowleft] (ar3) {REST}; 
+\node[below right=0.1cm of firefox, arrowright] (ar4) {HTML5};
+
+\node [double arrow, left=0.1cm of firefox,draw, 
+            minimum height=1.7cm, minimum width=1cm, fill=lightgray!20, double arrow head indent=.5ex] {}; 
+\node[below=0.1cm of drupal,double arrow,rotate=315, draw, inner sep=1pt, anchor=west,
+           minimum width=1cm,minimum height=1.7cm,fill=lightgray!20,single arrow head indent=.5ex]
+           {$\sparql$}; 
+\node[above=0.1cm of drupal,single arrow,rotate=45, draw, inner sep=1pt,anchor=west,
+           minimum width=1cm,minimum height=1.7cm,fill=lightgray!20,single arrow head indent=.5ex] {$\sTeX$}; 
+\node[below right=0.1cm of latexml,single arrow,rotate=315,draw,
+          inner sep=1pt, anchor=west,minimum width=1cm,minimum
+          height=1.7cm,fill=lightgray!20,single arrow head indent=.5ex] {$\omdoc$};
+\node[below=0.1cm of tnt,single arrow,rotate=235, draw, inner sep=1pt,
+           anchor=west,minimum width=1cm,minimum height=1.7cm,fill=lightgray!20,
+           single arrow head indent=.5ex] {$\RDFlanguage$}; 
+
+\draw[->,thick] (firefox) to[loop below] node [below] (jobad) {$\jobad$} (firefox); 
+\draw[<->,dashed] (jobad) -- (virtuoso);
+\draw[<->,dashed] (jobad) -- (tnt);
+\node[rectangle,rounded corners,draw,inner sep=6pt,dotted, 
+         fit=(drupal) (latexml) (virtuoso) (tnt)] (pacbox) {};
+\node[above=1.1cm of tnt] {\footnotesize \hspace{1.4em}\begin{tabular}{r}Content\\ Management\\ System\end{tabular}};
+\end{tikzpicture}
+\end{module}
+\end{document}
+%%% Local Variables: 
+%%% mode: LaTeX
+%%% TeX-master: t
+%%% End: