Skip to main content
All modules

TemplateJournals

AMS Article (amsart)

American Mathematical Society's article class. De-facto standard for pure mathematics journals (Proc. AMS, Trans. AMS, J. AMS, Annals, Inventiones, Duke MJ, ...).

Loading PDF preview…

What’s inside

  • Starter files
  • main.tex1.1 KB
    \documentclass{amsart}
    
    \usepackage{amsmath,amssymb,amsthm,amsfonts}
    \usepackage{graphicx}
    \usepackage{hyperref}
    
    \theoremstyle{plain}
    \newtheorem{theorem}{Theorem}[section]
    \newtheorem{lemma}[theorem]{Lemma}
    \newtheorem{proposition}[theorem]{Proposition}
    \newtheorem{corollary}[theorem]{Corollary}
    
    \theoremstyle{definition}
    \newtheorem{definition}[theorem]{Definition}
    \newtheorem{example}[theorem]{Example}
    
    \theoremstyle{remark}
    \newtheorem{remark}[theorem]{Remark}
    
    \title{Your Paper Title Here}
    
    \author{First Author}
    \address{First Affiliation}
    \email{first@example.com}
    
    \author{Second Author}
    \address{Second Affiliation}
    \email{second@example.com}
    
    \date{\today}
    
    \subjclass[2020]{Primary 00X00; Secondary 00X00}
    \keywords{keyword1, keyword2}
    
    \begin{document}
    
    \begin{abstract}
    Your abstract here.
    \end{abstract}
    
    \maketitle
    
    \section{Introduction}
    
    \section{Preliminaries}
    
    \begin{definition}
    A definition.
    \end{definition}
    
    \section{Main Result}
    
    \begin{theorem}
    The main theorem.
    \end{theorem}
    
    \begin{proof}
    Proof.
    \end{proof}
    
    \bibliographystyle{amsplain}
    \bibliography{references}
    
    \end{document}
    
  • Libraries and docs
  • amsart.cls60 KBVendored from mirrors.ctan.org on 2026-05-26.
    %%
    %% This is file `amsart.cls',
    %% generated with the docstrip utility.
    %%
    %% The original source files were:
    %%
    %% amsclass.dtx  (with options: `amsart,classes')
    %% This is a generated file.
    %% 
    %% Copyright 1995, 1999, 2004, 2009-2020 American Mathematical Society.
    %% 
    %% American Mathematical Society
    %% Technical Support
    %% Publications Technical Group
    %% 201 Charles Street
    %% Providence, RI 02904
    %% USA
    %% tel: (401) 455-4080
    %%      (800) 321-4267 (USA and Canada only)
    %% fax: (401) 331-3842
    %% email: tech-support@ams.org
    %% 
    %% 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
    %%   http://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 American Mathematical
    %% Society.
    %% 
    %% ========================================================================
    %% 
    \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
    [1995/06/01]% LaTeX date must be June 1995 or later
    \ProvidesClass{amsart}[2020/05/29 v2.20.6]
    \global\expandafter\let\csname ver@amsthm.sty\expandafter\endcsname
      \csname ver@\@currname.\@currext\endcsname
    \let\@xp=\expandafter
    \let\@nx=\noexpand
    \def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}}
    \long\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\setboxz@h{\setbox\z@\hbox}
    \def\@addpunct#1{%
      \relax\ifhmode
        \ifnum\spacefactor>\@m \else#1\fi
      \fi}
    \def\nopunct{\spacefactor 1007 }
    \def\frenchspacing{\sfcode`\.1006\sfcode`\?1005\sfcode`\!1004%
      \sfcode`\:1003\sfcode`\;1002\sfcode`\,1001 }
    \def\@tempa#1#2\@nil{\edef\@classname{#1}}
    \expandafter\@tempa\@currnamestack{}{}{}\@nil
    \ifx\@classname\@empty \edef\@classname{\@currname}\fi
    \def\@True{00}
    \def\@False{01}
    \newcommand\newswitch[2][False]{%
      \expandafter\@ifdefinable\csname ?@#2\endcsname{%
        \global\expandafter\let\csname ?@#2\expandafter\endcsname
          \csname @#1\endcsname
      }%
    }
    \newcommand{\setFalse}[1]{%
      \expandafter\let\csname ?@#1\endcsname\@False
    }
    \newcommand{\setTrue}[1]{%
      \expandafter\let\csname ?@#1\endcsname\@True
    }
    \newswitch{}
    \DeclareRobustCommand{\except}[1]{%
      \if\csname ?@#1\endcsname \expandafter\@gobble
      \else \expandafter\@firstofone
      \fi
    }
    \DeclareRobustCommand{\for}[1]{%
      \if\csname ?@#1\endcsname \expandafter\@firstofone
      \else \expandafter\@gobble
      \fi
    }
    \DeclareRobustCommand{\forany}[1]{%
      \csname for@any@01\endcsname#1,?,\@nil
    }
    \@namedef{for@any@\@False}#1,{%
      \csname for@any@%
        \csname ?@\zap@space#1 \@empty\endcsname
      \endcsname
    }
    \@namedef{?@?}{x}
    \@namedef{for@any@\@True}#1\@nil#2{#2}
    \def\for@any@x{\@car\@gobble}
    \DeclareOption{a4paper}{\paperheight 297mm\paperwidth 210mm
      \textheight 54.5pc }
    \DeclareOption{letterpaper}{\paperheight 11in\paperwidth 8.5in }
    \DeclareOption{landscape}{\@tempdima\paperheight
      \paperheight\paperwidth \paperwidth\@tempdima}
    \DeclareOption{portrait}{}
    \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
    \DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}
    \DeclareOption{draft}{\overfullrule5\p@
      \ClassWarningNoLine{\@classname}{%
        When the draft option is used, the
          \protect\includegraphics\MessageBreak
        command will print blank placeholder boxes\MessageBreak
        for the graphics}%
    }
    \DeclareOption{final}{\overfullrule\z@ }
    \def\dateposted#1{\def\@dateposted{#1}}%
    \let\@dateposted\@empty
    \def\@setdateposted{%
      \newline Article electronically published on \@dateposted}
    \def\article@logo{%
      \set@logo{%
        \publname
        \ifx\@empty\currentvolume
        \else \newline\volinfo, \pageinfo
        \fi
        \newline \@PII
        \ifx\@empty\@dateposted \else \@setdateposted\fi
      }%
    }
    \def\eonly@logo{%
      \set@logo{%
        \publname
        \newline\volinfo, \pageinfo
        \ifx\@empty\@dateposted \else \@setdateposted\fi
        \newline \@PII
      }%
    }
    \def\@logofont{\fontsize{6}{7\p@}\selectfont}
    \long\def\set@logo#1{%
      \vbox to\headheight{%
        \@parboxrestore \@logofont
        \noindent#1\par\vss
      }%
    }
    \DeclareOption{e-only}{%
      \def\volinfo{Volume \currentvolume}%
      \dateposted{Xxxx XX, XXXX}%
      \def\@setdateposted{\ (\@dateposted)}%
      \let\article@logo\eonly@logo
    }
    \newif\if@titlepage
    \DeclareOption{titlepage}{\@titlepagetrue}
    \DeclareOption{notitlepage}{\@titlepagefalse}
    \DeclareOption{onecolumn}{\@twocolumnfalse}
    \DeclareOption{twocolumn}{\@twocolumntrue}
    \DeclareOption{nomath}{}
    \DeclareOption{noamsfonts}{}
    \DeclareOption{psamsfonts}{%
      \PassOptionsToPackage{psamsfonts}{amsfonts}%
      \PassOptionsToPackage{cmex10}{amsmath}}
    \newif\iftagsleft@
    \DeclareOption{leqno}{%
      \tagsleft@true \PassOptionsToPackage{leqno}{amsmath}}
    \DeclareOption{reqno}{%
      \tagsleft@false \PassOptionsToPackage{reqno}{amsmath}}
    \newif\ifctagsplit@
    \DeclareOption{centertags}{%
      \ctagsplit@true \PassOptionsToPackage{centertags}{amsmath}}
    \DeclareOption{tbtags}{%
      \ctagsplit@false \PassOptionsToPackage{tbtags}{amsmath}}
    \DeclareOption{fleqn}{}%
    \newcommand{\@mainsize}{10}
    \newcommand{\@ptsize}{0}
    \newcommand{\larger}[1][1]{%
      \count@\@currsizeindex \advance\count@#1\relax
      \ifnum\count@<\z@ \count@\z@ \else\ifnum\count@>12 \count@12 \fi\fi
      \ifcase\count@
        \Tiny\or\Tiny\or\tiny\or\SMALL\or\Small\or\small
        \or\normalsize
        \or\large\or\Large\or\LARGE\or\huge\or\Huge\else\Huge
      \fi
    }
    \newcommand{\smaller}[1][1]{\larger[-#1]}
    \def\@adjustvertspacing{%
      \bigskipamount.7\baselineskip plus.7\baselineskip
      \medskipamount\bigskipamount \divide\medskipamount\tw@
      \smallskipamount\medskipamount \divide\smallskipamount\tw@
      \abovedisplayskip\medskipamount
      \belowdisplayskip \abovedisplayskip
      \abovedisplayshortskip\abovedisplayskip
      \advance\abovedisplayshortskip-1\abovedisplayskip
      \belowdisplayshortskip\abovedisplayshortskip
      \advance\belowdisplayshortskip 1\smallskipamount
      \jot\baselineskip \divide\jot 4 \relax
    }
    \renewcommand\normalsize{\@xsetfontsize\normalsize 6%
      \@adjustvertspacing \let\@listi\@listI}
    \DeclareRobustCommand{\Tiny}{\@xsetfontsize\Tiny 1}
    \DeclareRobustCommand{\tiny}{\@xsetfontsize\tiny 2}
    \DeclareRobustCommand{\SMALL}{\@xsetfontsize\SMALL 3}
    \DeclareRobustCommand{\Small}{\@xsetfontsize\Small 4%
      \@adjustvertspacing
      \def\@listi{\topsep\smallskipamount \parsep\z@skip \itemsep\z@skip
        \leftmargin=\leftmargini
        \labelwidth=\leftmargini \advance\labelwidth-\labelsep
      }%
    }
    \DeclareRobustCommand{\small}{\@xsetfontsize\small 5\@adjustvertspacing}
    \def\footnotesize{\Small}
    \def\scriptsize{\SMALL}
    \DeclareRobustCommand{\large}{\@xsetfontsize\large 7\@adjustvertspacing}
    \DeclareRobustCommand{\Large}{\@xsetfontsize\Large 8\@adjustvertspacing}
    \DeclareRobustCommand{\LARGE}{\@xsetfontsize\LARGE 9}
    \DeclareRobustCommand{\huge}{\@xsetfontsize\huge{10}}
    \DeclareRobustCommand{\Huge}{\@xsetfontsize\Huge{11}}
    \def\@xsetfontsize#1#2{%
      \chardef\@currsizeindex#2\relax
      \edef\@tempa{\@nx\@setfontsize\@nx#1%
        \@xp\ifcase\@xp\@currsizeindex\@typesizes
          \else{99}{99}\fi}%
      \@tempa
    }
    \chardef\@currsizeindex=6
    \widowpenalty=10000
    \clubpenalty=10000
    \brokenpenalty=10000
    \newdimen\linespacing
    \lineskip=1pt \lineskiplimit=1pt
    \normallineskip=1pt \normallineskiplimit=1pt
    \let\baselinestretch=\@empty
    \headheight=8pt \headsep=14pt
    \footskip=12pt
    \textheight=50.5pc \topskip=10pt
    \textwidth=30pc
    \columnsep=10pt \columnseprule=0pt
    \marginparwidth=90pt
    \marginparsep=11pt
    \marginparpush=5pt
    \AtBeginDocument{\settoheight{\footnotesep}{\footnotesize M$^1$}}
    \skip\footins=7pt plus11pt
    \skip\@mpfootins=\skip\footins
    \fboxsep=3pt \fboxrule=.4pt
    \arrayrulewidth=.4pt    \doublerulesep=2pt
    \labelsep=5pt           \arraycolsep=\labelsep
    \tabcolsep=\labelsep    \tabbingsep=\labelsep
    \floatsep=15pt plus 12pt    \dblfloatsep=15pt plus 12pt
    \textfloatsep=\floatsep  \dbltextfloatsep=15pt plus 12pt
    \intextsep=\floatsep
    \@fptop=0pt plus1fil     \@dblfptop=0pt plus1fil
    \@fpbot=0pt plus1fil     \@dblfpbot=0pt plus1fil
    \@fpsep=8pt plus2fil     \@dblfpsep=8pt plus2fil\relax
    \parskip=0pt \relax
    \newdimen\normalparindent
    \normalparindent=12pt
    \parindent=\normalparindent
    \partopsep=0pt \relax \parsep=0pt \relax \itemsep=0pt \relax
    \@lowpenalty=51         \@medpenalty=151        \@highpenalty=301
    \@beginparpenalty=-\@lowpenalty
    \@endparpenalty=-\@lowpenalty
    \@itempenalty=-\@lowpenalty
    \DeclareOption{10pt}{\def\@mainsize{10}\def\@ptsize{0}%
      \def\@typesizes{%
        \or{5}{6}\or{6}{7}\or{7}{8}\or{8}{10}\or{9}{11}%
        \or{10}{12}% normalsize
        \or{\@xipt}{13}\or{\@xiipt}{14}\or{\@xivpt}{17}%
        \or{\@xviipt}{20}\or{\@xxpt}{24}}%
      \normalsize \linespacing=\baselineskip
    }
    \DeclareOption{11pt}{\def\@mainsize{11}\def\@ptsize{1}%
      \def\@typesizes{%
        \or{6}{7}\or{7}{8}\or{8}{10}\or{9}{11}\or{10}{12}%
        \or{\@xipt}{13}% normalsize
        \or{\@xiipt}{14}\or{\@xivpt}{17}\or{\@xviipt}{20}%
        \or{\@xxpt}{24}\or{\@xxvpt}{30}}%
      \normalsize \linespacing=\baselineskip
    }
    \DeclareOption{12pt}{\def\@mainsize{12}\def\@ptsize{2}%
      \def\@typesizes{%
        \or{7}{8}\or{8}{10}\or{9}{11}\or{10}{12}\or{\@xipt}{13}%
        \or{\@xiipt}{14}% normalsize
        \or{\@xivpt}{17}\or{\@xviipt}{20}\or{\@xxpt}{24}%
        \or{\@xxvpt}{30}\or{\@xxvpt}{30}}%
      \normalsize \linespacing=\baselineskip
    }
    \DeclareOption{8pt}{\def\@mainsize{8}\def\@ptsize{8}%
      \def\@typesizes{%
        \or{5}{6}\or{5}{6}\or{5}{6}\or{6}{7}\or{7}{8}%
        \or{8}{10}% normalsize
        \or{9}{11}\or{10}{12}\or{\@xipt}{13}%
        \or{\@xiipt}{14}\or{\@xivpt}{17}}%
      \normalsize \linespacing=\baselineskip
    }
    \DeclareOption{9pt}{\def\@mainsize{9}\def\@ptsize{9}%
      \def\@typesizes{%
        \or{5}{6}\or{5}{6}\or{6}{7}\or{7}{8}\or{8}{10}%
        \or{9}{11}% normalsize
        \or{10}{12}\or{\@xipt}{13}\or{\@xiipt}{14}%
        \or{\@xivpt}{17}\or{\@xviipt}{20}}%
      \normalsize \linespacing=\baselineskip
    }
    \def\ps@empty{\let\@mkboth\@gobbletwo
      \let\@oddhead\@empty \let\@evenhead\@empty
      \let\@oddfoot\@empty \let\@evenfoot\@empty
      \global\topskip\normaltopskip}
    \def\ps@plain{\ps@empty
      \def\@oddfoot{\normalfont\scriptsize \hfil\thepage\hfil}%
      \let\@evenfoot\@oddfoot}
    \newswitch{runhead}
    \def\ps@headings{\ps@empty
      \def\@evenhead{%
        \setTrue{runhead}%
        \normalfont\scriptsize
        \rlap{\thepage}\hfil
        \def\thanks{\protect\thanks@warning}%
        \leftmark{}{}\hfil}%
      \def\@oddhead{%
        \setTrue{runhead}%
        \normalfont\scriptsize \hfil
        \def\thanks{\protect\thanks@warning}%
        \rightmark{}{}\hfil \llap{\thepage}}%
      \let\@mkboth\markboth
    }
    \let\sectionname\@empty
    \let\subsectionname\@empty
    \let\subsubsectionname\@empty
    \let\paragraphname\@empty
    \let\subparagraphname\@empty
    \def\leftmark{\expandafter\@firstoftwo\topmark{}{}}
    \def\rightmark{\expandafter\@secondoftwo\botmark{}{}}
    \def\ps@firstpage{\ps@plain
      \def\@oddfoot{\normalfont\scriptsize \hfil\thepage\hfil
         \global\topskip\normaltopskip}%
      \let\@evenfoot\@oddfoot
      \def\@oddhead{\@serieslogo\hss}%
      \let\@evenhead\@oddhead % in case an article starts on a left-hand page
    }
    \long\def\@nilgobble#1\@nil{}
    \def\markboth#1#2{%
      \begingroup
        \@temptokena{{#1}{#2}}\xdef\@themark{\the\@temptokena}%
        \mark{\the\@temptokena}%
      \endgroup
      \if@nobreak\ifvmode\nobreak\fi\fi}
    \def\ps@myheadings{\ps@headings \let\@mkboth\@gobbletwo}
    \newskip\normaltopskip
    \normaltopskip=10pt \relax
    \let\sectionmark\@gobble
    \let\subsectionmark\@gobble
    \let\subsubsectionmark\@gobble
    \let\paragraphmark\@gobble
    
    \DeclareOption{makeidx}{}
    \ExecuteOptions{leqno,centertags,letterpaper,portrait,%
      10pt,twoside,onecolumn,final}
    \ProcessOptions\relax
    \if@compatibility
      \def\@tempa{\RequirePackage{amstex}\relax}%
    \else
      \@ifclasswith{\@classname}{nomath}{%
        \let\@tempa\relax
      }{%
        \def\@tempa{\RequirePackage{amsmath}\relax}%
      }%
    \fi
    \@tempa % load amstex.sty or amsmath.sty
    \@ifundefined{numberwithin}{%
      \newcommand{\numberwithin}[3][\arabic]{%
        \@ifundefined{c@#2}{\@nocounterr{#2}}{%
          \@ifundefined{c@#3}{\@nocnterr{#3}}{%
            \@addtoreset{#2}{#3}%
            \@xp\xdef\csname the#2\endcsname{%
              \@xp\@nx\csname the#3\endcsname .\@nx#1{#2}}}}%
      }
      \csname newtoks\endcsname\@emptytoks
    }{}
    \if@compatibility
    \else
      \@ifclasswith{\@classname}{noamsfonts}{%
        % amsfonts package is not wanted
      }{%
        % amsfonts package IS wanted; test whether a recent enough version
        % seems to be installed
        \begingroup \fontencoding{U}\fontfamily{msa}\try@load@fontshape\endgroup
        \global\@xp\let\csname U+msa\endcsname\relax % reset
        \@ifundefined{U/msa/m/n}{%
          \ClassError{\@classname}{%
      Package `amsfonts' not installed, or version too old?\MessageBreak
      Unable to get font info for the `msam' fonts in the expected form%
          }{%
      The amsfonts package will not be loaded, to avoid probable\MessageBreak
      incompatibility problems. You can (a) use the `noamsfonts'
          documentclass\MessageBreak
      option next time, or (b) check that the amsfonts package is
          installed\MessageBreak
      correctly, and is not too old to be compatible.%
          }%
        }{%
          \RequirePackage{amsfonts}[1995/01/01]\relax
        }%
      }
    \fi % end yesamsfonts branch
    \let\cleardouble@page\cleardoublepage
    \AtBeginDocument{%
      \ifx\cleardouble@page\cleardoublepage
        \def\cleardoublepage{\clearpage{\pagestyle{empty}\cleardouble@page}}
      \fi
    }
    \newcommand{\uppercasenonmath}[1]{\toks@\@emptytoks
      \@xp\@skipmath\@xp\@empty#1$$%
      \edef#1{{\@nx\protect\@nx\@upprep\the\toks@}}%
    }
    \newcommand{\@upprep}{%
      \spaceskip1.3\fontdimen2\font plus1.3\fontdimen3\font
      \upchars@}
    \newcommand{\upchars@}{%
      \def\ss{SS}\def\i{I}\def\j{J}\def\ae{\AE}\def\oe{\OE}%
      \def\o{\O}\def\aa{\AA}\def\l{\L}\def\Mc{M{\scshape c}}}
    \providecommand{\Mc}{Mc}
    \newcommand{\@skipmath}{}
    \long\def\@skipmath#1$#2${%
      \@xskipmath#1\(\)%
      \@ifnotempty{#2}{\toks@\@xp{\the\toks@$#2$}\@skipmath\@empty}}%
    \newcommand{\@xskipmath}{}
    \long\def\@xskipmath#1\(#2\){%
      \uppercase{\toks@\@xp\@xp\@xp{\@xp\the\@xp\toks@#1}}%
      \@ifnotempty{#2}{\toks@\@xp{\the\toks@\(#2\)}\@xskipmath\@empty}}%
    \def\altucnm#1{%
      \MakeTextUppercase{\toks@{#1}}%
      \edef#1{\the\toks@}%
    }
    \AtBeginDocument{%
      \@ifundefined{MakeTextUppercase}{}{\let\uppercasenonmath\altucnm}%
    }
    \@ifundefined{MakeUppercase}{\let\MakeUppercase\uppercase}{}%
    \newcommand{\today}{%
      \relax\ifcase\month\or
      January\or February\or March\or April\or May\or June\or
      July\or August\or September\or October\or November\or December\fi
      \space\number\day, \number\year}
    \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
    \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
    \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
    \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
    \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
    \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
    \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
    %%\if@compatibility
    %%\else
    %%  \def\@obsolete@fontswitch#1#2#3{%
    %%    \@latex@warning@no@line{%
    %%      Command {\string#1...}\on@line\space is obsolete;\MessageBreak
    %%      the LaTeX2e equivalent is \string#3{...}}%
    %%    \gdef#1{\@fontswitch\relax#3}%
    %%  }
    %%  \DeclareRobustCommand*\cal{%
    %%    \@xp\@obsolete@fontswitch\csname cal \endcsname\relax\mathcal}
    %%  \DeclareRobustCommand*\mit{%
    %%    \@xp\@obsolete@fontswitch\csname mit \endcsname\relax\mathnormal}
    %%\fi
    \renewcommand*{\title}[2][]{\gdef\shorttitle{#1}\gdef\@title{#2}}
    \edef\title{\@nx\@dblarg
      \@xp\@nx\csname\string\title\endcsname}
    \renewcommand{\author}[2][]{%
      \ifx\@empty\authors
        \gdef\authors{#2}%
      \else
        \g@addto@macro\authors{\and#2}%
        \g@addto@macro\addresses{\author{}}%
      \fi
      \@ifnotempty{#1}{%
        \ifx\@empty\shortauthors
          \gdef\shortauthors{#1}%
        \else
          \g@addto@macro\shortauthors{\and#1}%
        \fi
      }%
    }
    \edef\author{\@nx\@dblarg
      \@xp\@nx\csname\string\author\endcsname}
    \let\shortauthors\@empty   \let\authors\@empty
    \newif\ifresetcontrib  \resetcontribfalse
    \newcommand\contrib[2][]{%
      \def\@tempa{#1}%
      \ifx\@empty\@tempa
      \else
        \ifresetcontrib \@xcontribs
        \else \global\resetcontribtrue
        \fi
      \fi
      \ifx\@empty\contribs
        \gdef\contribs{#1 #2}%
      \else
        \g@addto@macro\contribs{\and#1 #2}%
      \fi
      \@wraptoccontribs{#1}{#2}%
    }
    \def\wraptoccontribs#1#2{}
    \def\@xcontribs{%
      \author@andify\contribs
      \ifx\@empty\xcontribs
        \xdef\xcontribs{\contribs}%
      \else
        \xdef\xcontribs{\xcontribs, \contribs}%
      \fi
      \let\contribs\@empty
    }
    \let\contribs\@empty  \let\xcontribs\@empty  \let\toccontribs\@empty
    \let\addresses\@empty      \let\thankses\@empty
    \newcommand{\address}[2][]{\g@addto@macro\addresses{\address{#1}{#2}}}
    \newcommand{\curraddr}[2][]{\g@addto@macro\addresses{\curraddr{#1}{#2}}}
    \newcommand{\email}[2][]{\g@addto@macro\addresses{\email{#1}{#2}}}
    \newcommand{\urladdr}[2][]{\g@addto@macro\addresses{\urladdr{#1}{#2}}}
    \long\def\thanks@warning#1{%
      \ClassError{\@classname}{%
        \protect\thanks\space should be given separately, not inside author name.%
      }\@ehb
    }
    \renewcommand{\thanks}[1]{%
      \@ifnotempty{#1}{\g@addto@macro\thankses{\thanks{#1}}}%
    }
    \def\enddoc@text{\ifx\@empty\@translators \else\@settranslators\fi
      \ifx\@empty\addresses \else\@setaddresses\fi}
    \AtEndDocument{\enddoc@text}
    \def\curraddrname{{\itshape Current address}}
    \def\emailaddrname{{\itshape Email address}}
    \def\urladdrname{{\itshape URL}}
    \def\@setaddresses{\par
      \nobreak \begingroup
    \footnotesize
      \def\author##1{\nobreak\addvspace\bigskipamount}%
      \def\\{\unskip, \ignorespaces}%
      \interlinepenalty\@M
      \def\address##1##2{\begingroup
        \par\addvspace\bigskipamount\indent
        \@ifnotempty{##1}{(\ignorespaces##1\unskip) }%
        {\scshape\ignorespaces##2}\par\endgroup}%
      \def\curraddr##1##2{\begingroup
        \@ifnotempty{##2}{\nobreak\indent\curraddrname
          \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
          ##2\par}\endgroup}%
      \def\email##1##2{\begingroup
        \@ifnotempty{##2}{\nobreak\indent\emailaddrname
          \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
          \ttfamily##2\par}\endgroup}%
      \def\urladdr##1##2{\begingroup
        \def~{\char`\~}%
        \@ifnotempty{##2}{\nobreak\indent\urladdrname
          \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
          \ttfamily##2\par}\endgroup}%
      \addresses
      \endgroup
    }
    \let\@date\@empty
    \def\dedicatory#1{\def\@dedicatory{#1}}
    \let\@dedicatory=\@empty
    \def\keywords#1{\def\@keywords{#1}}
    \let\@keywords=\@empty
    \newcommand*\subjclass[2][2020]{%
      \def\@subjclass{#2}%
      \@ifundefined{subjclassname@#1}{%
        \ClassWarning{\@classname}{Unknown edition (#1) of Mathematics
          Subject Classification; using '2020'.}%
      }{%
        \@xp\let\@xp\subjclassname\csname subjclassname@#1\endcsname
      }%
    }
    \let\@subjclass=\@empty
    \def\commby#1{\def\@commby{(Communicated by #1)}}
    \let\@commby=\@empty
    \def\translname{Translated by}
    \def\translator#1{%
      \ifx\@empty\@translators \def\@translators{#1}%
      \else\g@addto@macro\@translators{\and#1}\fi}
    \let\@translators=\@empty
    \def\@settranslators{\par\begingroup
      \addvspace{6\p@\@plus9\p@}%
      \hbox to\columnwidth{\hss\normalfont\normalsize
        \translname{ }%
        \andify\@translators \uppercasenonmath\@translators
        \@translators}
      \endgroup
    }
    \newcommand{\xandlist}[4]{\@andlista{{#1}{#2}{#3}}#4\and\and}
    \def\@andlista#1#2\and#3\and{\@andlistc{#2}\@ifnotempty{#3}{%
      \@andlistb#1{#3}}}
    \def\@andlistb#1#2#3#4#5\and{%
      \@ifempty{#5}{%
        \@andlistc{#2#4}%
      }{%
        \@andlistc{#1#4}\@andlistb{#1}{#3}{#3}{#5}%
      }}
    \let\@andlistc\@iden
    \newcommand{\nxandlist}[4]{%
      \def\@andlistc##1{\toks@\@xp{\the\toks@##1}}%
      \toks@{\toks@\@emptytoks \@andlista{{#1}{#2}{#3}}}%
      \the\@xp\toks@#4\and\and
      \edef#4{\the\toks@}%
      \let\@andlistc\@iden}
    \def\@@and{and}
    \newcommand{\andify}{%
      \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip, \@@and~}}
    \def\and{\unskip{ }\@@and{ }\ignorespaces}
    \def\maketitle{\par
      \@topnum\z@ % this prevents figures from falling at the top of page 1
      \@setcopyright
      \thispagestyle{firstpage}% this sets first page specifications
      \uppercasenonmath\shorttitle
      \ifx\@empty\shortauthors \let\shortauthors\shorttitle
      \else \andify\shortauthors
      \fi
      \@maketitle@hook
      \begingroup
      \@maketitle
      \toks@\@xp{\shortauthors}\@temptokena\@xp{\shorttitle}%
      \toks4{\def\\{ \ignorespaces}}% defend against questionable usage
      \edef\@tempa{%
        \@nx\markboth{\the\toks4
          \@nx\MakeUppercase{\the\toks@}}{\the\@temptokena}}%
      \@tempa
      \endgroup
      \c@footnote\z@
      \@cleartopmattertags
    }
    \def\@cleartopmattertags{%
      \def\do##1{\let##1\relax}%
      \do\maketitle \do\@maketitle \do\title \do\@xtitle \do\@title
      \do\author \do\@xauthor \do\address \do\@xaddress
      \do\contrib \do\contribs \do\xcontribs \do\toccontribs
      \do\email \do\@xemail \do\curraddr \do\@xcurraddr
      \do\commby \do\@commby
      \do\dedicatory \do\@dedicatory \do\thanks \do\thankses
      \do\keywords \do\@keywords \do\subjclass \do\@subjclass
    }
    \def\@maketitle@hook{\global\let\@maketitle@hook\@empty}
    \def\@maketitle{%
      \normalfont\normalsize
      \@adminfootnotes
      \@mkboth{\@nx\shortauthors}{\@nx\shorttitle}%
      \global\topskip42\p@\relax % 5.5pc   "   "   "     "     "
      \@settitle
      \ifx\@empty\authors \else \@setauthors \fi
      \ifx\@empty\@dedicatory
      \else
        \baselineskip18\p@
        \vtop{\centering{\footnotesize\itshape\@dedicatory\@@par}%
          \global\dimen@i\prevdepth}\prevdepth\dimen@i
      \fi
      \@setabstract
      \normalsize
      \if@titlepage
        \newpage
      \else
        \dimen@34\p@ \advance\dimen@-\baselineskip
        \vskip\dimen@\relax
      \fi
    } % end \@maketitle
    \def\@adminfootnotes{%
      \let\@makefnmark\relax  \let\@thefnmark\relax
      \ifx\@empty\@date\else \@footnotetext{\@setdate}\fi
      \ifx\@empty\@subjclass\else \@footnotetext{\@setsubjclass}\fi
      \ifx\@empty\@keywords\else \@footnotetext{\@setkeywords}\fi
      \ifx\@empty\thankses\else \@footnotetext{%
        \def\par{\let\par\@par}\@setthanks}%
      \fi
    }
    \AtBeginDocument{%
      \@ifundefined{publname}{%
        \let\publname\@empty
        \let\@serieslogo\@empty
      }{%
        \def\@serieslogo{\article@logo}%
      }%
    }
    \AtBeginDocument{%
      \@ifundefined{volinfo}{%
        \def\volinfo{%
          Volume \currentvolume, Number \number0\currentissue
          \if\@printyear , \currentmonth\ \currentyear\fi
        }%
      }{}%
    }
    \def\@printyear{TF}% boolean false
    \def\issueinfo#1#2#3#4{\def\currentvolume{#1}\def\currentissue{#2}%
      \def\currentmonth{#3}\def\currentyear{#4}}
    \issueinfo{00}% volume number
      {0}%        % issue number
      {Xxxx}%     % month
      {XXXX}%     % year
    \newcommand{\copyrightinfo}[2]{%
      \def\copyrightyear{#1}%
      \@ifnotempty{#2}{\def\copyrightholder{#2}}%
    }
    \copyrightinfo{0000}{(copyright holder)}
    \def\pagespan#1#2{\setcounter{page}{#1}%
      \ifnum\c@page<\z@ \pagenumbering{roman}\setcounter{page}{-#1}\fi
      \def\start@page{#1}\def\end@page{#2}}
    \pagespan{000}{000}
    \AtBeginDocument{%
      \@ifundefined{pageinfo}{%
        \def\pageinfo{%
          \ifnum\start@page=\z@
            Pages 000--000
          \else
            \ifx\start@page\end@page
              Page \start@page
            \else
              Pages \start@page--\end@page
            \fi
          \fi}%
      }{}%
    }
    \@ifundefined{ISSN}{\def\ISSN{0000-0000}}{}
    \newcommand\PII[1]{\def\@PII{#1}}
    \PII{S \ISSN(XX)0000-0}
    \newinsert\copyins
    \skip\copyins=1.5pc
    \count\copyins=1000 % magnification factor, 1000 = 100%
    \dimen\copyins=.5\textheight % maximum allowed per page
    \g@addto@macro\@reinserts{%
      \ifvoid\copyins\else\insert\copyins{\unvbox\copyins}\fi
    }
    \def\@copyinsfontsize{\fontsize{6}{7\p@}\normalfont\upshape}
    \newif\if@extracrline  \@extracrlinefalse
    \let\@extracrline\@empty
    \relax
    \def\@setcopyright{%
      \ifx\@empty\@serieslogo
      \else\ifx\@empty\copyrightyear
      \else
        \insert\copyins{\hsize\textwidth
          \parfillskip\z@\relax
          \leftskip\z@\@plus.9\textwidth\relax \rightskip\z@\relax
          \@copyinsfontsize
          \everypar{}%
          \vskip-\skip\copyins
          \if@extracrline
            \vskip-6pt
          \fi
          \nointerlineskip
          \leavevmode\hfill\vrule\@width\z@\@height\skip\copyins
          \copyright\copyrightyear\ \copyrightholder\ignorespaces
          \if@extracrline \@extracrline \fi
          \par
          \kern\z@}%
      \fi\fi
    }
    \def\@combinefloats{%
      \ifx \@toplist\@empty \else \@cflt \fi
      \ifx \@botlist\@empty \else \@cflb \fi
      \ifvoid\copyins \else \@cflci \fi
    }
    \def\@cflci{%
      \setbox\@outputbox\vbox{%
        \unvbox\@outputbox
        \vskip\skip\copyins
        \if@twocolumn \else \vskip\z@ plus\p@ \fi
        \hbox to\columnwidth{%
          \hss\vbox to\z@{\vss
            \if@twocolumn
              \if@firstcolumn \else \unvbox\copyins \fi
            \else
              \unvbox\copyins
            \fi
            }}}%
      \if@twocolumn \if@firstcolumn
        \insert\copyins{\unvbox\copyins}%
      \fi\fi
      \global\count\copyins=999 \relax
    }
    \newif\if@revertcopyright  \@revertcopyrightfalse
    \newcommand{\revertcopyright}{%
      \global\@revertcopyrighttrue
      \global\@extracrlinetrue}
    \def\@revertcrfontsize{\fontsize{6}{7\p@}\normalfont\upshape}
    \def\@extracrline{%
      \if@revertcopyright
        \unskip\\
        \@revertcrfontsize
        Reverts to public domain 28 years from publication
      \fi
    }
    \newcommand{\abstractname}{Abstract}
    \newcommand{\keywordsname}{Key words and phrases}
    \@namedef{subjclassname@1991}{%
      \textup{1991} Mathematics Subject Classification}
    \@namedef{subjclassname@2000}{%
      \textup{2000} Mathematics Subject Classification}
    \@namedef{subjclassname@2010}{%
      \textup{2010} Mathematics Subject Classification}
    \@namedef{subjclassname@2020}{%
      \textup{2020} Mathematics Subject Classification}
    \@xp\let\@xp\subjclassname\csname subjclassname@2020\endcsname
    \def\@tempb{amsart}
    \ifx\@classname\@tempb
      \newcommand{\datename}{\textit{Date}:}
    \else
      \newcommand{\datename}{Received by the editors}
    \fi
    \def\@settitle{\begin{center}%
      \baselineskip14\p@\relax
        \bfseries
    \uppercasenonmath\@title
      \@title
      \end{center}%
    }
    \def\author@andify{%
      \nxandlist {\unskip ,\penalty-1 \space\ignorespaces}%
        {\unskip {} \@@and~}%
        {\unskip ,\penalty-2 \space \@@and~}%
    }
    \def\@setauthors{%
      \begingroup
      \def\thanks{\protect\thanks@warning}%
      \trivlist
      \centering\footnotesize \@topsep30\p@\relax
      \advance\@topsep by -\baselineskip
      \item\relax
      \author@andify\authors
      \def\\{\protect\linebreak}%
      \MakeUppercase{\authors}%
      \ifx\@empty\contribs
      \else
        ,\penalty-3 \space \@setcontribs
        \@closetoccontribs
      \fi
      \endtrivlist
      \endgroup
    }
    \def\@closetoccontribs{}
    \def\@setcontribs{%
      \@xcontribs
      \MakeUppercase{\xcontribs}%
    }
    \def\@setdate{\datename\ \@date\@addpunct.}
    \def\@setsubjclass{%
      {\itshape\subjclassname.}\enspace\@subjclass\@addpunct.}
    \def\@setkeywords{%
      {\itshape \keywordsname.}\enspace \@keywords\@addpunct.}
    \def\@setthanks{\def\thanks##1{\par##1\@addpunct.}\thankses}
    \newbox\abstractbox
    \newenvironment{abstract}{%
      \ifx\maketitle\relax
        \ClassWarning{\@classname}{Abstract should precede
          \protect\maketitle\space in AMS document classes; reported}%
      \fi
      \global\setbox\abstractbox=\vtop \bgroup
        \normalfont\Small
        \list{}{\labelwidth\z@
          \leftmargin3pc \rightmargin\leftmargin
          \listparindent\normalparindent \itemindent\z@
          \parsep\z@ \@plus\p@
          \let\fullwidthdisplay\relax
        }%
        \item[\hskip\labelsep\scshape\abstractname.]%
    }{%
      \endlist\egroup
      \ifx\@setabstract\relax \@setabstracta \fi
    }
    \def\@setabstract{\@setabstracta \global\let\@setabstract\relax}
    \def\@setabstracta{%
      \ifvoid\abstractbox
      \else
        \skip@20\p@ \advance\skip@-\lastskip
        \advance\skip@-\baselineskip \vskip\skip@
        \box\abstractbox
        \prevdepth\z@ % because \abstractbox is a vtop
      \fi
    }
    \def\titlepage{%
      \clearpage
      \thispagestyle{empty}\setcounter{page}{0}}
    \def\endtitlepage{\newpage}
    \def\labelenumi{(\theenumi)}
    \def\theenumi{\@arabic\c@enumi}
    \def\labelenumii{(\theenumii)}
    \def\theenumii{\@alph\c@enumii}
    \def\p@enumii{\theenumi}
    \def\labelenumiii{(\theenumiii)}
    \def\theenumiii{\@roman\c@enumiii}
    \def\p@enumiii{\theenumi(\theenumii)}
    \def\labelenumiv{(\theenumiv)}
    \def\theenumiv{\@Alph\c@enumiv}
    \def\p@enumiv{\p@enumiii\theenumiii}
    \def\labelitemi{$\m@th\bullet$}
    \def\labelitemii{\bfseries --}% \upshape already done by \itemize
    \def\labelitemiii{$\m@th\ast$}
    \def\labelitemiv{$\m@th\cdot$}
    \newenvironment{verse}{\let\\\@centercr
      \list{}{\itemsep\z@ \itemindent -1.5em\listparindent\itemindent
      \rightmargin\leftmargin \advance\leftmargin 1.5em}\item[]%
    }{%
      \endlist
    }
    \let\endverse=\endlist % for efficiency
    \newenvironment{quotation}{\list{}{%
        \leftmargin3pc \listparindent\normalparindent
        \itemindent\z@
        \rightmargin\leftmargin \parsep\z@ \@plus\p@}%
      \item[]%
    }{%
      \endlist
    }
    \let\endquotation=\endlist % for efficiency
    \newenvironment{quote}{%
      \list{}{\rightmargin\leftmargin}\item[]%
    }{%
      \endlist
    }
    \let\endquote=\endlist % for efficiency
    \def\trivlist{\parsep\parskip\@nmbrlistfalse
      \@trivlist \labelwidth\z@ \leftmargin\z@
      \itemindent\z@
      \let\@itemlabel\@empty
      \def\makelabel##1{\upshape##1}}
    \renewenvironment{enumerate}{%
      \ifnum \@enumdepth >3 \@toodeep\else
          \advance\@enumdepth \@ne
          \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list
          {\csname label\@enumctr\endcsname}{\usecounter
            {\@enumctr}\def\makelabel##1{\hss\llap{\upshape##1}}}\fi
    }{%
      \endlist
    }
    \let\endenumerate=\endlist % for efficiency
    \renewenvironment{itemize}{%
      \ifnum\@itemdepth>3 \@toodeep
      \else \advance\@itemdepth\@ne
        \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
        \list{\csname\@itemitem\endcsname}%
          {\def\makelabel##1{\hss\llap{\upshape##1}}}%
      \fi
    }{%
      \endlist
    }
    \let\enditemize=\endlist % for efficiency
    \newcommand{\descriptionlabel}[1]{\hspace\labelsep \upshape\bfseries #1:}
    \newenvironment{description}{\list{}{%
      \advance\leftmargini6\p@ \itemindent-12\p@
      \labelwidth\z@ \let\makelabel\descriptionlabel}%
    }{
      \endlist
    }
    \let\enddescription=\endlist % for efficiency
    \let\upn=\textup
    \AtBeginDocument{%
      \labelsep=5pt\relax
      \setcounter{enumi}{13}\setcounter{enumii}{13}%
      \setcounter{enumiii}{13}\setcounter{enumiv}{13}%
      \settowidth\leftmargini{\labelenumi\hskip\labelsep}%
      \advance\leftmargini by \normalparindent
      \settowidth\leftmarginii{\labelenumii\hskip\labelsep}%
      \settowidth\leftmarginiii{\labelenumiii\hskip\labelsep}%
      \settowidth\leftmarginiv{\labelenumiv\hskip\labelsep}%
      \setcounter{enumi}{0}\setcounter{enumii}{0}%
      \setcounter{enumiii}{0}\setcounter{enumiv}{0}%
      \leftmarginv=10pt  \leftmarginvi=\leftmarginv
      \leftmargin=\leftmargini
      \labelwidth=\leftmargini \advance\labelwidth-\labelsep
      \@listi}
    \newskip\listisep
    \listisep\smallskipamount
    \def\@listI{\leftmargin\leftmargini \parsep\z@skip
      \topsep\listisep \itemsep\z@skip
      \listparindent\normalparindent}
    \let\@listi\@listI
    \def\@listii{\leftmargin\leftmarginii
      \labelwidth\leftmarginii \advance\labelwidth-\labelsep
      \topsep\z@skip \parsep\z@skip \partopsep\z@skip \itemsep\z@skip}
    \def\@listiii{\leftmargin\leftmarginiii
      \labelwidth\leftmarginiii \advance\labelwidth-\labelsep}
    \def\@listiv{\leftmargin\leftmarginiv
      \labelwidth\leftmarginiv \advance\labelwidth-\labelsep}
    \def\@listv{\leftmargin\leftmarginv
      \labelwidth\leftmarginv \advance\labelwidth-\labelsep}
    \def\@listvi{\leftmargin\leftmarginvi
      \labelwidth\leftmarginvi \advance\labelwidth-\labelsep}
    \@ifclasswith{\@classname}{fleqn}{%
      \let\@tempa\@iden
      \AtBeginDocument{\mathindent\leftmargini}%
    }{\let\@tempa\@gobble}%
    \@ifpackageloaded{amsmath}{\let\@tempa\@gobble}{%
      \@ifpackageloaded{amstex}{\let\@tempa\@gobble}{}%
    }
    \@tempa{%
      \def\[{\relax
        \ifmmode\@badmath
        \else
          \begin{trivlist}%
          \@beginparpenalty\predisplaypenalty
          \@endparpenalty\postdisplaypenalty
          \item[]\leavevmode
          \hbox to\linewidth\bgroup$\displaystyle
          \hskip\mathindent\bgroup
        \fi}%
      \def\]{\relax
        \ifmmode
          \egroup \m@th$\hfil \egroup
          \end{trivlist}%
        \else \@badmath
        \fi}%
      \renewenvironment{equation}{%
        \@beginparpenalty\predisplaypenalty
        \@endparpenalty\postdisplaypenalty
        \refstepcounter{equation}%
        \@topsep\abovedisplayskip \trivlist
        \item[]\leavevmode
        \hbox to\linewidth\bgroup\hskip\mathindent$\displaystyle
      }{%
        \m@th$\hfil \displaywidth\linewidth \hbox{\@eqnnum}\egroup
        \endtrivlist
      }%
      \renewenvironment{eqnarray}{%
        \stepcounter{equation}\let\@currentlabel\theequation
        \global\@eqnswtrue \global\@eqcnt\z@ \tabskip\mathindent
        \let\\=\@eqncr \abovedisplayskip\topsep
        \ifvmode \advance\abovedisplayskip\partopsep \fi
        \belowdisplayskip\abovedisplayskip
        \belowdisplayshortskip\abovedisplayskip
        \abovedisplayshortskip\abovedisplayskip
        $$\everycr{}\halign to\linewidth\bgroup
          \hskip\@centering
          $\displaystyle\tabskip\z@skip####\m@th$&%
          \@eqnsel \global\@eqcnt\@ne
          \hfil${}####{}\m@th$\hfil&%
          \global\@eqcnt\tw@
          $\displaystyle ####\m@th$\hfil\tabskip\@centering&%
          \global\@eqcnt\thr@@
          \hbox to \z@\bgroup\hss####\egroup\tabskip\z@skip\cr
        }{%
          \@@eqncr \egroup \global\advance\c@equation\m@ne$$%
          \global\@ignoretrue
        }%
      \newdimen\mathindent
      \mathindent\leftmargini
    }
    \def\@startsection#1#2#3#4#5#6{%
     \if@noskipsec \leavevmode \fi
     \par \@tempskipa #4\relax
     \@afterindenttrue
     \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi
     \if@nobreak \everypar{}\else
         \addpenalty\@secpenalty\addvspace\@tempskipa\fi
     \@ifstar{\@dblarg{\@sect{#1}{\@m}{#3}{#4}{#5}{#6}}}%
             {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
    }
    \def\@seccntformat#1{%
      \protect\textup{\protect\@secnumfont
        \csname the#1\endcsname
        \protect\@secnumpunct
      }%
    }
    \def\@secnumfont{\mdseries}
    \def\@sect#1#2#3#4#5#6[#7]#8{%
      \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}%
      \ifnum #2>\c@secnumdepth \let\@secnumber\@empty
      \else \@xp\let\@xp\@secnumber\csname the#1\endcsname\fi
      \@tempskipa #5\relax
      \ifnum #2>\c@secnumdepth
        \let\@svsec\@empty
      \else
        \refstepcounter{#1}%
        \edef\@secnumpunct{%
          \ifdim\@tempskipa>\z@ % not a run-in section heading
            \@ifnotempty{#8}{.\@nx\enspace}%
          \else
            \@ifempty{#8}{.}{.\@nx\enspace}%
          \fi
        }%
        \@ifempty{#8}{%
          \ifnum #2=\tw@ \def\@secnumfont{\bfseries}\fi}{}%
        \protected@edef\@svsec{%
          \ifnum#2<\@m
            \@ifundefined{#1name}{}{%
              \ignorespaces\csname #1name\endcsname\space
            }%
          \fi
          \@seccntformat{#1}%
        }%
      \fi
      \ifdim \@tempskipa>\z@ % then this is not a run-in section heading
        \begingroup #6\relax
        \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty\@M #8\par}%
        \endgroup
        \ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi
      \else
      \def\@svsechd{#6\hskip #3\@svsec
        \@ifnotempty{#8}{\ignorespaces#8\unskip
           \@addpunct.}%
        \ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi
      }%
      \fi
      \global\@nobreaktrue
      \@xsect{#5}}
    \let\@ssect\relax
    \newcounter{part}
    \newcounter{section}
    \newcounter{subsection}[section]
    \newcounter{subsubsection}[subsection]
    \newcounter{paragraph}[subsubsection]
    \newcounter{subparagraph}[paragraph]
    \renewcommand\thepart          {\arabic{part}}
    \renewcommand\thesection       {\arabic{section}}
    \renewcommand\thesubsection    {\thesection.\arabic{subsection}}
    \renewcommand\thesubsubsection {\thesubsection .\arabic{subsubsection}}
    \renewcommand\theparagraph     {\thesubsubsection.\arabic{paragraph}}
    \renewcommand\thesubparagraph  {\theparagraph.\arabic{subparagraph}}
    \setcounter{secnumdepth}{3}
    \def\partname{Part}
    \def\part{\@startsection{part}{0}%
      \z@{\linespacing\@plus\linespacing}{.5\linespacing}%
      {\normalfont\bfseries\raggedright}}
    \def\specialsection{\@startsection{section}{1}%
      \z@{\linespacing\@plus\linespacing}{.5\linespacing}%
      {\normalfont\centering}}
    \def\section{\@startsection{section}{1}%
      \z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
      {\normalfont\scshape\centering}}
    \def\subsection{\@startsection{subsection}{2}%
      \z@{.5\linespacing\@plus.7\linespacing}{-.5em}%
      {\normalfont\bfseries}}
    \def\subsubsection{\@startsection{subsubsection}{3}%
      \z@{.5\linespacing\@plus.7\linespacing}{-.5em}%
      {\normalfont\itshape}}
    \def\paragraph{\@startsection{paragraph}{4}%
      \z@\z@{-\fontdimen2\font}%
      \normalfont}
    \def\subparagraph{\@startsection{subparagraph}{5}%
      \z@\z@{-\fontdimen2\font}%
      \normalfont}
    \def\appendix{\par\c@section\z@ \c@subsection\z@
       \let\sectionname\appendixname
       \def\thesection{\@Alph\c@section}}
    \def\appendixname{Appendix}
    \def\@Roman#1{\@xp\@slowromancap
      \romannumeral#1@}%
    \def\@slowromancap#1{\ifx @#1% then terminate
      \else
        \if i#1I\else\if v#1V\else\if x#1X\else\if l#1L\else\if
        c#1C\else\if m#1M\else#1\fi\fi\fi\fi\fi\fi
        \@xp\@slowromancap
      \fi
    }
    \newcommand{\@pnumwidth}{1.6em}
    \newcommand{\@tocrmarg}{2.6em}
    \setcounter{tocdepth}{2}
    \newswitch{toc}
    \newswitch{lof}
    \newswitch{lot}
    \newcommand\contentsnamefont{\scshape}
    \def\@starttoc#1#2{\begingroup
      \setTrue{#1}%
      \par\removelastskip\vskip\z@skip
      \@startsection{}\@M\z@{\linespacing\@plus\linespacing}%
        {.5\linespacing}{\centering\contentsnamefont}{#2}%
      \ifx\contentsname#2%
      \else \addcontentsline{toc}{section}{#2}\fi
      \makeatletter
      \@input{\jobname.#1}%
      \if@filesw
        \@xp\newwrite\csname tf@#1\endcsname
        \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
      \fi
      \global\@nobreakfalse \endgroup
      \addvspace{32\p@\@plus14\p@}%
      \let\tableofcontents\relax
    }
    \def\contentsname{Contents}
    \def\listfigurename{List of Figures}
    \def\listtablename{List of Tables}
    \def\tableofcontents{%
      \@starttoc{toc}\contentsname
    }
    \def\listoffigures{\@starttoc{lof}\listfigurename}
    \def\listoftables{\@starttoc{lot}\listtablename}
    \AtBeginDocument{%
      \@for\@tempa:=-1,0,1,2,3\do{%
        \@ifundefined{r@tocindent\@tempa}{%
          \@xp\gdef\csname r@tocindent\@tempa\endcsname{0pt}}{}%
      }%
    }
    \def\@writetocindents{%
      \begingroup
      \@for\@tempa:=-1,0,1,2,3\do{%
        \immediate\write\@auxout{%
          \string\newlabel{tocindent\@tempa}{%
            \csname r@tocindent\@tempa\endcsname}}%
      }%
      \endgroup}
    \AtEndDocument{\@writetocindents}
    
    \let\indentlabel\@empty
    \def\@tochangmeasure#1{\sbox\z@{#1}%
      \ifdim\wd\z@>\csname r@tocindent\@toclevel\endcsname\relax
        \@xp\xdef\csname r@tocindent\@toclevel\endcsname{\the\wd\z@}%
      \fi
    }
    \def\@toclevel{0}
    \def\@tocline#1#2#3#4#5#6#7{\relax
      \ifnum #1>\c@tocdepth % then omit
      \else
        \par \addpenalty\@secpenalty\addvspace{#2}%
        \begingroup \hyphenpenalty\@M
        \@ifempty{#4}{%
          \@tempdima\csname r@tocindent\number#1\endcsname\relax
        }{%
          \@tempdima#4\relax
        }%
        \parindent\z@ \leftskip#3\relax \advance\leftskip\@tempdima\relax
        \rightskip\@pnumwidth plus4em \parfillskip-\@pnumwidth
        #5\leavevmode\hskip-\@tempdima #6\nobreak\relax
        \hfil\hbox to\@pnumwidth{\@tocpagenum{#7}}\par
        \nobreak
        \endgroup
      \fi}
    \def\@tocpagenum#1{\hss{\mdseries #1}}
    \def\@tocwrite#1{\@xp\@tocwriteb\csname toc#1\endcsname{#1}}
    \def\@tocwriteb#1#2#3{%
      \begingroup
        \def\@tocline##1##2##3##4##5##6{%
          \ifnum##1>\c@tocdepth
          \else \sbox\z@{##5\let\indentlabel\@tochangmeasure##6}\fi}%
        \csname l@#2\endcsname{#1{\csname#2name\endcsname}{\@secnumber}{}}%
      \endgroup
      \addcontentsline{toc}{#2}%
        {\protect#1{\csname#2name\endcsname}{\@secnumber}{#3}}}
    \def\l@section{\@tocline{1}{0pt}{1pc}{}{}}
    \newcommand{\tocsection}[3]{%
      \indentlabel{\@ifnotempty{#2}{\ignorespaces#1 #2.\quad}}#3}
    \def\l@subsection{\@tocline{2}{0pt}{1pc}{5pc}{}}
    \let\tocsubsection\tocsection
    \def\l@subsubsection{\@tocline{3}{0pt}{1pc}{7pc}{}}
    \let\tocsubsubsection\tocsection
    \let\l@paragraph\l@subsubsection
    \let\tocparagraph\tocsection
    \let\l@subparagraph\l@subsubsection
    \let\tocsubparagraph\tocsection
    \def\l@part{\@tocline{-1}{12pt plus2pt}{0pt}{}{\bfseries}}
    \let\tocpart\tocsection
    \def\l@chapter{\@tocline{0}{8pt plus1pt}{0pt}{}{}}
    \let\tocchapter\tocsection
    \newcommand{\tocappendix}[3]{%
      \indentlabel{#1\@ifnotem
  • amsbook.cls60 KBVendored from mirrors.ctan.org on 2026-05-26.
    %%
    %% This is file `amsbook.cls',
    %% generated with the docstrip utility.
    %%
    %% The original source files were:
    %%
    %% amsclass.dtx  (with options: `amsbook,classes')
    %% This is a generated file.
    %% 
    %% Copyright 1995, 1999, 2004, 2009-2020 American Mathematical Society.
    %% 
    %% American Mathematical Society
    %% Technical Support
    %% Publications Technical Group
    %% 201 Charles Street
    %% Providence, RI 02904
    %% USA
    %% tel: (401) 455-4080
    %%      (800) 321-4267 (USA and Canada only)
    %% fax: (401) 331-3842
    %% email: tech-support@ams.org
    %% 
    %% 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
    %%   http://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 American Mathematical
    %% Society.
    %% 
    %% ========================================================================
    %% 
    \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
    [1995/06/01]% LaTeX date must be June 1995 or later
    \ProvidesClass{amsbook}[2020/05/29 v2.20.6]
    \global\expandafter\let\csname ver@amsthm.sty\expandafter\endcsname
      \csname ver@\@currname.\@currext\endcsname
    \let\@xp=\expandafter
    \let\@nx=\noexpand
    \def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}}
    \long\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\setboxz@h{\setbox\z@\hbox}
    \def\@addpunct#1{%
      \relax\ifhmode
        \ifnum\spacefactor>\@m \else#1\fi
      \fi}
    \def\nopunct{\spacefactor 1007 }
    \def\frenchspacing{\sfcode`\.1006\sfcode`\?1005\sfcode`\!1004%
      \sfcode`\:1003\sfcode`\;1002\sfcode`\,1001 }
    \def\@tempa#1#2\@nil{\edef\@classname{#1}}
    \expandafter\@tempa\@currnamestack{}{}{}\@nil
    \ifx\@classname\@empty \edef\@classname{\@currname}\fi
    \def\@True{00}
    \def\@False{01}
    \newcommand\newswitch[2][False]{%
      \expandafter\@ifdefinable\csname ?@#2\endcsname{%
        \global\expandafter\let\csname ?@#2\expandafter\endcsname
          \csname @#1\endcsname
      }%
    }
    \newcommand{\setFalse}[1]{%
      \expandafter\let\csname ?@#1\endcsname\@False
    }
    \newcommand{\setTrue}[1]{%
      \expandafter\let\csname ?@#1\endcsname\@True
    }
    \newswitch{}
    \DeclareRobustCommand{\except}[1]{%
      \if\csname ?@#1\endcsname \expandafter\@gobble
      \else \expandafter\@firstofone
      \fi
    }
    \DeclareRobustCommand{\for}[1]{%
      \if\csname ?@#1\endcsname \expandafter\@firstofone
      \else \expandafter\@gobble
      \fi
    }
    \DeclareRobustCommand{\forany}[1]{%
      \csname for@any@01\endcsname#1,?,\@nil
    }
    \@namedef{for@any@\@False}#1,{%
      \csname for@any@%
        \csname ?@\zap@space#1 \@empty\endcsname
      \endcsname
    }
    \@namedef{?@?}{x}
    \@namedef{for@any@\@True}#1\@nil#2{#2}
    \def\for@any@x{\@car\@gobble}
    \DeclareOption{a4paper}{\paperheight 297mm\paperwidth 210mm
      \textheight 54.5pc }
    \DeclareOption{letterpaper}{\paperheight 11in\paperwidth 8.5in }
    \DeclareOption{landscape}{\@tempdima\paperheight
      \paperheight\paperwidth \paperwidth\@tempdima}
    \DeclareOption{portrait}{}
    \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
    \DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}
    \DeclareOption{draft}{\overfullrule5\p@
      \ClassWarningNoLine{\@classname}{%
        When the draft option is used, the
          \protect\includegraphics\MessageBreak
        command will print blank placeholder boxes\MessageBreak
        for the graphics}%
    }
    \DeclareOption{final}{\overfullrule\z@ }
    \def\dateposted#1{\def\@dateposted{#1}}%
    \let\@dateposted\@empty
    \newif\if@titlepage
    \DeclareOption{titlepage}{\@titlepagetrue}
    \DeclareOption{notitlepage}{\@titlepagefalse}
    \newif\if@openright
    \DeclareOption{openright}{\@openrighttrue}
    \DeclareOption{openany}{\@openrightfalse}
    \@openrighttrue
    \DeclareOption{onecolumn}{\@twocolumnfalse}
    \DeclareOption{twocolumn}{\@twocolumntrue}
    \DeclareOption{nomath}{}
    \DeclareOption{noamsfonts}{}
    \DeclareOption{psamsfonts}{%
      \PassOptionsToPackage{psamsfonts}{amsfonts}%
      \PassOptionsToPackage{cmex10}{amsmath}}
    \newif\iftagsleft@
    \DeclareOption{leqno}{%
      \tagsleft@true \PassOptionsToPackage{leqno}{amsmath}}
    \DeclareOption{reqno}{%
      \tagsleft@false \PassOptionsToPackage{reqno}{amsmath}}
    \newif\ifctagsplit@
    \DeclareOption{centertags}{%
      \ctagsplit@true \PassOptionsToPackage{centertags}{amsmath}}
    \DeclareOption{tbtags}{%
      \ctagsplit@false \PassOptionsToPackage{tbtags}{amsmath}}
    \DeclareOption{fleqn}{}%
    \newcommand{\@mainsize}{10}
    \newcommand{\@ptsize}{0}
    \newcommand{\larger}[1][1]{%
      \count@\@currsizeindex \advance\count@#1\relax
      \ifnum\count@<\z@ \count@\z@ \else\ifnum\count@>12 \count@12 \fi\fi
      \ifcase\count@
        \Tiny\or\Tiny\or\tiny\or\SMALL\or\Small\or\small
        \or\normalsize
        \or\large\or\Large\or\LARGE\or\huge\or\Huge\else\Huge
      \fi
    }
    \newcommand{\smaller}[1][1]{\larger[-#1]}
    \def\@adjustvertspacing{%
      \bigskipamount.7\baselineskip plus.7\baselineskip
      \medskipamount\bigskipamount \divide\medskipamount\tw@
      \smallskipamount\medskipamount \divide\smallskipamount\tw@
      \abovedisplayskip\medskipamount
      \belowdisplayskip \abovedisplayskip
      \abovedisplayshortskip\abovedisplayskip
      \advance\abovedisplayshortskip-1\abovedisplayskip
      \belowdisplayshortskip\abovedisplayshortskip
      \advance\belowdisplayshortskip 1\smallskipamount
      \jot\baselineskip \divide\jot 4 \relax
    }
    \renewcommand\normalsize{\@xsetfontsize\normalsize 6%
      \@adjustvertspacing \let\@listi\@listI}
    \DeclareRobustCommand{\Tiny}{\@xsetfontsize\Tiny 1}
    \DeclareRobustCommand{\tiny}{\@xsetfontsize\tiny 2}
    \DeclareRobustCommand{\SMALL}{\@xsetfontsize\SMALL 3}
    \DeclareRobustCommand{\Small}{\@xsetfontsize\Small 4%
      \@adjustvertspacing
      \def\@listi{\topsep\smallskipamount \parsep\z@skip \itemsep\z@skip
        \leftmargin=\leftmargini
        \labelwidth=\leftmargini \advance\labelwidth-\labelsep
      }%
    }
    \DeclareRobustCommand{\small}{\@xsetfontsize\small 5\@adjustvertspacing}
    \def\footnotesize{\Small}
    \def\scriptsize{\SMALL}
    \DeclareRobustCommand{\large}{\@xsetfontsize\large 7\@adjustvertspacing}
    \DeclareRobustCommand{\Large}{\@xsetfontsize\Large 8\@adjustvertspacing}
    \DeclareRobustCommand{\LARGE}{\@xsetfontsize\LARGE 9}
    \DeclareRobustCommand{\huge}{\@xsetfontsize\huge{10}}
    \DeclareRobustCommand{\Huge}{\@xsetfontsize\Huge{11}}
    \def\@xsetfontsize#1#2{%
      \chardef\@currsizeindex#2\relax
      \edef\@tempa{\@nx\@setfontsize\@nx#1%
        \@xp\ifcase\@xp\@currsizeindex\@typesizes
          \else{99}{99}\fi}%
      \@tempa
    }
    \chardef\@currsizeindex=6
    \widowpenalty=10000
    \clubpenalty=10000
    \brokenpenalty=10000
    \newdimen\linespacing
    \lineskip=1pt \lineskiplimit=1pt
    \normallineskip=1pt \normallineskiplimit=1pt
    \let\baselinestretch=\@empty
    \headheight=8pt \headsep=14pt
    \footskip=18pt
    \textheight=50.5pc \topskip=10pt
    \textwidth=30pc
    \columnsep=10pt \columnseprule=0pt
    \marginparwidth=90pt
    \marginparsep=11pt
    \marginparpush=5pt
    \AtBeginDocument{\settoheight{\footnotesep}{\footnotesize M$^1$}}
    \skip\footins=7pt plus11pt
    \skip\@mpfootins=\skip\footins
    \fboxsep=3pt \fboxrule=.4pt
    \arrayrulewidth=.4pt    \doublerulesep=2pt
    \labelsep=5pt           \arraycolsep=\labelsep
    \tabcolsep=\labelsep    \tabbingsep=\labelsep
    \floatsep=15pt plus 12pt    \dblfloatsep=15pt plus 12pt
    \textfloatsep=\floatsep  \dbltextfloatsep=15pt plus 12pt
    \intextsep=\floatsep
    \@fptop=0pt plus1fil     \@dblfptop=0pt plus1fil
    \@fpbot=0pt plus1fil     \@dblfpbot=0pt plus1fil
    \@fpsep=8pt plus2fil     \@dblfpsep=8pt plus2fil\relax
    \parskip=0pt \relax
    \newdimen\normalparindent
    \normalparindent=18pt
    \parindent=\normalparindent
    \partopsep=0pt \relax \parsep=0pt \relax \itemsep=0pt \relax
    \@lowpenalty=51         \@medpenalty=151        \@highpenalty=301
    \@beginparpenalty=-\@lowpenalty
    \@endparpenalty=-\@lowpenalty
    \@itempenalty=-\@lowpenalty
    \DeclareOption{10pt}{\def\@mainsize{10}\def\@ptsize{0}%
      \def\@typesizes{%
        \or{5}{6}\or{6}{7}\or{7}{8}\or{8}{10}\or{9}{11}%
        \or{10}{12}% normalsize
        \or{\@xipt}{13}\or{\@xiipt}{14}\or{\@xivpt}{17}%
        \or{\@xviipt}{20}\or{\@xxpt}{24}}%
      \normalsize \linespacing=\baselineskip
    }
    \DeclareOption{11pt}{\def\@mainsize{11}\def\@ptsize{1}%
      \def\@typesizes{%
        \or{6}{7}\or{7}{8}\or{8}{10}\or{9}{11}\or{10}{12}%
        \or{\@xipt}{13}% normalsize
        \or{\@xiipt}{14}\or{\@xivpt}{17}\or{\@xviipt}{20}%
        \or{\@xxpt}{24}\or{\@xxvpt}{30}}%
      \normalsize \linespacing=\baselineskip
    }
    \DeclareOption{12pt}{\def\@mainsize{12}\def\@ptsize{2}%
      \def\@typesizes{%
        \or{7}{8}\or{8}{10}\or{9}{11}\or{10}{12}\or{\@xipt}{13}%
        \or{\@xiipt}{14}% normalsize
        \or{\@xivpt}{17}\or{\@xviipt}{20}\or{\@xxpt}{24}%
        \or{\@xxvpt}{30}\or{\@xxvpt}{30}}%
      \normalsize \linespacing=\baselineskip
    }
    \DeclareOption{8pt}{\def\@mainsize{8}\def\@ptsize{8}%
      \def\@typesizes{%
        \or{5}{6}\or{5}{6}\or{5}{6}\or{6}{7}\or{7}{8}%
        \or{8}{10}% normalsize
        \or{9}{11}\or{10}{12}\or{\@xipt}{13}%
        \or{\@xiipt}{14}\or{\@xivpt}{17}}%
      \normalsize \linespacing=\baselineskip
    }
    \DeclareOption{9pt}{\def\@mainsize{9}\def\@ptsize{9}%
      \def\@typesizes{%
        \or{5}{6}\or{5}{6}\or{6}{7}\or{7}{8}\or{8}{10}%
        \or{9}{11}% normalsize
        \or{10}{12}\or{\@xipt}{13}\or{\@xiipt}{14}%
        \or{\@xivpt}{17}\or{\@xviipt}{20}}%
      \normalsize \linespacing=\baselineskip
    }
    \def\ps@empty{\let\@mkboth\@gobbletwo
      \let\@oddhead\@empty \let\@evenhead\@empty
      \let\@oddfoot\@empty \let\@evenfoot\@empty
      \global\topskip\normaltopskip}
    \def\ps@plain{\ps@empty
      \def\@oddfoot{\normalfont\scriptsize \hfil\thepage\hfil}%
      \let\@evenfoot\@oddfoot}
    \newswitch{runhead}
    \def\ps@headings{\ps@empty
      \def\@evenhead{%
        \setTrue{runhead}%
        \normalfont\scriptsize
        \rlap{\thepage}\hfil
        \def\thanks{\protect\thanks@warning}%
        \leftmark{}{}\hfil}%
      \def\@oddhead{%
        \setTrue{runhead}%
        \normalfont\scriptsize \hfil
        \def\thanks{\protect\thanks@warning}%
        \rightmark{}{}\hfil \llap{\thepage}}%
      \let\@mkboth\markboth
      \def\partmark{\@secmark\markboth\partrunhead\partname}%
      \def\chaptermark{%
        \@secmark\markboth\chapterrunhead{}}%
      \def\sectionmark{%
        \@secmark\markright\sectionrunhead\sectionname}%
    }
    \let\sectionname\@empty
    \let\subsectionname\@empty
    \let\subsubsectionname\@empty
    \let\paragraphname\@empty
    \let\subparagraphname\@empty
    \def\leftmark{\expandafter\@firstoftwo\topmark{}{}}
    \def\rightmark{\expandafter\@secondoftwo\botmark{}{}}
    \long\def\@nilgobble#1\@nil{}
    \def\@secmark#1#2#3#4{%
      \begingroup \let\protect\@unexpandable@protect
      \edef\@tempa{\endgroup \toks@{\protect#2{#3}{\@secnumber}}}%
      \@tempa
      \toks@\@xp{\the\toks@{#4}}%
      \afterassignment\@nilgobble\@temptokena\@themark{}\@nil
      \edef\@tempa{\@nx\@mkboth{%
        \ifx\markright#1\the\@temptokena\else\the\toks@\fi}{\the\toks@}}%
      \@tempa}
    \let\@secnumber\@empty
    \def\markboth#1#2{%
      \begingroup
        \@temptokena{{#1}{#2}}\xdef\@themark{\the\@temptokena}%
        \mark{\the\@temptokena}%
      \endgroup
      \if@nobreak\ifvmode\nobreak\fi\fi}
    \def\ps@myheadings{\ps@headings \let\@mkboth\@gobbletwo}
    \newskip\normaltopskip
    \normaltopskip=10pt \relax
    \let\sectionmark\@gobble
    \let\subsectionmark\@gobble
    \let\subsubsectionmark\@gobble
    \let\paragraphmark\@gobble
    
    \DeclareOption{makeidx}{}
    \ExecuteOptions{leqno,centertags,letterpaper,portrait,%
      10pt,twoside,onecolumn,final}
    \ProcessOptions\relax
    \if@compatibility
      \def\@tempa{\RequirePackage{amstex}\relax}%
    \else
      \@ifclasswith{\@classname}{nomath}{%
        \let\@tempa\relax
      }{%
        \def\@tempa{\RequirePackage{amsmath}\relax}%
      }%
    \fi
    \@tempa % load amstex.sty or amsmath.sty
    \@ifundefined{numberwithin}{%
      \newcommand{\numberwithin}[3][\arabic]{%
        \@ifundefined{c@#2}{\@nocounterr{#2}}{%
          \@ifundefined{c@#3}{\@nocnterr{#3}}{%
            \@addtoreset{#2}{#3}%
            \@xp\xdef\csname the#2\endcsname{%
              \@xp\@nx\csname the#3\endcsname .\@nx#1{#2}}}}%
      }
      \csname newtoks\endcsname\@emptytoks
    }{}
    \if@compatibility
    \else
      \@ifclasswith{\@classname}{noamsfonts}{%
        % amsfonts package is not wanted
      }{%
        % amsfonts package IS wanted; test whether a recent enough version
        % seems to be installed
        \begingroup \fontencoding{U}\fontfamily{msa}\try@load@fontshape\endgroup
        \global\@xp\let\csname U+msa\endcsname\relax % reset
        \@ifundefined{U/msa/m/n}{%
          \ClassError{\@classname}{%
      Package `amsfonts' not installed, or version too old?\MessageBreak
      Unable to get font info for the `msam' fonts in the expected form%
          }{%
      The amsfonts package will not be loaded, to avoid probable\MessageBreak
      incompatibility problems. You can (a) use the `noamsfonts'
          documentclass\MessageBreak
      option next time, or (b) check that the amsfonts package is
          installed\MessageBreak
      correctly, and is not too old to be compatible.%
          }%
        }{%
          \RequirePackage{amsfonts}[1995/01/01]\relax
        }%
      }
    \fi % end yesamsfonts branch
    \let\cleardouble@page\cleardoublepage
    \AtBeginDocument{%
      \ifx\cleardouble@page\cleardoublepage
        \def\cleardoublepage{\clearpage{\pagestyle{empty}\cleardouble@page}}
      \fi
    }
    \newcommand{\uppercasenonmath}[1]{\toks@\@emptytoks
      \@xp\@skipmath\@xp\@empty#1$$%
      \edef#1{{\@nx\protect\@nx\@upprep\the\toks@}}%
    }
    \newcommand{\@upprep}{%
      \spaceskip1.3\fontdimen2\font plus1.3\fontdimen3\font
      \upchars@}
    \newcommand{\upchars@}{%
      \def\ss{SS}\def\i{I}\def\j{J}\def\ae{\AE}\def\oe{\OE}%
      \def\o{\O}\def\aa{\AA}\def\l{\L}\def\Mc{M{\scshape c}}}
    \providecommand{\Mc}{Mc}
    \newcommand{\@skipmath}{}
    \long\def\@skipmath#1$#2${%
      \@xskipmath#1\(\)%
      \@ifnotempty{#2}{\toks@\@xp{\the\toks@$#2$}\@skipmath\@empty}}%
    \newcommand{\@xskipmath}{}
    \long\def\@xskipmath#1\(#2\){%
      \uppercase{\toks@\@xp\@xp\@xp{\@xp\the\@xp\toks@#1}}%
      \@ifnotempty{#2}{\toks@\@xp{\the\toks@\(#2\)}\@xskipmath\@empty}}%
    \def\altucnm#1{%
      \MakeTextUppercase{\toks@{#1}}%
      \edef#1{\the\toks@}%
    }
    \AtBeginDocument{%
      \@ifundefined{MakeTextUppercase}{}{\let\uppercasenonmath\altucnm}%
    }
    \@ifundefined{MakeUppercase}{\let\MakeUppercase\uppercase}{}%
    \newcommand{\today}{%
      \relax\ifcase\month\or
      January\or February\or March\or April\or May\or June\or
      July\or August\or September\or October\or November\or December\fi
      \space\number\day, \number\year}
    \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
    \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
    \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
    \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
    \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
    \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
    \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
    %%\if@compatibility
    %%\else
    %%  \def\@obsolete@fontswitch#1#2#3{%
    %%    \@latex@warning@no@line{%
    %%      Command {\string#1...}\on@line\space is obsolete;\MessageBreak
    %%      the LaTeX2e equivalent is \string#3{...}}%
    %%    \gdef#1{\@fontswitch\relax#3}%
    %%  }
    %%  \DeclareRobustCommand*\cal{%
    %%    \@xp\@obsolete@fontswitch\csname cal \endcsname\relax\mathcal}
    %%  \DeclareRobustCommand*\mit{%
    %%    \@xp\@obsolete@fontswitch\csname mit \endcsname\relax\mathnormal}
    %%\fi
    \renewcommand*{\title}[2][]{\gdef\shorttitle{#1}\gdef\@title{#2}}
    \edef\title{\@nx\@dblarg
      \@xp\@nx\csname\string\title\endcsname}
    \renewcommand{\author}[2][]{%
      \ifx\@empty\authors
        \gdef\authors{#2}%
      \else
        \g@addto@macro\authors{\and#2}%
        \g@addto@macro\addresses{\author{}}%
      \fi
      \@ifnotempty{#1}{%
        \ifx\@empty\shortauthors
          \gdef\shortauthors{#1}%
        \else
          \g@addto@macro\shortauthors{\and#1}%
        \fi
      }%
    }
    \edef\author{\@nx\@dblarg
      \@xp\@nx\csname\string\author\endcsname}
    \let\shortauthors\@empty   \let\authors\@empty
    \let\addresses\@empty      \let\thankses\@empty
    \newcommand{\address}[2][]{\g@addto@macro\addresses{\address{#1}{#2}}}
    \newcommand{\curraddr}[2][]{\g@addto@macro\addresses{\curraddr{#1}{#2}}}
    \newcommand{\email}[2][]{\g@addto@macro\addresses{\email{#1}{#2}}}
    \newcommand{\urladdr}[2][]{\g@addto@macro\addresses{\urladdr{#1}{#2}}}
    \long\def\thanks@warning#1{%
      \ClassError{\@classname}{%
        \protect\thanks\space should be given separately, not inside author name.%
      }\@ehb
    }
    \renewcommand{\thanks}[1]{%
      \@ifnotempty{#1}{\g@addto@macro\thankses{\thanks{#1}}}%
    }
    \def\curraddrname{{\itshape Current address}}
    \def\emailaddrname{{\itshape Email address}}
    \def\urladdrname{{\itshape URL}}
    \def\@setaddresses{\par
      \nobreak \begingroup
      \def\author##1{\nobreak\addvspace\bigskipamount}%
      \def\\{\unskip, \ignorespaces}%
      \interlinepenalty\@M
      \def\address##1##2{\begingroup
        \par\addvspace\bigskipamount\indent
        \@ifnotempty{##1}{(\ignorespaces##1\unskip) }%
        {\scshape\ignorespaces##2}\par\endgroup}%
      \def\curraddr##1##2{\begingroup
        \@ifnotempty{##2}{\nobreak\indent\curraddrname
          \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
          ##2\par}\endgroup}%
      \def\email##1##2{\begingroup
        \@ifnotempty{##2}{\nobreak\indent\emailaddrname
          \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
          \ttfamily##2\par}\endgroup}%
      \def\urladdr##1##2{\begingroup
        \def~{\char`\~}%
        \@ifnotempty{##2}{\nobreak\indent\urladdrname
          \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
          \ttfamily##2\par}\endgroup}%
      \addresses
      \endgroup
    }
    \let\@date\@empty
    \def\dedicatory#1{\def\@dedicatory{#1}}
    \let\@dedicatory=\@empty
    \def\keywords#1{\def\@keywords{#1}}
    \let\@keywords=\@empty
    \newcommand*\subjclass[2][2020]{%
      \def\@subjclass{#2}%
      \@ifundefined{subjclassname@#1}{%
        \ClassWarning{\@classname}{Unknown edition (#1) of Mathematics
          Subject Classification; using '2020'.}%
      }{%
        \@xp\let\@xp\subjclassname\csname subjclassname@#1\endcsname
      }%
    }
    \let\@subjclass=\@empty
    \def\translname{Translated by}
    \def\translator#1{%
      \ifx\@empty\@translators \def\@translators{#1}%
      \else\g@addto@macro\@translators{\and#1}\fi}
    \let\@translators=\@empty
    \newcommand{\xandlist}[4]{\@andlista{{#1}{#2}{#3}}#4\and\and}
    \def\@andlista#1#2\and#3\and{\@andlistc{#2}\@ifnotempty{#3}{%
      \@andlistb#1{#3}}}
    \def\@andlistb#1#2#3#4#5\and{%
      \@ifempty{#5}{%
        \@andlistc{#2#4}%
      }{%
        \@andlistc{#1#4}\@andlistb{#1}{#3}{#3}{#5}%
      }}
    \let\@andlistc\@iden
    \newcommand{\nxandlist}[4]{%
      \def\@andlistc##1{\toks@\@xp{\the\toks@##1}}%
      \toks@{\toks@\@emptytoks \@andlista{{#1}{#2}{#3}}}%
      \the\@xp\toks@#4\and\and
      \edef#4{\the\toks@}%
      \let\@andlistc\@iden}
    \def\@@and{and}
    \newcommand{\andify}{%
      \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip, \@@and~}}
    \def\and{\unskip{ }\@@and{ }\ignorespaces}
    \newcommand{\copyrightinfo}[2]{%
      \def\copyrightyear{#1}%
      \@ifnotempty{#2}{\def\copyrightholder{#2}}%
    }
    \copyrightinfo{0000}{(copyright holder)}
    \newinsert\copyins
    \skip\copyins=1.5pc
    \count\copyins=1000 % magnification factor, 1000 = 100%
    \dimen\copyins=.5\textheight % maximum allowed per page
    \g@addto@macro\@reinserts{%
      \ifvoid\copyins\else\insert\copyins{\unvbox\copyins}\fi
    }
    \def\@copyinsfontsize{\fontsize{6}{7\p@}\normalfont\upshape}
    \newif\if@extracrline  \@extracrlinefalse
    \let\@extracrline\@empty
    \relax
    \def\@setcopyright{%
      \ifx\@empty\@serieslogo
      \else\ifx\@empty\copyrightyear
      \else
        \insert\copyins{\hsize\textwidth
          \parfillskip\z@\relax
          \leftskip\z@\@plus.9\textwidth\relax \rightskip\z@\relax
          \@copyinsfontsize
          \everypar{}%
          \vskip-\skip\copyins
          \if@extracrline
            \vskip-6pt
          \fi
          \nointerlineskip
          \leavevmode\hfill\vrule\@width\z@\@height\skip\copyins
          \copyright\copyrightyear\ \copyrightholder\ignorespaces
          \if@extracrline \@extracrline \fi
          \par
          \kern\z@}%
      \fi\fi
    }
    \def\@combinefloats{%
      \ifx \@toplist\@empty \else \@cflt \fi
      \ifx \@botlist\@empty \else \@cflb \fi
      \ifvoid\copyins \else \@cflci \fi
    }
    \def\@cflci{%
      \setbox\@outputbox\vbox{%
        \unvbox\@outputbox
        \vskip\skip\copyins
        \if@twocolumn \else \vskip\z@ plus\p@ \fi
        \hbox to\columnwidth{%
          \hss\vbox to\z@{\vss
            \if@twocolumn
              \if@firstcolumn \else \unvbox\copyins \fi
            \else
              \unvbox\copyins
            \fi
            }}}%
      \if@twocolumn \if@firstcolumn
        \insert\copyins{\unvbox\copyins}%
      \fi\fi
      \global\count\copyins=999 \relax
    }
    \newcommand{\abstractname}{Abstract}
    \newcommand{\keywordsname}{Key words and phrases}
    \@namedef{subjclassname@1991}{%
      \textup{1991} Mathematics Subject Classification}
    \@namedef{subjclassname@2000}{%
      \textup{2000} Mathematics Subject Classification}
    \@namedef{subjclassname@2010}{%
      \textup{2010} Mathematics Subject Classification}
    \@namedef{subjclassname@2020}{%
      \textup{2020} Mathematics Subject Classification}
    \@xp\let\@xp\subjclassname\csname subjclassname@2020\endcsname
    \def\@tempb{amsbook}
    \ifx\@classname\@tempb
      \newcommand{\datename}{\textit{Date}:}
    \else
      \newcommand{\datename}{Received by the editors}
    \fi
    \def\@setthanks{\def\thanks##1{\par##1\@addpunct.}\thankses}
    \newbox\abstractbox
    \newenvironment{abstract}{%
      \ifx\maketitle\relax
        \ClassWarning{\@classname}{Abstract should precede
          \protect\maketitle\space in AMS document classes; reported}%
      \fi
      \global\setbox\abstractbox=\vtop \bgroup
        \normalfont\Small
        \list{}{\labelwidth\z@
          \leftmargin3pc \rightmargin\leftmargin
          \listparindent\normalparindent \itemindent\z@
          \parsep\z@ \@plus\p@
          \let\fullwidthdisplay\relax
        }%
        \item[\hskip\labelsep\scshape\abstractname.]%
    }{%
      \endlist\egroup
      \ifx\@setabstract\relax \@setabstracta \fi
    }
    \def\@setabstract{\@setabstracta \global\let\@setabstract\relax}
    \def\@setabstracta{%
      \ifvoid\abstractbox
      \else
        \skip@20\p@ \advance\skip@-\lastskip
        \advance\skip@-\baselineskip \vskip\skip@
        \box\abstractbox
        \prevdepth\z@ % because \abstractbox is a vtop
      \fi
    }
    \def\titlepage{%
      \cleardoublepage
      \thispagestyle{empty}\setcounter{page}{0}}
    \def\endtitlepage{\newpage}
    \def\labelenumi{(\theenumi)}
    \def\theenumi{\@arabic\c@enumi}
    \def\labelenumii{(\theenumii)}
    \def\theenumii{\@alph\c@enumii}
    \def\p@enumii{\theenumi}
    \def\labelenumiii{(\theenumiii)}
    \def\theenumiii{\@roman\c@enumiii}
    \def\p@enumiii{\theenumi(\theenumii)}
    \def\labelenumiv{(\theenumiv)}
    \def\theenumiv{\@Alph\c@enumiv}
    \def\p@enumiv{\p@enumiii\theenumiii}
    \def\labelitemi{$\m@th\bullet$}
    \def\labelitemii{\bfseries --}% \upshape already done by \itemize
    \def\labelitemiii{$\m@th\ast$}
    \def\labelitemiv{$\m@th\cdot$}
    \newenvironment{verse}{\let\\\@centercr
      \list{}{\itemsep\z@ \itemindent -1.5em\listparindent\itemindent
      \rightmargin\leftmargin \advance\leftmargin 1.5em}\item[]%
    }{%
      \endlist
    }
    \let\endverse=\endlist % for efficiency
    \newenvironment{quotation}{\list{}{%
        \leftmargin3pc \listparindent\normalparindent
        \itemindent\z@
        \rightmargin\leftmargin \parsep\z@ \@plus\p@}%
      \item[]%
    }{%
      \endlist
    }
    \let\endquotation=\endlist % for efficiency
    \newenvironment{quote}{%
      \list{}{\rightmargin\leftmargin}\item[]%
    }{%
      \endlist
    }
    \let\endquote=\endlist % for efficiency
    \def\trivlist{\parsep\parskip\@nmbrlistfalse
      \@trivlist \labelwidth\z@ \leftmargin\z@
      \itemindent\z@
      \let\@itemlabel\@empty
      \def\makelabel##1{\upshape##1}}
    \renewenvironment{enumerate}{%
      \ifnum \@enumdepth >3 \@toodeep\else
          \advance\@enumdepth \@ne
          \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list
          {\csname label\@enumctr\endcsname}{\usecounter
            {\@enumctr}\def\makelabel##1{\hss\llap{\upshape##1}}}\fi
    }{%
      \endlist
    }
    \let\endenumerate=\endlist % for efficiency
    \renewenvironment{itemize}{%
      \ifnum\@itemdepth>3 \@toodeep
      \else \advance\@itemdepth\@ne
        \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
        \list{\csname\@itemitem\endcsname}%
          {\def\makelabel##1{\hss\llap{\upshape##1}}}%
      \fi
    }{%
      \endlist
    }
    \let\enditemize=\endlist % for efficiency
    \newcommand{\descriptionlabel}[1]{\hspace\labelsep \upshape\bfseries #1:}
    \newenvironment{description}{\list{}{%
      \advance\leftmargini6\p@ \itemindent-12\p@
      \labelwidth\z@ \let\makelabel\descriptionlabel}%
    }{
      \endlist
    }
    \let\enddescription=\endlist % for efficiency
    \let\upn=\textup
    \AtBeginDocument{%
      \labelsep=5pt\relax
      \setcounter{enumi}{13}\setcounter{enumii}{13}%
      \setcounter{enumiii}{13}\setcounter{enumiv}{13}%
      \settowidth\leftmargini{\labelenumi\hskip\labelsep}%
      \advance\leftmargini by \normalparindent
      \settowidth\leftmarginii{\labelenumii\hskip\labelsep}%
      \settowidth\leftmarginiii{\labelenumiii\hskip\labelsep}%
      \settowidth\leftmarginiv{\labelenumiv\hskip\labelsep}%
      \setcounter{enumi}{0}\setcounter{enumii}{0}%
      \setcounter{enumiii}{0}\setcounter{enumiv}{0}%
      \leftmarginv=10pt  \leftmarginvi=\leftmarginv
      \leftmargin=\leftmargini
      \labelwidth=\leftmargini \advance\labelwidth-\labelsep
      \@listi}
    \newskip\listisep
    \listisep\smallskipamount
    \def\@listI{\leftmargin\leftmargini \parsep\z@skip
      \topsep\listisep \itemsep\z@skip
      \listparindent\normalparindent}
    \let\@listi\@listI
    \def\@listii{\leftmargin\leftmarginii
      \labelwidth\leftmarginii \advance\labelwidth-\labelsep
      \topsep\z@skip \parsep\z@skip \partopsep\z@skip \itemsep\z@skip}
    \def\@listiii{\leftmargin\leftmarginiii
      \labelwidth\leftmarginiii \advance\labelwidth-\labelsep}
    \def\@listiv{\leftmargin\leftmarginiv
      \labelwidth\leftmarginiv \advance\labelwidth-\labelsep}
    \def\@listv{\leftmargin\leftmarginv
      \labelwidth\leftmarginv \advance\labelwidth-\labelsep}
    \def\@listvi{\leftmargin\leftmarginvi
      \labelwidth\leftmarginvi \advance\labelwidth-\labelsep}
    \@ifclasswith{\@classname}{fleqn}{%
      \let\@tempa\@iden
      \AtBeginDocument{\mathindent\leftmargini}%
    }{\let\@tempa\@gobble}%
    \@ifpackageloaded{amsmath}{\let\@tempa\@gobble}{%
      \@ifpackageloaded{amstex}{\let\@tempa\@gobble}{}%
    }
    \@tempa{%
      \def\[{\relax
        \ifmmode\@badmath
        \else
          \begin{trivlist}%
          \@beginparpenalty\predisplaypenalty
          \@endparpenalty\postdisplaypenalty
          \item[]\leavevmode
          \hbox to\linewidth\bgroup$\displaystyle
          \hskip\mathindent\bgroup
        \fi}%
      \def\]{\relax
        \ifmmode
          \egroup \m@th$\hfil \egroup
          \end{trivlist}%
        \else \@badmath
        \fi}%
      \renewenvironment{equation}{%
        \@beginparpenalty\predisplaypenalty
        \@endparpenalty\postdisplaypenalty
        \refstepcounter{equation}%
        \@topsep\abovedisplayskip \trivlist
        \item[]\leavevmode
        \hbox to\linewidth\bgroup\hskip\mathindent$\displaystyle
      }{%
        \m@th$\hfil \displaywidth\linewidth \hbox{\@eqnnum}\egroup
        \endtrivlist
      }%
      \renewenvironment{eqnarray}{%
        \stepcounter{equation}\let\@currentlabel\theequation
        \global\@eqnswtrue \global\@eqcnt\z@ \tabskip\mathindent
        \let\\=\@eqncr \abovedisplayskip\topsep
        \ifvmode \advance\abovedisplayskip\partopsep \fi
        \belowdisplayskip\abovedisplayskip
        \belowdisplayshortskip\abovedisplayskip
        \abovedisplayshortskip\abovedisplayskip
        $$\everycr{}\halign to\linewidth\bgroup
          \hskip\@centering
          $\displaystyle\tabskip\z@skip####\m@th$&%
          \@eqnsel \global\@eqcnt\@ne
          \hfil${}####{}\m@th$\hfil&%
          \global\@eqcnt\tw@
          $\displaystyle ####\m@th$\hfil\tabskip\@centering&%
          \global\@eqcnt\thr@@
          \hbox to \z@\bgroup\hss####\egroup\tabskip\z@skip\cr
        }{%
          \@@eqncr \egroup \global\advance\c@equation\m@ne$$%
          \global\@ignoretrue
        }%
      \newdimen\mathindent
      \mathindent\leftmargini
    }
    \def\@startsection#1#2#3#4#5#6{%
     \if@noskipsec \leavevmode \fi
     \par \@tempskipa #4\relax
     \@afterindenttrue
     \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi
     \if@nobreak \everypar{}\else
         \addpenalty\@secpenalty\addvspace\@tempskipa\fi
     \@ifstar{\@dblarg{\@sect{#1}{\@m}{#3}{#4}{#5}{#6}}}%
             {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
    }
    \def\@seccntformat#1{%
      \protect\textup{\protect\@secnumfont
        \csname the#1\endcsname
        \protect\@secnumpunct
      }%
    }
    \let\@secnumfont\@empty
    \def\@sect#1#2#3#4#5#6[#7]#8{%
      \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}%
      \ifnum #2>\c@secnumdepth \let\@secnumber\@empty
      \else \@xp\let\@xp\@secnumber\csname the#1\endcsname\fi
      \@tempskipa #5\relax
      \ifnum #2>\c@secnumdepth
        \let\@svsec\@empty
      \else
        \refstepcounter{#1}%
        \edef\@secnumpunct{%
          \ifdim\@tempskipa>\z@ % not a run-in section heading
            \@ifnotempty{#8}{.\@nx\enspace}%
          \else
            \@ifempty{#8}{.}{.\@nx\enspace}%
          \fi
        }%
        \protected@edef\@svsec{%
          \ifnum#2<\@m
            \@ifundefined{#1name}{}{%
              \ignorespaces\csname #1name\endcsname\space
            }%
          \fi
          \@seccntformat{#1}%
        }%
      \fi
      \ifdim \@tempskipa>\z@ % then this is not a run-in section heading
        \begingroup #6\relax
        \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty\@M #8\par}%
        \endgroup
      \csname #1mark\endcsname{#7}%
        \ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi
      \else
      \def\@svsechd{#6\hskip #3\@svsec
        \@ifnotempty{#8}{\ignorespaces#8\unskip
           \@addpunct.}%
        \ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi
      }%
      \fi
      \global\@nobreaktrue
      \@xsect{#5}}
    \let\@ssect\relax
    \newcounter{part}
    \newcounter{chapter}
    \newcounter{section}[chapter]
    \def\thesection{\arabic{section}}
    \newcounter{subsection}[section]
    \newcounter{subsubsection}[subsection]
    \newcounter{paragraph}[subsubsection]
    \newcounter{subparagraph}[paragraph]
    \renewcommand\thepart          {\arabic{part}}
    \renewcommand\thechapter       {\arabic{chapter}}
    \renewcommand\thesection       {\arabic{section}}
    \renewcommand\thesubsection    {\thesection.\arabic{subsection}}
    \renewcommand\thesubsubsection {\thesubsection .\arabic{subsubsection}}
    \renewcommand\theparagraph     {\thesubsubsection.\arabic{paragraph}}
    \renewcommand\thesubparagraph  {\theparagraph.\arabic{subparagraph}}
    \setcounter{secnumdepth}{3}
    \def\partname{Part}
    \def\specialsection{\@startsection{section}{1}%
      \z@{2\linespacing\@plus\linespacing}{.5\linespacing}%
      {\large\scshape\centering}}
    \def\part{\cleardoublepage \thispagestyle{empty}%
      \null\vfil  \markboth{}{}\secdef\@part\@spart}
    \def\@part[#1]#2{%
      \ifnum \c@secnumdepth >-2\relax \refstepcounter{part}%
        \addcontentsline{toc}{part}{\partname\ \thepart.
            \protect\enspace\protect\noindent#1}%
      \else
        \addcontentsline{toc}{part}{#1}\fi
      \begingroup\centering
      \ifnum \c@secnumdepth >-2\relax
           {\fontsize{\@xviipt}{22}\bfseries
             \partname\ \thepart} \vskip 20\p@ \fi
      \fontsize{\@xxpt}{25}\bfseries
          #1\vfil\vfil\endgroup \newpage\thispagestyle{empty}}
    
    \def\@spart#1{\addcontentsline{toc}{part}{\protect\noindent#1}%
      \begingroup\centering
      \fontsize{\@xxpt}{25}\bfseries
         #1\vfil\vfil\endgroup \newpage\thispagestyle{empty}}
    \def\partrunhead#1#2#3{%
      \@ifnotempty{#2}{\uppercase{\ignorespaces#1 #2\unskip}\@ifnotempty{#3}{. }}%
      \def\@tempa{#3}%
      \ifx\@empty\@tempa\else
        \begingroup \def\\{ \ignorespaces}% defend against questionable usage
        \uppercasenonmath\@tempa\@tempa
        \endgroup
      \fi
    }
    \let\chapterrunhead\partrunhead
    \let\sectionrunhead\partrunhead
    \def\section{\@startsection{section}{1}%
      \z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
      {\normalfont\bfseries\centering}}
    \def\subsection{\@startsection{subsection}{2}%
      \normalparindent{.5\linespacing\@plus.7\linespacing}{-.5em}%
      {\normalfont\bfseries}}
    \def\subsubsection{\@startsection{subsubsection}{3}%
      \normalparindent\z@{-.5em}%
      {\normalfont\itshape}}
    \def\paragraph{\@startsection{paragraph}{4}%
      \normalparindent\z@{-\fontdimen2\font}%
      \normalfont}
    \def\subparagraph{\@startsection{subparagraph}{5}%
      \z@\z@{-\fontdimen2\font}%
      \normalfont}
    \def\@Roman#1{\@xp\@slowromancap
      \romannumeral#1@}%
    \def\@slowromancap#1{\ifx @#1% then terminate
      \else
        \if i#1I\else\if v#1V\else\if x#1X\else\if l#1L\else\if
        c#1C\else\if m#1M\else#1\fi\fi\fi\fi\fi\fi
        \@xp\@slowromancap
      \fi
    }
    \def\frontmatter{\cleardoublepage\pagenumbering{roman}}
    \def\mainmatter{\cleardoublepage\pagenumbering{arabic}}
    \def\backmatter{%
      \if@openright\cleardoublepage\else\clearpage\fi
      \let\chaptername\relax}
    \def\aufm#1{\par\vspace*{12pt}{\flushright #1\par}}
    \newenvironment{xcb}{%
      \setcounter{enumi}{0}%
      \settowidth{\leftmargini}{\labelenumi\hskip\labelsep}%
      \setcounter{enumii}{4}% letter d
      \settowidth{\leftmarginii}{\labelenumii\hskip\labelsep}%
      \@startsection{section}% counter name; ignored because of the
                                    % * below
      {1}% sectioning level
      {\z@}% indent to the left of the section title
      {18\p@\@plus2\p@}% vertical space above
      {1sp}% Space below of 13pt base-to-base, so none needs to be added
          % here; but \z@ would cause the following text to be run-in, so we
          % use 1sp instead.
      {\bfseries}% The font of the subsection title
      *% always unnumbered
    }{%
      \par
    }
    \def\chapter{%
      \if@openright\cleardoublepage\else\clearpage\fi
      \thispagestyle{plain}\global\@topnum\z@
      \@afterindenttrue \secdef\@chapter\@schapter}
    \def\@chapter[#1]#2{\refstepcounter{chapter}%
      \ifnum\c@secnumdepth<\z@ \let\@secnumber\@empty
      \else \let\@secnumber\thechapter \fi
      \typeout{\chaptername\space\@secnumber}%
      \def\@toclevel{0}%
      \ifx\chaptername\appendixname \@tocwriteb\tocappendix{chapter}{#2}%
      \else \@tocwriteb\tocchapter{chapter}{#2}\fi
      \chaptermark{#1}%
      \addtocontents{lof}{\protect\addvspace{10\p@}}%
      \addtocontents{lot}{\protect\addvspace{10\p@}}%
      \@makechapterhead{#2}\@afterheading}
    \def\@schapter#1{\typeout{#1}%
      \let\@secnumber\@empty
      \def\@toclevel{0}%
      \ifx\chaptername\appendixname \@tocwriteb\tocappendix{chapter}{#1}%
      \else \@tocwriteb\tocchapter{chapter}{#1}\fi
      \chaptermark{#1}%
      \addtocontents{lof}{\protect\addvspace{10\p@}}%
      \addtocontents{lot}{\protect\addvspace{10\p@}}%
      \@makeschapterhead{#1}\@afterheading}
    \newcommand\chaptername{Chapter}
    \newcommand\appendixname{Appendix}
    \def\@makechapterhead#1{\global\topskip 7.5pc\relax
      \begingroup
      \fontsize{\@xivpt}{18}\bfseries\centering
        \ifnum\c@secnumdepth>\m@ne
          \leavevmode \hskip-\leftskip
          \rlap{\vbox to\z@{\vss
              \centerline{\normalsize\mdseries
                  \uppercase\@xp{\chaptername}\enspace\thechapter}
              \vskip 3pc}}\hskip\leftskip\fi
         #1\par \endgroup
      \skip@34\p@ \advance\skip@-\normalbaselineskip
      \vskip\skip@ }
    \def\@makeschapterhead#1{\global\topskip 7.5pc\relax
      \begingroup
      \fontsize{\@xivpt}{18}\bfseries\centering
      #1\par \endgroup
      \skip@34\p@ \advance\skip@-\normalbaselineskip
      \vskip\skip@ }
    \def\appendix{\par
      \c@chapter\z@ \c@section\z@
      \let\chaptername\appendixname
      \def\thechapter{\@Alph\c@chapter}}
    \newcommand{\@pnumwidth}{1.6em}
    \newcommand{\@tocrmarg}{2.6em}
    \setcounter{tocdepth}{1}
    \newswitch{toc}
    \newswitch{lof}
    \newswitch{lot}
    \def\@starttoc#1#2{%
      \begingroup
      \setTrue{#1}%
      \let\secdef\@gobbletwo \chapter
      \let\@secnumber\@empty % for \@tocwrite and \chaptermark
      \ifx\contentsname#2%
      \else \@tocwrite{chapter}{#2}\fi
      \typeout{#2}\@xp\chaptermark\@xp{#2}%
      \@makeschapterhead{#2}\@afterheading
      \parskip\z@skip
      \makeatletter
      \@input{\jobname.#1}%
      \if@filesw
        \@xp\newwrite\csname tf@#1\endcsname
        \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
      \fi
      \global\@nobreakfalse \endgroup
      \newpage
    }
    \def\contentsname{Contents}
    \def\listfigurename{List of Figures}
    \def\listtablename{List of Tables}
    \def\tableofcontents{%
      \@starttoc{toc}\contentsname
    }
    \def\listoffigures{\@starttoc{lof}\listfigurename}
    \def\listoftables{\@starttoc{lot}\listtablename}
    \AtBeginDocument{%
      \@for\@tempa:=-1,0,1,2,3\do{%
        \@ifundefined{r@tocindent\@tempa}{%
          \@xp\gdef\csname r@tocindent\@tempa\endcsname{0pt}}{}%
      }%
    }
    \def\@writetocindents{%
      \begingroup
      \@for\@tempa:=-1,0,1,2,3\do{%
        \immediate\write\@auxout{%
          \string\newlabel{tocindent\@tempa}{%
            \csname r@tocindent\@tempa\endcsname}}%
      }%
      \endgroup}
    \AtEndDocument{\@writetocindents}
    
    \let\indentlabel\@empty
    \def\@tochangmeasure#1{\sbox\z@{#1}%
      \ifdim\wd\z@>\csname r@tocindent\@toclevel\endcsname\relax
        \@xp\xdef\csname r@tocindent\@toclevel\endcsname{\the\wd\z@}%
      \fi
    }
    \def\@toclevel{0}
    \def\@tocline#1#2#3#4#5#6#7{\relax
      \ifnum #1>\c@tocdepth % then omit
      \else
        \par \addpenalty\@secpenalty\addvspace{#2}%
        \begingroup \hyphenpenalty\@M
        \@ifempty{#4}{%
          \@tempdima\csname r@tocindent\number#1\endcsname\relax
        }{%
          \@tempdima#4\relax
        }%
        \parindent\z@ \leftskip#3\relax \advance\leftskip\@tempdima\relax
        \rightskip\@pnumwidth plus4em \parfillskip-\@pnumwidth
        #5\leavevmode\hskip-\@tempdima #6\nobreak\relax
        \hfil\hbox to\@pnumwidth{\@tocpagenum{#7}}\par
        \nobreak
        \endgroup
      \fi}
    \def\@tocpagenum#1{\hss{\mdseries #1}}
    \def\@tocwrite#1{\@xp\@tocwriteb\csname toc#1\endcsname{#1}}
    \def\@tocwriteb#1#2#3{%
      \begingroup
        \def\@tocline##1##2##3##4##5##6{%
          \ifnum##1>\c@tocdepth
          \else \sbox\z@{##5\let\indentlabel\@tochangmeasure##6}\fi}%
        \csname l@#2\endcsname{#1{\csname#2name\endcsname}{\@secnumber}{}}%
      \endgroup
      \addcontentsline{toc}{#2}%
        {\protect#1{\csname#2name\endcsname}{\@secnumber}{#3}}}
    \def\l@section{\@tocline{1}{0pt}{1pc}{}{}}
    \newcommand{\tocsection}[3]{%
      \indentlabel{\@ifnotempty{#2}{\ignorespaces#1 #2.\quad}}#3}
    \def\l@subsection{\@tocline{2}{0pt}{1pc}{5pc}{}}
    \let\tocsubsection\tocsection
    \def\l@subsubsection{\@tocline{3}{0pt}{1pc}{7pc}{}}
    \let\tocsubsubsection\tocsection
    \let\l@paragraph\l@subsubsection
    \let\tocparagraph\tocsection
    \let\l@subparagraph\l@subsubsection
    \let\tocsubparagraph\tocsection
    \def\l@part{\@tocline{-1}{12pt plus2pt}{0pt}{}{\bfseries}}
    \let\tocpart\tocsection
    \def\l@chapter{\@tocline{0}{8pt plus1pt}{0pt}{}{}}
    \let\tocchapter\tocsection
    \newcommand{\tocappendix}[3]{%
      \indentlabel{#1\@ifnotempty{#2}{ #2}.\quad}#3}
    \def\l@figure{\@tocline{0}{3pt plus2pt}{0pt}{1.5pc}{}}
    \let\l@table=\l@figure
    \def\refname{References}
    \def\bibname{Bibliography}
    \def\@defaultbiblabelstyle#1{#1.}
    \def\bibliographystyle#1{%
        \if@filesw\immediate\write\@auxout{\string\bibstyle{#1}}\fi
        \def\@tempa{#1}%
        \def\@tempb{amsplain}%
        \def\@tempc{}%
        \ifx\@tempa\@tempb
            \def\@biblabel##1{\@defaultbiblabelstyle{##1}}%
            \def\bibsetup{}%
        \else
            \def\bibsetup{\labelsep6\p@}%
            \ifx\@tempa\@tempc
                \def\@biblabel##1{}%
                \def\bibsetup{\labelwidth\z@ \leftmargin24\p@
                    \itemindent-\leftmargin
                    \labelsep\z@ }%
            \fi
        \fi}
    \newcommand{\bibliofont}{\footnotesize}
    \newcommand{\@bibtitlestyle}{%
      \@xp\chapter\@xp*\@xp{\bibname}%
    }
    \newenvironment{thebibliography}[1]{%
      \@bibtitlestyle
      \normalfont\bibliofont\labelsep .5em\relax
      \renewcommand\theenumiv{\arabic{enumiv}}\let\p@enumiv\@empty
      \list{\@biblabel{\theenumiv}}{\settowidth\labelwidth{\@biblabel{#1}}%
        \leftmargin\labelwidth \advance\leftmargin\labelsep
        \usecounter{enumiv}}%
      \sloppy \clubpenalty\@M \widowpenalty\clubpenalty
      \sfcode`\.=\@m
    }{%
      \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
      \endlist
    }
    \def\bysame{\leavevmode\hbox to3em{\hrulefill}\thinspace}
    \def\newblock{}
    \newcommand\MR[1]{\relax\ifhmode\unskip\spacefactor3000 \space\fi
      MR~\MRhref{#1}{#1}}
    \let\MRhref\@gobble
    \newcommand\URL{\begingroup
      \def\@sverb##1{%
        \def\@tempa####1##1{\@URL{####1}\egroup\endgroup}%
        \@tempa}%
      \verb}
    \let\URLhref\@gobble
    \def\@URL#1{\URLhref{#1}#1}
    \newif\if@restonecol
    \def\indexchap#1{\global\topskip 7.5pc\relax
      \twocolumn[{\fontsize{\@xivpt}{18}\bfseries\centering
        \vskip\topskip\hbox{}\vskip-\baselineskip% adjust top space
        #1\par
       \global\topskip 34\p@\relax
       \ifx\@empty\indexintro
       \else
         \begingroup \normalsize
           \skip@\topskip \advance\skip@ -\baselineskip
           \vskip\skip@
           \parbox[t]{24pc}{\normalfont\indexintro\par}%
         \endgroup
         \global\topskip 24\p@\relax
       \fi
      }]%
    }
    \newcommand{\indexintro}{}
    \newcommand{\@indextitlestyle}{%
      \let\@makeschapterhead\indexchap
      \@xp\chapter\@xp*\@xp{\indexname}%
    }
    \def\theindex{\@restonecoltrue\if@twocolumn
  • amsproc.cls59 KBVendored from mirrors.ctan.org on 2026-05-26.
    %%
    %% This is file `amsproc.cls',
    %% generated with the docstrip utility.
    %%
    %% The original source files were:
    %%
    %% amsclass.dtx  (with options: `amsproc,classes')
    %% This is a generated file.
    %% 
    %% Copyright 1995, 1999, 2004, 2009-2020 American Mathematical Society.
    %% 
    %% American Mathematical Society
    %% Technical Support
    %% Publications Technical Group
    %% 201 Charles Street
    %% Providence, RI 02904
    %% USA
    %% tel: (401) 455-4080
    %%      (800) 321-4267 (USA and Canada only)
    %% fax: (401) 331-3842
    %% email: tech-support@ams.org
    %% 
    %% 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
    %%   http://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 American Mathematical
    %% Society.
    %% 
    %% ========================================================================
    %% 
    \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
    [1995/06/01]% LaTeX date must be June 1995 or later
    \ProvidesClass{amsproc}[2020/05/29 v2.20.6]
    \global\expandafter\let\csname ver@amsthm.sty\expandafter\endcsname
      \csname ver@\@currname.\@currext\endcsname
    \let\@xp=\expandafter
    \let\@nx=\noexpand
    \def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}}
    \long\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\setboxz@h{\setbox\z@\hbox}
    \def\@addpunct#1{%
      \relax\ifhmode
        \ifnum\spacefactor>\@m \else#1\fi
      \fi}
    \def\nopunct{\spacefactor 1007 }
    \def\frenchspacing{\sfcode`\.1006\sfcode`\?1005\sfcode`\!1004%
      \sfcode`\:1003\sfcode`\;1002\sfcode`\,1001 }
    \def\@tempa#1#2\@nil{\edef\@classname{#1}}
    \expandafter\@tempa\@currnamestack{}{}{}\@nil
    \ifx\@classname\@empty \edef\@classname{\@currname}\fi
    \def\@True{00}
    \def\@False{01}
    \newcommand\newswitch[2][False]{%
      \expandafter\@ifdefinable\csname ?@#2\endcsname{%
        \global\expandafter\let\csname ?@#2\expandafter\endcsname
          \csname @#1\endcsname
      }%
    }
    \newcommand{\setFalse}[1]{%
      \expandafter\let\csname ?@#1\endcsname\@False
    }
    \newcommand{\setTrue}[1]{%
      \expandafter\let\csname ?@#1\endcsname\@True
    }
    \newswitch{}
    \DeclareRobustCommand{\except}[1]{%
      \if\csname ?@#1\endcsname \expandafter\@gobble
      \else \expandafter\@firstofone
      \fi
    }
    \DeclareRobustCommand{\for}[1]{%
      \if\csname ?@#1\endcsname \expandafter\@firstofone
      \else \expandafter\@gobble
      \fi
    }
    \DeclareRobustCommand{\forany}[1]{%
      \csname for@any@01\endcsname#1,?,\@nil
    }
    \@namedef{for@any@\@False}#1,{%
      \csname for@any@%
        \csname ?@\zap@space#1 \@empty\endcsname
      \endcsname
    }
    \@namedef{?@?}{x}
    \@namedef{for@any@\@True}#1\@nil#2{#2}
    \def\for@any@x{\@car\@gobble}
    \DeclareOption{a4paper}{\paperheight 297mm\paperwidth 210mm
      \textheight 54.5pc }
    \DeclareOption{letterpaper}{\paperheight 11in\paperwidth 8.5in }
    \DeclareOption{landscape}{\@tempdima\paperheight
      \paperheight\paperwidth \paperwidth\@tempdima}
    \DeclareOption{portrait}{}
    \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
    \DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}
    \DeclareOption{draft}{\overfullrule5\p@
      \ClassWarningNoLine{\@classname}{%
        When the draft option is used, the
          \protect\includegraphics\MessageBreak
        command will print blank placeholder boxes\MessageBreak
        for the graphics}%
    }
    \DeclareOption{final}{\overfullrule\z@ }
    \def\dateposted#1{\def\@dateposted{#1}}%
    \let\@dateposted\@empty
    \def\@logofont{\fontsize{6}{7\p@}\selectfont}
    \long\def\set@logo#1{%
      \vbox to\headheight{%
        \@parboxrestore \@logofont
        \noindent#1\par\vss
      }%
    }
    \def\procart@logo{%
      \set@logo{\publname
        \ifx\@empty\volinfo \else\newline\volinfo\fi}%
    }
    \newif\if@titlepage
    \DeclareOption{titlepage}{\@titlepagetrue}
    \DeclareOption{notitlepage}{\@titlepagefalse}
    \DeclareOption{onecolumn}{\@twocolumnfalse}
    \DeclareOption{twocolumn}{\@twocolumntrue}
    \DeclareOption{nomath}{}
    \DeclareOption{noamsfonts}{}
    \DeclareOption{psamsfonts}{%
      \PassOptionsToPackage{psamsfonts}{amsfonts}%
      \PassOptionsToPackage{cmex10}{amsmath}}
    \newif\iftagsleft@
    \DeclareOption{leqno}{%
      \tagsleft@true \PassOptionsToPackage{leqno}{amsmath}}
    \DeclareOption{reqno}{%
      \tagsleft@false \PassOptionsToPackage{reqno}{amsmath}}
    \newif\ifctagsplit@
    \DeclareOption{centertags}{%
      \ctagsplit@true \PassOptionsToPackage{centertags}{amsmath}}
    \DeclareOption{tbtags}{%
      \ctagsplit@false \PassOptionsToPackage{tbtags}{amsmath}}
    \DeclareOption{fleqn}{}%
    \newcommand{\@mainsize}{10}
    \newcommand{\@ptsize}{0}
    \newcommand{\larger}[1][1]{%
      \count@\@currsizeindex \advance\count@#1\relax
      \ifnum\count@<\z@ \count@\z@ \else\ifnum\count@>12 \count@12 \fi\fi
      \ifcase\count@
        \Tiny\or\Tiny\or\tiny\or\SMALL\or\Small\or\small
        \or\normalsize
        \or\large\or\Large\or\LARGE\or\huge\or\Huge\else\Huge
      \fi
    }
    \newcommand{\smaller}[1][1]{\larger[-#1]}
    \def\@adjustvertspacing{%
      \bigskipamount.7\baselineskip plus.7\baselineskip
      \medskipamount\bigskipamount \divide\medskipamount\tw@
      \smallskipamount\medskipamount \divide\smallskipamount\tw@
      \abovedisplayskip\medskipamount
      \belowdisplayskip \abovedisplayskip
      \abovedisplayshortskip\abovedisplayskip
      \advance\abovedisplayshortskip-1\abovedisplayskip
      \belowdisplayshortskip\abovedisplayshortskip
      \advance\belowdisplayshortskip 1\smallskipamount
      \jot\baselineskip \divide\jot 4 \relax
    }
    \renewcommand\normalsize{\@xsetfontsize\normalsize 6%
      \@adjustvertspacing \let\@listi\@listI}
    \DeclareRobustCommand{\Tiny}{\@xsetfontsize\Tiny 1}
    \DeclareRobustCommand{\tiny}{\@xsetfontsize\tiny 2}
    \DeclareRobustCommand{\SMALL}{\@xsetfontsize\SMALL 3}
    \DeclareRobustCommand{\Small}{\@xsetfontsize\Small 4%
      \@adjustvertspacing
      \def\@listi{\topsep\smallskipamount \parsep\z@skip \itemsep\z@skip
        \leftmargin=\leftmargini
        \labelwidth=\leftmargini \advance\labelwidth-\labelsep
      }%
    }
    \DeclareRobustCommand{\small}{\@xsetfontsize\small 5\@adjustvertspacing}
    \def\footnotesize{\Small}
    \def\scriptsize{\SMALL}
    \DeclareRobustCommand{\large}{\@xsetfontsize\large 7\@adjustvertspacing}
    \DeclareRobustCommand{\Large}{\@xsetfontsize\Large 8\@adjustvertspacing}
    \DeclareRobustCommand{\LARGE}{\@xsetfontsize\LARGE 9}
    \DeclareRobustCommand{\huge}{\@xsetfontsize\huge{10}}
    \DeclareRobustCommand{\Huge}{\@xsetfontsize\Huge{11}}
    \def\@xsetfontsize#1#2{%
      \chardef\@currsizeindex#2\relax
      \edef\@tempa{\@nx\@setfontsize\@nx#1%
        \@xp\ifcase\@xp\@currsizeindex\@typesizes
          \else{99}{99}\fi}%
      \@tempa
    }
    \chardef\@currsizeindex=6
    \widowpenalty=10000
    \clubpenalty=10000
    \brokenpenalty=10000
    \newdimen\linespacing
    \lineskip=1pt \lineskiplimit=1pt
    \normallineskip=1pt \normallineskiplimit=1pt
    \let\baselinestretch=\@empty
    \headheight=8pt \headsep=14pt
    \footskip=12pt
    \textheight=50.5pc \topskip=10pt
    \textwidth=30pc
    \columnsep=10pt \columnseprule=0pt
    \marginparwidth=90pt
    \marginparsep=11pt
    \marginparpush=5pt
    \AtBeginDocument{\settoheight{\footnotesep}{\footnotesize M$^1$}}
    \skip\footins=7pt plus11pt
    \skip\@mpfootins=\skip\footins
    \fboxsep=3pt \fboxrule=.4pt
    \arrayrulewidth=.4pt    \doublerulesep=2pt
    \labelsep=5pt           \arraycolsep=\labelsep
    \tabcolsep=\labelsep    \tabbingsep=\labelsep
    \floatsep=15pt plus 12pt    \dblfloatsep=15pt plus 12pt
    \textfloatsep=\floatsep  \dbltextfloatsep=15pt plus 12pt
    \intextsep=\floatsep
    \@fptop=0pt plus1fil     \@dblfptop=0pt plus1fil
    \@fpbot=0pt plus1fil     \@dblfpbot=0pt plus1fil
    \@fpsep=8pt plus2fil     \@dblfpsep=8pt plus2fil\relax
    \parskip=0pt \relax
    \newdimen\normalparindent
    \normalparindent=18pt
    \parindent=\normalparindent
    \partopsep=0pt \relax \parsep=0pt \relax \itemsep=0pt \relax
    \@lowpenalty=51         \@medpenalty=151        \@highpenalty=301
    \@beginparpenalty=-\@lowpenalty
    \@endparpenalty=-\@lowpenalty
    \@itempenalty=-\@lowpenalty
    \DeclareOption{10pt}{\def\@mainsize{10}\def\@ptsize{0}%
      \def\@typesizes{%
        \or{5}{6}\or{6}{7}\or{7}{8}\or{8}{10}\or{9}{11}%
        \or{10}{12}% normalsize
        \or{\@xipt}{13}\or{\@xiipt}{14}\or{\@xivpt}{17}%
        \or{\@xviipt}{20}\or{\@xxpt}{24}}%
      \normalsize \linespacing=\baselineskip
    }
    \DeclareOption{11pt}{\def\@mainsize{11}\def\@ptsize{1}%
      \def\@typesizes{%
        \or{6}{7}\or{7}{8}\or{8}{10}\or{9}{11}\or{10}{12}%
        \or{\@xipt}{13}% normalsize
        \or{\@xiipt}{14}\or{\@xivpt}{17}\or{\@xviipt}{20}%
        \or{\@xxpt}{24}\or{\@xxvpt}{30}}%
      \normalsize \linespacing=\baselineskip
    }
    \DeclareOption{12pt}{\def\@mainsize{12}\def\@ptsize{2}%
      \def\@typesizes{%
        \or{7}{8}\or{8}{10}\or{9}{11}\or{10}{12}\or{\@xipt}{13}%
        \or{\@xiipt}{14}% normalsize
        \or{\@xivpt}{17}\or{\@xviipt}{20}\or{\@xxpt}{24}%
        \or{\@xxvpt}{30}\or{\@xxvpt}{30}}%
      \normalsize \linespacing=\baselineskip
    }
    \DeclareOption{8pt}{\def\@mainsize{8}\def\@ptsize{8}%
      \def\@typesizes{%
        \or{5}{6}\or{5}{6}\or{5}{6}\or{6}{7}\or{7}{8}%
        \or{8}{10}% normalsize
        \or{9}{11}\or{10}{12}\or{\@xipt}{13}%
        \or{\@xiipt}{14}\or{\@xivpt}{17}}%
      \normalsize \linespacing=\baselineskip
    }
    \DeclareOption{9pt}{\def\@mainsize{9}\def\@ptsize{9}%
      \def\@typesizes{%
        \or{5}{6}\or{5}{6}\or{6}{7}\or{7}{8}\or{8}{10}%
        \or{9}{11}% normalsize
        \or{10}{12}\or{\@xipt}{13}\or{\@xiipt}{14}%
        \or{\@xivpt}{17}\or{\@xviipt}{20}}%
      \normalsize \linespacing=\baselineskip
    }
    \def\ps@empty{\let\@mkboth\@gobbletwo
      \let\@oddhead\@empty \let\@evenhead\@empty
      \let\@oddfoot\@empty \let\@evenfoot\@empty
      \global\topskip\normaltopskip}
    \def\ps@plain{\ps@empty
      \def\@oddfoot{\normalfont\scriptsize \hfil\thepage\hfil}%
      \let\@evenfoot\@oddfoot}
    \newswitch{runhead}
    \def\ps@headings{\ps@empty
      \def\@evenhead{%
        \setTrue{runhead}%
        \normalfont\scriptsize
        \rlap{\thepage}\hfil
        \def\thanks{\protect\thanks@warning}%
        \leftmark{}{}\hfil}%
      \def\@oddhead{%
        \setTrue{runhead}%
        \normalfont\scriptsize \hfil
        \def\thanks{\protect\thanks@warning}%
        \rightmark{}{}\hfil \llap{\thepage}}%
      \let\@mkboth\markboth
    }
    \let\sectionname\@empty
    \let\subsectionname\@empty
    \let\subsubsectionname\@empty
    \let\paragraphname\@empty
    \let\subparagraphname\@empty
    \def\leftmark{\expandafter\@firstoftwo\topmark{}{}}
    \def\rightmark{\expandafter\@secondoftwo\botmark{}{}}
    \def\ps@firstpage{\ps@plain
      \def\@oddfoot{\normalfont\scriptsize \hfil\thepage\hfil
         \global\topskip\normaltopskip}%
      \let\@evenfoot\@oddfoot
      \def\@oddhead{\@serieslogo\hss}%
      \let\@evenhead\@oddhead % in case an article starts on a left-hand page
    }
    \long\def\@nilgobble#1\@nil{}
    \def\markboth#1#2{%
      \begingroup
        \@temptokena{{#1}{#2}}\xdef\@themark{\the\@temptokena}%
        \mark{\the\@temptokena}%
      \endgroup
      \if@nobreak\ifvmode\nobreak\fi\fi}
    \def\ps@myheadings{\ps@headings \let\@mkboth\@gobbletwo}
    \newskip\normaltopskip
    \normaltopskip=10pt \relax
    \let\sectionmark\@gobble
    \let\subsectionmark\@gobble
    \let\subsubsectionmark\@gobble
    \let\paragraphmark\@gobble
    
    \DeclareOption{makeidx}{}
    \ExecuteOptions{leqno,centertags,letterpaper,portrait,%
      10pt,twoside,onecolumn,final}
    \ProcessOptions\relax
    \if@compatibility
      \def\@tempa{\RequirePackage{amstex}\relax}%
    \else
      \@ifclasswith{\@classname}{nomath}{%
        \let\@tempa\relax
      }{%
        \def\@tempa{\RequirePackage{amsmath}\relax}%
      }%
    \fi
    \@tempa % load amstex.sty or amsmath.sty
    \@ifundefined{numberwithin}{%
      \newcommand{\numberwithin}[3][\arabic]{%
        \@ifundefined{c@#2}{\@nocounterr{#2}}{%
          \@ifundefined{c@#3}{\@nocnterr{#3}}{%
            \@addtoreset{#2}{#3}%
            \@xp\xdef\csname the#2\endcsname{%
              \@xp\@nx\csname the#3\endcsname .\@nx#1{#2}}}}%
      }
      \csname newtoks\endcsname\@emptytoks
    }{}
    \if@compatibility
    \else
      \@ifclasswith{\@classname}{noamsfonts}{%
        % amsfonts package is not wanted
      }{%
        % amsfonts package IS wanted; test whether a recent enough version
        % seems to be installed
        \begingroup \fontencoding{U}\fontfamily{msa}\try@load@fontshape\endgroup
        \global\@xp\let\csname U+msa\endcsname\relax % reset
        \@ifundefined{U/msa/m/n}{%
          \ClassError{\@classname}{%
      Package `amsfonts' not installed, or version too old?\MessageBreak
      Unable to get font info for the `msam' fonts in the expected form%
          }{%
      The amsfonts package will not be loaded, to avoid probable\MessageBreak
      incompatibility problems. You can (a) use the `noamsfonts'
          documentclass\MessageBreak
      option next time, or (b) check that the amsfonts package is
          installed\MessageBreak
      correctly, and is not too old to be compatible.%
          }%
        }{%
          \RequirePackage{amsfonts}[1995/01/01]\relax
        }%
      }
    \fi % end yesamsfonts branch
    \let\cleardouble@page\cleardoublepage
    \AtBeginDocument{%
      \ifx\cleardouble@page\cleardoublepage
        \def\cleardoublepage{\clearpage{\pagestyle{empty}\cleardouble@page}}
      \fi
    }
    \newcommand{\uppercasenonmath}[1]{\toks@\@emptytoks
      \@xp\@skipmath\@xp\@empty#1$$%
      \edef#1{{\@nx\protect\@nx\@upprep\the\toks@}}%
    }
    \newcommand{\@upprep}{%
      \spaceskip1.3\fontdimen2\font plus1.3\fontdimen3\font
      \upchars@}
    \newcommand{\upchars@}{%
      \def\ss{SS}\def\i{I}\def\j{J}\def\ae{\AE}\def\oe{\OE}%
      \def\o{\O}\def\aa{\AA}\def\l{\L}\def\Mc{M{\scshape c}}}
    \providecommand{\Mc}{Mc}
    \newcommand{\@skipmath}{}
    \long\def\@skipmath#1$#2${%
      \@xskipmath#1\(\)%
      \@ifnotempty{#2}{\toks@\@xp{\the\toks@$#2$}\@skipmath\@empty}}%
    \newcommand{\@xskipmath}{}
    \long\def\@xskipmath#1\(#2\){%
      \uppercase{\toks@\@xp\@xp\@xp{\@xp\the\@xp\toks@#1}}%
      \@ifnotempty{#2}{\toks@\@xp{\the\toks@\(#2\)}\@xskipmath\@empty}}%
    \def\altucnm#1{%
      \MakeTextUppercase{\toks@{#1}}%
      \edef#1{\the\toks@}%
    }
    \AtBeginDocument{%
      \@ifundefined{MakeTextUppercase}{}{\let\uppercasenonmath\altucnm}%
    }
    \@ifundefined{MakeUppercase}{\let\MakeUppercase\uppercase}{}%
    \newcommand{\today}{%
      \relax\ifcase\month\or
      January\or February\or March\or April\or May\or June\or
      July\or August\or September\or October\or November\or December\fi
      \space\number\day, \number\year}
    \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
    \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
    \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
    \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
    \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
    \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
    \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
    %%\if@compatibility
    %%\else
    %%  \def\@obsolete@fontswitch#1#2#3{%
    %%    \@latex@warning@no@line{%
    %%      Command {\string#1...}\on@line\space is obsolete;\MessageBreak
    %%      the LaTeX2e equivalent is \string#3{...}}%
    %%    \gdef#1{\@fontswitch\relax#3}%
    %%  }
    %%  \DeclareRobustCommand*\cal{%
    %%    \@xp\@obsolete@fontswitch\csname cal \endcsname\relax\mathcal}
    %%  \DeclareRobustCommand*\mit{%
    %%    \@xp\@obsolete@fontswitch\csname mit \endcsname\relax\mathnormal}
    %%\fi
    \renewcommand*{\title}[2][]{\gdef\shorttitle{#1}\gdef\@title{#2}}
    \edef\title{\@nx\@dblarg
      \@xp\@nx\csname\string\title\endcsname}
    \renewcommand{\author}[2][]{%
      \ifx\@empty\authors
        \gdef\authors{#2}%
      \else
        \g@addto@macro\authors{\and#2}%
        \g@addto@macro\addresses{\author{}}%
      \fi
      \@ifnotempty{#1}{%
        \ifx\@empty\shortauthors
          \gdef\shortauthors{#1}%
        \else
          \g@addto@macro\shortauthors{\and#1}%
        \fi
      }%
    }
    \edef\author{\@nx\@dblarg
      \@xp\@nx\csname\string\author\endcsname}
    \let\shortauthors\@empty   \let\authors\@empty
    \newif\ifresetcontrib  \resetcontribfalse
    \newcommand\contrib[2][]{%
      \def\@tempa{#1}%
      \ifx\@empty\@tempa
      \else
        \ifresetcontrib \@xcontribs
        \else \global\resetcontribtrue
        \fi
      \fi
      \ifx\@empty\contribs
        \gdef\contribs{#1 #2}%
      \else
        \g@addto@macro\contribs{\and#1 #2}%
      \fi
      \@wraptoccontribs{#1}{#2}%
    }
    \def\wraptoccontribs#1#2{}
    \def\@xcontribs{%
      \author@andify\contribs
      \ifx\@empty\xcontribs
        \xdef\xcontribs{\contribs}%
      \else
        \xdef\xcontribs{\xcontribs, \contribs}%
      \fi
      \let\contribs\@empty
    }
    \let\contribs\@empty  \let\xcontribs\@empty  \let\toccontribs\@empty
    \let\addresses\@empty      \let\thankses\@empty
    \newcommand{\address}[2][]{\g@addto@macro\addresses{\address{#1}{#2}}}
    \newcommand{\curraddr}[2][]{\g@addto@macro\addresses{\curraddr{#1}{#2}}}
    \newcommand{\email}[2][]{\g@addto@macro\addresses{\email{#1}{#2}}}
    \newcommand{\urladdr}[2][]{\g@addto@macro\addresses{\urladdr{#1}{#2}}}
    \long\def\thanks@warning#1{%
      \ClassError{\@classname}{%
        \protect\thanks\space should be given separately, not inside author name.%
      }\@ehb
    }
    \renewcommand{\thanks}[1]{%
      \@ifnotempty{#1}{\g@addto@macro\thankses{\thanks{#1}}}%
    }
    \def\enddoc@text{\ifx\@empty\@translators \else\@settranslators\fi
      \ifx\@empty\addresses \else\@setaddresses\fi}
    \AtEndDocument{\enddoc@text}
    \def\curraddrname{{\itshape Current address}}
    \def\emailaddrname{{\itshape Email address}}
    \def\urladdrname{{\itshape URL}}
    \def\@setaddresses{\par
      \nobreak \begingroup
    \footnotesize
      \def\author##1{\nobreak\addvspace\bigskipamount}%
      \def\\{\unskip, \ignorespaces}%
      \interlinepenalty\@M
      \def\address##1##2{\begingroup
        \par\addvspace\bigskipamount\indent
        \@ifnotempty{##1}{(\ignorespaces##1\unskip) }%
        {\scshape\ignorespaces##2}\par\endgroup}%
      \def\curraddr##1##2{\begingroup
        \@ifnotempty{##2}{\nobreak\indent\curraddrname
          \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
          ##2\par}\endgroup}%
      \def\email##1##2{\begingroup
        \@ifnotempty{##2}{\nobreak\indent\emailaddrname
          \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
          \ttfamily##2\par}\endgroup}%
      \def\urladdr##1##2{\begingroup
        \def~{\char`\~}%
        \@ifnotempty{##2}{\nobreak\indent\urladdrname
          \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
          \ttfamily##2\par}\endgroup}%
      \addresses
      \endgroup
    }
    \let\@date\@empty
    \def\dedicatory#1{\def\@dedicatory{#1}}
    \let\@dedicatory=\@empty
    \def\keywords#1{\def\@keywords{#1}}
    \let\@keywords=\@empty
    \newcommand*\subjclass[2][2020]{%
      \def\@subjclass{#2}%
      \@ifundefined{subjclassname@#1}{%
        \ClassWarning{\@classname}{Unknown edition (#1) of Mathematics
          Subject Classification; using '2020'.}%
      }{%
        \@xp\let\@xp\subjclassname\csname subjclassname@#1\endcsname
      }%
    }
    \let\@subjclass=\@empty
    \def\translname{Translated by}
    \def\translator#1{%
      \ifx\@empty\@translators \def\@translators{#1}%
      \else\g@addto@macro\@translators{\and#1}\fi}
    \let\@translators=\@empty
    \def\@settranslators{\par\begingroup
      \addvspace{6\p@\@plus9\p@}%
      \hbox to\columnwidth{\hss\normalfont\normalsize
        \translname{ }%
        \andify\@translators \uppercasenonmath\@translators
        \@translators}
      \endgroup
    }
    \newcommand{\xandlist}[4]{\@andlista{{#1}{#2}{#3}}#4\and\and}
    \def\@andlista#1#2\and#3\and{\@andlistc{#2}\@ifnotempty{#3}{%
      \@andlistb#1{#3}}}
    \def\@andlistb#1#2#3#4#5\and{%
      \@ifempty{#5}{%
        \@andlistc{#2#4}%
      }{%
        \@andlistc{#1#4}\@andlistb{#1}{#3}{#3}{#5}%
      }}
    \let\@andlistc\@iden
    \newcommand{\nxandlist}[4]{%
      \def\@andlistc##1{\toks@\@xp{\the\toks@##1}}%
      \toks@{\toks@\@emptytoks \@andlista{{#1}{#2}{#3}}}%
      \the\@xp\toks@#4\and\and
      \edef#4{\the\toks@}%
      \let\@andlistc\@iden}
    \def\@@and{and}
    \newcommand{\andify}{%
      \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip, \@@and~}}
    \def\and{\unskip{ }\@@and{ }\ignorespaces}
    \def\maketitle{\par
      \@topnum\z@ % this prevents figures from falling at the top of page 1
      \@setcopyright
      \thispagestyle{firstpage}% this sets first page specifications
      \uppercasenonmath\shorttitle
      \ifx\@empty\shortauthors \let\shortauthors\shorttitle
      \else \andify\shortauthors
      \fi
      \@maketitle@hook
      \begingroup
      \@maketitle
      \toks@\@xp{\shortauthors}\@temptokena\@xp{\shorttitle}%
      \toks4{\def\\{ \ignorespaces}}% defend against questionable usage
      \edef\@tempa{%
        \@nx\markboth{\the\toks4
          \@nx\MakeUppercase{\the\toks@}}{\the\@temptokena}}%
      \@tempa
      \endgroup
      \c@footnote\z@
      \@cleartopmattertags
    }
    \def\@cleartopmattertags{%
      \def\do##1{\let##1\relax}%
      \do\maketitle \do\@maketitle \do\title \do\@xtitle \do\@title
      \do\author \do\@xauthor \do\address \do\@xaddress
      \do\contrib \do\contribs \do\xcontribs \do\toccontribs
      \do\email \do\@xemail \do\curraddr \do\@xcurraddr
      \do\dedicatory \do\@dedicatory \do\thanks \do\thankses
      \do\keywords \do\@keywords \do\subjclass \do\@subjclass
    }
    \def\@maketitle@hook{\global\let\@maketitle@hook\@empty}
    \def\@maketitle{%
      \normalfont\normalsize
      \@adminfootnotes
      \@mkboth{\@nx\shortauthors}{\@nx\shorttitle}%
      \global\topskip8pc\relax % 10pc to base of first title line
      \@settitle
      \ifx\@empty\authors \else \@setauthors \fi
      \ifx\@empty\@dedicatory
      \else
        \baselineskip26\p@
        \vtop{\centering{\footnotesize\itshape\@dedicatory\@@par}%
          \global\dimen@i\prevdepth}\prevdepth\dimen@i
      \fi
      \@setabstract
      \normalsize
      \if@titlepage
        \newpage
      \else
        \dimen@34\p@ \advance\dimen@-\baselineskip
        \vskip\dimen@\relax
      \fi
    } % end \@maketitle
    \def\@adminfootnotes{%
      \let\@makefnmark\relax  \let\@thefnmark\relax
      \ifx\@empty\@subjclass\else \@footnotetext{\@setsubjclass}\fi
      \ifx\@empty\@keywords\else \@footnotetext{\@setkeywords}\fi
      \ifx\@empty\thankses\else \@footnotetext{%
        \def\par{\let\par\@par}\@setthanks}%
      \fi
    }
    \AtBeginDocument{%
      \@ifundefined{publname}{%
        \let\publname\@empty
        \let\@serieslogo\@empty
      }{%
        \def\@serieslogo{\procart@logo}%
      }%
    }
    \AtBeginDocument{%
      \@ifundefined{volinfo}{\let\volinfo\@empty}{}
    }
    \def\issueinfo#1#2#3#4{\def\currentvolume{#1}\def\currentissue{#2}%
      \def\currentmonth{#3}\def\currentyear{#4}}
    \issueinfo{00}% volume number
      {0}%        % issue number
      {Xxxx}%     % month
      {XXXX}%     % year
    \newcommand{\copyrightinfo}[2]{%
      \def\copyrightyear{#1}%
      \@ifnotempty{#2}{\def\copyrightholder{#2}}%
    }
    \copyrightinfo{0000}{(copyright holder)}
    \def\pagespan#1#2{\setcounter{page}{#1}%
      \ifnum\c@page<\z@ \pagenumbering{roman}\setcounter{page}{-#1}\fi
      \def\start@page{#1}\def\end@page{#2}}
    \pagespan{000}{000}
    \newinsert\copyins
    \skip\copyins=1.5pc
    \count\copyins=1000 % magnification factor, 1000 = 100%
    \dimen\copyins=.5\textheight % maximum allowed per page
    \g@addto@macro\@reinserts{%
      \ifvoid\copyins\else\insert\copyins{\unvbox\copyins}\fi
    }
    \def\@copyinsfontsize{\fontsize{6}{7\p@}\normalfont\upshape}
    \newif\if@extracrline  \@extracrlinefalse
    \let\@extracrline\@empty
    \relax
    \def\@setcopyright{%
      \ifx\@empty\@serieslogo
      \else\ifx\@empty\copyrightyear
      \else
        \insert\copyins{\hsize\textwidth
          \parfillskip\z@\relax
          \leftskip\z@\@plus.9\textwidth\relax \rightskip\z@\relax
          \@copyinsfontsize
          \everypar{}%
          \vskip-\skip\copyins
          \if@extracrline
            \vskip-6pt
          \fi
          \nointerlineskip
          \leavevmode\hfill\vrule\@width\z@\@height\skip\copyins
          \copyright\copyrightyear\ \copyrightholder\ignorespaces
          \if@extracrline \@extracrline \fi
          \par
          \kern\z@}%
      \fi\fi
    }
    \def\@combinefloats{%
      \ifx \@toplist\@empty \else \@cflt \fi
      \ifx \@botlist\@empty \else \@cflb \fi
      \ifvoid\copyins \else \@cflci \fi
    }
    \def\@cflci{%
      \setbox\@outputbox\vbox{%
        \unvbox\@outputbox
        \vskip\skip\copyins
        \if@twocolumn \else \vskip\z@ plus\p@ \fi
        \hbox to\columnwidth{%
          \hss\vbox to\z@{\vss
            \if@twocolumn
              \if@firstcolumn \else \unvbox\copyins \fi
            \else
              \unvbox\copyins
            \fi
            }}}%
      \if@twocolumn \if@firstcolumn
        \insert\copyins{\unvbox\copyins}%
      \fi\fi
      \global\count\copyins=999 \relax
    }
    \newcommand{\abstractname}{Abstract}
    \newcommand{\keywordsname}{Key words and phrases}
    \@namedef{subjclassname@1991}{%
      \textup{1991} Mathematics Subject Classification}
    \@namedef{subjclassname@2000}{%
      \textup{2000} Mathematics Subject Classification}
    \@namedef{subjclassname@2010}{%
      \textup{2010} Mathematics Subject Classification}
    \@namedef{subjclassname@2020}{%
      \textup{2020} Mathematics Subject Classification}
    \@xp\let\@xp\subjclassname\csname subjclassname@2020\endcsname
    \def\@tempb{amsproc}
    \ifx\@classname\@tempb
      \newcommand{\datename}{\textit{Date}:}
    \else
      \newcommand{\datename}{Received by the editors}
    \fi
    \def\@settitle{\begin{center}%
     \Large
        \bfseries
      \@title
      \end{center}%
    }
    \def\author@andify{%
      \nxandlist {\unskip ,\penalty-1 \space\ignorespaces}%
        {\unskip {} \@@and~}%
        {\unskip ,\penalty-2 \space \@@and~}%
    }
    \def\@setauthors{%
      \begingroup
      \def\thanks{\protect\thanks@warning}%
      \trivlist
      \centering \fontsize{11}{13\p@}\selectfont\@topsep13\p@\relax
      \item\relax
      \author@andify\authors
      \def\\{\protect\linebreak}%
      \authors
      \ifx\@empty\contribs
      \else
        ,\penalty-3 \space \@setcontribs
        \@closetoccontribs
      \fi
      \endtrivlist
      \endgroup
    }
    \def\@closetoccontribs{}
    \def\@setcontribs{%
      \@xcontribs
      \xcontribs
    }
    \def\@setdate{\datename\ \@date\@addpunct.}
    \def\@setsubjclass{%
      {\itshape\subjclassname.}\enspace\@subjclass\@addpunct.}
    \def\@setkeywords{%
      {\itshape \keywordsname.}\enspace \@keywords\@addpunct.}
    \def\@setthanks{\def\thanks##1{\par##1\@addpunct.}\thankses}
    \newbox\abstractbox
    \newenvironment{abstract}{%
      \ifx\maketitle\relax
        \ClassWarning{\@classname}{Abstract should precede
          \protect\maketitle\space in AMS document classes; reported}%
      \fi
      \global\setbox\abstractbox=\vtop \bgroup
        \normalfont\Small
        \list{}{\labelwidth\z@
          \leftmargin3pc \rightmargin\leftmargin
          \listparindent\normalparindent \itemindent\z@
          \parsep\z@ \@plus\p@
          \let\fullwidthdisplay\relax
        }%
        \item[\hskip\labelsep\scshape\abstractname.]%
    }{%
      \endlist\egroup
      \ifx\@setabstract\relax \@setabstracta \fi
    }
    \def\@setabstract{\@setabstracta \global\let\@setabstract\relax}
    \def\@setabstracta{%
      \ifvoid\abstractbox
      \else
        \skip@20\p@ \advance\skip@-\lastskip
        \advance\skip@-\baselineskip \vskip\skip@
        \box\abstractbox
        \prevdepth\z@ % because \abstractbox is a vtop
      \fi
    }
    \def\titlepage{%
      \clearpage
      \thispagestyle{empty}\setcounter{page}{0}}
    \def\endtitlepage{\newpage}
    \def\labelenumi{(\theenumi)}
    \def\theenumi{\@arabic\c@enumi}
    \def\labelenumii{(\theenumii)}
    \def\theenumii{\@alph\c@enumii}
    \def\p@enumii{\theenumi}
    \def\labelenumiii{(\theenumiii)}
    \def\theenumiii{\@roman\c@enumiii}
    \def\p@enumiii{\theenumi(\theenumii)}
    \def\labelenumiv{(\theenumiv)}
    \def\theenumiv{\@Alph\c@enumiv}
    \def\p@enumiv{\p@enumiii\theenumiii}
    \def\labelitemi{$\m@th\bullet$}
    \def\labelitemii{\bfseries --}% \upshape already done by \itemize
    \def\labelitemiii{$\m@th\ast$}
    \def\labelitemiv{$\m@th\cdot$}
    \newenvironment{verse}{\let\\\@centercr
      \list{}{\itemsep\z@ \itemindent -1.5em\listparindent\itemindent
      \rightmargin\leftmargin \advance\leftmargin 1.5em}\item[]%
    }{%
      \endlist
    }
    \let\endverse=\endlist % for efficiency
    \newenvironment{quotation}{\list{}{%
        \leftmargin3pc \listparindent\normalparindent
        \itemindent\z@
        \rightmargin\leftmargin \parsep\z@ \@plus\p@}%
      \item[]%
    }{%
      \endlist
    }
    \let\endquotation=\endlist % for efficiency
    \newenvironment{quote}{%
      \list{}{\rightmargin\leftmargin}\item[]%
    }{%
      \endlist
    }
    \let\endquote=\endlist % for efficiency
    \def\trivlist{\parsep\parskip\@nmbrlistfalse
      \@trivlist \labelwidth\z@ \leftmargin\z@
      \itemindent\z@
      \let\@itemlabel\@empty
      \def\makelabel##1{\upshape##1}}
    \renewenvironment{enumerate}{%
      \ifnum \@enumdepth >3 \@toodeep\else
          \advance\@enumdepth \@ne
          \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list
          {\csname label\@enumctr\endcsname}{\usecounter
            {\@enumctr}\def\makelabel##1{\hss\llap{\upshape##1}}}\fi
    }{%
      \endlist
    }
    \let\endenumerate=\endlist % for efficiency
    \renewenvironment{itemize}{%
      \ifnum\@itemdepth>3 \@toodeep
      \else \advance\@itemdepth\@ne
        \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
        \list{\csname\@itemitem\endcsname}%
          {\def\makelabel##1{\hss\llap{\upshape##1}}}%
      \fi
    }{%
      \endlist
    }
    \let\enditemize=\endlist % for efficiency
    \newcommand{\descriptionlabel}[1]{\hspace\labelsep \upshape\bfseries #1:}
    \newenvironment{description}{\list{}{%
      \advance\leftmargini6\p@ \itemindent-12\p@
      \labelwidth\z@ \let\makelabel\descriptionlabel}%
    }{
      \endlist
    }
    \let\enddescription=\endlist % for efficiency
    \let\upn=\textup
    \AtBeginDocument{%
      \labelsep=5pt\relax
      \setcounter{enumi}{13}\setcounter{enumii}{13}%
      \setcounter{enumiii}{13}\setcounter{enumiv}{13}%
      \settowidth\leftmargini{\labelenumi\hskip\labelsep}%
      \advance\leftmargini by \normalparindent
      \settowidth\leftmarginii{\labelenumii\hskip\labelsep}%
      \settowidth\leftmarginiii{\labelenumiii\hskip\labelsep}%
      \settowidth\leftmarginiv{\labelenumiv\hskip\labelsep}%
      \setcounter{enumi}{0}\setcounter{enumii}{0}%
      \setcounter{enumiii}{0}\setcounter{enumiv}{0}%
      \leftmarginv=10pt  \leftmarginvi=\leftmarginv
      \leftmargin=\leftmargini
      \labelwidth=\leftmargini \advance\labelwidth-\labelsep
      \@listi}
    \newskip\listisep
    \listisep\smallskipamount
    \def\@listI{\leftmargin\leftmargini \parsep\z@skip
      \topsep\listisep \itemsep\z@skip
      \listparindent\normalparindent}
    \let\@listi\@listI
    \def\@listii{\leftmargin\leftmarginii
      \labelwidth\leftmarginii \advance\labelwidth-\labelsep
      \topsep\z@skip \parsep\z@skip \partopsep\z@skip \itemsep\z@skip}
    \def\@listiii{\leftmargin\leftmarginiii
      \labelwidth\leftmarginiii \advance\labelwidth-\labelsep}
    \def\@listiv{\leftmargin\leftmarginiv
      \labelwidth\leftmarginiv \advance\labelwidth-\labelsep}
    \def\@listv{\leftmargin\leftmarginv
      \labelwidth\leftmarginv \advance\labelwidth-\labelsep}
    \def\@listvi{\leftmargin\leftmarginvi
      \labelwidth\leftmarginvi \advance\labelwidth-\labelsep}
    \@ifclasswith{\@classname}{fleqn}{%
      \let\@tempa\@iden
      \AtBeginDocument{\mathindent\leftmargini}%
    }{\let\@tempa\@gobble}%
    \@ifpackageloaded{amsmath}{\let\@tempa\@gobble}{%
      \@ifpackageloaded{amstex}{\let\@tempa\@gobble}{}%
    }
    \@tempa{%
      \def\[{\relax
        \ifmmode\@badmath
        \else
          \begin{trivlist}%
          \@beginparpenalty\predisplaypenalty
          \@endparpenalty\postdisplaypenalty
          \item[]\leavevmode
          \hbox to\linewidth\bgroup$\displaystyle
          \hskip\mathindent\bgroup
        \fi}%
      \def\]{\relax
        \ifmmode
          \egroup \m@th$\hfil \egroup
          \end{trivlist}%
        \else \@badmath
        \fi}%
      \renewenvironment{equation}{%
        \@beginparpenalty\predisplaypenalty
        \@endparpenalty\postdisplaypenalty
        \refstepcounter{equation}%
        \@topsep\abovedisplayskip \trivlist
        \item[]\leavevmode
        \hbox to\linewidth\bgroup\hskip\mathindent$\displaystyle
      }{%
        \m@th$\hfil \displaywidth\linewidth \hbox{\@eqnnum}\egroup
        \endtrivlist
      }%
      \renewenvironment{eqnarray}{%
        \stepcounter{equation}\let\@currentlabel\theequation
        \global\@eqnswtrue \global\@eqcnt\z@ \tabskip\mathindent
        \let\\=\@eqncr \abovedisplayskip\topsep
        \ifvmode \advance\abovedisplayskip\partopsep \fi
        \belowdisplayskip\abovedisplayskip
        \belowdisplayshortskip\abovedisplayskip
        \abovedisplayshortskip\abovedisplayskip
        $$\everycr{}\halign to\linewidth\bgroup
          \hskip\@centering
          $\displaystyle\tabskip\z@skip####\m@th$&%
          \@eqnsel \global\@eqcnt\@ne
          \hfil${}####{}\m@th$\hfil&%
          \global\@eqcnt\tw@
          $\displaystyle ####\m@th$\hfil\tabskip\@centering&%
          \global\@eqcnt\thr@@
          \hbox to \z@\bgroup\hss####\egroup\tabskip\z@skip\cr
        }{%
          \@@eqncr \egroup \global\advance\c@equation\m@ne$$%
          \global\@ignoretrue
        }%
      \newdimen\mathindent
      \mathindent\leftmargini
    }
    \def\@startsection#1#2#3#4#5#6{%
     \if@noskipsec \leavevmode \fi
     \par \@tempskipa #4\relax
     \@afterindenttrue
     \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi
     \if@nobreak \everypar{}\else
         \addpenalty\@secpenalty\addvspace\@tempskipa\fi
     \@ifstar{\@dblarg{\@sect{#1}{\@m}{#3}{#4}{#5}{#6}}}%
             {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
    }
    \def\@seccntformat#1{%
      \protect\textup{\protect\@secnumfont
        \csname the#1\endcsname
        \protect\@secnumpunct
      }%
    }
    \let\@secnumfont\@empty
    \def\@sect#1#2#3#4#5#6[#7]#8{%
      \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}%
      \ifnum #2>\c@secnumdepth \let\@secnumber\@empty
      \else \@xp\let\@xp\@secnumber\csname the#1\endcsname\fi
      \@tempskipa #5\relax
      \ifnum #2>\c@secnumdepth
        \let\@svsec\@empty
      \else
        \refstepcounter{#1}%
        \edef\@secnumpunct{%
          \ifdim\@tempskipa>\z@ % not a run-in section heading
            \@ifnotempty{#8}{.\@nx\enspace}%
          \else
            \@ifempty{#8}{.}{.\@nx\enspace}%
          \fi
        }%
        \protected@edef\@svsec{%
          \ifnum#2<\@m
            \@ifundefined{#1name}{}{%
              \ignorespaces\csname #1name\endcsname\space
            }%
          \fi
          \@seccntformat{#1}%
        }%
      \fi
      \ifdim \@tempskipa>\z@ % then this is not a run-in section heading
        \begingroup #6\relax
        \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty\@M #8\par}%
        \endgroup
        \ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi
      \else
      \def\@svsechd{#6\hskip #3\@svsec
        \@ifnotempty{#8}{\ignorespaces#8\unskip
           \@addpunct.}%
        \ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi
      }%
      \fi
      \global\@nobreaktrue
      \@xsect{#5}}
    \let\@ssect\relax
    \newcounter{part}
    \newcounter{section}
    \newcounter{subsection}[section]
    \newcounter{subsubsection}[subsection]
    \newcounter{paragraph}[subsubsection]
    \newcounter{subparagraph}[paragraph]
    \renewcommand\thepart          {\arabic{part}}
    \renewcommand\thesection       {\arabic{section}}
    \renewcommand\thesubsection    {\thesection.\arabic{subsection}}
    \renewcommand\thesubsubsection {\thesubsection .\arabic{subsubsection}}
    \renewcommand\theparagraph     {\thesubsubsection.\arabic{paragraph}}
    \renewcommand\thesubparagraph  {\theparagraph.\arabic{subparagraph}}
    \setcounter{secnumdepth}{3}
    \def\partname{Part}
    \def\part{\@startsection{part}{0}%
      \z@{\linespacing\@plus\linespacing}{.5\linespacing}%
      {\normalfont\bfseries\raggedright}}
    \def\specialsection{\@startsection{section}{1}%
      \z@{2\linespacing\@plus\linespacing}{.5\linespacing}%
      {\large\scshape\centering}}
    \def\section{\@startsection{section}{1}%
      \z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
      {\normalfont\bfseries\centering}}
    \def\subsection{\@startsection{subsection}{2}%
      \normalparindent{.5\linespacing\@plus.7\linespacing}{-.5em}%
      {\normalfont\bfseries}}
    \def\subsubsection{\@startsection{subsubsection}{3}%
      \normalparindent\z@{-.5em}%
      {\normalfont\itshape}}
    \def\paragraph{\@startsection{paragraph}{4}%
      \normalparindent\z@{-\fontdimen2\font}%
      \normalfont}
    \def\subparagraph{\@startsection{subparagraph}{5}%
      \z@\z@{-\fontdimen2\font}%
      \normalfont}
    \def\appendix{\par\c@section\z@ \c@subsection\z@
       \let\sectionname\appendixname
       \def\thesection{\@Alph\c@section}}
    \def\appendixname{Appendix}
    \def\@Roman#1{\@xp\@slowromancap
      \romannumeral#1@}%
    \def\@slowromancap#1{\ifx @#1% then terminate
      \else
        \if i#1I\else\if v#1V\else\if x#1X\else\if l#1L\else\if
        c#1C\else\if m#1M\else#1\fi\fi\fi\fi\fi\fi
        \@xp\@slowromancap
      \fi
    }
    \def\aufm#1{\par\vspace*{12pt}{\flushright #1\par}}
    \newcommand{\@pnumwidth}{1.6em}
    \newcommand{\@tocrmarg}{2.6em}
    \setcounter{tocdepth}{1}
    \newswitch{toc}
    \newswitch{lof}
    \newswitch{lot}
    \newcommand\contentsnamefont{\scshape}
    \def\@starttoc#1#2{\begingroup
      \setTrue{#1}%
      \par\removelastskip\vskip\z@skip
      \@startsection{}\@M\z@{\linespacing\@plus\linespacing}%
        {.5\linespacing}{\centering\contentsnamefont}{#2}%
      \ifx\contentsname#2%
      \else \addcontentsline{toc}{section}{#2}\fi
      \makeatletter
      \@input{\jobname.#1}%
      \if@filesw
        \@xp\newwrite\csname tf@#1\endcsname
        \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
      \fi
      \global\@nobreakfalse \endgroup
      \addvspace{32\p@\@plus14\p@}%
      \let\tableofcontents\relax
    }
    \def\contentsname{Contents}
    \def\listfigurename{List of Figures}
    \def\listtablename{List of Tables}
    \def\tableofcontents{%
      \@starttoc{toc}\contentsname
    }
    \def\listoffigures{\@starttoc{lof}\listfigurename}
    \def\listoftables{\@starttoc{lot}\listtablename}
    \AtBeginDocument{%
      \@for\@tempa:=-1,0,1,2,3\do{%
        \@ifundefined{r@tocindent\@tempa}{%
          \@xp\gdef\csname r@tocindent\@tempa\endcsname{0pt}}{}%
      }%
    }
    \def\@writetocindents{%
      \begingroup
      \@for\@tempa:=-1,0,1,2,3\do{%
        \immediate\write\@auxout{%
          \string\newlabel{tocindent\@tempa}{%
            \csname r@tocindent\@tempa\endcsname}}%
      }%
      \endgroup}
    \AtEndDocument{\@writetocindents}
    
    \let\indentlabel\@empty
    \def\@tochangmeasure#1{\sbox\z@{#1}%
      \ifdim\wd\z@>\csname r@tocindent\@toclevel\endcsname\relax
        \@xp\xdef\csname r@tocindent\@toclevel\endcsname{\the\wd\z@}%
      \fi
    }
    \def\@toclevel{0}
    \def\@tocline#1#2#3#4#5#6#7{\relax
      \ifnum #1>\c@tocdepth % then omit
      \else
        \par \addpenalty\@secpenalty\addvspace{#2}%
        \begingroup \hyphenpenalty\@M
        \@ifempty{#4}{%
          \@tempdima\csname r@tocindent\number#1\endcsname\relax
        }{%
          \@tempdima#4\relax
        }%
        \parindent\z@ \leftskip#3\relax \advance\leftskip\@tempdima\relax
        \rightskip\@pnumwidth plus4em \parfillskip-\@pnumwidth
        #5\leavevmode\hskip-\@tempdima #6\nobreak\relax
        \hfil\hbox to\@pnumwidth{\@tocpagenum{#7}}\par
        \nobreak
        \endgroup
      \fi}
    \def\@tocpagenum#1{\hss{\mdseries #1}}
    \def\@tocwrite#1{\@xp\@tocwriteb\csname toc#1\endcsname{#1}}
    \def\@tocwriteb#1#2#3{%
      \begingroup
        \def\@tocline##1##2##3##4##5##6{%
          \ifnum##1>\c@tocdepth
          \else \sbox\z@{##5\let\indentlabel\@tochangmeasure##6}\fi}%
        \csname l@#2\endcsname{#1{\csname#2name\endcsname}{\@secnumber}{}}%
      \endgroup
      \addcontentsline{toc}{#2}%
        {\protect#1{\csname#2name\endcsname}{\@secnumber}{#3}}}
    \def\l@section{\@tocline{1}{0pt}{1pc}{}{}}
    \newcommand{\tocsection}[3]{%
      \indentlabel{\@ifnotempty{#2}{\ignorespaces#1 #2.\quad}}#3}
    \def\l@subsection{\@tocline{2}{0pt}{1pc}{5pc}{}}
    \let\tocsubsection\tocsection
    \def\l@subsubsection{\@tocline{3}{0pt}{1pc}{7pc}{}}
    \let\tocsubsubsection\tocsection
    \let\l@paragraph\l@subsubsection
    \let\tocparagraph\tocsection
    \let\l@subparagraph\l@subsubsection
    \let\tocsubparagraph\tocsection
    \def\l@part{\@tocline{-1}{12pt plus2pt}{0pt}{}{\bfseries}}
    \let\tocpart\tocsection
    \def\l@chapter{\@tocline{0}{8pt plus1pt}{0pt}{}{}}
    \let\tocchapter\tocsection
    \newcommand{\tocappendix}[3]{%
      \indentlabel{#1\@ifnotempty{#2}{ #2}.\quad}#3}
    \def\l@figure{\@tocline{0}{3pt plus2pt}{0pt}{1.5pc}{}}
    \let\l@table=\l@figure
    \def\refname{References}
    \def\bibname{Bibliography}
    \def\@defaultbiblabelstyle#1{#1.}
    \def\bibliographystyle#1{%
        \if@filesw\immediate\write\@auxout{\string\bibstyle{#1}}\fi
        \def\@tempa{#1}%
        \def\@tempb{amsplain}%
        \def\@tempc{}%
        \ifx\@tempa\@tempb
            \def\@biblabel##1{\@defaultbiblabelstyle{##1}}%
            \def\bibsetup{}%
        \else
            \def\bibsetup{\labelsep6\p@}%
            \ifx\@tempa\@tempc
                \def\@biblabel##1{}%
                \def\bibsetup{\labelwidth\z@ \leftmargin24\p@
                    \itemindent-\leftmargin
                    \labelsep\z@ }%
            \fi
        \fi}
    \newcommand{\bibliofont}{\footnotesize}
    \newcommand{\@bibtitlestyle}{%
      \@xp\section\@xp*\@xp{\refname}%
    }
    \newenvironment{thebibliography}[1]{%
      \@bibtitlestyle
      \normalfont\bibliofont\labelsep .5em\relax
      \renewcommand\theenumiv{\arabic{enumiv}}\let\p@enumiv\@empty
      \list{\@biblabel{\theenumiv}}{\settowidth\labelwidth{\@biblabel{#1}}%
        \leftmargin\labelwidth \advance\leftmargin\labelsep
        \usecounter{enumiv}}%
      \sloppy \clubpenalty\@M \widowpenalty\clubpenalty
      \sfcode`\.=\@m
    }{%
      \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
      \endlist
    }
    \def\bysame{\leavevmode\hbox to3em{\hrulefill}\thinspace}
    \def\newblock{}
    \newcommand\MR[1]{\relax\ifhmode\unskip\spacefactor3000 \space\fi
      MR~\MRhref{#1}{#1}}
    \let\MRhref\@gobble
    \newcommand\URL{\begingroup
      \def\@sverb##1{%
        \def\@tempa####1##1{\@URL{####1}\egroup\endgroup}%
        \@tempa}%
      \verb}
    \let\URLhref\@gobble
    \def\@URL#1{\URLhref{#1}#1}
    \newif\i
  • references.bib214 B
    @article{example2024,
      title   = {An example reference},
      author  = {Doe, Jane and Smith, John},
      journal = {Bull. Amer. Math. Soc.},
      volume  = {61},
      number  = {1},
      pages   = {1--42},
      year    = {2024}
    }
    
  • main.pdfprebuilt · 103 KBReplaced by the first recompile.

    Binary file, seeded as-is.

  • main.synctex.gzprebuilt · 2.7 KBReplaced by the first recompile.

    Binary file, seeded as-is.