% begin.tex

%=========================================================================%
% load begin.tex only once, but keep count to match \bye commands
%=========================================================================%

\ifx\begin\undefined\else\global\advance\srcdepth by
1\expandafter\endinput\fi

\def\begin{}
\newcount\srcdepth
\srcdepth=1

\outer\def\bye{\global\advance\srcdepth by -1
  \ifnum\srcdepth=0
    \def\endcmd{\vfill\supereject\nopagenumbers\par\vfill\supereject\end}
  \else\def\endcmd{}\fi
  \endcmd
}

%=========================================================================%
% initialize TeX
%=========================================================================%

% #1 magnification
% #2 text width
% #3 text height
% #4 page width
% #5 page height
% #6 vertical adjustment after centering

\def\initialize#1#2#3#4#5#6{
  \ifnum\srcdepth=1
  \magnification=#1
  \hsize = #2
  \vsize = #3
  \hoffset=#4
  \advance\hoffset by -\hsize
  \divide\hoffset by 2
  \advance\hoffset by -1truein
  \voffset=#5
  \advance\voffset by -\vsize
  \divide\voffset by 2
  \advance\voffset by -1truein
  \advance\voffset by #6
  \baselineskip=13pt
  \emergencystretch = 0.05\hsize
  \fi
}

\def\print{\initialize{1095}
  {5.5truein}{8.5truein}{8.5truein}{11truein}{-.0625truein}}

\def\powerbook{\initialize{1493}
  {7.5truein}{10truein}{8.5truein}{11truein}{-.0625truein}}

\newif\ifblackboardbold

% comment out the following line if AMS msbm fonts aren't available
\blackboardboldtrue

%=========================================================================%
% select fonts
%=========================================================================%

\font\titlefont=cmbx12 scaled\magstephalf
\font\sectionfont=cmbx12
\font\netfont=cmtt9

% allow use of \it and \sl in math subscripts
\font\scriptit=cmti10 at 7pt
\font\scriptsl=cmsl10 at 7pt
\scriptfont\itfam=\scriptit
\scriptfont\slfam=\scriptsl

% Establish AMS blackboard bold fonts without using amssym.def, amssym.tex

\newfam\bboldfam
\ifblackboardbold
\font\tenbbold=msbm10
\font\sevenbbold=msbm7
\font\fivebbold=msbm5
\textfont\bboldfam=\tenbbold
\scriptfont\bboldfam=\sevenbbold
\scriptscriptfont\bboldfam=\fivebbold
\def\bbold{\fam\bboldfam\tenbbold}
\else
\def\bbold{\bf}
\fi

% Establish AMS msam symbols without using amssym.def, amssym.tex

\newfam\msamfam
\font\tenmsam=msam10
\font\sevenmsam=msam7
\font\fivemsam=msam5
\textfont\msamfam=\tenmsam
\scriptfont\msamfam=\sevenmsam
\scriptscriptfont\msamfam=\fivemsam
\def\msam{\fam\msamfam\tenmsam}

\newfam\msbmfam
\font\tenmsbm=msam10
\font\sevenmsbm=msam7
\font\fivemsbm=msam5
\textfont\msbmfam=\tenmsbm
\scriptfont\msbmfam=\sevenmsbm
\scriptscriptfont\msbmfam=\fivemsbm
\def\msbm{\fam\msbmfam\tenmsbm}

%================================================
% The following macro "\newsymbol " works for MSAM, MSBM und EUFM
% automatically using the AMS-Font ID-number 1 for MSAM, 2 for MSBS,
% 3 for EUFM similar to the AMS-Macro \newsymbol
%-------------------------------------------------------------
\newcount\amsfamcount % define new registers to
\newcount\classcount   % store the digits for conversion
\newcount\positioncount
\newcount\codecount
\newcount\n             % store the #2 parameter
%-------------------------
\def\newsymbol#1#2#3#4#5{               % #1 is the name of the new
%                                       % macro to be defined
\n="#2                                  % #2 is the AMS font family number
\ifnum\n=1 \amsfamcount=\msamfam\else   % translate it to the correct
\ifnum\n=2 \amsfamcount=\msbmfam\else   % PlainTex font family number
\ifnum\n=3 \amsfamcount=\eufmfam
\fi\fi\fi
\multiply\amsfamcount by "100           % make it the third hex digit
\classcount="#3                 % #3 is the class number (same as in Plain)
\multiply\classcount by "1000           % make it the fourth hex digit
\positioncount="#4#5            % #4#5 is the hex position in the fonttable
%
\codecount=\classcount                  % add the three numbers to obtain
\advance\codecount by \amsfamcount      % the Plain TEX identification number
\advance\codecount by \positioncount
%
\mathchardef#1=\codecount}              % define #1 to become a character
%                                       % with this identification number

%=========================================================================%
% font size-changing command ("A Beginner's Book of TeX" p35, p275)
%=========================================================================%

\font\Arm=cmr9
\font\Ai=cmmi9
\font\Asy=cmsy9
\font\Abf=cmbx9
\font\Brm=cmr7
\font\Bi=cmmi7
\font\Bsy=cmsy7
\font\Bbf=cmbx7
\font\Crm=cmr6
\font\Ci=cmmi6
\font\Csy=cmsy6
\font\Cbf=cmbx6

\ifblackboardbold
\font\Abbold=msbm10 at 9pt
\font\Bbbold=msbm7
\font\Cbbold=msbm5 at 6pt
\fi

\def\small{%
\textfont0=\Arm \scriptfont0=\Brm \scriptscriptfont0=\Crm
\textfont1=\Ai \scriptfont1=\Bi \scriptscriptfont1=\Ci
\textfont2=\Asy \scriptfont2=\Bsy \scriptscriptfont2=\Csy
\textfont\bffam=\Abf \scriptfont\bffam=\Bbf \scriptscriptfont\bffam=\Cbf
\def\rm{\fam0\Arm}\def\mit{\fam1}\def\oldstyle{\fam1\Ai}%
\def\bf{\fam\bffam\Abf}%
\ifblackboardbold
\textfont\bboldfam=\Abbold
\scriptfont\bboldfam=\Bbbold
\scriptscriptfont\bboldfam=\Cbbold
\def\bbold{\fam\bboldfam\Abbold}%
\fi
\rm
}

%=========================================================================%
% single-pass symbolic theorem labeling
%=========================================================================%

% Because this is a single-pass mechanism with no .aux file, forward
% references need to be declared in advance:

%   \forward{thm:main}{Theorem}{1.1}

% This is also the mechanism for "timely" declaration of labels, which
% will usually be buried within the corresponding theorem macros.
% A warning is issued if a label redeclaration is inconsistent, allowing
% forward references to be manually fixed.

%   \ref{thm:main} produces "Theorem~1.1"
%   \refs{thm:main} produces "Theorems~1.1"
%   \refn{thm:main} produces "1.1"

% Some TeX adapted from "The Advanced TeXbook" by David Salomon, chapter 9.

% Implementers: The code for \forward is subtle. Its second argument must
% be provided literally, e.g. "Theorem" rather that "\capitalize{theorem}".
% Its third argument must either be literal or a macro that expands
% directly to a literal, e.g. "\edef\numtoks{\number\proccount}".
% This use of \edef cannot be replaced by \def, which defers expansion.
% Failure to follow these rules will cause spurious warnings that forward
% references are inconsistent, when they are in fact consistent after
% expansion. Note the "Towers of Palo Alto" recreational math problem
% involving the iterated use of \expandafter to expand the first argument
% to \forwardsub before calling it.

\newlinechar=`@
\def\forwardmsg#1#2#3{\immediate\write16{@*!*!*!* forward reference should
be: @\noexpand\forward{#1}{#2}{#3}@}}
\def\nodefmsg#1{\immediate\write16{@*!*!*!* #1 is an undefined reference@}}

\def\forwardsub#1#2{\def\newref{{#2}{#1}}}

\def\forward#1#2#3{%
\expandafter\expandafter\expandafter\forwardsub\expandafter{#3}{#2}
\expandafter\ifx\csname#1\endcsname\relax\else%
\expandafter\ifx\csname#1\endcsname\newref\else%
\forwardmsg{#1}{#2}{#3}\fi\fi%
\expandafter\let\csname#1\endcsname\newref}

\def\firstarg#1{\expandafter\argone #1}\def\argone#1#2{#1}
\def\secondarg#1{\expandafter\argtwo #1}\def\argtwo#1#2{#2}

\def\ref#1{\expandafter\ifx\csname#1\endcsname\relax
  {\nodefmsg{#1}\bf`#1'}\else
  \expandafter\firstarg\csname#1\endcsname
  ~\expandafter\secondarg\csname#1\endcsname\fi}

\def\refs#1{\expandafter\ifx\csname#1\endcsname\relax
  {\nodefmsg{#1}\bf`#1'}\else
  \expandafter\firstarg\csname #1\endcsname
  s~\expandafter\secondarg\csname#1\endcsname\fi}

\def\refn#1{\expandafter\ifx\csname#1\endcsname\relax
  {\nodefmsg{#1}\bf`#1'}\else
  \expandafter\secondarg\csname #1\endcsname\fi}

%=========================================================================%
% widow control
%=========================================================================%

% usage:
% \widow{.2} % start new page if <.2 page left

\def\widow#1{\vskip 0pt plus#1\vsize\goodbreak\vskip 0pt plus-#1\vsize}

%=========================================================================%
% sections and theorems
%=========================================================================%

% use \showlabels or \showlabelsabove to display section and theorem labels

\def\marginlabel#1{}

\def\showlabels{
\font\labelfont=cmss10 at 8pt
\def\marginlabel##1{\llap{\labelfont##1\quad}}
}

\def\showlabelsabove{
\font\labelfont=cmss10 at 6pt
\def\marginlabel##1{\rlap{\smash{\raise 10pt\hbox{\labelfont##1}}}}
}

\newcount\seccount
\newcount\proccount
\seccount=0
\proccount=0

\def\stdskip{\vskip 9pt plus3pt minus 3pt}
\def\stdbreak{\par\removelastskip\penalty-100\stdskip}

\def\proof{\stdbreak\noindent{\bf Proof. }}

\def\qed{\vrule height 1.2ex width .9ex depth .1ex}

\def\Box{
  \ifmmode\eqno\qed
  \else\ifvmode\removelastskip\line{\hfil\qed}
  \else\unskip\quad\hskip-\hsize
    \hbox{}\hskip\hsize minus 1em\qed\par
  \fi\stdbreak\fi}

\def\references{
  \removelastskip
  \widow{.05}
  \vskip 24pt plus 6pt minus 6 pt
  \leftline{\sectionfont References}
  \nobreak\stdskip\noindent}

\def\ifempty#1#2\endB{\ifx#1\endA}
\def\makeref#1#2#3{\ifempty#1\endA\endB\else\forward{#1}{#2}{#3}\fi}

\outer\def\section#1 #2\par{
  \removelastskip
  \global\advance\seccount by 1
  \global\proccount=0\relax
                \edef\numtoks{\number\seccount}
  \makeref{#1}{Section}{\numtoks}
  \widow{.05}
  \vskip 24pt plus 6pt minus 6 pt
  \message{#2}
  \leftline{\marginlabel{#1}\sectionfont\numtoks\quad #2}
  \nobreak\stdskip}

\def\proclamation#1#2{
  \outer\expandafter\def\csname#1\endcsname##1 ##2\par{
  \stdbreak
  \global\advance\proccount by 1
  \edef\numtoks{\number\seccount.\number\proccount}
  \makeref{##1}{#2}{\numtoks}
  \noindent{\marginlabel{##1}\bf #2 \numtoks\enspace}
  {\sl##2\par}
  \stdbreak}}

\def\othernumbered#1#2{
  \outer\expandafter\def\csname#1\endcsname##1{
  \stdbreak
  \global\advance\proccount by 1
  \edef\numtoks{\number\seccount.\number\proccount}
  \makeref{##1}{#2}{\numtoks}
  \noindent{\marginlabel{##1}\bf #2 \numtoks\enspace}}}

\proclamation{definition}{Definition}
\proclamation{lemma}{Lemma}
\proclamation{proposition}{Proposition}
\proclamation{theorem}{Theorem}
\proclamation{corollary}{Corollary}
\proclamation{conjecture}{Conjecture}

\othernumbered{example}{Example}
\othernumbered{remark}{Remark}
\othernumbered{construction}{Construction}

%==========================================================================
% figure, table macros
%==========================================================================

\def\figure#1{
 \global\advance\figcount by 1
 \goodbreak
 \midinsert#1\smallskip
 \centerline{Figure~\number\figcount}
 \endinsert}

\def\capfigure#1#2{
 \global\advance\figcount by 1
 \goodbreak
 \midinsert#1\smallskip
 \vbox{\small\noindent {\bf Figure~\number\figcount:} #2}
 \endinsert}

\def\capfigurepair#1#2#3#4{
 \goodbreak
 \midinsert
 #1\smallskip
 \global\advance\figcount by 1
 \vbox{\small\noindent {\bf Figure~\number\figcount:} #2}
 \vskip 12pt
 #3\smallskip
 \global\advance\figcount by 1
 \vbox{\small\noindent {\bf Figure~\number\figcount:} #4}
 \endinsert}

% table modified from "A Beginner's Book of TEX" p. 115

\def\baretable#1#2{
\vbox{\offinterlineskip\halign{
 \strut\kern #1\hfil##\kern #1
 &&\kern #1\hfil##\kern #1\cr
 #2
}}}

\def\gridtablesub#1#2#3{
\vbox{\offinterlineskip\halign{
 \strut\vrule\kern #1\hfil##\hfil\kern #2\vrule
 &&\kern #1\hfil##\kern #2\vrule\cr
 \noalign{\hrule}
 #3
 \noalign{\hrule}
}}}

\def\gridtable#1{\gridtablesub{6pt}{3pt}{#1}}
\def\gridtablefig#1{\figure{\centerline{\gridtable{#1}}}}
\def\capgridtablefig#1#2{\capfigure{\centerline{\gridtable{#1}}}{#2}}

\def\capgridtablefigpair#1#2#3#4{\capfigurepair
{\centerline{\gridtable{#1}}}{#2}{\centerline{\gridtable{#3}}}{#4}}

%=========================================================================%
% enable postscript illustrations using epsf.tex
%=========================================================================%

% Usage:
% \draw{70}{fig}{} % draw fig.eps at 70% scale
% \draw{999}{fig}{} % draw fig.eps scaled to width of page

% Optional third argument can be multiple calls to \figtext; see below.
% More generally, the third argument is read in vertical mode, with the
% reference point at the lower left corner of the eps picture, whose
% dimensions are contained in the dimen registers \drawx and \drawy.
% This enables using TeX to generate the text that goes with the picture.
% To request that the picture be widened to respect the added text,
% examine and modify the dimen registers \ngap, \egap, \sgap, \wgap.
% This is done automatically by the \figtext macro.

% These macros rely on "epsf.tex" which is the lowest level interface
% available for including encapsulated Postscript files in TeX documents.
% Rather that manually reading the .eps file to compute the nominal size,
% the \epsfbox macro is called twice, and two of its internal registers
% are examined after the first call. A major change to epsf.tex (unlikely)
% will require changes here.

% add line \texturestrue to Textures version of epsf.tex

\newif\iftextures
\input epsf

\newcount\figcount
\figcount=0
\newcount\figxscale
\newcount\figyscale
\newcount\figxoffset
\newcount\figyoffset
\newbox\drawing
\newcount\drawbp
\newdimen\drawx
\newdimen\drawy
\newdimen\ngap
\newdimen\sgap
\newdimen\wgap
\newdimen\egap

\def\drawbox#1#2#3{\vbox{
  \epsfgetbb{#2.eps} % computes \epsfllx \epsflly \epsfurx \epsfury
  \drawbp=\epsfurx
  \advance\drawbp by-\epsfllx\relax
  \multiply\drawbp by #1
  \divide\drawbp by 100
  \drawx=\drawbp bp
  \drawbp=\epsfury
  \advance\drawbp by-\epsflly\relax
  \multiply\drawbp by #1
  \divide\drawbp by 100
  \drawy=\drawbp bp
  \iftextures
  		\figxscale=#1
    \multiply\figxscale by 10
    \setbox\drawing=\vbox to \drawy{\vfil
      \hbox to \drawx{\special{illustration #2.eps scaled
\number\figxscale}\hfil}}
  \else %dvips
    \figxoffset=-\epsfllx
    \multiply\figxoffset by#1
    \divide\figxoffset by100
    \figyoffset=-\epsflly
    \multiply\figyoffset by#1
    \divide\figyoffset by100
    \setbox\drawing=\vbox to \drawy{\vfil
      \hbox to \drawx{\special{PSfile=#2.eps
        hoffset=\number\figxoffset\space voffset=\number\figyoffset\space
        hscale=#1 vscale=#1}\hfil}}
  \fi
  \setbox\drawing=\vbox{\offinterlineskip\box\drawing\kern 0pt}
   \ngap=0pt \sgap=0pt \wgap=0pt \egap=0pt
  \setbox0=\vbox{\offinterlineskip
    \box\drawing \ifgridlines\drawgrid\drawx\drawy\fi #3}
  \kern\ngap\hbox{\kern\wgap\box0\kern\egap}\kern\sgap}}

\def\draw#1#2#3{
  \setbox\drawing=\drawbox{#1}{#2}{#3}
  \global\advance\figcount by 1
  \edef\numtoks{\number\figcount}
  \makeref{fig:#2}{Figure}{\numtoks}
  \goodbreak
  \midinsert
  \centerline{\ifgridlines\boxgrid\drawing\fi\box\drawing}
  \smallskip
  \vbox{\offinterlineskip
    \centerline{Figure~\number\figcount}
    \smash{\marginlabel{#2}}}
  \endinsert}

\def\capdraw#1#2#3#4{
  \setbox\drawing=\drawbox{#1}{#2}{#3}
  \global\advance\figcount by 1
  \edef\numtoks{\number\figcount}
  \makeref{fig:#2}{Figure}{\numtoks}
  \goodbreak
  \midinsert
  \centerline{\ifgridlines\boxgrid\drawing\fi\box\drawing}
  \smallskip
  \vbox{\offinterlineskip
    \vskip 4pt
    \vbox{\centerline{\lineskip=3pt\small\noindent
                       {\bf Figure~\number\figcount:} #4}}
    \smash{\marginlabel{fig:#2}}}
  \endinsert}

\def\capdrawpair#1#2#3#4#5#6#7#8{
  \goodbreak
  \midinsert
  \setbox\drawing=\drawbox{#1}{#2}{#3}
  \global\advance\figcount by 1
  \edef\numtoks{\number\figcount}
  \makeref{fig:#2}{Figure}{\numtoks}
  \centerline{\ifgridlines\boxgrid\drawing\fi\box\drawing}
  \smallskip
  \vbox{\offinterlineskip
    \vskip 4pt
    \vbox{\lineskip=3pt\small\noindent {\bf Figure~\number\figcount:} #4}
    \smash{\marginlabel{fig:#2}}}
  \vskip 12pt
  \setbox\drawing=\drawbox{#5}{#6}{#7}
  \global\advance\figcount by 1
  \edef\numtoks{\number\figcount}
  \makeref{fig:#6}{Figure}{\numtoks}
  \centerline{\ifgridlines\boxgrid\drawing\fi\box\drawing}
  \smallskip
  \vbox{\offinterlineskip
    \vskip 4pt
    \vbox{\lineskip=3pt\small\noindent {\bf Figure~\number\figcount:} #8}
    \smash{\marginlabel{fig:#6}}}
  \endinsert}

\def\prevfigtoks{\edef\numtoks{\number\figcount}}

\def\nextfigtoks{%
  \advance\figcount by 1%
  \edef\numtoks{\number\figcount}%
  \advance\figcount by -1}

\def\prevfig{\prevfigtoks Figure~\numtoks}
\def\nextfig{\nextfigtoks Figure~\numtoks}

\def\prevfiglabel#1{\prevfigtoks\forward{#1}{Figure}{\numtoks}}
\def\nextfiglabel#1{\nextfigtoks\forward{#1}{Figure}{\numtoks}}

%=========================================================================%
% figure text macros
%=========================================================================%

% \figtext{x1}{y1}{x2}{y2}{text} places "text" in a box, and overlays this
% text onto an eps picture, when called as part of the third argument to
% \draw, above. (x1,y1) are eps picture coordinates, from 0 to 1
% and relative to its lower left corner. (x2,y2) are text box
% coordinates, from 0 to 1 and relative to its lower left corner.
% Any of these coordinates may take values outside of the range 0 to 1.
% These two points are attached, so text annotations survive changes of
% scale of the eps picture. If text is placed extending outside the
% eps picture, the box containing the eps picture is enlarged without
% disturbing this coordinate system.

% As an aid to placement, call the \gridlines macro to provide grid lines.
% Crosshairs mark the reference point on each text box; minor ticks are
% .002 units, and major ticks are .01 units.
% To understand the motivation for the remaining macros, consider that
% there are three separate units of measure impinging on a placement
% of text over a picture: picture units, text units, and absolute units.
% To survive picture rescaling and overall changes in the magnification of
% the document, it is important to work out idioms that record placement
% decisions in the correct units.

% The macros \swtext, \nwtext, \setext, \netext, \wtext, \stext, \etext,
% and \ntext refer to compass points on the perimeter of the text box,
% replacing the (x2,y2) arguments to \figtext. Similarly, \ctext sets
% (x2,y2) to the center of the text box.

% The macros \swpad, \nwpad, \sepad, \nepad, \wpad, \spad, \epad,
% and \npad place space in absolute TeX units around each box. The macro
% \mimic gives the height of the first argument to its second
% argument, so placements with north reference points come out aligned.
% Thus, one idiom for using these macros would be:

%   \draw{70}{twistedfiber}{
%     \setext{.594}{.288}{\sepad{3pt}{3pt}{$b^3c$}}
%     \ntext{.326}{0}{\npad{3pt}{\mimic{$b$}{$a$}}}
%     \ntext{.722}{0}{\npad{3pt}{$b$}}
%   }

% As these macros operate in vertical mode, extra spaces are permitted.

\newif\ifgridlines
\newbox\figtbox
\newbox\figgbox
\newdimen\figtx
\newdimen\figty

\def\gridlines{\gridlinestrue}

\newdimen\bwd
\bwd=2sp % 2sp (1/32768") is smallest visible width for Textures

\def\hline#1{\vbox{\smash{\hbox to #1{\leaders\hrule height \bwd\hfil}}}}

\def\vline#1{\hbox to 0pt{%
  \hss\vbox to #1{\leaders\vrule width \bwd\vfil}\hss}}

\def\clap#1{\hbox to 0pt{\hss#1\hss}}
\def\vclap#1{\vbox to 0pt{\offinterlineskip\vss#1\vss}}

\def\hstutter#1#2{\hbox{%
  \setbox0=\hbox{#1}%
  \hbox to #2\wd0{\leaders\box0\hfil}}}

\def\vstutter#1#2{\vbox{
  \setbox0=\vbox{\offinterlineskip #1}
  \dp0=0pt
  \vbox to #2\ht0{\leaders\box0\vfil}}}

\def\crosshairs#1#2{
  \dimen1=.002\drawx
  \dimen2=.002\drawy
  \ifdim\dimen1<\dimen2\dimen3\dimen1\else\dimen3\dimen2\fi
  \setbox1=\vclap{\vline{2\dimen3}}
  \setbox2=\clap{\hline{2\dimen3}}
  \setbox3=\hstutter{\kern\dimen1\box1}{4}
  \setbox4=\vstutter{\kern\dimen2\box2}{4}
  \setbox1=\vclap{\vline{4\dimen3}}
  \setbox2=\clap{\hline{4\dimen3}}
  \setbox5=\clap{\copy1\hstutter{\box3\kern\dimen1\box1}{6}}
  \setbox6=\vclap{\copy2\vstutter{\box4\kern\dimen2\box2}{6}}
  \setbox1=\vbox{\offinterlineskip\box5\box6}
  \smash{\vbox to #2{\hbox to #1{\hss\box1}\vss}}}

\def\boxgrid#1{\rlap{\vbox{\offinterlineskip
  \setbox0=\hline{\wd#1}
  \setbox1=\vline{\ht#1}
  \smash{\vbox to \ht#1{\offinterlineskip\copy0\vfil\box0}}
  \smash{\vbox{\hbox to \wd#1{\copy1\hfil\box1}}}}}}

\def\drawgrid#1#2{\vbox{\offinterlineskip
  \dimen0=\drawx
  \dimen1=\drawy
  \divide\dimen0 by 10
  \divide\dimen1 by 10
  \setbox0=\hline\drawx
  \setbox1=\vline\drawy
  \smash{\vbox{\offinterlineskip
    \copy0\vstutter{\kern\dimen1\box0}{10}}}
  \smash{\hbox{\copy1\hstutter{\kern\dimen0\box1}{10}}}}}

\def\figtext#1#2#3#4#5{
  \setbox\figtbox=\vbox{\hbox{#5}\kern 0pt}
  \figtx=-#3\wd\figtbox \figty=-#4\ht\figtbox
  \advance\figtx by #1\drawx \advance\figty by #2\drawy
  \dimen0=\figtx \advance\dimen0 by\wd\figtbox \advance\dimen0 by-\drawx
  \ifdim\dimen0>\egap\global\egap=\dimen0\fi
  \dimen0=\figty \advance\dimen0 by\ht\figtbox \advance\dimen0 by-\drawy
  \ifdim\dimen0>\ngap\global\ngap=\dimen0\fi
  \dimen0=-\figtx
  \ifdim\dimen0>\wgap\global\wgap=\dimen0\fi
  \dimen0=-\figty
  \ifdim\dimen0>\sgap\global\sgap=\dimen0\fi
  \smash{\rlap{\vbox{\offinterlineskip
    \hbox{\hbox to \figtx{}\ifgridlines\boxgrid\figtbox\fi\box\figtbox}
    \vbox to \figty{}
    \ifgridlines\crosshairs{#1\drawx}{#2\drawy}\fi
    \kern 0pt}}}}

\def\nwtext#1#2#3{\figtext{#1}{#2}01{#3}}
\def\netext#1#2#3{\figtext{#1}{#2}11{#3}}
\def\swtext#1#2#3{\figtext{#1}{#2}00{#3}}
\def\setext#1#2#3{\figtext{#1}{#2}10{#3}}

\def\wtext#1#2#3{\figtext{#1}{#2}0{.5}{#3}}
\def\etext#1#2#3{\figtext{#1}{#2}1{.5}{#3}}
\def\ntext#1#2#3{\figtext{#1}{#2}{.5}1{#3}}
\def\stext#1#2#3{\figtext{#1}{#2}{.5}0{#3}}
\def\ctext#1#2#3{\figtext{#1}{#2}{.5}{.5}{#3}}

% macros to add space to text on specified sides

\def\hpad#1#2#3{\hbox{\kern #1\hbox{#3}\kern #2}}
\def\vpad#1#2#3{\setbox0=\hbox{#3}\vbox{\kern #1\box0\kern #2}}

\def\wpad#1#2{\hpad{#1}{0pt}{#2}}
\def\epad#1#2{\hpad{0pt}{#1}{#2}}
\def\npad#1#2{\vpad{#1}{0pt}{#2}}
\def\spad#1#2{\vpad{0pt}{#1}{#2}}

\def\nwpad#1#2#3{\npad{#1}{\wpad{#2}{#3}}}
\def\nepad#1#2#3{\npad{#1}{\epad{#2}{#3}}}
\def\swpad#1#2#3{\spad{#1}{\wpad{#2}{#3}}}
\def\sepad#1#2#3{\spad{#1}{\epad{#2}{#3}}}

% macros to kill depth of text string

\def\killdp#1{\setbox0=\hbox{#1}\dp0=0pt\box0}

% macro to give one text string the apparent height of another

\def\mimic#1#2{\setbox1=\hbox{#1}\setbox2=\hbox{#2}\ht2=\ht1\box2}

% macro to center one text string over another

\def\stack#1#2#3{\vbox{\offinterlineskip
  \setbox2=\hbox{#2}
  \setbox3=\hbox{#3}
  \dimen0=\ifdim\wd2>\wd3\wd2\else\wd3\fi
  \hbox to \dimen0{\hss\box2\hss}
  \kern #1
  \hbox to \dimen0{\hss\box3\hss}}}

% macros to hide size of trailing exponents

\def\sexp#1{\rlap{${}^{#1}$}}
\def\hexp#1{%
  \setbox0=\hbox{${}^{#1}$}%
  \hbox to .5\wd0{\box0\hss}}
\def\ssub#1{\rlap{${}_{#1}$}}
\def\hsub#1{%
  \setbox0=\hbox{${}_{#1}$}%
  \hbox to .5\wd0{\box0\hss}}

%=========================================================================%
% macros for matrices and arrows
%=========================================================================%

% typical usage:
%   \rightarrowmat{2pt}{4pt}{d & bd \cr \!-c & 0 \cr 0 & -ac \cr}

\def\bmatrix#1#2{{\left(\vcenter{\halign
  {&\kern#1\hfil$##\mathstrut$\kern#1\cr#2}}\right)}}

\def\rightarrowmat#1#2#3{
  \setbox1=\hbox{\small\kern#2$\bmatrix{#1}{#3}$\kern#2}
  \,\vbox{\offinterlineskip\hbox to\wd1{\hfil\copy1\hfil}
    \kern 3pt\hbox to\wd1{\rightarrowfill}}\,}

\def\leftarrowmat#1#2#3{
  \setbox1=\hbox{\small\kern#2$\bmatrix{#1}{#3}$\kern#2}
  \,\vbox{\offinterlineskip\hbox to\wd1{\hfil\copy1\hfil}
    \kern 3pt\hbox to\wd1{\leftarrowfill}}\,}

\def\rightarrowbox#1#2{
  \setbox1=\hbox{\kern#1\hbox{\small #2}\kern#1}
  \,\vbox{\offinterlineskip\hbox to\wd1{\hfil\copy1\hfil}
    \kern 3pt\hbox to\wd1{\rightarrowfill}}\,}

\def\leftarrowbox#1#2{
  \setbox1=\hbox{\kern#1\hbox{\small #2}\kern#1}
  \,\vbox{\offinterlineskip\hbox to\wd1{\hfil\copy1\hfil}
    \kern 3pt\hbox to\wd1{\leftarrowfill}}\,}

%=========================================================================%
% quire macros for preview mode and making booklets
%=========================================================================%

% \legalbooklet{20} makes a booklet from legal paper in landscape
% orientation, where "20" is the page count. To preview, give a negative
% pagecount. Either print using the legal duplex option on a modern laser
% printer, or struggle to simulate this effect manually. Bind using a long
% reach stapler.

% \view is for previewing normal width pages (line breaks same as letter
% output, but page breaks different) using Page Setup: A4 Landscape, then
% Fit to Window followed by Fit to Width in Textures.

% \twoup squeezes two pages onto letter paper in landscape mode,
% suitable for printing.

% each of these macros calls the file "quire.tex"

% each of these only take effect within the first enclosing \input begin
% thus, subsections can be always set to preview, while the top level
% prints as a normal paper

% \quiremacro is the metamacro which creates these macros. study and
% modify a call to it, rather than modifying it directly.

\def\quiremacro#1#2#3#4#5#6#7#8#9{
  \expandafter\def\csname#1\endcsname##1{
  \ifnum\srcdepth=1
  \magnification=#2
  \input quire
  \hsize=#3
  \vsize=#4
  \htotal=#5
  \vtotal=#6
  \shstaplewidth=#7
  \shstaplelength=#8
  % below computed from above
  \hoffset=\htotal
  \advance\hoffset by -\hsize
  \divide\hoffset by 2
  \ifnum\vsize<\vtotal
    \voffset=\vtotal
    \advance\voffset by -\vsize
    \divide\voffset by 2
  \fi
  \advance\voffset by #9
  \shhtotal=2\htotal
  % below doesn't need to change
  \baselineskip=13pt
  \emergencystretch = 0.05\hsize
  \horigin=0.0truein
  \vorigin=0.0truein
  \shthickness=0pt
  \shoutline=0pt
  \shcrop=0pt
  \shvoffset=-1.0truein
  \ifnum##1>0\quire{#1}\else\qtwopages\fi
  \fi
}}

% name, magstep,
% \hsize, \vsize, \htotal, \vtotal, \shstaplewidth, \shstaplelength

% booklet macros

\quiremacro{letterbooklet} % 4.79452 = 5.25/1.095
{1000}{4.79452truein}{7truein}{5.5truein}{8.5truein}{0.01pt}{0.66truein}
{-.0625truein}

\quiremacro{Afourbooklet}
{1095}{5.25truein}{7truein}{421truept}{595truept}{0.01pt}{0.66truein}
{-.0625truein}

\quiremacro{legalbooklet}
{1095}{5.25truein}{7truein}{7.0truein}{8.5truein}{0.01pt}{0.66truein}
{-.0625truein}

\quiremacro{twoupsub} % 895 = 1095*4.5/5.5
{895}{4.5truein}{7truein}{5.5truein}{8.5truein}{0pt}{0pt}{.0625truein}

\def\twoup{\twoupsub{-1}}

% use A4 landscape mode with \Afourview

\quiremacro{Afourviewsub} % 5.0228311 = 5.5/1.095, 7.7625571 = 8.5/1.095
{1000}{5.0228311in}{7.7625571in}{421truept}{595truept}{0.1pt}{0.5\vtotal}
{-.0625truein}

\def\Afourview{\Afourviewsub{-1}}

% use "Preview" portrait mode with \view
% "Preview" is a custom Printer PDD entry with dimensions 922 by 666

\quiremacro{viewsub}
{1095}{5.5truein}{8.5truein}{461truept}{666truept}{0.1pt}{0.5\vtotal}
{-.125truein}

\def\view{\viewsub{-1}}

%=========================================================================%
% timestamp (adapted from eplain.tex)
%=========================================================================%

\newcount\countA
\newcount\countB
\newcount\countC

\def\monthname{\begingroup
  \ifcase\number\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
\endgroup}

\def\dayname{\begingroup
  \countA=\number\day
  \countB=\number\year
  \advance\countA by 0 % adjust after each leap day
  \advance\countA by \ifcase\month\or
    0\or 31\or 59\or 90\or 120\or 151\or
    181\or 212\or 243\or 273\or 304\or 334\fi
  \advance\countB by -1995
  \multiply\countB by 365
  \advance\countA by \countB
  \countB=\countA
  \divide\countB by 7
  \multiply\countB by 7
  \advance\countA by -\countB
  \advance\countA by 1
  \ifcase\countA\or Sunday\or Monday\or Tuesday\or Wednesday\or
    Thursday\or Friday\or Saturday\fi
\endgroup}

\def\timename{\begingroup
   \countA = \time
   \divide\countA by 60
   \countB = \countA
   \countC = \time
   \multiply\countA by 60
   \advance\countC by -\countA
   \ifnum\countC<10\toks1={0}\else\toks1={}\fi
   \ifnum\countB<12 \toks0={\sevenrm AM}
     \else\toks0={\sevenrm PM}\advance\countB by -12\fi
   \relax\ifnum\countB=0\countB=12\fi
   \hbox{\the\countB:\the\toks1 \the\countC \thinspace \the\toks0}
\endgroup}

\def\timestamp{\dayname, \the\day\ \monthname\ \the\year, \timename}

%==========================================================================
% choose page format
%==========================================================================

\print
%\view

%==========================================================================
% macros (specific to this paper)
%==========================================================================

% author's comments

\def\COMMENT#1\par{\bigskip\hrule\smallskip#1\smallskip\hrule\bigskip}

% surround with $ $ if not already in math mode
\def\enma#1{{\ifmmode#1\else$#1$\fi}}

\def\mathbb#1{{\bbold #1}}
\def\mathbf#1{{\bf #1}}

% blackboard bold symbols
\def\AA{\enma{\mathbb{A}}}
\def\NN{\enma{\mathbb{N}}}
\def\QQ{\enma{\mathbb{Q}}}
\def\PP{\enma{\mathbb{P}}}
\def\RR{\enma{\mathbb{R}}}
\def\ZZ{\enma{\mathbb{Z}}}

% caligraphic symbols
\def\cAA{\enma{\cal A}}
\def\cBB{\enma{\cal B}}
\def\cEE{\enma{\cal E}}
\def\cHH{\enma{\cal H}}
\def\cFF{\enma{\cal F}}
\def\cII{\enma{\cal I}}
\def\cOO{\enma{\cal O}}



% bold symbols
\def\aa{\enma{\mathbf{a}}}
\def\bb{\enma{\mathbf{b}}}
\def\cc{\enma{\mathbf{c}}}
\def\dd{\enma{\mathbf{d}}}
\def\ee{\enma{\mathbf{e}}}
\def\ff{\enma{\mathbf{f}}}
\def\mm{\enma{\mathbf{m}}}
\def\nn{\enma{\mathbf{n}}}
\def\pp{\enma{\mathbf{p}}}
\def\qq{\enma{\mathbf{q}}}
\def\ss{\enma{\mathbf{s}}}
\def\uu{\enma{\mathbf{u}}}
\def\vv{\enma{\mathbf{v}}}
\def\ww{\enma{\mathbf{w}}}
\def\xx{\enma{\mathbf{x}}}
\def\yy{\enma{\mathbf{y}}}
\def\zz{\enma{\mathbf{z}}}
\def\CC{\enma{\mathbf{C}}}
\def\DD{\enma{\mathbf{D}}}
\def\FF{\enma{\mathbf{F}}}
\def\KK{\enma{\mathbf{K}}}
\def\LL{\enma{\mathbf{L}}}
\def\II{\enma{\mathbf{I}}}
\def\zero{\enma{\mathbf{0}}}
\def\mmod{\enma{\mathbf{mod}}}

% misc

\def\GL{\enma{\rm{GL}}}
\def\Cl{\enma{\rm{Cl}}}

\def\set#1{\enma{\{#1\}}}
\def\setdef#1#2{\enma{\{\;#1\;\,|\allowbreak
  \;\,#2\;\}}}
\def\ideal#1{\langle\,#1\,\rangle}
\def\idealdef#1#2{\enma{\langle\;#1\;\,
  |\;\,#2\;\rangle}}

\def\mtext#1{\;\,\allowbreak\hbox{#1}\allowbreak\;\,}
\def\abs#1{\enma{\left| #1 \right|}}
\def\floor#1{\enma{\lfloor  #1 \rfloor}}
\def\ceil#1{\enma{\lceil  #1 \rceil}}

% math keywords
\def\conv{\mathop{\rm conv}\nolimits}
\def\codim{\mathop{\rm cod}\nolimits}
\def\hull{\mathop{\rm hull}\nolimits}
\def\reg{\mathop{\rm reg}\nolimits}
\def\im{\mathop{\rm im}\nolimits}
\def\link{\mathop{\rm link}\nolimits}
\def\rank{\mathop{\rm rank}\nolimits}
\def\gldim{\mathop{\rm gl.dim}\nolimits}
\def\Hom{\mathop{\rm Hom}\nolimits}
\def\Ext{\mathop{\rm Ext}\nolimits}
\def\Coh{\mathop{\rm Coh}\nolimits}
%
\def\ini{\mathop{\rm in}\nolimits}
\def\fib{\mathop{\rm fib}\nolimits}

%undefine\boxtimes
\newsymbol\boxtimes1202

%==========================================================================
% forward references needed in paper (specific to this paper)
%==========================================================================

\forward{introd}{Section}{1}
\forward{unimodularity}{Section}{2}
\forward{main}{Section}{3}
\forward{mono}{Section}{4}
\forward{examples}{Section}{5}
\forward{diagonal}{Section}{6}
\forward{beilinson}{Section}{7}
\forward{fig:initial}{Figure}{4}




















