% % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. % Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c % of this license or (at your option) any later version. % The latest version of this license is in % https://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. % % The Current Maintainer of this work is the LaTeX Project. % % \fi % % This file was generated from version 1.2beta of amstex.dtx and then % underwent additional hand-editing. \if@compatibility \else \catcode`\%=9 \fi %\PackageError{amstex}{% %Package `amstex' is obsolete, substituting `amsmath'}{You %should use \string\usepackage{amsmath} instead. If %that does not give satisfactory results, rename your previous copy %of amstex.sty to amstex12beta.sty and call it with %\string\usepackage{amstex12beta}.} %\catcode`\%=14 \relax \input{amsmath.sty}\endinput % \ProvidesPackage{amstex}[1999/11/15 v1.2f AMS extra math features] \let\@amsfonts=T \DeclareOption{noamsfonts}{\let\@amsfonts=F} \DeclareOption{psamsfonts}{\let\@amsfonts=P} \DeclareOption{intlimits}{\let\ilimits@\displaylimits} \DeclareOption{nointlimits}{\let\ilimits@\nolimits} \DeclareOption{sumlimits}{\let\slimits@\displaylimits} \DeclareOption{nosumlimits}{\let\slimits@\nolimits} \DeclareOption{namelimits}{\let\nlimits@\displaylimits} \DeclareOption{nonamelimits}{\let\nlimits@\nolimits} \newif\ifctagsplit@ \newif\iftagsleft@ \DeclareOption{leqno}{\tagsleft@true} \DeclareOption{reqno}{\tagsleft@false} \DeclareOption{centertags}{\ctagsplit@true} \DeclareOption{tbtags}{\ctagsplit@false} \newif\if@fleqn \newskip\@mathmargin \@mathmargin\@centering \DeclareOption{fleqn}{% \@fleqntrue \@mathmargin\m@ne sp \AtBeginDocument{% \ifdim\@mathmargin=\m@ne sp \@mathmargin\leftmargini \fi }% } \DeclareOption{righttag}{\tagsleft@false} \DeclareOption{ctagsplt}{\ctagsplit@true} \DeclareOption{intlim}{\let\ilimits@\displaylimits} \DeclareOption{nosumlim}{\let\slimits@\nolimits} \DeclareOption{nonamelm}{\let\nlimits@\nolimits} \ExecuteOptions{nointlimits,sumlimits,namelimits,centertags} \ProcessOptions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% In this section \RequirePackage statements were replaced with the %% contents of the referenced files. %%% filename = "amsgen.dtx", %%% version = "1.2beta", %%% date = "1994/12/13", \providecommand{\@saveprimitive}[2]{\begingroup\escapechar`\\\relax \edef\@tempa{\string#1}\edef\@tempb{\meaning#1}% \ifx\@tempa\@tempb \global\let#2#1% \else \edef\@tempb{\meaning#2}% \ifx\@tempa\@tempb \else \@latex@error{Unable to properly define \string#2; primitive \noexpand#1no longer primitive}\@eha \fi \fi \endgroup} \let\@xp=\expandafter \let\@nx=\noexpand \newtoks\@emptytoks \def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}} \def\@ifempty#1{\@xifempty#1@@..\@nil} \long\def\@xifempty#1#2@#3#4#5\@nil{% \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi} \long\def\@ifnotempty#1{\@ifempty{#1}{}} \def\FN@{\futurelet\@let@token} \def\DN@{\def\next@} \def\RIfM@{\relax\ifmmode} \def\setboxz@h{\setbox\z@\hbox} \def\wdz@{\wd\z@} \def\boxz@{\box\z@} \def\relaxnext@{\let\@let@token\relax} \def\new@ifnextchar#1#2#3{% \let\@tempe #1\def\@tempa{#2}\def\@tempb{#3}\futurelet \@tempc\new@ifnch} \def\new@ifnch{\ifx\@tempc \@tempe \let\@tempd\@tempa \else\let\@tempd\@tempb\fi\@tempd} \def\new@ifstar#1#2{\new@ifnextchar *{\def\@tempa*{#1}\@tempa}{#2}} \@ifundefined{every@math@size}{% \let\every@math@size=\every@size \def\glb@settings{% \expandafter\ifx\csname S@\f@size\endcsname\relax \calculate@math@sizes \fi \csname S@\f@size\endcsname \ifmath@fonts \begingroup \escapechar\m@ne \csname mv@\math@version \endcsname \globaldefs\@ne \let \glb@currsize \f@size \math@fonts \endgroup \the\every@math@size \else \fi } \def\set@fontsize#1#2#3{% \@defaultunits\@tempdimb#2pt\relax\@nnil \edef\f@size{\strip@pt\@tempdimb}% \@defaultunits\@tempskipa#3pt\relax\@nnil \edef\f@baselineskip{\the\@tempskipa}% \edef\f@linespread{#1}% \let\baselinestretch\f@linespread \def\size@update{% \baselineskip\f@baselineskip\relax \baselineskip\f@linespread\baselineskip \normalbaselineskip\baselineskip \setbox\strutbox\hbox{% \vrule\@height.7\baselineskip \@depth.3\baselineskip \@width\z@}% %%% \the\every@size \let\size@update\relax}% } }{}% end \@ifundefined test \newdimen\ex@ \addto@hook\every@math@size{\compute@ex@} \def\compute@ex@{% \begingroup \dimen@-\f@size\p@ \ifdim\dimen@<-20\p@ \global\ex@ 1.5\p@ \else \advance\dimen@10\p@ \multiply\dimen@\tw@ \edef\@tempa{\ifdim\dimen@>\z@ -\fi}% \dimen@ \ifdim\dimen@<\z@ -\fi \dimen@ \advance\dimen@-\@m sp % fudge factor \vfuzz\p@ \def\do{\ifdim\dimen@>\z@ \vfuzz=.97\vfuzz \advance\dimen@ -\p@ \@xp\do \fi}% \do \dimen@\p@ \advance\dimen@-\vfuzz \global\ex@\p@ \global\advance\ex@ \@tempa\dimen@ \fi \endgroup } \def\@addpunct#1{\ifnum\spacefactor>\@m \else#1\fi} \def\frenchspacing{\sfcode`\.1006\sfcode`\?1005\sfcode`\!1004% \sfcode`\:1003\sfcode`\;1002\sfcode`\,1001 } \def\@mathmeasure#1#2#3{\setbox#1\hbox{\frozen@everymath\@emptytoks \m@th$#2#3$}} \def\nomath@env{\PackageError{amstex}{% \string\begin{\@currenvir} allowed only in paragraph mode% }\@ehb% "You've lost some text" } \def\Invalid@@{Invalid use of \string} \def\nonmatherr@#1{\PackageError{amsfonts}% {\noexpand#1allowed only in math mode}\@ehd} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% filename = "amstext.dtx", %%% version = "1.2beta", %%% date = "1994/12/13", \DeclareRobustCommand{\text}{% \ifmmode\expandafter\text@\else\expandafter\mbox\fi} \let\nfss@text\text \def\text@#1{\mathchoice {\textdef@\displaystyle\f@size{#1}}% {\textdef@\textstyle\tf@size{\firstchoice@false #1}}% {\textdef@\textstyle\sf@size{\firstchoice@false #1}}% {\textdef@\textstyle \ssf@size{\firstchoice@false #1}}% \check@mathfonts } \def\textdef@#1#2#3{\hbox{{% \everymath{#1}% \let\f@size#2\selectfont #3}}} \newif\iffirstchoice@ \firstchoice@true \def\stepcounter#1{% \iffirstchoice@ \global\expandafter\advance\csname c@#1\endcsname \@ne \begingroup \let\@elt\@stpelt \csname cl@#1\endcsname \endgroup \fi} \toks@{\iffirstchoice@\else\@xp\@gobblefour\fi\protect} \edef\GenericInfo{\the\toks@ \@xp\@nx\csname GenericInfo \endcsname} \edef\GenericWarning{\the\toks@ \@xp\@nx\csname GenericWarning \endcsname} \toks@{\iffirstchoice@\else \@xp\@xp\@xp\@gobblefour \@xp\@gobbletwo\fi\protect} \edef\GenericError{\the\toks@ \@xp\@nx\csname GenericError \endcsname} \def\label#1{\@bsphack\iffirstchoice@\if@filesw {\let\thepage\relax \def\protect{\noexpand\noexpand\noexpand}% \xdef\@gtempa{\write\@auxout{\string \newlabel{#1}{{\@currentlabel}{\thepage}}}}}\@gtempa \if@nobreak \ifvmode\nobreak\fi\fi\fi\fi\@esphack} \begingroup \catcode`\"=12 \gdef\mathhexbox#1#2#3{\text{$\m@th\mathchar"#1#2#3$}} \endgroup %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% filename = "amsfonts.dtx", %%% version = "1.2beta", %%% date = "1994/12/13", \newbox\Mathstrutbox@ \setbox\Mathstrutbox@=\hbox{} \def\Mathstrut@{\copy\Mathstrutbox@} \addto@hook\every@math@size{\setbox\z@\hbox{\normalfont(}% \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@} \newbox\strutbox@ \def\strut@{\copy\strutbox@} \addto@hook\every@math@size{% \global\setbox\strutbox@\hbox{\lower.5\normallineskiplimit \vbox{\kern-\normallineskiplimit\copy\strutbox}}} \def\big{\bBigg@\@ne} \def\Big{\bBigg@{1.5}} \def\bigg{\bBigg@\tw@} \def\Bigg{\bBigg@{2.5}} \def\bBigg@#1#2{% {% \hbox{$\left#2\vcenter to#1\big@size{}\right.% \n@space $}}} \addto@hook\every@math@size{% \global\big@size 1.2\ht\Mathstrutbox@ \global\advance\big@size 1.2\dp\Mathstrutbox@ } \newdimen\big@size %% msam, msbm, eufm fonts dealt with at end of file %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% filename = "amsbsy.dtx", %%% version = "1.2beta", %%% date = "1994/10/27", \DeclareRobustCommand{\boldsymbol}[1]{% \begingroup \let\@nomath\@gobble \mathversion{bold}% \math@atom{#1}{% \mathchoice% {\hbox{$\m@th\displaystyle#1$}}% {\hbox{$\m@th\textstyle#1$}}% {\hbox{$\m@th\scriptstyle#1$}}% {\hbox{$\m@th\scriptscriptstyle#1$}}}% \endgroup} \def\math@atom#1#2{% \binrel@{#1}\binrel@@{#2}} \DeclareRobustCommand{\pmb}{% \ifmmode\else \expandafter\pmb@@\fi\mathpalette\pmb@} \def\pmb@@#1#2#3{\leavevmode\setboxz@h{#3}% \dimen@-\wdz@ \kern-.5\ex@\copy\z@ \kern\dimen@\kern.25\ex@\raise.4\ex@\copy\z@ \kern\dimen@\kern.25\ex@\box\z@ } \newdimen\pmbraise@ \def\pmb@#1#2{\setbox8\hbox{$\m@th#1{#2}$}% \setboxz@h{$\m@th#1\mkern.5mu$}\pmbraise@\wdz@ \binrel@{#2}% \dimen@-\wd8 % \binrel@@{% \mkern-.8mu\copy8 % \kern\dimen@\mkern.4mu\raise\pmbraise@\copy8 % \kern\dimen@\mkern.4mu\box8 }% } \def\binrel@#1{\begingroup \setboxz@h{\thinmuskip0mu \medmuskip\m@ne mu\thickmuskip\@ne mu \setbox\tw@\hbox{$#1\m@th$}\kern-\wd\tw@ ${}#1{}\m@th$}% \edef\@tempa{\endgroup\let\noexpand\binrel@@ \ifdim\wdz@<\z@ \mathbin \else\ifdim\wdz@>\z@ \mathrel \else \relax\fi\fi}% \@tempa } \let\binrel@@\relax %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\AmSTeX{\protect\AmS-\protect\TeX{}} \def\AmS{{\protect\AmSfont A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} \def\AmSfont{% \usefont{OMS}{cmsy}{\if\@xp\@car\f@series\@nil bb\else m\fi}{n}} \def\prim@s{\prime\futurelet\@let@token\pr@m@s} \def\pr@m@s{% \ifx\@let@token'\DN@##1{\prim@s}\else\let\next@\egroup\fi\next@} \let\@prime=\prime \renewcommand{\prime}{{\kern\z@\@prime}} \DeclareRobustCommand{\mspace}[3]{% \ifmmode\mskip#1#2\else\kern#1#3\fi\relax} \renewcommand{\,}{\mspace+\thinmuskip{.1667em}} \let\thinspace\, \renewcommand{\!}{\mspace-\thinmuskip{.1667em}} \let\negthinspace\! \renewcommand{\:}{\mspace+\medmuskip{.2222em}} \let\medspace\: \newcommand{\negmedspace}{\mspace-\medmuskip{.2222em}} \renewcommand{\;}{\mspace+\thickmuskip{.2777em}} \let\thickspace\; \newcommand{\negthickspace}{\mspace-\thickmuskip{.2777em}} \def\implies{\DOTSB\;\Longrightarrow\;} \def\impliedby{\DOTSB\;\Longleftarrow\;} \begingroup \catcode`\"=12 % in case activated by a preceding package \gdef\And{\DOTSB\;\mathchar"3026 \;} \gdef\lvert{\delimiter"426A30C } \gdef\rvert{\delimiter"526A30C } \gdef\lVert{\delimiter"426B30D } \gdef\rVert{\delimiter"526B30D } \endgroup % restore " \DeclareRobustCommand{\frac}{\new@ifnextchar[{\frfrac{}}{\frfrac{}[]}} \def\frfrac#1[#2]#3#4{\def\next@{#2}% \ifx\next@\@empty \def\next@{#1{#3\over#4}}% \else \def\next@{{#1{#3\above#2\relax#4}}}% \fi \next@} \def\dfrac{\protect\frfrac\displaystyle[]} \def\tfrac{\protect\frfrac\textstyle[]} \DeclareRobustCommand{\binom}{\frbinom{}} \def\frbinom#1#2#3{{#1{#2\atopwithdelims()#3}}} \def\dbinom{\protect\frbinom\displaystyle} \def\tbinom{\protect\frbinom\textstyle} \def\colon{\nobreak\mskip2mu\mathpunct{}\nonscript \mkern-\thinmuskip{:}\mskip6muplus1mu\relax} \begingroup \catcode`\"=12 \DeclareMathSymbol{\coprod@}{\mathop}{largesymbols}{"60} \gdef\coprod{\DOTSB\coprod@\slimits@} \DeclareMathSymbol{\bigvee@}{\mathop}{largesymbols}{"57} \gdef\bigvee{\DOTSB\bigvee@\slimits@} \DeclareMathSymbol{\bigwedge@}{\mathop}{largesymbols}{"56} \gdef\bigwedge{\DOTSB\bigwedge@\slimits@} \DeclareMathSymbol{\biguplus@}{\mathop}{largesymbols}{"55} \gdef\biguplus{\DOTSB\biguplus@\slimits@} \DeclareMathSymbol{\bigcap@}{\mathop}{largesymbols}{"54} \gdef\bigcap{\DOTSB\bigcap@\slimits@} \DeclareMathSymbol{\bigcup@}{\mathop}{largesymbols}{"53} \gdef\bigcup{\DOTSB\bigcup@\slimits@} \DeclareMathSymbol{\prod@}{\mathop}{largesymbols}{"51} \gdef\prod{\DOTSB\prod@\slimits@} \DeclareMathSymbol{\sum@}{\mathop}{largesymbols}{"50} \gdef\sum{\DOTSB\sum@\slimits@} \DeclareMathSymbol{\bigotimes@}{\mathop}{largesymbols}{"4E} \gdef\bigotimes{\DOTSB\bigotimes@\slimits@} \DeclareMathSymbol{\bigoplus@}{\mathop}{largesymbols}{"4C} \gdef\bigoplus{\DOTSB\bigoplus@\slimits@} \DeclareMathSymbol{\bigodot@}{\mathop}{largesymbols}{"4A} \gdef\bigodot{\DOTSB\bigodot@\slimits@} \DeclareMathSymbol{\bigsqcup@}{\mathop}{largesymbols}{"46} \gdef\bigsqcup{\DOTSB\bigsqcup@\slimits@} \endgroup \def\dddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@ \hbox{\normalfont ...}\vss}}}} \def\ddddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@ \hbox{\normalfont....}\vss}}}} \def~{\nobreakspace} \DeclareRobustCommand{\nobreakspace}{\unskip\nobreak\ \ignorespaces} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newif\if@display \everydisplay\expandafter{\the\everydisplay \@displaytrue} \def\int{\DOTSI\intop\ilimits@} \def\oint{\DOTSI\ointop\ilimits@} \def\intkern@{\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}} \def\intdots@{\mathchoice{\@cdots}% {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}% {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}% {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}} \def\iint{\DOTSI\protect\ints@\tw@} \def\iiint{\DOTSI\protect\ints@\thr@@} \def\iiiint{\DOTSI\protect\ints@{4}} \def\idotsint{\DOTSI\protect\ints@\z@} \def\ints@#1{% \mkern-7mu\mathchoice{\mkern-2mu}{}{}{}% \mathop{\mkern7mu\mathchoice{\mkern2mu}{}{}{}% \intop\ifnum#1=\z@\intdots@ \else\intkern@\fi \ifnum#1>\tw@\intop\intkern@\fi \ifnum#1>\thr@@\intop\intkern@\fi \intop }\ilimits@ } \def\nolimits@{% \DN@{\nolimits\ifx\@let@token\limits\expandafter\@gobble\fi}% \FN@\next@} \begingroup \catcode`\"=12 \gdef\newmcodes@{\mathcode`\'39\mathcode`\*42\mathcode`\."613A% \mathcode`\-45\mathcode`\/47\mathcode`\:"603A\relax} \endgroup \DeclareRobustCommand{\operatorname}{% \@ifstar{\qopname\newmcodes@ n}% {\qopname\newmcodes@{no}}}% \DeclareRobustCommand{\qopname}[3]{\mathop{#1\kern\z@\operator@font#3}% \csname #2limits@\endcsname} \def\arccos{\qopname\relax{no}{arccos}} \def\arcsin{\qopname\relax{no}{arcsin}} \def\arctan{\qopname\relax{no}{arctan}} \def\arg{\qopname\relax{no}{arg}} \def\cos{\qopname\relax{no}{cos}} \def\cosh{\qopname\relax{no}{cosh}} \def\cot{\qopname\relax{no}{cot}} \def\coth{\qopname\relax{no}{coth}} \def\csc{\qopname\relax{no}{csc}} \def\deg{\qopname\relax{no}{deg}} \def\det{\qopname\relax n{det}} \def\dim{\qopname\relax{no}{dim}} \def\exp{\qopname\relax{no}{exp}} \def\gcd{\qopname\relax n{gcd}} \def\hom{\qopname\relax{no}{hom}} \def\inf{\qopname\relax n{inf}} \def\injlim{\qopname\relax n{inj\,lim}} \def\ker{\qopname\relax{no}{ker}} \def\lg{\qopname\relax{no}{lg}} \def\lim{\qopname\relax n{lim}} \def\liminf{\qopname\relax n{lim\,inf}} \def\limsup{\qopname\relax n{lim\,sup}} \def\ln{\qopname\relax{no}{ln}} \def\log{\qopname\relax{no}{log}} \def\max{\qopname\relax n{max}} \def\min{\qopname\relax n{min}} \def\Pr{\qopname\relax n{Pr}} \def\projlim{\qopname\relax n{proj\,lim}} \def\sec{\qopname\relax{no}{sec}} \def\sin{\qopname\relax{no}{sin}} \def\sinh{\qopname\relax{no}{sinh}} \def\sup{\qopname\relax n{sup}} \def\tan{\qopname\relax{no}{tan}} \def\tanh{\qopname\relax{no}{tanh}} \def\operator@font{\mathgroup\symoperators} \def\operatornamewithlimits{\operatorname*} \def\varlim@#1#2{\mathop{\vtop{\ialign{##\crcr \hfil$#1\m@th\operator@font lim$\hfil\crcr \noalign{\nointerlineskip\kern\ex@}#2#1\crcr \noalign{\nointerlineskip\kern-\ex@}\crcr}}}} \def\varinjlim{\mathpalette\varlim@\rightarrowfill@} \def\varprojlim{\mathpalette\varlim@\leftarrowfill@} \def\varliminf{\mathpalette\varliminf@{}} \def\varliminf@#1{\mathop{\@@underline{\vrule\@depth.2\ex@\@width\z@ \hbox{$#1\m@th\operator@font lim$}}}} \def\varlimsup{\mathpalette\varlimsup@{}} \def\varlimsup@#1{\mathop{\@@overline {\hbox{$#1\m@th\operator@font lim$}}}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\numberwithin#1#2{\@ifundefined{c@#1}{\@nocounterr{#1}}{% \@ifundefined{c@#2}{\@nocnterr{#2}}{% \@addtoreset{#1}{#2}% \toks@\expandafter\expandafter\expandafter{\csname the#1\endcsname}% \expandafter\xdef\csname the#1\endcsname {\expandafter\noexpand\csname the#2\endcsname .\the\toks@}}}} \def\eqref#1{\textup{\tagform@{\ref{#1}}}} \def\bmod{\mskip-\medmuskip\mkern5mu\mathbin {\operator@font mod}\penalty900 \mkern5mu\mskip-\medmuskip} \def\pod#1{\allowbreak\if@display\mkern18mu\else\mkern8mu\fi(#1)} \def\pmod#1{\pod{{\operator@font mod}\mkern6mu#1}} \def\mod#1{\allowbreak\if@display\mkern18mu \else\mkern12mu\fi{\operator@font mod}\,\,#1} \newcommand{\cfrac}[3][c]{{\displaystyle\frac{% \strut\ifx r#1\hfill\fi#2\ifx l#1\hfill\fi}{#3}}% \kern-\nulldelimiterspace} \def\lcfrac{\cfrac[l]} \def\rcfrac{\cfrac[r]} \def\overset#1#2{\binrel@{#2}% \binrel@@{\mathop{\kern\z@#2}\limits^{#1}}} \def\underset#1#2{\binrel@{#2}% \binrel@@{\mathop{\kern\z@#2}\limits_{#1}}} \def\sideset#1#2#3{% \setbox\z@\hbox{$\displaystyle{\vphantom{#3}}#1{#3}\m@th$}% \setbox\tw@\hbox{$\displaystyle{#3}#2\m@th$}% \hskip\wd\z@\hskip-\wd\tw@\mathop{\hskip\wd\tw@\hskip-\wd\z@ {\vphantom{#3}}#1{#3}#2}} \renewcommand{\smash}[2][tb]{% \def\smash@{#1}% \ifmmode\expandafter\mathpalette\expandafter\mathsm@sh\else \expandafter\makesm@sh\fi{#2}} \def\finsm@sh{\def\mb@t{\ht\z@\z@}\def\mb@b{\dp\z@\z@}% \def\mb@tb{\mb@t\mb@b}% {\csname mb@\smash@\endcsname}% \leavevmode\boxz@} \def\rightarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@ $#1\copy\z@\mkern-6mu\cleaders \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill \mkern-6mu\mathord\rightarrow$} \def\leftarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@ $#1\mathord\leftarrow\mkern-6mu\cleaders \hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill \mkern-6mu\box\z@$} \def\leftrightarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@ $#1\mathord\leftarrow\mkern-6mu\cleaders \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill \mkern-6mu\mathord\rightarrow$} \def\overarrow@#1#2#3{\vbox{\ialign{##\crcr#1#2\crcr \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#2#3\hfil$\crcr}}} \def\overrightarrow{\mathpalette{\overarrow@\rightarrowfill@}} \def\overleftarrow{\mathpalette{\overarrow@\leftarrowfill@}} \def\overleftrightarrow{\mathpalette{\overarrow@\leftrightarrowfill@}} \def\underarrow@#1#2#3{% \vtop{\ialign{##\crcr$\m@th\hfil#2#3\hfil$\crcr \noalign{\nointerlineskip\kern-.5\ex@}#1#2\crcr}}} \def\underrightarrow{\mathpalette{\underarrow@\rightarrowfill@}} \def\underleftarrow{\mathpalette{\underarrow@\leftarrowfill@}} \def\underleftrightarrow{\mathpalette{\underarrow@\leftrightarrowfill@}} \let\ifgtest@\iffalse % initial value \def\gtest@true{\global\let\ifgtest@\iftrue} \def\gtest@false{\global\let\ifgtest@\iffalse} \let\DOTSI\relax \let\DOTSB\relax \let\DOTSX\relax {\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`!=`h \uppercase{% \gdef\math@#1#2#3#4#5#6\math@{\gtest@false\ifx 7#1\ifx 8#2% \ifx 9#3\ifx 0#4\ifx !#5\xdef\meaning@{#6}\gtest@true \fi\fi\fi\fi\fi}}} {\uccode`7=`c \uccode`8=`h \uccode`9=`\" \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\gtest@false \ifx 7#1\ifx 8#2\ifx 9#5\gtest@true\xdef\meaning@{9#6}\fi\fi\fi}}} \newcount\classnum@ \def\getmathch@#1.#2\getmathch@{\classnum@#1 \divide\classnum@4096 \ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\or \gdef\thedots@{\dotsb@}\fi} {\uccode`4=`b \uccode`5=`i \uccode`6=`n \uppercase{\gdef\mathbin@#1#2#3{\relaxnext@ \def\nextii@##1\mathbin@{\ifx\@sptoken\@let@token\gtest@true\fi}% \gtest@false\DN@##1\mathbin@{}% \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}} {\uccode`4=`r \uccode`5=`e \uccode`6=`l \uppercase{\gdef\mathrel@#1#2#3{\relaxnext@ \def\nextii@##1\mathrel@{\ifx\@sptoken\@let@token\gtest@true\fi}% \gtest@false\DN@##1\mathrel@{}% \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}} {\uccode`5=`m \uccode`6=`a \uccode`7=`c \uppercase{\gdef\macro@#1#2#3#4\macro@{\gtest@false \ifx 5#1\ifx 6#2\ifx 7#3\gtest@true \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}} \def\macro@@#1->#2\macro@@{#2} \newcount\DOTSCASE@ {\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S \uppercase{\gdef\DOTS@#1#2#3#4#5{\gtest@false\DN@##1\DOTS@{}% \ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\ifx 0#5\let\next@\DOTS@@ \fi\fi\fi\fi\fi \next@}}} {\uccode`3=`B \uccode`4=`I \uccode`5=`X \uppercase{\gdef\DOTS@@#1{\relaxnext@ \def\nextii@##1\DOTS@{\ifx\@sptoken\@let@token\gtest@true\fi}% \DN@{\FN@\nextii@}% \ifx 3#1\global\DOTSCASE@\z@\else \ifx 4#1\global\DOTSCASE@\@ne\else \ifx 5#1\global\DOTSCASE@\tw@\else\DN@##1\DOTS@{}% \fi\fi\fi\next@}}} {\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t \uppercase{\gdef\not@#1#2#3#4{\relaxnext@ \def\nextii@##1\not@{\ifx\@sptoken\@let@token\gtest@true\fi}% \gtest@false\DN@##1\not@{}% \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\DN@{\FN@\nextii@}\fi\fi\fi \fi\next@}}} \def\keybin@{\gtest@true \ifx\@let@token+\else\ifx\@let@token=\else\ifx\@let@token<% \else\ifx\@let@token>\else\ifx\@let@token-\else\ifx\@let@token*% \else\ifx\@let@token:\else\gtest@false\fi\fi\fi\fi\fi\fi\fi} \@ifundefined{@ldots}{\def\@ldots{\mathellipsis}}{} \DeclareRobustCommand{\dots}{\relax \csname\ifmmode m\else t\fi dots@\endcsname} \def\tdots@{\leavevmode\unskip\relaxnext@ \DN@{$\m@th\@ldots\, \ifx\@let@token,\,$\else\ifx\@let@token.\,$\else\ifx\@let@token;\,$% \else\ifx\@let@token:\,$\else\ifx\@let@token?\,$% \else\ifx\@let@token!\,$\else$ \fi\fi\fi\fi\fi\fi}% \ \FN@\next@} \def\mdots@{\FN@\mdots@@} \def\mdots@@{\gdef\thedots@{\dotso@}% \ifx\@let@token\boldsymbol\gdef\thedots@\boldsymbol{\boldsymboldots@}% \else\ifx,\@let@token\gdef\thedots@{\dotsc}% \else\ifx\not\@let@token\gdef\thedots@{\dotsb@}% \else\keybin@ \ifgtest@\gdef\thedots@{\dotsb@}% \else\xdef\meaning@{\meaning\@let@token..........}% \xdef\meaning@@{\meaning@}% \expandafter\math@\meaning@\math@ \ifgtest@ \expandafter\mathch@\meaning@\mathch@ \ifgtest@\expandafter\getmathch@\meaning@\getmathch@\fi \else\expandafter\macro@\meaning@@\macro@ \ifgtest@ \expandafter\not@\meaning@\not@\ifgtest@\gdef\thedots@{\dotsb@}% \else\expandafter\DOTS@\meaning@\DOTS@ \ifgtest@ \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}% \or\gdef\thedots@{\dotsi}\else\fi \else\expandafter\math@\meaning@\math@ \ifgtest@\expandafter\mathbin@\meaning@\mathbin@ \ifgtest@\gdef\thedots@{\dotsb@}% \else\expandafter\mathrel@\meaning@\mathrel@ \ifgtest@\gdef\thedots@{\dotsb@}% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \thedots@} \def\boldsymboldots@#1{% \bold@true\let\@let@token=#1\let\delayed@=#1\mdots@@ \boldsymbol#1\bold@false} \def\@cdots{\mathinner{\cdotp\cdotp\cdotp}} \def\dotsi{\!\@cdots} \let\dotsb@\@cdots \def\rightdelim@{\gtest@true \ifx\@let@token)\else \ifx\@let@token]\else \ifx\@let@token\rbrack\else \ifx\@let@token\}\else \ifx\@let@token\rbrace\else \ifx\@let@token\rangle\else \ifx\@let@token\rceil\else \ifx\@let@token\rfloor\else \ifx\@let@token\rgroup\else \ifx\@let@token\rmoustache\else \ifx\@let@token\right\else \ifx\@let@token\bigr\else \ifx\@let@token\biggr\else \ifx\@let@token\Bigr\else \ifx\@let@token\Biggr\else\gtest@false \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} \def\extra@{% \rightdelim@\ifgtest@ \else\ifx\@let@token$\gtest@true \else\xdef\meaning@{\meaning\@let@token..........}% \expandafter\macro@\meaning@\macro@\ifgtest@ \expandafter\DOTS@\meaning@\DOTS@ \ifgtest@ \ifnum\DOTSCASE@=\tw@\gtest@true\else\gtest@false \fi\fi\fi\fi\fi} \newif\ifbold@ \def\dotso@{\relaxnext@ \ifbold@ \let\@let@token\delayed@ \def\nextii@{\extra@\@ldots\ifgtest@\,\fi}% \else \def\nextii@{\DN@{\extra@\@ldots\ifgtest@\,\fi}\FN@\next@}% \fi \nextii@} \def\extrap@#1{% \DN@{#1\,}% \ifx\@let@token,\else \ifx\@let@token;\else \ifx\@let@token.\else\extra@ \ifgtest@\else \let\next@#1\fi\fi\fi\fi\next@} \DeclareRobustCommand{\ldots}{\relax \ifmmode \DN@{\extrap@\@ldots}% \else \let\next@\tdots@\fi \FN@\next@} \DeclareRobustCommand{\cdots}{\DN@{\extrap@\@cdots}\FN@\next@} \let\dotso\ldots \let\dotsb\cdots \let\dotsm\dotsb \DeclareRobustCommand{\dotsc}{% \DN@{\ifx\@let@token;\@ldots\,% \else \ifx\@let@token.\@ldots\,% \else \extra@\@ldots \ifgtest@\,\fi \fi\fi}% \FN@\next@} \def\longrightarrow{\DOTSB\relbar\joinrel\rightarrow} \def\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow} \def\longleftarrow{\DOTSB\leftarrow\joinrel\relbar} \def\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar} \def\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow} \def\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow} \def\mapsto{\DOTSB\mapstochar\rightarrow} \def\longmapsto{\DOTSB\mapstochar\longrightarrow} \def\hookrightarrow{\DOTSB\lhook\joinrel\rightarrow} \def\hookleftarrow{\DOTSB\leftarrow\joinrel\rhook} \def\doteq{\DOTSB\buildrel\textstyle.\over=} \def\iff{\DOTSB\;\Longleftrightarrow\;} \begingroup \catcode`\"=12 \mathchardef\@tempa="7000 \ifx\@tempa\Gamma \DeclareMathSymbol{\Gamma}{\mathord}{operators}{"00} \DeclareMathSymbol{\Delta}{\mathord}{operators}{"01} \DeclareMathSymbol{\Theta}{\mathord}{operators}{"02} \DeclareMathSymbol{\Lambda}{\mathord}{operators}{"03} \DeclareMathSymbol{\Xi}{\mathord}{operators}{"04} \DeclareMathSymbol{\Pi}{\mathord}{operators}{"05} \DeclareMathSymbol{\Sigma}{\mathord}{operators}{"06} \DeclareMathSymbol{\Upsilon}{\mathord}{operators}{"07} \DeclareMathSymbol{\Phi}{\mathord}{operators}{"08} \DeclareMathSymbol{\Psi}{\mathord}{operators}{"09} \DeclareMathSymbol{\Omega}{\mathord}{operators}{"0A} \DeclareMathSymbol{\varGamma}{\mathord}{letters}{"00} \DeclareMathSymbol{\varDelta}{\mathord}{letters}{"01} \DeclareMathSymbol{\varTheta}{\mathord}{letters}{"02} \DeclareMathSymbol{\varLambda}{\mathord}{letters}{"03} \DeclareMathSymbol{\varXi}{\mathord}{letters}{"04} \DeclareMathSymbol{\varPi}{\mathord}{letters}{"05} \DeclareMathSymbol{\varSigma}{\mathord}{letters}{"06} \DeclareMathSymbol{\varUpsilon}{\mathord}{letters}{"07} \DeclareMathSymbol{\varPhi}{\mathord}{letters}{"08} \DeclareMathSymbol{\varPsi}{\mathord}{letters}{"09} \DeclareMathSymbol{\varOmega}{\mathord}{letters}{"0A} \fi \endgroup \def\accentclass@{7} \def\noaccents@{\def\accentclass@{0}} \DeclareFontEncoding{OML}{}{\noaccents@} \DeclareFontEncoding{OMS}{}{\noaccents@} \edef\@tempa#1#2{\def#1{\mathaccent\string"\noexpand\accentclass@#2 }} \@tempa\hat{05E}\@tempa\check{014}\@tempa\tilde{07E}\@tempa\acute{013} \@tempa\grave{012}\@tempa\dot{05F}\@tempa\ddot{07F}\@tempa\breve{015} \@tempa\bar{016} \newcount\skewcharcount@ \newcount\familycount@ \def\theskewchar@{\familycount@\@ne \global\skewcharcount@\the\skewchar\textfont\@ne \ifnum\mathgroup>\m@ne\ifnum\mathgroup<16 \global\familycount@\the\mathgroup\relax \global\skewcharcount@\the\skewchar\textfont\the\mathgroup\relax\fi\fi \ifnum\skewcharcount@>\m@ne \ifnum\skewcharcount@<128 \multiply\familycount@256 \global\advance\skewcharcount@\familycount@ \global\advance\skewcharcount@28672 \mathchar\skewcharcount@\else \global\skewcharcount@\m@ne\fi\else \global\skewcharcount@\m@ne\fi} \newcount\pointcount@ \def\getpoints@#1.#2\getpoints@{\pointcount@#1 } \newdimen\accentdimen@ \newcount\accentmu@ \def\dimentomu@{\multiply\accentdimen@ 100 \expandafter\getpoints@\the\accentdimen@\getpoints@ \multiply\pointcount@18 \divide\pointcount@\@m \global\accentmu@\pointcount@} \def\mathaccent@#1#2{\ifnum\mathgroup=\m@ne\xdef\thefam@{1}\else \xdef\thefam@{\the\mathgroup}\fi \accentdimen@\z@ \setboxz@h{\unbracefonts@$\m@th\mathgroup\thefam@\relax#2$}% \ifdim\accentdimen@=\z@\DN@{\mathaccent#1{#2}}% \setbox\@ne\hbox{\unbracefonts@ $\m@th\mathgroup\thefam@\relax#2\theskewchar@$} \setbox\tw@\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\else \mathchar\skewcharcount@\fi$}% \global\accentdimen@\wd\@ne\global\advance\accentdimen@-\wdz@ \global\advance\accentdimen@-\wd\tw@ \global\multiply\accentdimen@\tw@ \dimentomu@\global\advance\accentmu@\@ne \else\DN@{{\mathaccent#1{#2\mkern\accentmu@ mu}% \mkern-\accentmu@ mu}{}}\fi \next@} \def\unbracefonts@{\let\math@bgroup\@empty\let\math@egroup\@empty} \begingroup \catcode`\"=12 \def\@tempa#1#2{\gdef#1{\RIfM@\DN@{\mathaccent@{"\accentclass@#2 }}% \else\DN@{\nonmatherr@{#1}}\fi\next@}} \@tempa\Hat{05E}\@tempa\Check{014}\@tempa\Tilde{07E}\@tempa\Acute{013} \@tempa\Grave{012}\@tempa\Dot{05F}\@tempa\Ddot{07F}\@tempa\Breve{015} \@tempa\Bar{016} \gdef\Vec{\RIfM@\DN@{\mathaccent@{"017E }}\else \DN@{\nonmatherr@\Vec}\fi\next@} \endgroup \begingroup \catcode`\"=12 \gdef\@@sqrt#1{\radical"270370 {#1}} \endgroup \@saveprimitive\overline\@@overline \def\overline#1{\@@overline{#1}} \def\boxed#1{\fbox{\m@th$\displaystyle#1$}} \def\setb@ck{\iffirstchoice@\global\advance\c@equation\m@ne\fi} \newcount\dspbrk@lvl \dspbrk@lvl=-1 \interdisplaylinepenalty\@M \def\allowdisplaybreaks{% \new@ifnextchar[\allowdspbrks@{\allowdspbrks@[4]}} \def\allowdspbrks@[#1]{% \interdisplaylinepenalty\getdsp@pen{#1}} \def\getdsp@pen#1{% \ifcase #1\relax \@M \or 9999 \or 6999 \or 2999 \or \z@\fi} \def\displaybreak{\PackageError{amstex}{\Invalid@@\displaybreak}\@eha} \def\displaybreak@{% \def\displaybreak{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}}} \def\dspbrk@[#1]{\global\dspbrk@lvl #1\relax} \def\math@cr{{\ifnum0=`}\fi \new@ifstar{\global\@eqpen\@M\math@cr@}% {\global\@eqpen \ifnum\dspbrk@lvl <\z@ \interdisplaylinepenalty \else -\@getpen\dspbrk@lvl \fi \math@cr@}} \def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}} \def\math@cr@@[#1]{\ifnum0=`{\fi}\math@cr@@@ \noalign{\vskip#1\relax}} \def\Let@{\let\\\math@cr} \def\restore@math@cr{\def\math@cr@@@{\cr}} \restore@math@cr \def\intertext{\PackageError{amstex}{\Invalid@@\intertext}\@eha} \def\intertext@{\def\intertext##1{\noalign{% \penalty\postdisplaypenalty\vskip\belowdisplayskip \vbox{\normalbaselines\noindent##1}% \penalty\predisplaypenalty\vskip\abovedisplayskip}}} \newhelp\tag@help {tag cannot be used at this point.\space If you don't understand why^^Jyou should consult the documentation.^^JBut don't worry: just continue, and I'll forget what happened.} \def\gobble@tag{\new@ifstar\@gobble\@gobble} \def\invalid@tag#1{\PackageError{amstex}{#1}{\the\tag@help}\gobble@tag} \def\dft@tag{\invalid@tag{\string\tag\space not allowed here}} \def\default@tag{\let\tag\dft@tag} \default@tag \def\maketag@@{\new@ifstar\maketag@@@\tagform@} \def\maketag@@@#1{\hbox{\m@th\normalfont#1}} \def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip)}} \def\thetag{\leavevmode\tagform@} \def\make@df@tag{\new@ifstar\make@df@tag@@\make@df@tag@@@} \def\make@df@tag@@#1{% \def\@currentlabel{#1}% \gdef\df@tag{\maketag@@@{#1}}} \def\make@df@tag@@@#1{\@seteqlabel{#1}\gdef\df@tag{\tagform@{#1}}} \def\@seteqlabel#1{\toks@\@xp{\p@equation{#1}}% \edef\@currentlabel{\the\toks@}} \def\notag{\nonumber} \iftagsleft@ \def\@eqnnum{\hbox to1sp{}\rlap{\normalfont \hskip -\displaywidth\tagform@\theequation}} \fi \let\@adjusttag\@empty \def\adjusttag#1{\skip@#1\relax\gdef\@adjusttag{#1}} \def\@movetag{% \ifx\@adjusttag\@empty \else \vskip\@adjusttag\relax \global\let\@adjusttag\@empty \fi } \def\multilimits@{\bgroup \Let@ \restore@math@cr \default@tag \baselineskip\fontdimen10 \scriptfont\tw@ \advance\baselineskip\fontdimen12 \scriptfont\tw@ \lineskip\thr@@\fontdimen8 \scriptfont\thr@@ \lineskiplimit\lineskip \vbox\bgroup\ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil\crcr} \def\Sb{_\multilimits@} \def\Sp{^\multilimits@} \def\endSb{\crcr\egroup\egroup\egroup} \let\endSp=\endSb \def\smallmatrix{\null\,\vcenter\bgroup \Let@\restore@math@cr\default@tag \baselineskip6\ex@ \lineskip1.5\ex@ \lineskiplimit\lineskip \ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil&&\thickspace\hfil $\m@th\scriptstyle{##}$\hfil\crcr} \def\endsmallmatrix{\crcr\egroup\egroup\,} \newcount\c@MaxMatrixCols \c@MaxMatrixCols=10 \def\matrix{\hskip -\arraycolsep\array{*\c@MaxMatrixCols c}} \def\endmatrix{\endarray \hskip -\arraycolsep} \@ifundefined{prepnext@tok}{% \def\@array[#1]#2{% \setbox\@arstrutbox\hbox{\vrule\@height\arraystretch\ht\strutbox \@depth\arraystretch\dp\strutbox \@width\z@}% \@mkpream{#2}\edef\@preamble{\ialign \noexpand\@halignto \bgroup \tabskip\z@ \@arstrut \@preamble \tabskip\z@ \cr}% \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi \bgroup \let\par\@empty \let\@sharp##\let\protect\relax \lineskip\z@\baselineskip\z@\@preamble}% \begingroup \lccode`\~=`\@ \catcode`\~=\active % just to be sure! \lowercase{% \gdef\@xexpast#1*#2#3#4\@@{\begingroup \def~{@}\edef\reserved@a{#1}\@tempcnta#2\relax \ifnum\@tempcnta >\z@ \@whilenum\@tempcnta >\z@\do {\edef\reserved@a{\reserved@a#3}\advance\@tempcnta \m@ne}% \let\reserved@b\@xexpast \else \let\reserved@b\@xexnoop\fi \expandafter\reserved@b \reserved@a #4\@@ \expandafter\endgroup \expandafter\def\expandafter\reserved@a\expandafter{\reserved@a}% \let\@tempa\reserved@a }% End of \@xexpast }% End of \lowercase \endgroup }{}% End of \@ifundefined test. \def\pmatrix{\left(\matrix} \def\endpmatrix{\endmatrix\right)} \def\bmatrix{\left[\matrix} \def\endbmatrix{\endmatrix\right]} \def\vmatrix{\left|\matrix} \def\endvmatrix{\endmatrix\right|} \def\Vmatrix{\left\|\matrix} \def\endVmatrix{\endmatrix\right\|} \let\hdots\@ldots \def\hdotsfor#1{\if\noexpand#1[\expandafter\shdots@for\else \hdots@for\@ne{#1}\fi} \newmuskip\dotsspace@ \def\shdots@for#1]{\hdots@for{#1}} \def\hdots@for#1#2{\multicolumn{#2}c% {\m@th\dotsspace@1.5mu\mkern-#1\dotsspace@ \xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}% \hfill \mkern-#1\dotsspace@}% } \def\cases{\left\{\def\arraystretch{1.2}\hskip-\arraycolsep \array{l@{\quad}l}} \def\endcases{\endarray\hskip-\arraycolsep\right.} \newif\ifinany@ \newif\ifinalign@ \newif\ifingather@ \newcount\and@ \newif\iftag@ \newhelp\andhelp@ {An extra & here is so disastrous that you should probably exit^^J and fix things up.} \newif\ifst@rred \newtoks\@envbody \def\addto@envbody#1{\@envbody\expandafter{\the\@envbody#1}} \def\collect@body#1{% \@envbody{}% \def\process@envbody{% \expandafter#1\expandafter{\the\@envbody}}% \expandafter\let\csname\@currenvir\endcsname\collect@@body \csname\@currenvir\endcsname} \def\collect@@body#1\end#2{% \def\@tempa{#2}% \ifx\@tempa\@currenvir \addto@envbody{#1}% \expandafter\edef\csname\@currenvir\endcsname {\noexpand\process@envbody\noexpand\end{\@tempa}}% \else \addto@envbody{#1\end{#2}}% \fi \csname\@currenvir\endcsname} \newenvironment{aligned}{% \relax\ifmmode\else\nonmatherr@{\begin{aligned}}\fi \null\,\new@ifnextchar[{\aligned@}{\aligned@[c]}% }{% \crcr\egroup\egroup } \def\aligned@[#1]{% \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi \bgroup \Let@\restore@math@cr \default@tag \ifinany@\else\openup\jot\fi \ialign\bgroup\hfil\strut@$\m@th\displaystyle{##}$&% $\m@th\displaystyle{{}##}$\hfil\crcr} \newtoks\hashtoks@ \hashtoks@{#} \newcount\atcount@ \def\doat@#1{\toks@{\hfil\strut@$\m@th \displaystyle{\the\hashtoks@}$&$\m@th\displaystyle {{}\the\hashtoks@}$\hfil}% \atcount@#1\relax\advance\atcount@\m@ne \loop\ifnum\atcount@>\z@\toks@\expandafter{\the\toks@&\hfil$\m@th \displaystyle{\the\hashtoks@}$&$\m@th \displaystyle{{}\the\hashtoks@}$\hfil}\advance \atcount@\m@ne\repeat \xdef\preamble@{\the\toks@}\xdef\preamble@@{\preamble@}} \newenvironment{alignedat}[2][c]{% \null\,% \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi \bgroup\doat@{#2}\Let@ \restore@math@cr\default@tag \ifinany@\else\openup\jot\fi\ialign\bgroup\span\preamble@@\crcr }{% \endaligned } \newenvironment{gathered}[1][c]{% \relax\ifmmode\else\nonmatherr@{\begin{gathered}}\fi \null\,% \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi \bgroup\Let@\restore@math@cr \ifinany@\else\openup\jot\fi\ialign \bgroup\hfil\strut@$\m@th\displaystyle##$\hfil\crcr }{% \endaligned } \def\tag@in@align{\relax \iftag@\DN@{\invalid@tag{Multiple \string\tag}}\else \global\tag@true \if@eqnsw\global\@eqnswfalse\fi \let\next@\make@df@tag\fi \next@} \def\math@cr@@@align{% \if@eqnsw\global\tag@true\fi \iftag@ \ifcase\and@ \DN@{&&}\else \DN@{&}\fi\else \let\next@\relax\fi \next@ \relax \if@eqnsw\tagform@\theequation\stepcounter{equation}\else \iftag@\df@tag\fi\fi \global\@eqnswtrue\cr} \def\Tag@{\relax\iftag@\else\firstchoice@true \PackageError{amstex}{% Extra & on this line% }{\the\andhelp@% "An extra & here is disastrous" }\fi} \newdimen\lwidth@ \newdimen\rwidth@ \newdimen\maxlwidth@ \newdimen\maxrwidth@ \newdimen\totwidth@ \def\measure@#1{\lwidth@\z@\rwidth@\z@\maxlwidth@\z@\maxrwidth@\z@ \global\and@\z@ \setbox\@ne\vbox{% \everycr{\noalign{\global\tag@false\global\and@\z@}}\Let@ \let\tag\gobble@tag \let\notag\@empty \let\nonumber\@empty \firstchoice@false \halign{\setboxz@h{$\m@th\displaystyle{\@lign##}$}% \global\lwidth@\wdz@ \ifdim\lwidth@>\maxlwidth@\global\maxlwidth@\lwidth@\fi \global\advance\and@\@ne &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}% \global\rwidth@\wdz@ \ifdim\rwidth@>\maxrwidth@\global\maxrwidth@\rwidth@\fi \global\advance\and@\@ne &\Tag@\@gobble{##}\crcr#1\crcr}}% \totwidth@\maxlwidth@\advance\totwidth@\maxrwidth@} \def\displ@y{\global\dt@ptrue\openup\jot\m@th \everycr{\noalign{\ifdt@p \global\dt@pfalse \vskip-\lineskiplimit \vskip\normallineskiplimit \else \penalty\@eqpen \fi}}} \def\displ@y@{\global\dt@ptrue\openup\jot \everycr{\noalign{\global\tag@false \global\and@\z@ \global\dspbrk@lvl\m@ne \ifdt@p\global\dt@pfalse \vskip-\lineskiplimit\vskip\normallineskiplimit\else \penalty\@eqpen\fi}}} \def\black@#1{\noalign{\ifdim#1>\displaywidth \dimen@\prevdepth\nointerlineskip \vskip-\ht\strutbox@\vskip-\dp\strutbox@ \vbox{\noindent\hbox to#1{\strut@\hfill}}% \prevdepth\dimen@ \fi}} \def\align{\ifingather@ {\ifnum0=`}\fi \DN@{\@nameuse{align (in \string\gather)}}% \else \ifmmode\nomath@env \DN@{\let\endalign\relax\@gobble}\else $$\stepcounter{equation}% \st@rredfalse\let\next@\align@\fi\fi \collect@body\next@} \@namedef{align*}{\ifingather@ {\ifnum0=`}\fi \DN@{\@nameuse{align* (in \string\gather)}}\else \ifmmode\nomath@env \DN@{\@namedef{endalign*}{}\@gobble}\else $$\st@rredtrue \let\next@\align@\fi\fi \collect@body\next@} \newdimen\lineht@ \def\align@{\inalign@true\inany@true \displaybreak@\intertext@ \let\math@cr@@@\math@cr@@@align \let\tag\tag@in@align \global\and@\z@\global\dspbrk@lvl\m@ne \iftagsleft@\DN@{\@nameuse{align }}\else \DN@{\@nameuse{align \space}}\fi\next@} \@namedef{align }#1{% \measure@{#1}% \global\and@\z@ \global\dspbrk@lvl\m@ne \if@fleqn %%*F \advance\totwidth@\@mathmargin %%*F \fi %%*F \ifdim\totwidth@>\displaywidth \let\displaywidth@\totwidth@ \else \let\displaywidth@\displaywidth \fi \ifingather@ \everycr{% \noalign{% \global\and@\z@ \global\dspbrk@lvl\m@ne }% }% \else \displ@y@ \fi \Let@ \ifst@rred\else\@seteqlabel\theequation\fi \tabskip\@mathmargin %%*F \dimen@\displaywidth %%*F \if@fleqn %%*F \ifingather@ %%*F \tabskip\z@skip %%*F \advance\dimen@-\@mathmargin %%*F \fi %%*F \fi %%*F \halign to\dimen@\bgroup %%*F \ifst@rred\nonumber\fi \hfil \strut@ \setboxz@h{\global\tag@false$\m@th\displaystyle{\@lign##}$}% \global\lwidth@\wdz@ \global\lineht@\ht\z@ \boxz@ \global\advance\and@\@ne \tabskip\z@skip &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}% \global\rwidth@\wdz@ \ifdim\ht\z@>\lineht@ \global\lineht@\ht\z@ \fi \boxz@ \hfil \global\advance\and@\@ne \tabskip\@centering &\kern-\displaywidth@ \setboxz@h{\@lign\strut@{##}}% \if@fleqn %%*F \dimen@\@mathmargin %%*F \advance\dimen@\maxlwidth@ %%*F \advance\dimen@-\lwidth@ %%*F \else %%*F \dimen@\displaywidth \advance\dimen@-\totwidth@ \divide\dimen@\tw@ \advance\dimen@\maxlwidth@ \advance\dimen@-\lwidth@ \fi %%*F \ifdim\dimen@<\tw@\wdz@ \rlap{\vbox{\normalbaselines\boxz@\vbox to\lineht@{}}}% \else \rlap{\boxz@}% \fi \tabskip\displaywidth@ \crcr #1% } \@namedef{align \space}#1{% \measure@{#1}% \if@fleqn %%*F \advance\totwidth@\@mathmargin %%*F \fi %%*F \global\and@\z@ \global\dspbrk@lvl\m@ne \ifingather@ \everycr{\noalign{\global\and@\z@\global\dspbrk@lvl\m@ne}}% \else \displ@y@ \fi \Let@ \ifst@rred\else\@seteqlabel\theequation\fi \tabskip\@mathmargin %%*F \dimen@\displaywidth %%*F \if@fleqn %%* \ifingather@ %%*F \tabskip\z@skip %%*F \advance\dimen@-\@mathmargin %%*F \fi %%*F \fi %%*F \halign to\dimen@\bgroup %%*F \ifst@rred\nonumber\fi \hfil \strut@ \setboxz@h{\global\tag@false$\m@th\displaystyle{\@lign##}$}% \global\lwidth@\wdz@\boxz@ \global\advance\and@\@ne \tabskip\z@skip &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}% \global\rwidth@\wdz@ \boxz@ \hfill \global\advance\and@\@ne \tabskip\@centering &\setboxz@h{\@lign\strut@{##}}% \dimen@\displaywidth \advance\dimen@-\totwidth@ \divide\dimen@\tw@ \advance\dimen@\maxrwidth@ \advance\dimen@-\rwidth@ \ifdim\dimen@<\tw@\wdz@ \llap{\vtop{\@movetag\normalbaselines\null\boxz@}}%%*T \else \llap{\boxz@}% \fi \tabskip\z@skip \crcr#1% } \def\endalign{\math@cr@@@align \black@\totwidth@ \egroup$$\global\@ignoretrue\setb@ck} \@namedef{endalign*}{\math@cr@@@align\black@\totwidth@ \egroup$$\global\@ignoretrue} \@namedef{align (in \string\gather)}{% \ifst@rred\stepcounter{equation}\fi \def\endalign{\@nameuse{endalign (in \string\gather)}\ifnum0=`{\fi}}% \vcenter\bgroup\st@rredfalse \collect@body\align@} \@namedef{endalign (in \string\gather)}{% \math@cr@@@align\black@\totwidth@ \egroup\egroup \ifst@rred\setb@ck\fi% this ifst@rred is set by the enclosing gather \global\tag@false\global\@eqnswfalse} \@namedef{align* (in \string\gather)}{% \@namedef{endalign*}{\@nameuse{endalign* (in \string\gather)}% \ifnum0=`{\fi}}% \vcenter\bgroup\st@rredtrue \collect@body\align@} \@namedef{endalign* (in \string\gather)}{% \math@cr@@@align\black@\totwidth@\egroup\egroup \global\tag@false\global\@eqnswfalse} \newif\ifxat@ \def\alignat#1{% \ifmmode\nomath@env\DN@{\let\endalignat\relax\@gobble}\else$$% \st@rredfalse\stepcounter{equation}\@seteqlabel\theequation \DN@{\@nameuse{alignat }#1}\fi \collect@body\next@} \@namedef{alignat*}#1{% \ifmmode\nomath@env\DN@{\@namedef{endalignat*}{}\@gobble}\else$$% \st@rredtrue \DN@{\@nameuse{alignat }#1}\fi \collect@body\next@} \newif\ifmeasuring@ \newbox\savealignat@ \def\math@cr@@@alignat{% \if@eqnsw\global\tag@true\fi \iftag@ \multiply\count@\tw@ \xdef\next@{}\loop\ifnum\count@>\and@\xdef\next@{&\next@}% \advance\count@\m@ne\repeat\else \let\next@\relax\fi \next@ \relax \if@eqnsw\tagform@\theequation\stepcounter{equation}\else \iftag@\df@tag\fi\fi \global\@eqnswtrue\cr}% \@namedef{alignat }#1#2{% \inany@true \xat@false \let\tag\tag@in@align \def\math@cr@@@{\count@#1\relax \math@cr@@@alignat}% \displaybreak@ \intertext@ \displ@y@ \ifst@rred \global\@eqnswfalse \else \global\@eqnswtrue \fi \measuring@true \setbox\savealignat@\hbox{% $\m@th\displaystyle\Let@ \attag@{#1}% \vbox{\firstchoice@false\halign{\span\preamble@@\crcr#2\crcr}}$% }% \measuring@false \Let@ \attag@{#1}% \tabskip\@mathmargin %%*F \halign to\displaywidth\bgroup \span\preamble@@\crcr #2% } \def\endalignat{\math@cr@@@\black@{\wd\savealignat@}% \egroup\setb@ck$$\global\@ignoretrue} \@namedef{endalignat*}{\math@cr@@@\black@{\wd\savealignat@}\egroup $$\global\@ignoretrue} \def\xalignat#1{% \ifmmode\nomath@env\DN@{\let\endxalignat\relax\@gobble}\else$$% \st@rredfalse\stepcounter{equation}\@seteqlabel\theequation \DN@{\@nameuse{xalignat }#1}\fi \collect@body\next@} \@namedef{xalignat*}#1{% \ifmmode\nomath@env\DN@{\@namedef{endxalignat*}{}\@gobble}\else$$% \st@rredtrue \DN@{\@nameuse{xalignat }#1}\fi \collect@body\next@} \let\endxalignat=\endalignat \expandafter\let\csname endxalignat*\expandafter \endcsname\csname endalignat*\endcsname \@namedef{xalignat }#1#2{% \inany@true \xat@true \let\tag\tag@in@align \def\math@cr@@@{\count@#1\relax\math@cr@@@alignat}% \displaybreak@ \intertext@ \displ@y@ \measuring@true \setbox\savealignat@\hbox{% $\m@th\displaystyle\Let@ \attag@{#1}% \vbox{% \firstchoice@false \halign{\span\preamble@@\crcr#2\crcr}% }% $% }% \measuring@false \Let@ \attag@{#1}% \tabskip\@mathmargin %%*F \halign to\displaywidth\bgroup \span\preamble@@\crcr#2% } \def\attag@#1{% \let\TAG@\Tag@\let\Tag@0% \ifmeasuring@\def\llap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}% \def\rlap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}\else \let\llap@\llap\let\rlap@\rlap\fi \toks@{\hfil\strut@$\m@th\displaystyle{\@lign\the\hashtoks@}$% \tabskip\z@skip \global\advance\and@\@ne &$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil \ifxat@\tabskip\@centering\fi\global\advance\and@\@ne}% \iftagsleft@ \@temptokena{\tabskip\@centering&\Tag@\kern-\displaywidth \rlap@{\@lign \the\hashtoks@ }% \global\advance\and@\@ne\tabskip\displaywidth}\else \@temptokena{\tabskip\@centering&\Tag@\llap@{\@lign \the\hashtoks@ }\global\advance\and@\@ne\tabskip\z@skip}\fi \atcount@#1\relax\advance\atcount@\m@ne \loop\ifnum\atcount@>\z@ \toks@\expandafter{\the\toks@&\hfil$\m@th\displaystyle{\@lign \the\hashtoks@}$\global\advance\and@\@ne \tabskip\z@skip &$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil\ifxat@ \tabskip\@centering\fi\global\advance\and@\@ne}\advance\atcount@\m@ne \repeat \xdef\preamble@{\the\toks@\the\@temptokena}% \xdef\preamble@@{\ifst@rred\noexpand\nonumber\fi\preamble@}% \let\Tag@\TAG@} \def\xxalignat#1{% \ifmmode\nomath@env\DN@{\let\endxxalignat\relax\@gobble}\else$$% \DN@{\@nameuse{xxalignat }#1}\fi \collect@body\next@} \@namedef{xxalignat }#1#2{\inany@true \displaybreak@\intertext@ \displ@y\setbox\savealignat@\hbox{$\m@th\displaystyle\Let@ \xxattag@{#1}% \vbox{\firstchoice@false\halign{\span\preamble@@\crcr#2\crcr}}$}% \Let@\xxattag@{#1}\tabskip\z@skip\halign to\displaywidth\bgroup \span\preamble@@\crcr#2} \expandafter\let\expandafter\endxxalignat\csname endxalignat*\endcsname \def\xxattag@#1{\toks@{\tabskip\z@skip\hfil\strut@ $\m@th\displaystyle{\the\hashtoks@}$&% $\m@th\displaystyle{{}\the\hashtoks@}$\hfil\tabskip\@centering&}% \atcount@#1\relax\advance\atcount@\m@ne\loop\ifnum\atcount@>\z@ \toks@ \expandafter {\the\toks@&\hfil$\m@th\displaystyle{\the\hashtoks@}$% \tabskip\z@skip&$\m@th\displaystyle{{}\the\hashtoks@}$\hfil \tabskip\@centering}\advance\atcount@\m@ne\repeat \xdef\preamble@{\the\toks@\tabskip\z@skip}\xdef\preamble@@{\preamble@}} \newdimen\gwidth@ \newdimen\gmaxwidth@ \def\gmeasure@#1{\gwidth@\z@\gmaxwidth@\z@\setbox\@ne\vbox{\Let@ \firstchoice@false\let\tag\gobble@tag \halign{\setboxz@h{$\m@th\displaystyle{##}$}\global\gwidth@\wdz@ \ifdim\gwidth@>\gmaxwidth@\global\gmaxwidth@\gwidth@\fi &\@gobble{##}\crcr#1\crcr}}} \def\math@cr@@@gather{% \if@eqnsw\global\tag@true\fi \iftag@ \DN@{&\relax \if@eqnsw \tagform@\theequation \stepcounter{equation}% \else\iftag@\df@tag\fi\fi}% \else \expandafter\@gobble\fi \next@ \global\@eqnswtrue\cr} \def\gather{% \ifmmode\nomath@env\DN@{\let\endgather\relax\@gobble}\else $$% \ingather@true\inany@true \stepcounter{equation}% \let\tag\tag@in@align\st@rredfalse \displaybreak@\intertext@ \displ@y \Let@\@seteqlabel\theequation \let\math@cr@@@\math@cr@@@gather \iftagsleft@\DN@{\@nameuse{gather }}\else \DN@{\@nameuse{gather \space}}\fi\fi \collect@body\next@} \@namedef{gather*}{% \ifmmode\nomath@env\DN@{\@namedef{endgather*}{}\@gobble}\else $$% \ingather@true\inany@true \let\tag\tag@in@align\st@rredtrue \displaybreak@\intertext@ \displ@y\Let@ \let\math@cr@@@\math@cr@@@gather \iftagsleft@\DN@{\@nameuse{gather }}\else \DN@{\@nameuse{gather \space}}\fi\fi \collect@body\next@} \newdimen\glineht@ \@namedef{gather \space}#1{% \gmeasure@{#1}% \if@fleqn %%*F \advance\gmaxwidth@\@mathmargin %%*F \fi %%*F \global\dt@ptrue \tabskip\@mathmargin %%*F \halign to\displaywidth\bgroup \ifst@rred\nonumber\else\global\@eqnswtrue\fi \if@fleqn\else\hfil\fi %%*F \strut@ \setboxz@h{\global\tag@false$\m@th\displaystyle{##}$}% \global\gwidth@\wdz@\boxz@ \hfil \tabskip\@centering %%*F &\setboxz@h{\strut@{##}}% \dimen@\displaywidth \advance\dimen@-\gwidth@ \if@fleqn %%*F \advance\dimen@-\@mathmargin %%*F \else %%*F \divide\dimen@\tw@ %%*B \fi %%*F \ifdim\dimen@<\tw@\wdz@ %%* \llap{\vtop{\@movetag\normalbaselines\null\boxz@}}%%*T %%* \else \llap{\boxz@}% %%* \fi \tabskip\z@skip \crcr #1% } \def\endgather{\math@cr \black@\gmaxwidth@\egroup $$\setb@ck\global\@ignoretrue} \@namedef{endgather*}{\math@cr \black@\gmaxwidth@\egroup $$\global\@ignoretrue} \@namedef{gather }#1{% \gmeasure@{#1}% \global\dt@ptrue \if@fleqn %%*F \advance\gmaxwidth@\@mathmargin %%*F \fi %%*F \ifdim\gmaxwidth@>\displaywidth \let\gdisplaywidth@\gmaxwidth@ \else \let\gdisplaywidth@\displaywidth \fi \tabskip\@mathmargin %%*F \halign to\displaywidth\bgroup \ifst@rred\nonumber\else\global\@eqnswtrue\fi \if@fleqn\else\hfil\fi %%*F \strut@ \setboxz@h{\global\tag@false$\m@th\displaystyle{##}$}% \global\gwidth@\wdz@ \global\glineht@\ht\z@ \boxz@ \hfil \tabskip\@centering %%*F &\kern-\gdisplaywidth@ \setboxz@h{\strut@{##}}% \if@fleqn %%*F \dimen@\@mathmargin %%*F \else %%*F \dimen@\displaywidth \advance\dimen@-\gwidth@ \divide\dimen@\tw@ %%*B \fi %%*F \ifdim\dimen@<\tw@\wdz@ %%* \rlap{\vbox{\normalbaselines\boxz@\vbox to\glineht@{}}}% %%* \else \rlap{\boxz@}% %%* \fi \tabskip\gdisplaywidth@ \crcr #1% } \def\split{% \ifinany@\let\next@\insplit@\else \DN@{\PackageError{amstex}{\string\begin{split} is not allowed here. Try the `aligned' environment.}\@ehb}\fi \next@} \def\insplit@{\global\setbox\z@\vbox\bgroup \Let@ \restore@math@cr \default@tag % disallow use of \tag here \ialign\bgroup \hfil\strut@ $\m@th\displaystyle{##}$&$\m@th\displaystyle{{}##}$\hfill\crcr} \def\endsplit{\crcr\egroup\egroup \iftagsleft@\expandafter\lendsplit@\else \expandafter\rendsplit@\fi} \def\rendsplit@{\global\setbox9 \vbox {\unvcopy\z@\global\setbox8 \lastbox\unskip}% \setbox\@ne\hbox{\unhcopy8 \unskip\global\setbox\tw@\lastbox \unskip\global\setbox\thr@@\lastbox}% \global\setbox7 \hbox{\unhbox\tw@\unskip}% \ifinalign@\ifctagsplit@ \gdef\split@{\hbox to\wd\thr@@{}& \vcenter{\vbox{\moveleft\wd\thr@@\boxz@}}}% \else\gdef\split@{&\vbox{\moveleft\wd\thr@@\box9}\crcr \box\thr@@&\box7}\fi \else \ifctagsplit@\gdef\split@{\vcenter{\boxz@}}\else \gdef\split@{\box9\crcr\hbox{\box\thr@@\box7}}\fi \fi \aftergroup\split@} \def\lendsplit@{\global\setbox9\vtop{\unvcopy\z@}% \setbox\@ne\vbox{\unvcopy\z@\global\setbox8\lastbox}% \setbox\@ne\hbox{\unhcopy8\unskip\setbox\tw@\lastbox \unskip\global\setbox\thr@@\lastbox}% \ifinalign@\ifctagsplit@ \gdef\split@{\hbox to\wd\thr@@{}& \vcenter{\vbox{\moveleft\wd\thr@@\box9}}}% \else \gdef\split@{\hbox to\wd\thr@@{}&\vbox{\moveleft\wd\thr@@\box9}}\fi \else \ifctagsplit@\gdef\split@{\vcenter{\box9}}\else \gdef\split@{\box9}\fi \fi\aftergroup\split@} \newdimen\multlinegap \multlinegap10pt \newdimen\multlinetaggap@ \multlinetaggap@10pt \def\multline{% \ifmmode\nomath@env\DN@{\let\endmultline\relax\@gobble}% \else $$\DN@{\collect@body\multline@}\fi \st@rredfalse\@eqnswtrue \@seteqlabel\theequation \stepcounter{equation}\next@} \@namedef{multline*}{% \ifmmode\nomath@env\DN@{\@namedef{endmultline*}{}\@gobble}% \else $$\DN@{\collect@body\multline@}\fi \st@rredtrue\@eqnswfalse \let\@currentlabel\@empty \next@} \def\multline@{\inany@true\displaybreak@ \global\tag@false \def\tag{\ifst@rred\else \global\advance\c@equation\m@ne\fi\tag@in@align}% \iftagsleft@ \expandafter\lmultline@@\else \expandafter\rmultline@@\fi} \newdimen\mwidth@ \def\rmmeasure@#1{% \def\shoveleft##1{##1}\def\shoveright##1{##1}% \setbox\@ne\vbox{\firstchoice@false\Let@\halign{\setboxz@h {$\m@th\@lign\displaystyle{}##$}\global\mwidth@\wdz@ \crcr#1\crcr}}} \newdimen\mlineht@ \newif\ifzerocr@ \newif\ifonecr@ \def\lmmeasure@#1{\global\zerocr@true\global\onecr@false \everycr{\noalign{\ifonecr@\global\onecr@false\fi \ifzerocr@\global\zerocr@false\global\onecr@true\fi}}% \def\shoveleft##1{##1}\def\shoveright##1{##1}% \setbox\@ne\vbox{\Let@\firstchoice@false\halign{\setboxz@h {$\m@th\@lign\displaystyle{}##$}\ifonecr@\global\mwidth@\wdz@ \global\mlineht@\ht\z@\fi\crcr#1\crcr}}} \newbox\mtagbox@ \newdimen\ltwidth@ \newdimen\rtwidth@ \def\lmultline@@#1{% \lmmeasure@{#1}% \setbox\mtagbox@\hbox{% \iftag@ \df@tag \else \if@eqnsw \global\tag@true \tagform@\theequation \fi \fi }% \dimen@\mwidth@ \advance\dimen@\wd\mtagbox@ \advance\dimen@\multlinetaggap@ \if@fleqn %%*F \advance\dimen@\@mathmargin %%*F \fi %%*F \ifdim\dimen@>\displaywidth \ltwidth@\z@ \else \ltwidth@\wd\mtagbox@ \fi \lmultline@@@#1 } \def\lmultline@@@{% \displ@y \def\shoveright##1{##1\hfilneg\hskip\multlinegap}% \if@fleqn %%*F \def\shoveleft##1{##1}% %%*F \else %%*F \def\shoveleft##1{% \setboxz@h{$\m@th\displaystyle{}##1$}% \setbox\@ne\hbox{$\m@th\displaystyle##1$}% \hfilneg \iftag@ \ifdim\ltwidth@>\z@ \hskip\ltwidth@ \hskip\multlinetaggap@ \fi \else \hskip\multlinegap \fi \hskip.5\wd\@ne \hskip-.5\wdz@##1% }% \fi %%*F \if@fleqn %%*F \tabskip\@mathmargin %%*F \else %%*F \tabskip\z@skip %%* \fi %%*F \totwidth@\displaywidth %%*F \if@fleqn %%*F \advance\totwidth@-\@mathmargin %%*F \fi %%*F \halign\bgroup \Let@ \let\tag\gobble@tag \hbox to\totwidth@{% %%*F \strut@$\m@th\displaystyle \if@fleqn %%*F \hskip 0pt plus 1000pt %%*F \else %%*F \hfil \fi %%*F {}##\hfil$% }% \crcr \if@fleqn %%*F \hskip-\@mathmargin %%*F \else %%*F \hfilneg \fi %%*F \iftag@ \ifdim\ltwidth@>\z@ \box\mtagbox@ \hskip\multlinetaggap@ \else \rlap{% \vbox{% \normalbaselines \hbox{\strut@\box\mtagbox@}% \vbox to\mlineht@{}% }% }% \hskip\multlinegap %%* \fi \else \hskip\multlinegap \fi } \def\rmultline@@#1{% \rmmeasure@{#1}% \setbox\mtagbox@\hbox{% \iftag@ \df@tag \else \if@eqnsw \global\tag@true \tagform@\theequation \fi \fi }% \dimen@\mwidth@ \advance\dimen@\wd\mtagbox@ \advance\dimen@\multlinetaggap@ \if@fleqn %%*F \advance\dimen@\@mathmargin %%*F \fi %%*F \ifdim\dimen@>\displaywidth \rtwidth@\z@ \else \rtwidth@\wd\mtagbox@ \fi \rmultline@@@#1 } \def\rmultline@@@{% \displ@y \def\shoveright##1{% ##1% \hfilneg \iftag@ \ifdim\rtwidth@>\z@ \hskip\rtwidth@ \hskip\multlinetaggap@ \fi \else \hskip\multlinegap \fi }% \if@fleqn %%*F \def\shoveleft##1{##1}% %%*F \else %%*F \def\shoveleft##1{% \setboxz@h{$\m@th\displaystyle{}##1$}% \setbox\@ne\hbox{$\m@th\displaystyle##1$}% \hfilneg \hskip\multlinegap \hskip.5\wd\@ne \hskip-.5\wdz@ ##1% }% \fi %%*F \if@fleqn %%*F \tabskip\@mathmargin %%*F \else %%*F \tabskip\z@skip %%* \fi %%*F \totwidth@\displaywidth %%*F \if@fleqn %%*F \advance\totwidth@-\@mathmargin %%*F \fi %%*F \halign\bgroup \Let@ \let\tag\gobble@tag \hbox to\totwidth@{% \strut@$\m@th\displaystyle \if@fleqn %%*F \hskip 0pt plus 1000pt %%*F \else %%*F \hfil \fi %%*F {}##\hfil$% }% \crcr \if@fleqn %%*F \hskip-\@mathmargin %%*F \else %%*F \hfilneg \fi %%*F \hskip\multlinegap } \def\endmultline{\iftagsleft@\expandafter\lendmultline@\else \expandafter\rendmultline@\fi\global\@ignoretrue} \expandafter\let\csname endmultline*\endcsname=\endmultline \def\lendmultline@{\hfilneg\hskip\multlinegap\crcr\egroup$$} \def\rendmultline@{% \iftag@ \ifdim\rtwidth@>\z@ \hskip\multlinetaggap@ \box\mtagbox@ \else \hskip\multlinegap %%* \llap{% \vtop{% \@movetag %%*T \normalbaselines\null\hbox{\strut@\box\mtagbox@}% }% }% \fi \else \hskip\multlinegap \fi \hfilneg \crcr \egroup$$% } \expandafter\def \expandafter\@arrayparboxrestore \expandafter{\@arrayparboxrestore \inany@false\ingather@false\inalign@false \default@tag} \def\equation{\gather\def\\{\PackageError{amstex}{\Invalid@@\\}\@eha}} \def\endequation{\endgather} \newenvironment{equation*}{% \equation }{% \nonumber\endequation } \newcounter{parentequation}% Counter for ``parent equation''. \newenvironment{subequations}{% \refstepcounter{equation}% \begingroup % conservative approach \let\protect\@nx \edef\@tempa{\def\@nx\theparentequation{\theequation}}% \@xp\endgroup\@tempa \setcounter{parentequation}{\value{equation}}% \setcounter{equation}{0}% \def\theequation{\theparentequation\alph{equation}}% \ignorespaces }{% \setcounter{equation}{\value{parentequation}}% \global\@ignoretrue } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\atdef@#1{\expandafter\def\csname\space @\string#1\endcsname} \begingroup \catcode`\@=\active \gdef @{\Iat} \endgroup \DeclareRobustCommand{\Iat}{\FN@\at@} \def\at@{\let\next@\at@@ \ifcat\noexpand\@let@token a\else \ifcat\noexpand\@let@token0\else \ifcat\noexpand\@let@token\relax\else \let\@let@token@\at@@@\fi\fi\fi\next@} \def\at@@#1{\expandafter \@ifundefined{ @\string#1}% {\DN@{\at@@@#1}}% {\DN@{\csname\space @\string#1\endcsname}}% \next@}% \def\at@@@{\PackageError{amstex}{\Invalid@@ @}% {\the\athelp@}% "I'll assume you wanted @@" \char64\relax} \newhelp\athelp@ {Only certain combinations beginning with @ make sense to me.^^J% I'll assume you wanted @@ for a printed @.} \atdef@ @{{\atchar}}% to define @@ \chardef\atchar=64 \def\makeatother{\catcode64=\active} \def\@tempa#1#2#3#4#5#6{% {#1}{#2}\ifnum0#6=0{13}\@xp\@gobblefour \else{#3}\fi\@tempa{#4}{#5}{#6}}% \xdef\@currnamestack{\@xp\@tempa\@currnamestack{}{}{0}} {\def\@makeother{\noexpand\@makeother\noexpand} \xdef\@sanitize{\@sanitize\@makeother\@}} {\def\do{\noexpand\do\noexpand} \xdef\dospecials{\dospecials\do\@}} \atdef@,{\ifmmode\mskip.1\thinmuskip\else \nonmatherr@{@,}\fi} \atdef@!{\RIfM@\mskip-.1\thinmuskip\else \nonmatherr@{@!}\fi} \@ifpackageloaded{amscd}{% }{% \atdef@>#1>#2>{% \global\bigaw@\minaw@ \setboxz@h{$\m@th\scriptstyle\;{#1}\;\;$}% \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;{#2}\;\;$}% \ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}% \mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}% \limits^{#1}\@ifnotempty{#2}{_{#2}}}% }% end of @>>> \atdef@<#1<#2<{% \global\bigaw@\minaw@ \setboxz@h{$\m@th\scriptstyle\;\;{#1}\;$}% \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;\;{#2}\;$}% \ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}% \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}% \limits^{#1}\@ifnotempty{#2}{_{#2}}}% }% end of @<<< }% end of @ifpackageloaded \@ifundefined{minaw@}{\newdimen\minaw@}{} \minaw@11.111pt \@ifundefined{bigaw@}{\newdimen\bigaw@}{} \atdef@-{\let\next-%% \DN@{\ifx\next-%% \def\next-{\setbox\z@\hbox{-}\unhbox\z@\FN@\next@}%% \expandafter\next \else\nobreak\fi}%% \next@-}%% \def\leftroot{\PackageError{amstex}{\Invalid@@\leftroot}\@eha} \def\uproot{\PackageError{amstex}{\Invalid@@\uproot}\@eha} \newcount\uproot@ \newcount\leftroot@ \def\root{\relaxnext@ \DN@{\ifx\@let@token\uproot\let\next@\nextii@\else \ifx\@let@token\leftroot\let\next@\nextiii@\else \let\next@\plainroot@\fi\fi\next@}% \def\nextii@\uproot##1{\uproot@##1\relax\FN@\nextiv@}% \def\nextiv@{\ifx\@let@token\@sptoken\DN@. {\FN@\nextv@}\else \DN@.{\FN@\nextv@}\fi\next@.}% \def\nextv@{\ifx\@let@token\leftroot\let\next@\nextvi@\else \let\next@\plainroot@\fi\next@}% \def\nextvi@\leftroot##1{\leftroot@##1\relax\plainroot@}% \def\nextiii@\leftroot##1{\leftroot@##1\relax\FN@\nextvii@}% \def\nextvii@{\ifx\@let@token\@sptoken \DN@. {\FN@\nextviii@}\else \DN@.{\FN@\nextviii@}\fi\next@.}% \def\nextviii@{\ifx\@let@token\uproot\let\next@\nextix@\else \let\next@\plainroot@\fi\next@}% \def\nextix@\uproot##1{\uproot@##1\relax\plainroot@}% \bgroup\uproot@\z@\leftroot@\z@\FN@\next@} \def\plainroot@#1\of#2{\setbox\rootbox\hbox{% $\m@th\scriptscriptstyle{#1}$}% \mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}} {\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup} \def\r@@t#1#2{\setboxz@h{$\m@th#1\@@sqrt{#2}$}% \dimen@\ht\z@\advance\dimen@-\dp\z@ \setbox\@ne\hbox{$\m@th#1\mskip\uproot@ mu$}% \advance\dimen@ by1.667\wd\@ne \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu\mkern\leftroot@ mu\boxz@} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Fragment from old amsfonts.sty to deal with msam, msbm, eufm fonts; %% omit if `noamsfonts' option was specified. \ifx F\@amsfonts \endinput \fi \DeclareSymbolFont{AMSa}{U}{msa}{m}{n} \DeclareSymbolFont{AMSb}{U}{msb}{m}{n} \ifx P\@amsfonts \DeclareFontFamily{U}{msa}{}% \DeclareFontShape{U}{msa}{m}{n}{<-6>msam5<6-8>msam7<8->msam10}{}% \DeclareFontFamily{U}{msb}{}% \DeclareFontShape{U}{msb}{m}{n}{<-6>msbm5<6-8>msbm7<8->msbm10}{}% \DeclareFontFamily{U}{euf}{}% \DeclareFontShape{U}{euf}{m}{n}{<-6>eufm5<6-8>eufm7<8->eufm10}{}% \DeclareFontShape{U}{euf}{b}{n}{<-6>eufb5<6-8>eufb7<8->eufb10}{}% \fi \@ifundefined{yen}{% \edef\yen{\noexpand\mathhexbox{\hexnumber@\symAMSa}55} }{} \@ifundefined{checkmark}{% \edef\checkmark{\noexpand\mathhexbox{\hexnumber@\symAMSa}58} }{} \@ifundefined{circledR}{% \edef\circledR{\noexpand\mathhexbox{\hexnumber@\symAMSa}72} }{} \@ifundefined{maltese}{% \edef\maltese{\noexpand\mathhexbox{\hexnumber@\symAMSa}7A} }{} \begingroup \catcode`\"=12 \DeclareMathDelimiter\ulcorner{\mathopen} {AMSa}{"70}{AMSa}{"70} \DeclareMathDelimiter\urcorner{\mathclose}{AMSa}{"71}{AMSa}{"71} \DeclareMathDelimiter\llcorner{\mathopen} {AMSa}{"78}{AMSa}{"78} \DeclareMathDelimiter\lrcorner{\mathclose}{AMSa}{"79}{AMSa}{"79} \xdef\widehat#1{\noexpand\@mathmeasure\z@\textstyle{#1}% \noexpand\ifdim\noexpand\wdz@>\tw@ em% \mathaccent"0\hexnumber@\symAMSb 5B{#1}% \noexpand\else\mathaccent"0362{#1}\noexpand\fi} \xdef\widetilde#1{\noexpand\@mathmeasure\z@\textstyle{#1}% \noexpand\ifdim\noexpand\wdz@>\tw@ em% \mathaccent"0\hexnumber@\symAMSb 5D{#1}% \noexpand\else\mathaccent"0365{#1}\noexpand\fi} \DeclareMathSymbol\dabar@{\mathord}{AMSa}{"39} \xdef\dashrightarrow{\mathrel{\dabar@\dabar@ \mathchar"0\hexnumber@\symAMSa 4B}}% \xdef\dashleftarrow{\mathrel{\mathchar"0\hexnumber@\symAMSa 4C\dabar@ \dabar@}}% \global\let\dasharrow\dashrightarrow \global\let\rightleftharpoons\undefined \DeclareMathSymbol\rightleftharpoons{\mathrel}{AMSa}{"0A} \global\let\angle\undefined \DeclareMathSymbol\angle {\mathord}{AMSa}{"5C} \global\let\hbar\undefined \DeclareMathSymbol\hbar {\mathord}{AMSb}{"7E} \global\let\sqsubset\undefined \DeclareMathSymbol\sqsubset {\mathrel}{AMSa}{"40} \global\let\sqsupset\undefined \DeclareMathSymbol\sqsupset {\mathrel}{AMSa}{"41} \global\let\mho\undefined \DeclareMathSymbol\mho {\mathord}{AMSb}{"66} \DeclareMathSymbol\square {\mathord}{AMSa}{"03} \DeclareMathSymbol\lozenge {\mathord}{AMSa}{"06} \DeclareMathSymbol\vartriangleright {\mathrel}{AMSa}{"42} \DeclareMathSymbol\vartriangleleft {\mathrel}{AMSa}{"43} \DeclareMathSymbol\trianglerighteq {\mathrel}{AMSa}{"44} \DeclareMathSymbol\trianglelefteq {\mathrel}{AMSa}{"45} \DeclareMathSymbol\rightsquigarrow {\mathrel}{AMSa}{"20} \def\@tempa{\not@base\lhd} \ifx\lhd\@tempa \global\let\lhd\vartriangleleft \global\let\unlhd\trianglelefteq \global\let\rhd\vartriangleright \global\let\unrhd\trianglerighteq \global\let\Box\square \global\let\Diamond\lozenge \global\let\leadsto\rightsquigarrow \xdef\Join{\mathrel{\mathchar"0\hexnumber@\symAMSb 6F\mkern-13.8mu% \mathchar"0\hexnumber@\symAMSb 6E}} \fi \endgroup \DeclareMathAlphabet\mathfrak{U}{euf}{m}{n} \SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n} \DeclareSymbolFontAlphabet{\mathbb}{AMSb} \DeclareFontEncodingDefaults{\relax}{\def\accentclass@{7}} \def\frak{\mathfrak} \def\Bbb{\mathbb} \def\bold{\mathbf} \begingroup \catcode`\"=12 \relax \gdef\newsymbol#1#2#3#4#5{% \@ifdefinable#1{% \edef\next@ {\ifcase #2 \or \hexnumber@\symAMSa\or \hexnumber@\symAMSb\fi}% \ifx\next@\@empty \PackageError{amsfonts}{\Invalid@@\newsymbol}\@ehd% \else \global\mathchardef#1"#3\next@#4#5 \fi}} \endgroup %% Some odds and ends \def\sphat{^{\mathchoice{}{}% {\,\,\smash[b]{\hbox{\lower4\ex@\hbox{$\m@th\widehat{\null}$}}}}% {\,\smash[b]{\hbox{\lower3\ex@\hbox{$\m@th\hat{\null}$}}}}}} \def\spcheck{^\vee} \def\sptilde{^\sim} \def\spdot{^{\hbox{\raise\ex@\hbox{\normalfont .}}}} \def\spddot{^{\hbox{\raise\ex@\hbox{\normalfont ..}}}} \def\spdddot{^{\hbox{\raise\ex@\hbox{\normalfont...}}}} \def\spbreve{^{\!\smash[b]{\hbox{\lower4\ex@\hbox{\u{}}}}}} \def\fracwithdelims#1#2{\new@ifnextchar[{\fracwithdelims@#1#2}% {\fracwithdelims@#1#2[\@empty]}} \def\fracwithdelims@#1#2[#3]#4#5{\relax \ifx\@empty#3{#4\overwithdelims#1#2#5}\else {#4\abovewithdelims#1#2#3\relax#5}\fi} \def\accentedsymbol#1#2{% \expandafter\newbox \csname\expandafter\@gobble\string#1@box\endcsname \expandafter\setbox \csname\expandafter\@gobble\string#1@box\endcsname \hbox{$\m@th#2$}% \newcommand{#1}{% \expandafter\copy \csname\expandafter\@gobble\string#1@box\endcsname{}}% } \def~{\nobreakspace} \DeclareRobustCommand{\nobreakspace}{\unskip\nobreak\ \ignorespaces} %% %% End of file `amstex.sty'.