%% 
%% This is file mscscls.ltx - generated with MakeDist v1.0, by M. Reed 
%% 
 
\documentclass{book}

\begin{filecontents*}{mscs.cls}
%%
%% 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
\end{filecontents*}

\begin{filecontents*}{mscs2egu.tex}
% This is file MSCS2egu.tex
% v1.2 released 3rd October 2001
%   (based on MSCSguid.tex for LaTeX 2.09)
% Copyright (C) 1997-2001 Cambridge University Press

\NeedsTeXFormat{LaTeX2e}

\documentclass{mscs}

\title[Mathematical Structures in Computer Science]
  {\LaTeXe\ guide for MSCS authors}
\author[\LaTeXe\ guide]
  {C\ls A\ls M\ls B\ls R\ls I\ls D\ls G\ls E\ns
   \TeX\ls -\ls T\ls O\ls -\ls T\ls Y\ls P\ls E}
\date{October 2001}

\pubyear{2001}
\pagerange{\pageref{firstpage}--\pageref{lastpage}}
\volume{00}
\doi{S0960129501003425}

\newcommand\eg{\textit{e.g.\ }}
\newcommand\etc{\textit{etc}}

\newtheorem{lemma}{Lemma}[section]

\begin{document}

\label{firstpage}
\maketitle

\begin{abstract}
This guide is for authors who are preparing papers for the
\emph{Journal of Mathematical Structures in Computer Science}
using the \LaTeX\ document preparation system and the CUP MSCS class file.
\end{abstract}

\tableofcontents

\ifprodtf \newpage \else \vspace*{-1\baselineskip}\fi

\section{Introduction}

The layout design for the \emph{Journal of Mathematical Structures
in Computer Science} has been implemented as a \LaTeX\ class file.
The MSCS class is based on the \verb"ARTICLE" class as discussed in
the \LaTeX\ manual.
Commands which differ from the standard \LaTeX\ interface, or which are
provided in addition to the standard interface, are explained in this
guide. This guide is not a substitute for the \LaTeX\ manual itself.

\ifprodtf \else \newpage\fi

\subsection{Introduction to \LaTeX}

The \LaTeX\ document preparation system is a special version of the
\TeX\ typesetting program.
\LaTeX\ adds to \TeX\ a collection of commands which simplify typesetting for
the author by allowing him/her to concentrate on the logical structure of the
document rather than its visual layout.

\LaTeX\ provides a consistent and comprehensive document preparation
interface. There are simple-to-use commands for generating a table of
contents, lists of figures and/or tables, and indexes.
\LaTeX\ can automatically number list entries, equations, figures,
tables, and footnotes, as well as parts, sections and subsections.
Using this numbering system, bibliographic citations, page references and
cross references to any other numbered entity (\eg sections, equations,
figures, list entries) are quite straightforward.

\subsection{The MSCS document class}

The use of document classes allows a simple change of style (or
style option) to transform the appearance of your document.
The CUP MSCS class file preserves the standard \LaTeX\ interface
such that any document which can be  produced using the standard
\LaTeX\ \verb"ARTICLE" class, can also be produced with the MSCS class.
However, the measure (or width of text) is wider than for \verb"ARTICLE",
therefore line breaks will change and long equations may need re-setting.
Authors should not introduce hard line and page breaks into the
text. The finished pages will be typeset in the Times typeface, while
most authors use Computer Modern. This change of typeface will alter both
line and page breaks.

It is essential that you do not modify \verb"mscs.cls". When
additional macros are required, place them in a separate file with
the filename extension \verb".sty" (e.g. \verb"mymacros.sty").
Then load these macros with \verb"\usepackage":
\begin{verbatim}
  \documentclass{mscs}
\end{verbatim}
\begin{verbatim}
  \usepackage{mymacros}
\end{verbatim}
In this way you will distinguished clearly between the main class file
and your own macros, which can then be found easily by the journal editor.
Do not forget to submit your optional style file for publication along
with your input file.

\section{Using the MSCS class}

First, copy the file \verb"mscs.cls" into the correct subdirectory on your
system. The MSCS document class is implemented as a complete document
class \emph{not} a document class option.
In order to use the MSCS class, replace \verb"article" by \verb"mscs" in
the \verb"\documentclass" command at the beginning of your document:
\begin{verbatim}
  \documentclass{article}
\end{verbatim}
is replaced by,
\begin{verbatim}
  \documentclass{mscs}
\end{verbatim}

\subsection{Document class options}

In general, the standard document class options should \emph{not} be
used with the MSCS class:
\begin{itemize}
  \item \texttt{10pt}, \texttt{11pt}, \texttt{12pt} -- unavailable.
  \item \texttt{draft}, \texttt{twoside} (no associated style file) --
        \texttt{twoside} is the default.
  \item \texttt{fleqn}, \texttt{leqno}, \texttt{titlepage}, \texttt{twocolumn} --
        unavailable.
  \item \texttt{proc}, \texttt{ifthen} -- these `packages' can be used if necessary.
\end{itemize}
%
\ifprodtf
The following new class options are provided:
\begin{itemize}
  \item \texttt{prodtf} -- tells the class file that we want to use the
    production typeface. This option also resets the odd, even and top
    margins.
\end{itemize}
\fi

\section{Additional facilities}

In addition to all the standard \LaTeX\ design elements, the MSCS class
includes the following features:
\begin{itemize}
  \item Additional commands for typesetting the title page. Extended
        commands for specifying a short version of the title and author(s)
        for the running headlines.
  \item Full width and narrow figures and tables.
  \item Unnumbered Theorem-like environments (produced with \verb"\newtheorem").
  \item A \verb"proof" environment.
  \item Control of enumerated lists.
\end{itemize}
Once you have used any of these additional facilities in your document,
you should not process it with a standard \LaTeX\ class file.

\subsection{Titles and author's names}

In the MSCS class, the title of the article and the author's name (or
authors' names) are used both at the beginning of the article for the
main title and throughout the article as running headlines at the top of
every page. The title is used on odd-numbered pages (rectos) and the
author's name appears on even-numbered pages (versos).
Although the main heading can run to several lines of text, the running
head line must be a single line.
Moreover, the main heading can also incorporate new line commands
(e.g.\ \verb"\\") but these are not acceptable in a running headline.
To enable you to specify an alternative short title and author's name, the
standard \verb"\title" and \verb"\author" commands have been extended to
take an optional argument to be used as the running headline:
\begin{verbatim}
  \title[A short title]{The full title which can be as long
                        as necessary}
  \author[Author's name]{The full author's name \\
                         with affiliation if necessary}
\end{verbatim}

The following example, taken from Danvy and Filinski (1992), shows how
this is done with more than one author, with different affiliations
and a grant acknowledgement.
\begin{verbatim}
  \title[Representing control]
    {Representing control:\\ a study of the CPS transformation}
  \author[O. Danvy and A. Filinski]
    {O\ls L\ls I\ls V\ls I\ls E\ls R\ns D\ls A\ls N\ls V\ls Y$^1$%
     \thanks{This work was partly supported by NSF under grant
      CCR-9102625.} \ns and\ns A\ls N\ls D\ls R\ls Z\ls E\ls J\ns
      F\ls I\ls L\ls I\ls N\ls S\ls K\ls I$^2$\\
      $^1$ Department of Computing and Information
      Sciences, Kansas State University, Manhattan,\addressbreak
      Kansas 66506, USA.
      \addressbreak $^2$ School of Computer Science, Carnegie Mellon
      University, Pittsburgh, Pensylvania 15213, USA.}
\end{verbatim}
Note the use of \verb"\addressbreak". It is
needed when an affiliation extends into 2 or more lines and is inserted
at the beginning of each affiliation line except the last. Note also the
use of \verb"\ls" and \verb"\ns" respectively to letterspace the authors'
names and insert an appropriate space between the names.

Once you have used these extended versions of \verb"\author" and
\verb"\title", do not use them with a standard \LaTeX\ class file.

\subsection{Figures and Tables}

The \texttt{figure} and \texttt{table} environments are implemented as described
in the \LaTeX\ Manual to provide consecutively numbered floating inserts
for illustrations and tables respectively.
The standard inserts and their captions are formatted unjustified on a
restricted (30~pica) measure.

Wide figures and tables which require the full measure can
be produced using the \texttt{figure*} and \texttt{table*} environments which
are normally used to provide double-column inserts in two-columned
documents. For example,
\begin{verbatim}
  \begin{figure*}
    \vspace{12cm}
    \caption{Test of the Gibbs adsorption isotherm for
         oxygen on copper (Bauer, Speiser \& Hirth, 1976).}
  \end{figure*}
\end{verbatim}
These wide inserts and their captions are formatted unjustified over the
full text width.

\subsection{Theorems}

Any theorem-like environments which are required should be defined
as usual in the document preamble using the \verb"\newtheorem" command.
The default for theorem numbering is by section (\eg 3.1) and is
reset at the beginning of each new section.

The \verb"\newtheorem" command also generates an unnumbered version of
any theorem-like environments defined. These can be accessed using the
\verb"*"-form of the environment. e.g.
\begin{verbatim}
  \newtheorem{lemma}{Lemma}[section]
  \begin{lemma}
    If $\mathbf{PP}_0 \vdash a\colon A$, then there exists a
    closed $\lambda$-term.
  \end{lemma}

  \begin{lemma*}
    Conversely, if $\mathbf{PN}_0 \vdash a\colon A$, then
    there exists a closed SK-term $a^\circ$.
  \end{lemma*}
\end{verbatim}
Which produces:
  \begin{lemma}
    If $\mathbf{PP}_0 \vdash a\colon A$, then there exists a
    closed $\lambda$-term.
  \end{lemma}

  \begin{lemma*}
    Conversely, if $\mathbf{PN}_0 \vdash a\colon A$, then
    there exists a closed SK-term $a^\circ$.
  \end{lemma*}
The standard optional argument [\ ] may also be used with any
unnumbered environments, created with \verb"\newtheorem". A new
command (\verb"\removebrackets") is also provided which allows you
to remove the automatic parenthesis from around the optional
argument in the output, thus alowing further flexability.

\subsection{Proofs}

The \verb"proof" environment has been added to provide a consistent
format for proofs. For example,
\begin{verbatim}
  \begin{proof}
    Use $K_\lambda$ and $S_\lambda$ to translate combinators
    into $\lambda$-terms. For the converse, translate
    $\lambda x$ \ldots by [$x$] \ldots and use induction
    and the lemma.
  \end{proof}
\end{verbatim}
produces the following text:
\begin{proof}
  Use $K_\lambda$ and $S_\lambda$ to translate combinators
  into $\lambda$-terms. For the converse, translate
  $\lambda x$ \ldots by [$x$] \ldots and use induction
  and the lemma.
\end{proof}

The final \usebox{\proofbox} will not be included if the \verb"proof*"
environment is used. Note that the proof-box is drawn by a new macro
\verb"\proofbox" and can be placed in text by typing \linebreak
\verb"\usebox{\proofbox}".

The proof environment can also take an optional argument which allows you
to produce `special' proofs, e.g.
%
  \begin{proof}[Proof of Theorem~1.6.]
  Use $K_\lambda$ and $S_\lambda$ to translate combinators
  into $\lambda$-terms. For the converse, translate
  $\lambda x$ \ldots by [$x$] \ldots and use induction
  and the lemma.
  \end{proof}
%
Which was produced like this:
%
\begin{verbatim}
  \begin{proof}[Proof of Theorem~1.6.]
  Use $K_\lambda$ and $S_\lambda$ to translate combinators
  into $\lambda$-terms. For the converse, translate
  $\lambda x$ \ldots by [$x$] \ldots and use induction
  and the lemma.
  \end{proof}
\end{verbatim}
%
Notice that once the optional argument is used, you have to type all of
the text which is to appear as the heading (including the final full-stop).

\subsection{Lists}

The MSCS class provides the three standard list environments plus an
additional unnumbered list:
\begin{itemize}
  \item Numbered lists, created using the \verb"enumerate" environment.
  \item Bulleted lists, created using the \verb"itemize" environment.
  \item Labelled lists, created using the \verb"description" environment.
\end{itemize}
The enumerated list numbers each list item with an arabic numeral;
alternative styles can be achieved by inserting a redefinition of the
number labelling command after the \verb"\begin{enumerate}".
For example, a list numbered with roman numerals inside parentheses can be
produced by the following commands:
\begin{verbatim}
    \begin{enumerate}
     \renewcommand{\theenumi}{(\roman{enumi})}
     \item first item
           :
    \end{enumerate}
\end{verbatim}
This produces the following list:
\begin{enumerate}
  \renewcommand{\theenumi}{(\roman{enumi})}
  \item first item
  \item second item
  \item etc...
\end{enumerate}
In the last example, the label for item 3 (iii) clashed with text
because the standard list indentation is designed to be sufficient for
arabic numerals rather than the wider roman numerals.
In order to enable different labels to be used more easily, the
\verb"enumerate" environment in the MSCS class can be given an optional
argument which (like a standard \verb"bibliography" environment)
specifies the \emph{widest label}.
For example,
\begin{enumerate}[(iii)]
\renewcommand{\theenumi}{(\roman{enumi})}
  \item first item
  \item second item
  \item etc...
\end{enumerate}
was produced by the following input:
\begin{verbatim}
    \begin{enumerate}[(iii)]
     \renewcommand{\theenumi}{(\roman{enumi})}
     \item first item
           :
    \end{enumerate}
\end{verbatim}
Remember, once you have used the optional argument on the \verb"enumerate"
environment, do not process your document with a standard \LaTeX\ class
file.


\section{Some guidelines for using standard facilities}

The following notes may help you achieve the best effects with the MSCS
class file.

\subsection{Sections}

\LaTeX\ provides five levels of section headings and they are all
defined in the MSCS class file:
\begin{itemize}
  \item Heading A -- \verb"\section".
  \item Heading B -- \verb"\subsection".
  \item Heading C -- \verb"\subsubsection".
  \item Heading D -- \verb"\paragraph".
  \item Heading E -- \verb"\subparagraph".
\end{itemize}
Section numbers are given for sections, subsection and subsubsection
headings.

One additional heading is provided: \verb"\xhead". This
heading is provided to obtain unnumbered `A' headings inside appendices
(normally \verb"\section"(\verb"*") commands inside appendices have the word
`Appendix' pre-appended).

\subsection{Running headlines}

As described above, the title of the article and the author's name (or
authors' names) are used as running headlines at the top of every page.
The title is used on odd-numbered pages (rectos) and the author's name
appears on even-numbered pages (versos).

The \verb"\pagestyle" and \verb"\thispagestyle" commands should
\emph{not} be used.
Similarly, the commands \verb"\markright" and \verb"\markboth" should not
be necessary.

\subsection{Illustrations (or figures)}

The MSCS class will cope with most positioning of your illustrations and
tables and you should not normally use the optional positional qualifiers
on the \verb"figure" environment which would override these decisions.
Figure captions should be below the figure itself therefore the
\verb"\caption" command should appear after the figure or space left for
an illustration. For example, Figure~\ref{sample-figure} is produced
using the following commands:
\begin{figure}
  \vspace{3cm}
  \caption{An example figure with space for artwork.}
  \label{sample-figure}
\end{figure}
\begin{verbatim}
  \begin{figure}
    \vspace{3cm}
    \caption{An example figure with space for artwork.}
    \label{sample-figure}
  \end{figure}
\end{verbatim}

\subsection{Tables}

The MSCS class will cope with most positioning of your illustrations and
tables and you should not normally use the optional positional qualifiers
on the \verb"table" environment which would override these decisions.
Table captions should be at the top therefore the \verb"\caption" command
should appear before the body of the table.
For example, Table~\ref{sample-table} is produced using the following
commands:
%
\begin{table}
  \caption{An example table}
    \begin{tabular}{cccc}
     \hline
     \hline
     Figure & $hA$ & $hB$ & $hC$\\
     \hline
     2 & $\exp\left(\pi i\frac58\right)$
       & $\exp\left(\pi i\frac18\right)$ & $0$\\
     3 & $-1$    & $\exp\left(\pi i\frac34\right)$ & $1$\\
     4 & $-4+3i$ & $-4+3i$ & $\frac74$\\
     5 & $-2$    & $-2$    & $\frac54 i$ \\
     \hline
     \hline
    \end{tabular}
  \label{sample-table}
\end{table}
\begin{verbatim}
  \begin{table}
    \caption{An example table}
    \begin{tabular}{cccc}
     \hline \hline
     Figure & $hA$ & $hB$ & $hC$\\
     \hline
     2 & $\exp\left(\pi i\frac58\right)$
       & $\exp\left(\pi i\frac18\right)$ & $0$\\
     3 & $-1$    & $\exp\left(\pi i\frac34\right)$ & $1$\\
     4 & $-4+3i$ & $-4+3i$ & $\frac74$\\
     5 & $-2$    & $-2$    & $\frac54 i$ \\
     \hline \hline
    \end{tabular}
    \label{sample-table}
  \end{table}
\end{verbatim}
%
The \verb"tabular" environment should be used to produce ruled tables;
it has been modified for the MSCS class so that additional vertical space
is inserted on either side of a rule (produced by \verb"\hline"). Commands
to redefine quantities such as \verb"\arraystretch" should be omitted.

\subsubsection{Continued captions.}

If a table or figure will not fit onto a single page and has to broken into
more than one part, the subsequent parts should be should have a caption like:
\hbox{Fig. 1 \textit{continued}.} or \hbox{Table 1 \textit{continued}.} To achieve
this, use \verb"\contcaption" instead of \verb"\caption", in the subsequent
figure or table environments.  The \verb"\contcaption" uses exactly the same
syntax as the normal \verb"\caption" command, except it does not step
the counter.

\subsection{Appendices}

Use the standard \LaTeX\ \verb"\appendix" command. After this any
\verb"\section" commands will start a new appendix.

Appendices should normally be placed after the main sections
and before an acknowledgement and the list of references. This ensures
that the references can be found easily at the end of the article.
Occasionally, appendices are so different from the main text, as in
this document, that they should be placed at the end.

\subsection{Bibliography}

As with standard \LaTeX, there are two ways of producing
a bibliography; either by compiling a list of references
by hand (using a \verb"thebibliography" environment), or
by using Bib\TeX\ with a suitable bibliographic database.

\subsubsection{Citations in the text.}

MSCS journal class uses the author-date system for
references. \LaTeX\ does not handle this system
effectively and many authors simply key the reference
citations by hand. This method is
accepted by the journal, though authors are encouraged to
use \verb"\cite" and the \verb"\bibitem" label because these
help with consistent citations and efficient editing.

In standard \LaTeX\ you make a citation such as
\cite{JCR} by typing \verb"\cite{JCR}". The key \verb"JCR"
establishes the cross-reference to the bibliography (see below)
and \verb"\cite" can extract the \verb"\bibitem" label to create
the in-text citation. Citations such as Toyn \linebreak \emph{et al.}
(1987) cannot be produced in this way and must be typed in the text.

In MSCS the \verb"\cite" command has been extended (using code from
\verb"apalike.sty") so that a list of references can be generated.
For instance, \cite{DEK,AJ1,TDR} was produced by typing
\verb"\cite{DEK,AJ1,TDR}".

\subsubsection{The list of references.}

The following listing shows examples of references
prepared in the style of the journal and they are
typeset below. Note that the \verb"\bibitem" arguments
\verb"[<label>]" and \verb"{<key>}" are only needed if
you are using \verb"\cite".
%
\begin{verbatim}
\begin{thebibliography}{}
 \bibitem[Augustsson and Johnsson 1987]{AJ1}
   Augustsson,~L. and Johnsson,~T. (1987) LML users' manual. PMG
   Report, Department of Computer Science, Chalmers University of
   Technology, Goteborg, Sweden.
 \bibitem[Conklin 1987]{JC}
   Conklin,~J. (1987) Hypertext: an introduction and survey.
   \emph{IEEE Computer} \textbf{20}~(9), 17--41.
\bibitem[Dijkstra 1976]{EWD}
   Dijkstra,~E.\,W. (1976) \emph{A Discipline of Programming}.
   Prentice-Hall.
\bibitem[Knuth 1984]{DEK}
   Knuth,~D.\,E. (1984) Literate programming. \emph{BCS Comput.\ J.}
   \textbf{27}~(2), 97--111 (May).
\bibitem[Danvy and Filinski 1992]{DO}
   Danvy, O. and Filinski, A. (1992) Representing control: a study
   of the CPS transformation \emph{Math. Struct. in Comp. Science}
   \textbf{2}~(2), 361--391.
\bibitem[Reynolds 1968]{JCR}
   Reynolds,~J.\,C. (1969) Transformation systems and the
   algebraic structure of atomic formulas. In B. Meltzer and
   D. Michie (editors), \emph{Machine Intelligence} \textbf{5}, 135--151.
   Edinburgh University Press.
\bibitem[Toyn \emph{et al.} 1987]{TDR}
   Toyn,~I., Dix,~A. and Runciman,~C. (1987) Performance
   polymorphism. In \emph{Functional Programming Languages and
   Computer Architecture, Lecture Notes in Computer Science}
   \textbf{274}, 325--346. Springer-Verlag.
\end{thebibliography}
\end{verbatim}
%
\begin{thebibliography}{}
 \bibitem[Augustsson and Johnsson 1987]{AJ1}
   Augustsson,~L. and Johnsson,~T. (1987) LML users' manual. PMG
   Report, Department of Computer Science, Chalmers University of
   Technology, Goteborg, Sweden.
 \bibitem[Conklin 1987]{JC}
   Conklin,~J. (1987) Hypertext: an introduction and survey.
   \emph{IEEE Computer} \textbf{20}~(9), 17--41.
\bibitem[Dijkstra 1976]{EWD}
   Dijkstra,~E.\,W. (1976) \emph{A Discipline of Programming}.
   Prentice-Hall.
\bibitem[Knuth 1984]{DEK}
   Knuth,~D.\,E. (1984) Literate programming. \emph{BCS Comput.\ J.}
   \textbf{27}~(2), 97--111 (May).
\bibitem[Danvy and Filinski 1992]{DO}
   Danvy, O. and Filinski, A. (1992) Representing control: a study
   of the CPS transformation \emph{Math. Struct. in Comp. Science}
   \textbf{2}~(2), 361--391.
\bibitem[Reynolds 1968]{JCR}
   Reynolds,~J.\,C. (1969) Transformation systems and the
   algebraic structure of atomic formulas. In B. Meltzer and
   D. Michie (editors), \emph{Machine Intelligence} \textbf{5}, 135--151.
   Edinburgh University Press.
\bibitem[Toyn \emph{et al.} 1987]{TDR}
   Toyn,~I., Dix,~A. and Runciman,~C. (1987) Performance
   polymorphism. In \emph{Functional Programming Languages and
   Computer Architecture, Lecture Notes in Computer Science}
   \textbf{274}, 325--346. Springer-Verlag.
\end{thebibliography}

\newpage
\appendix

\section{Special commands in \textmd{\texttt{mscs.cls}}}

The following is a summary of the new commands, optional
arguments and environments which have been added to the
standard \LaTeX\ user-interface in creating the MSCS class file.

\vspace{6pt}

\begin{tabular}{lp{8cm}}
\emph{New commands}     & \\
\verb"\addressbreak"    & allows you to break long affiliations into shorter lines.\\
\verb"\contcaption"     & for continued captions.\\
\verb"\ls"              & to letter space the author's name. \\
\verb"\ns"              & to insert space between an author's names. \\
\verb"\proofbox"        & used with \verb"\usebox" to place a proofbox
                          in text. \\
\verb"\removebrackets"  & removes the automatic parenthesis from around
                          the optional argument in environments created
                          by \verb"\newtheorem".\\
\verb"\xhead"           & used in Appendices to produce unnumbered
                          \verb"\section"s (without the appended `Appendix').\\[6.5pt]
\emph{New optional arguments} & \\
\verb"[<short title>]"  & in the \verb"\title" command: to define a right running
                          headline that is different from the article title. \\
\verb"[<short author>]" & in the \verb"\author" command: to define a left running
                          headline with text that is different from the
                          authors' names as typeset at the article opening. \\
\verb"[<widest label>]" & in \verb"\begin{enumerate}": to ensure the correct alignment
                          of numbered lists.\\[6.5pt]
\emph{New environments}  & \\
\verb"figure*"          & this environment is redefined in \verb"mscs.cls" to typeset
                          a long figure legend to the full text-width. \\
\verb"table*"           & this environment is redefined in \verb"mscs.cls" to typeset
                          wide tables, so that the table caption and rules are the
                          full text-width. \\
\verb"proof"            & to typeset mathematical proofs. \\
\verb"proof*"           & to typeset mathematical proofs without the
                          terminating proofbox.
\end{tabular}

\ifprodtf \else \newpage\fi
\section{Notes for editors}

\setcounter{subsubsection}{0}

This appendix contains additional information which may be useful to
those who are involved with the final production stages of an article.
Authors, who are generally not typesetting the final pages in the
journal's typeface, do not need this information.

\ifprodtf
\subsubsection{Setting the production typeface.}

The global \verb"\documentclass" option `\verb"prodtf"' sets up
\verb"mscs.cls" to typeset in the production typeface -- Monotype Times.
e.g.
%
\begin{verbatim}
  \documentclass[prodtf]{mscs}
\end{verbatim}
\fi

\subsubsection{Catchline commands.}

To be placed in the preamble:
\begin{itemize}
  \item \verb"\pubyear{}"
  \item \verb"\volume{}"
  \item \verb"\pagerange{}"
  \item \verb"\doi{}"
\end{itemize}

\subsubsection{Footnotes.}

If a footnote falls at the bottom of a page, it is possible for the
footnote to appear on the following page (a feature of \TeX ).
Check for this.

\subsubsection{Table footnotes and long captions.}

Set the table in a minipage that has the same width as the table body.
The caption will be set to the same width as the table and the footnotes
will fall at the bottom of the minipage.

\subsubsection{Font sizes.}

The MSCS class file defines all the standard \LaTeX\ font sizes:
\begin{itemize}
  \item \verb"\indexsize" -- {\indexsize This is indexsize text.}
  \item \verb"\footnotesize" -- {\footnotesize This is footnotesize text.}
  \item \verb"\small" -- {\small This is small text.}
  \item \verb"\normalsize" -- This is normalsize text (default).
  \item \verb"\LARGE" -- {\LARGE This is LARGE text.}
\end{itemize}
%
All these sizes are summarized in Table~\ref{tab:fontsizes}.
%
\begin{table*}[hbt]
\caption{Type sizes for \LaTeX\ size-changing commands.}
\label{tab:fontsizes}
 \begin{tabular}{lcl}
 \hline\hline
 \textit{Size}        &  \textit{size/baseline} & \textit{Usage}\\
 \hline
 \verb"\tiny"         &  5pt/6pt  & -- \\
 \verb"\scriptsize"   &  7pt/8pt  & -- \\
 \verb"\indexsize"    &  8pt/9pt  & index entries. \\
 \verb"\footnotesize" &  8pt/10pt & footnotes, table body. \\
 \verb"\small"        &  9pt/12pt & abstract, references, quote, \\
                      &           & quotations, received date, \\
                      &           & affiliation, figure captions. \\
 \verb"\normalsize"   & 10pt/13pt & main text size, author,\\
                      &           & section headings, etc. \\
 \verb"\large"        & 12pt/14pt & -- \\
 \verb"\Large"        & 14pt/18pt & -- \\
 \verb"\LARGE"        & 17pt/21pt & article title, part title. \\
 \verb"\huge"         & 20pt/25pt & -- \\
 \verb"\Huge"         & 25pt/30pt & -- \\
 \hline\hline
 \end{tabular}
\end{table*}

\ifprodtf
%
\newcommand\lra{\quad\longrightarrow\quad}

\section{Macros provided by {\tt mscs2esy.sty}}

\subsection{Automatic font/character changes}

\begin{itemize}\itemsep=6pt
\item The \verb|\le|, \verb|\leq|, \verb|\ge|, \verb|\geq| commands
use the equivalent AMS slanted symbols:
\[
\oldle \oldleq \oldge \oldgeq
 \lra
\le \leq \ge \geq
\]
The normal characters can be obtained by using the \verb|\old| form
(\eg \verb|\oldge|).
\end{itemize}

\subsection{Additional fonts}

\begin{itemize}\itemsep=6pt
\item The complete (v1) AMS symbols are available using the normal names:
\[
\hbox{\verb"\boxdot \boxplus \boxtimes"} \lra
  \boxdot \boxplus \boxtimes
\]
The \verb"\emptyset" ($\emptyset$) symbol is substituted from the
CUP Pi fonts.  The normal empty set symbol ($\oldemptyset$) can be obtained by
using \verb"\oldemptyset".

\item Blackboard bold:
\[
\hbox{\verb"$\mathbb{ABC}$"} \lra \mathbb{ABC}
\]

\item Fraktur/Gothic:
\[
   \hbox{\verb"$\mathfrak{ABC}$"} \lra \mathfrak{ABC}
\]

\item Monotype Script and bold Script:\\[6pt]
\verb"  $\mathscr{ABCabc}$ " $\lra \mathscr{ABCabc}$\\
\verb"  $\mathbscr{ABCabc}$" $\lra \mathbscr{ABCabc}$

\item Bold math italic/symbols are provided by the \verb"\boldsymbol" command
(\verb"\bmath" is provided as an alias). \verb"mscs2esy" also defines most of the
symbols from Appendix F of the \TeX book. These can be obtained by using
their normal (unbold) symbol name prefixed with a `b'. \eg \verb|\nabla|
becomes \verb|\bnabla|. The only exception to this rule is \verb|\eta|,
which whould lead to a clash with \verb|\beta|. In this case use
\verb|\boldeta| for bold eta.

\item Upright Greek: The \verb"\mathup" and \verb"\mathbup" macros are provided
(by \verb"upmath.sty") to obtain upright (and bold upright) lower-case Greek characters.
All of the lower-case Greek characters are pre-defined.\\[6pt]
%
\verb"  $\ualpha$" $\lra \ualpha$ \qquad
\verb"$\ubalpha$"  $\lra \ubalpha$

\item Sans serif symbols:
The following commands provide easy access to the various sans serif faces, in text
and math mode.\\[6pt]
%
\verb"  \textsf{text}  " $\lra$ \textsf{text}
  \qquad \verb"\mathsf{math}  " $\lra \mathsf{math}$\\
\verb"  \textsfi{text} " $\lra$ \textsfi{text}
  \qquad \verb"\mathsfi{math} " $\lra \mathsfi{math}$\\
\verb"  \textsfb{text} " $\lra$ \textsfb{text}
  \qquad \verb"\mathsfb{math} " $\lra \mathsfb{math}$\\
\verb"  \textsfbi{text}" $\lra$ \textsfbi{text}
  \qquad \verb"\mathsfbi{math}" $\lra \mathsfbi{math}$\\[6pt]

\end{itemize}
%
\fi

\label{lastpage}

\end{document}
\end{filecontents*}


\begin{document}

\typeout{------------------------------------------}
\typeout{^^JYou can now safely delete mscscls.*^^J}
\typeout{------------------------------------------}

\end{document}
 
%% 
%% End of file mscscls.ltx 
%% 
