% This is a file of macros accumulated since 1987 called mtex.tex
 
\hyphenation{ sketch-es Grothen-dieck equiva-lent
equiva-lence equiva-lents work-space man-u-script
co-do-main pre-print requi-site Pri-bha-kar Ma-teti
Wil-liam Ten-nes-see topo-lo-gie Knox-ville to-poses co-lim-it
endo-func-tor endo-mor-phism endo-func-tion
}
\hyphenation{man-u-script man-u-scripts ap-pen-dix data-base data-bases
   an-a-lyse an-a-lyses an-a-lysed an-a-lysing dis-trib-ute dis-trib-uted
   dis-trib-utor dis-trib-utors be-hav-iour be-hav-iours pre-am-ble
   pre-am-bles post-am-ble post-am-bles flocci-nauci-nihili-pili-fi-ca-tion
   fest-schrift Sprach-wissen-schaft skinny-dip skinny-dip-ping
   sphyg-mo-mano-meter medi-ocre oeuvres demi-semi-quaver hemi-demi-semi-quaver
   semi-quaver praise-worthy re-qui-site pre-requi-site pre-requi-sites
   re-qui-si-tion pa-ram-e-trised polyg-on-i-sa-tion kwash-i-or-kor
   poly-sty-rene poly-sor-bate poly-un-sat-u-rate poly-un-sat-u-rated
   un-nil-quad-ium un-nil-pent-ium un-nil-sept-ium un-nil-oct-ium
   un-nil-enn-ium ein-stein-ium men-del-ev-ium ga-do-lin-ium
   pseudo-in-tel-lec-tual re-ed-u-cate re-ed-u-cated re-ed-u-ca-tion
   re-ed-u-cat-ing re-ed-u-cates re-en-list re-en-listed re-en-lists
   re-en-list-ing re-en-list-ment veri-si-mil-i-tude arc-tan-gent
   arc-co-sine arc-co-tan-gent arc-co-se-cant Liech-ten-stein
   Der-zhan-ski Chiang
   anom-a-ly anom-a-lies an-tin-o-my an-tin-o-mies band-leader
   band-leaders bor-no-log-i-cal Brown-ian buzz-word buzz-words cart-wheel
   cart-wheels cho-les-teric data-path data-paths demos Dijk-stra
   electro-mechan-i-cal electro-mechano-acoustic equi-vari-ance equi-vari-ant
   Euler-ian fermi-ons flow-chart flow-charts Gauss-ian geo-met-ric Greifs-wald
   Grothen-dieck Grund-leh-ren Hamil-ton-ian Her-mit-ian in-fra-struc-ture
   in-fra-struc-ture je-re-mi-ads Kadomt-sev Le-gendre Lip-schitz Lip-schitz-ian
   macro-eco-nomic macro-eco-nomics Markov-ian meta-lan-guage meta-lan-guage
   micro-eco-nomic micro-eco-nomics mi-cro-fiche mod-el-ling mono-en-er-getic
   mono-pole mono-strofic mul-ti-plic-able mul-ti-plic-ably neo-fields
   Noether-ian non-emer-gency non-equi-vari-ance non-euclid-ean non-smooth
   pa-ram-e-trized para-mil-i-tary poly-ene polyg-on-i-za-tion
   pseu-do-dif-fer-en-tial pseu-do-fi-nite pseu-do-fi-nite-ly pseu-do-forces
   pseu-do-word pseu-do-words qua-drat-ic qua-drat-ics qua-si-equiv-a-lence
   qua-si-hy-po-nor-mal qua-si-smooth qua-si-sta-tion-ary Rie-mann-ian
   sched-ul-ing Schwarz-schild semi-def-in-ite semi-ho-mo-thet-ies
   ser-vo-mech-anism set-up so-le-noid so-le-noids spher-oid spher-oids
   sto-chas-tic sub-scrib-er sub-scrib-ers sum-ma-ble ther-mo-elas-tic
   time-stamp time-stamps ver-all-ge-mein-erte Wahr-schein-lich-keits-the-o-rie
   wave-guide}
 
\long\def\ig#1{\relax}
 
\makeatletter
 
\def\cases#1{\left\{\,\vcenter{\normalbaselines
\lineskip 3pt \lineskiplimit 2pt       \m@th
    \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}\right.}
 
\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th
  \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil
      \crcr#1\crcr}}\,}
 
 
\def\eqalignno#1{\displ@y \tabskip\@centering
  \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
    &$\@lign\displaystyle{{}##}$\hfil\tabskip\@centering
    &\llap{$\@lign##$}\tabskip\z@skip\crcr
    #1\crcr}}
\def\leqalignno#1{\displ@y \tabskip\@centering
  \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
    &$\@lign\displaystyle{{}##}$\hfil\tabskip\@centering
    &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr
    #1\crcr}}
 
\def\mld#1$${\null\,\vcenter\bgroup\def\\{\cr&}\openup9pt\m@th
\ialign\bgroup\strut\hfil$\displaystyle{##}$%
&$\displaystyle{{}##}$\hfil\crcr #1
\crcr\egroup\egroup\,$$}
\let\emld\relax % for compatibility with old code
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Here is a typical usage of \mld (multi-line display)          %%
%%                                                               %%
%% The pattern is                                                %%
%% $$\mld formula 1 & formula 2 \\                               %%
%%                    formula 3 \\                               %%
%%                    ..........\\                               %%
%%                    formula n $$                               %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
%\def\loop#1\repeat{\gdef\body{#1}\iterate}
\def\iterate{\body\global\let\next=\iterate\else\global\let\next=\relax
\fi\next}
%\newcount \repetitions
%\def\repto#1{\mathop
%{\repetitions=0
%\loop\ifnum\repetitions<#1
%    \advance \repetitions by 1
%    \relbar\mkern-3.2mu
%\repeat
%\rightarrow}\limits}
%\def\to{\repto0}
%\def\reptwo#1{\mathop{\vcenter{\hbox{\oalign
%    {$\repto{#1}$\crcr$\repto{#1}$}}}}\limits}
%\def\two{\reptwo0}
%\def\tofro{\mathop{\vcenter{\hbox{\oalign
%{$\longrightarrow$\crcr$\longleftarrow$}}}}\limits}
 
\def\adj{\mathrel{\raise.78ex\hbox{\vrule width.9em height.2pt depth.2pt
  \vrule width.4pt height.55ex depth.55ex}}}
\def\star{\ifmmode {}^*{} \else \leavevmode\hbox{$*$}\fi}
\def\perp{{}^\bot}
\def\ar{\leavevmode\mathinner{\hbox{$\relbar\mkern-7.5mu\circ$}}}
\def\epi{\mathop{\mathchar"221\mkern -12mu\mathchar"221}\limits}
\def\leftepi{\mathop{\mathchar"220\mkern -12mu\mathchar"220}\limits}
%\font\lasyb=lasyb10 scaled \magstephalf % for \mon
\def\mon{\mathop{\m@th\hbox to
      14.6\P@{\lasyb\char'51\hskip-2.1\P@$\arrext$\hss
$\mathord\rightarrow$}}\limits} % width of \mono
\def\leftmono{\mathrel{\m@th\hbox to
14.6\P@{$\mathord\leftarrow$\hss$\arrext$\hskip-2.1\P@\lasyb\char'50%
}}\limits} % width of \epi
\mathchardef\arrext="0200       % amr minus for arrow extension (see \into)
 
\let\thm\theorem
\let\thp\proposition
\let\thc\corollary
\let\thl\lemma
\let\eth\endtheorem
\let\pf\proof
\let\epf\endproof
\let\exam\example
 
\newcount\subexercounter
\newcount\exercounter
\def\assign#1#2{\section*{Assignment #1. Due #2, 1989}%
\exercounter=0}
\def\exer{\par\addvspace{\bigskipamount}\noindent
%\ifnum\c@exercounter>0 \noindent\fi
\refstepcounter{exercounter}\setcounter{subexercounter}{0}%
\bf\arabic{exercounter}. \rm}%
 
\def\eexer{\par\addvspace{\bigskipamount}}
 
\def\subexer{\refstepcounter{subexercounter}%
\par\addvspace{\smallskipamount}%
\bf(\alph{subexercounter}) \rm}
 
\def\immsubexer{\refstepcounter{subexercounter}%
\bf(\alph{subexercounter}) \rm}
\ig{subexer is the normal command for subexercises.  immsubexer
should be used when an exercise begins immediately with a
subexercise.  That way the subexercise will not begin a new line.}
 
\def\nn{\hspace{-1em}}
%Use this in unnamed subsections and subsubsections
%e.g.\subsubsection{\nn} instead of \subsubsection{}
%otherwise you get too much space
 
\def\bref{\sloppy
\fontdimen2\twlrm=4.3pt% space instead of 3.91663
\fontdimen3\twlrm=4.2pt%stretch instead of 1.95831
\fontdimen4\twlrm=1.7pt%shrink instead of 1.30554
\sectionmark{References}%
\vskip12pt\section*{References} \tolerance=9999
   \begin{list}{}{\leftmargin8mm \itemindent-8mm
   \itemsep2pt \topsep0pt }}
\def\eref{\end{list}}
 
\newcount\templist
\newcounter{romlister}
\newenvironment{romlist}%
{\begin{list}{{\rm(\roman{romlister})}}{\usecounter{romlister}}}%
{\end{list}}
\def\bromlist{\begin{romlist}}
\def\eromlist{\end{romlist}}
 
\newcounter{alphlister}
\newenvironment{alphlist}%
{\begin{list}{{\rm(\alph{alphlister})}}{\usecounter{alphlister}}}%
{\end{list}}
\def\balphlist{\begin{alphlist}}
\def\ealphlist{\end{alphlist}}
 
\newcounter{lister}
\newenvironment{labeledlist}[1]
{\begin{list}{{\rm#1\arabic{lister}. }}{\usecounter{lister}
}}%begin text
{\end{list}}%
\def\bl@st#1[#2]{\begin{labeledlist}{#1}\setcounter{lister}{#2}}
\def\blist#1{\@ifnextchar [{\bl@st{#1}}{\bl@st{#1}[0]}}
\def\elist{\end{labeledlist}}
 
 
\newdimen\down
\def\nl{\par\advance\down by -14.4pt}
\def\homeaddress{\down=1.1in \vspace*{-.5in}
\hfill Michael Barr\nl
\hfill 146 Dobie Avenue\nl
\hfill Mount Royal, Qu\'ebec\nl
\hfill Canada H3P 1S4\nl\vskip1ex
\hfill Email: barr@triples.math.mcgill.ca\nl\vskip1ex
\hfill \today\nl\kern\down\noindent}
 
\def\noaddress{\down=1.1in \vspace*{-.5in}
\hfill Michael Barr\nl
\hfill Email: barr@triples.math.mcgill.ca\nl\vskip1ex
\hfill \today\nl\kern\down\noindent}
 
\def\ltrhdaddress{\down=1.3in \vspace*{-.5in}
\hfill Michael Barr\nl
\hfill Email: barr@triples.math.mcgill.ca\nl\vskip1ex
\hfill \today\nl\kern\down\noindent}
 
\def\profaddress{\down=1.1in \vspace*{-.5in}
\hfill Michael Barr\nl
\hfill Professor of Mathematics\nl\vskip1ex
\hfill \today\nl\kern\down\noindent}
 
\def\joeaddress{\down=1.4in \vspace*{-.8in}
\hfill Joseph Barr\nl
\hfill 146 Dobie Avenue\nl
\hfill Mount Royal, Qu\'ebec\nl
\hfill CANADA H3P 1S4\nl\vskip1ex
\hfill (514) 342-2658\nl\vskip1ex
\hfill Email: barr@triples.math.mcgill.ca\nl\vskip1ex
\hfill \today\nl\kern\down\noindent}
 
\def\joeaddress{\down=1.4in \vspace*{-.8in}
\hfill Joseph E. Barr\nl
\hfill 146 Dobie Avenue\nl
\hfill Mount Royal, Qu\'ebec\nl
\hfill CANADA H3P 1S4\nl\vskip1ex
\hfill (514) 342-2658\nl\vskip1ex
\hfill \today\nl\kern\down\noindent}
 
\def\joeaddressa{\down=1.4in \vspace*{-.8in}
\hfill Joseph E. Barr\nl
\hfill 146 Dobie Avenue\nl
\hfill Mount Royal, Qu\'ebec\nl
\hfill CANADA H3P 1S4\nl\vskip1ex
\hfill (514) 342-2658\nl\vskip1ex
\hfill Email: barr@triples.math.mcgill.ca\nl\vskip1ex
\hfill \today\nl\kern\down\noindent}
 
\def\joeaddressb{\down=1.4in \vspace*{-.8in}
\hfill Joseph E. Barr\nl
\hfill 1838 Chicago Avenue, Room 218 \nl
\hfill Chicago, Illinois\nl
\hfill USA 60201-3806\nl\vskip1ex
\hfill (708) 332-7084\nl\vskip1ex
\hfill \today\nl\kern\down\noindent}
 
\def\officeaddress{\down=1.6in \vspace*{-1in}
\hfill Michael Barr\nl
\hfill Department of Mathematics \& Statistics\nl
\hfill McGill University, 805 Sherbrooke St. West\nl
\hfill Montr\'eal, Qu\'ebec\nl
\hfill Canada H3A 2K6\nl\vskip1ex
\hfill Email: barr@triples.math.mcgill.ca\nl\vskip1ex
\hfill \today\nl\kern\down\noindent}
\def\close#1 {\par\vskip1ex\noindent #1,\par\vskip10ex\noindent}
\def\sincerely{\close Sincerely~yours }
\def\regards{\close Regards}
 
\def\mathopdef#1{\expandafter\def\csname#1\endcsname{\mathop{\rm#1}}}
\def\mathbfdef#1{\expandafter\def\csname#1\endcsname{{\rm\bf#1}}}
\def\mathrmdef#1{\expandafter\def\csname#1\endcsname{{\rm#1}}}
\def\mathfkdef#1{\expandafter\def\csname#1\endcsname{{\fk#1}}}
\def\Join{\bigvee}
\def\Meet{\bigwedge}
\def\beqa{\begin{equation}\begin{array}{c}}
\def\eeqa{\end{array}\end{equation}\vrule depth2ex width0pt}
\def\defn{\noindent {\bf Definition.} }
\mathchardef\dir="2208
\mathchardef\+="2208
\def\dotmin{\buildrel\textstyle.\over
    {\hbox{\vrule height.55ex width0pt
        \smash{\hbox{\mathsurround=0pt$-$}}}}}
\let\inc=\subseteq
\let\includes\supseteq
\def\inv{^{-1}}
\let\iso=\cong
\let\cong=\equiv
\let\join=\vee
\let\meet=\wedge
\def\op{{}^{\rm op}}
\def\o{\mathop{\raise.3ex\hbox{$\scriptscriptstyle\circ$}}}
\def\relstack#1#2#3{\mathrel{\mathop{#1}\limits^{\textstyle#2}%
        \limits_{\textstyle#3}}}
\mathcode`\<="4268 %left delimiter
\mathcode`\>="5269 %right delimiter
\mathcode`\:="603A %math punctuation
\mathchardef\colon="303A %mathrel
\mathchardef\*="220A
\mathchardef\1="0B31
\mathchardef\2="0B32
\mathchardef\3="0B33
\mathchardef\4="0B34
\mathchardef\A="0B41
\mathchardef\B="0B42
\mathchardef\C="0B43
\mathchardef\D="0B44
\mathchardef\E="0B45
\mathchardef\F="0B46
\mathchardef\G="0B47
\mathchardef\H="0B48
\mathchardef\I="0B49
\mathchardef\J="0B4A
\mathchardef\K="0B4B
\mathchardef\L="0B4C
\mathchardef\M="0B4D
\mathchardef\N="0B4E
\mathchardef\O="0B4F
\mathchardef\P="0B50
\mathchardef\Q="0B51
\mathchardef\R="0B52
\mathchardef\S="0B53
\mathchardef\T="0B54
\mathchardef\U="0B55
\mathchardef\V="0B56
\mathchardef\W="0B57
\mathchardef\X="0B58
\mathchardef\Y="0B59
\mathchardef\Z="0B5A
 
\mathchardef\Asc="0D41
\mathchardef\Bsc="0D42
\mathchardef\Csc="0D43
\mathchardef\Dsc="0D44
\mathchardef\Esc="0D45
\mathchardef\Fsc="0D46
\mathchardef\Gsc="0D47
\mathchardef\Hsc="0D48
\mathchardef\Isc="0D49
\mathchardef\Jsc="0D4A
\mathchardef\Ksc="0D4B
\mathchardef\Lsc="0D4C
\mathchardef\Msc="0D4D
\mathchardef\Nsc="0D4E
\mathchardef\Osc="0D4F
\mathchardef\Psc="0D50
\mathchardef\Qsc="0D51
\mathchardef\Rsc="0D52
\mathchardef\Ssc="0D53
\mathchardef\Tsc="0D54
\mathchardef\Usc="0D55
\mathchardef\Vsc="0D56
\mathchardef\Wsc="0D57
\mathchardef\Xsc="0D58
\mathchardef\Ysc="0D59
\mathchardef\Zsc="0D5A
 
%\let\gkA=
%\let\gkB=
\let\gkC=\Psi
\let\gkD=\Delta
%\let\gkE=
\let\gkF=\Phi
\let\gkG=\Gamma
%\let\gkH=
%\let\gkI=
\let\gkJ=\Cap
%\let\gkK=
\let\gkL=\Lambda
%\let\gkM=
%\let\gkN=
%\let\gkO=
\let\gkP=\Pi
\let\gkQ=\Chi
%\let\gkR=
\let\gkS=\Sigma
%\let\gkT=
%\let\gkU=
\let\gkW=\Omega
\let\gkX=\Xi
\let\gkY=\Theta
%\let\gkZ=
 
\let\eps=\epsilon
\let\gka=\alpha
\let\gkb=\beta
\let\gkc=\psi
\let\gkd=\delta
\let\gke=\epsilon
\let\gkf=\phi
\let\gkg=\gamma
\let\gkh=\eta
\let\gki=\iota
\let\gkj=\cap
\let\gkk=\kappa
\let\gkl=\lambda
\let\gkm=\mu
\let\gkn=\nu
\let\gko=\otimes
\let\gkp=\pi
\let\gkq=\xi
\let\gkr=\rho
\let\gks=\sigma
\let\gkt=\tau
\let\gku=\upsilon
\let\gkv=\cup
\let\gkw=\omega
\let\gkx=\xi
\let\gky=\theta
\let\gkz=\zeta
 
\mathchardef\Afk="0C41
\mathchardef\Bfk="0C42
\mathchardef\Cfk="0C43
\mathchardef\Dfk="0C44
\mathchardef\Efk="0C45
\mathchardef\Ffk="0C46
\mathchardef\Gfk="0C47
\mathchardef\Hfk="0C48
\mathchardef\Ifk="0C49
\mathchardef\Jfk="0C4A
\mathchardef\Kfk="0C4B
\mathchardef\Lfk="0C4C
\mathchardef\Mfk="0C4D
\mathchardef\Nfk="0C4E
\mathchardef\Ofk="0C4F
\mathchardef\Pfk="0C50
\mathchardef\Qfk="0C51
\mathchardef\Rfk="0C52
\mathchardef\Sfk="0C53
\mathchardef\Tfk="0C54
\mathchardef\Ufk="0C55
\mathchardef\Vfk="0C56
\mathchardef\Wfk="0C57
\mathchardef\Xfk="0C58
\mathchardef\Yfk="0C59
\mathchardef\Zfk="0C5A
\mathchardef\gt="313E %relation
\mathchardef\lt="313C %relation
\mathchardef\lte="0214 %\leq, with class of ordinary char
\def\exam{\subsection{Example}}
\let\0=\emptyset
\let\Cap=\bigcap
\let\Cup=\bigcup
\mathbfdef{Ab}
\mathbfdef{Arith}
\mathbfdef{Array}
\mathbfdef{BinOp}
\mathbfdef{BinTree}
\mathbfdef{Cat}
\mathbfdef{Complex}
\mathbfdef{Comp}
\mathbfdef{Diag}
\mathbfdef{Dom}
\mathbfdef{FL}
\mathbfdef{Nat}
\mathbfdef{Real}
\mathbfdef{Rec}
\mathbfdef{Set}
\mathbfdef{Simp}
\mathbfdef{Stack}
\mathbfdef{String}
\mathbfdef{Th}
\mathbfdef{Trig}
\mathbfdef{j}
\mathopdef{colim}
\mathrmdef{Der}
\mathrmdef{Diff}
\mathrmdef{Ext}
\mathrmdef{Hom}
\mathrmdef{In}
\mathrmdef{Lie}
\mathrmdef{Mod}
\mathrmdef{Ob}
\mathrmdef{Sd}
\mathrmdef{Sub}
\mathrmdef{Top}
\mathrmdef{Tor}
\mathrmdef{coker}
\mathrmdef{comp}
\mathrmdef{eval}
\mathrmdef{exp}
\mathrmdef{id}
\mathrmdef{im}
\mathrmdef{mult}
\mathrmdef{ord}
\mathrmdef{ori}
\mathrmdef{proj}
\mathrmdef{rec}
\mathrmdef{source}
\mathrmdef{sou}
\mathrmdef{st}
\mathrmdef{succ}
\mathrmdef{target}
\mathrmdef{tar}
\mathrmdef{unit}
\let\gkV=\Cup
\def\bc{\begin{center}}
\def\bd{\begin{description}}
\def\beq{\begin{equation}}%for numbered equations and
\def\be{\begin{enumerate}}
\def\bpic{\begin{picture}}
\def\btab{\begin{tabular}}
\def\ec{\end{center}}
\def\ed{\end{description}}
\def\eeq{\end{equation}}
\def\ee{\end{enumerate}}
\def\epic{\end{picture}}
\def\etab{\end{tabular}}
\let\e=\exists
\let\imp=\Rightarrow
\def\text#1{\:{\rm #1}\:}
\def\emph#1{{\em #1}\futurelet\next\itcorr}
\def\itcorr{\ifx\next.\else\ifx\next,\else\/\fi\fi}
\let\tl=\leftarrow
\let\x=\times
\let\.=\cdot
\let\all=\forall
\def\|{\,\mid\,}
\def\obeylines{\catcode`\^^M=\active}
{\obeylines \gdef^^M{\leavevmode\par\noindent}}
\def\lnm#1{Lecture Notes in Mathematics {\bf#1}}
\def\lncs#1{Lecture Notes in Computer Science {\bf#1}}
\def\springer{Sprin\-ger-Verlag, Berlin, Heidelberg, New York}
\def\cahiers#1{Cah\-iers de Topo\-lo\-gie et G\'e\-o\-m\'e\-trie
Dif\-f\'e\-ren\-ti\-elle\ifnum#1>25 { Cat\-\'e\-go\-rique}\fi, {\bf #1}}
\def\tac#1{Theory and Applications of Categories, {\bf #1}}
\def\incarrow{\mathrel{\raise.6ex\hbox{${\scriptstyle\subset}%
    \kern-.17em\lower.67ex\hbox{$\rightarrow$}$}}}
\def\jacobi(#1/#2){\mathchoice
{\left(\displaystyle{#1\over#2}\right)}
{\left(\displaystyle{#1\over#2}\right)}
{\left(\textstyle{#1\over#2}\right)}
{\left(\scriptstyle{#1\over#2}\right)}
}
\def\choose(#1 #2){\mathchoice
{\left(\displaystyle{#1\atop#2}\right)}
{\left(\displaystyle{#1\atop#2}\right)}
{\left(\textstyle{#1\atop#2}\right)}
{\left(\scriptstyle{#1\atop#2}\right)}
}
\def\smish#1{\setbox0\hbox{#1}\wd0=0pt\box0}
\def\adj{\mathrel{\raise.78ex\hbox{\vrule width.9em height.2pt depth.2pt
  \vrule width.4pt height.55ex depth.55ex}}}
% \def\\{{\tt \char 92}}
% {\catcode`\ =13\global\let =\ \catcode`\^^M=13
% \gdef^^M{\par\noindent}}
% \def\verbatim{\tt
% \catcode`\^^M=13
% \catcode`\ =13
% \catcode`\\=12
% \catcode`\{=12
% \catcode`\}=12
% \catcode`\_=12
% \catcode`\^=12
% \catcode`\&=12
% \catcode`\~=12
% \catcode`\#=12
% \catcode`\%=12
% \catcode`\$=12
% \catcode`\=0
% }
\newdimen\argwidth
\def\[#1\]{%
      \setbox0=\hbox{$#1$}\argwidth=\wd0
      \setbox0=\hbox{$\left[\box0\right]$}\advance\argwidth by -\wd0
      \left[\kern.3\argwidth\box0\kern.3\argwidth\right]}
 
% \catcode`\"=\active
% \def\lq{``\let"=\rq}
% \def\rq{''\let"=\lq}
% \let"=\lq
\let\ph=\phantom
 
 
\def\strikeoutwords#1{%
   \def\stuff{#1 }\leavevmode\expandafter\soword\stuff * }
   \def\soword#1 {\def\one{#1} \ifx\one\aster\let\next\relax
   \else\vtop{\hbox{\strut#1}\kern-.5\baselineskip\hrule\relax}
   \let\next\soword\fi\next}
 
\def\underlinewords#1{%
   \def\stuff{#1 }\leavevmode\expandafter\ulword\stuff * }
   \def\ulword#1 {\def\one{#1} \ifx\one\aster\let\next\relax
   \else\vtop{\hbox{\strut#1}\hrule\relax}
   \let\next\ulword\fi\next}
 
\def\aster{*}
 
\let\hat=\widehat
\let\tilde=\widetilde
\doublehyphendemerits=100000     % No consecutive line hyphens
\brokenpenalty=10000             % No broken words across columns/pages
\widowpenalty=10000              % No widows at bottom of page
\clubpenalty=10000               % No orphans at top of page
 
%%%  The following three lines must be deleted when the NFSS comes
\let\mathopn=\mathopdef
\let\mathrm=\mathrmdef
\let\mathbf=\mathbfdef
 
\def\twodigitnumber#1{\ifnum#1<10 0\fi \number#1}
\def\today{\number\year-\twodigitnumber\month-\twodigitnumber\day}
\def\makeother#1{\catcode`#1=12}
{\catcode`\^^M=12 \endlinechar=-1 %
   \gdef\xcomment#1^^M{\def\test{#1}
       \ifx\test\endcomment \let\next=\endgroup
       \else \let\next=\xcomment \fi
    \next}
}
{\escapechar=-1 \xdef\endcomment{\string\\endcomment}
}
\def\comment{\begingroup
   \let\do=\makeother \dospecials
   \endlinechar`\^^M \catcode`\^^M=12 \xcomment }
 
    \def\macl{Mac\,Lane}
 
\def\dots{\futurelet\next\d@ts}
\def\d@ts{\ifx\next,\ldots\else\ifx\next.\ldots\else\cdots\fi\fi}
 
\def\minus
    {\hbox{\vrule height.55ex width0pt
        \smash{\hbox{\mathsurround=0pt$-$}}}}
\def\rightarrowfill{$\m@th\mathord{\minus}\mkern-6mu%
  \cleaders\hbox{$\mkern-2mu\mathord{\minus}\mkern-2mu$}\hfill
  \mkern-6mu\mathord\rightarrow$}
 
\def\r{\leavevmode\mathinner{\hbox{$\relbar\mkern-7.5mu\circ$}}}
\def\l{\leavevmode\mathinner{\hbox{$\circ\mkern-7.5mu\relbar$}}}
\makeatother