%
% \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'.
