File: //usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty
%%
%% This is file `amsthm.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% amsclass.dtx (with options: `amsthm')
%% 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
\ProvidesPackage{amsthm}[2020/05/29 v2.20.6]
\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 }
\DeclareOption*{\input{\CurrentOption .thm}}
\ProcessOptions
\newcommand{\theoremstyle}[1]{%
\@ifundefined{th@#1}{%
\PackageWarning{amsthm}{Unknown theoremstyle `#1'}%
\thm@style{plain}%
}{%
\thm@style{#1}%
}%
}
\newtoks\thm@style
\thm@style{plain}
\newtoks\thm@bodyfont \thm@bodyfont{\itshape}
\newtoks\thm@headfont \thm@headfont{\bfseries}
\newtoks\thm@notefont \thm@notefont{}
\newtoks\thm@headpunct \thm@headpunct{.}
\newskip\thm@preskip \newskip\thm@postskip
\def\thm@space@setup{%
\thm@preskip=\topsep \thm@postskip=\thm@preskip
}
\renewcommand{\newtheorem}{\@ifstar{\@xnthm *}{\@xnthm \relax}}
\def\@xnthm#1#2{%
\let\@tempa\relax
\@xp\@ifdefinable\csname #2\endcsname{%
\global\@xp\let\csname end#2\endcsname\@endtheorem
\ifx *#1% unnumbered, need to get one more mandatory arg
\edef\@tempa##1{%
\gdef\@xp\@nx\csname#2\endcsname{%
\@nx\@thm{\@xp\@nx\csname th@\the\thm@style\endcsname}%
{}{##1}}}%
\else % numbered theorem, need to check for optional arg
\def\@tempa{\@oparg{\@ynthm{#2}}[]}%
\fi
}%
\@tempa
}
\def\@ynthm#1[#2]#3{%
\ifx\relax#2\relax
\def\@tempa{\@oparg{\@xthm{#1}{#3}}[]}%
\else
\@ifundefined{c@#2}{%
\def\@tempa{\@nocounterr{#2}}%
}{%
\@xp\xdef\csname the#1\endcsname{\@xp\@nx\csname the#2\endcsname}%
\toks@{#3}%
\@xp\xdef\csname#1\endcsname{%
\@nx\@thm{%
\let\@nx\thm@swap
\if S\thm@swap\@nx\@firstoftwo\else\@nx\@gobble\fi
\@xp\@nx\csname th@\the\thm@style\endcsname}%
{#2}{\the\toks@}}%
\let\@tempa\relax
}%
\fi
\@tempa
}
\def\@xthm#1#2[#3]{%
\ifx\relax#3\relax
\newcounter{#1}%
\else
\newcounter{#1}[#3]%
\@xp\xdef\csname the#1\endcsname{\@xp\@nx\csname the#3\endcsname
\@thmcountersep\@thmcounter{#1}}%
\fi
\toks@{#2}%
\@xp\xdef\csname#1\endcsname{%
\@nx\@thm{%
\let\@nx\thm@swap
\if S\thm@swap\@nx\@firstoftwo\else\@nx\@gobble\fi
\@xp\@nx\csname th@\the\thm@style\endcsname}%
{#1}{\the\toks@}}%
}
\def\@thm#1#2#3{%
\ifhmode\unskip\unskip\par\fi
\normalfont
\trivlist
\let\thmheadnl\relax
\let\thm@swap\@gobble
\thm@notefont{\fontseries\mddefault\upshape}%
\thm@headpunct{.}% add period after heading
\thm@headsep 5\p@ plus\p@ minus\p@\relax
\thm@space@setup
#1% style overrides
\@topsep \thm@preskip % used by thm head
\@topsepadd \thm@postskip % used by \@endparenv
\def\@tempa{#2}\ifx\@empty\@tempa
\def\@tempa{\@oparg{\@begintheorem{#3}{}}[]}%
\else
\refstepcounter{#2}%
\def\@tempa{\@oparg{\@begintheorem{#3}{\csname the#2\endcsname}}[]}%
\fi
\@tempa
}
\def\@restorelabelsep{\relax}
\let\@ythm\relax
\let\thmname\@iden \let\thmnote\@iden \let\thmnumber\@iden
\providecommand\@upn{\textup}
\def\thmhead@plain#1#2#3{%
\thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}%
\thmnote{ {\the\thm@notefont(#3)}}}
\let\thmhead\thmhead@plain
\def\swappedhead#1#2#3{%
\thmnumber{#2}%
\thmname{\@ifnotempty{#2}{~}#1}%
\thmnote{ {\the\thm@notefont(#3)}}}
\let\swappedhead@plain=\swappedhead
\let\thmheadnl\relax
\let\thm@indent\noindent
\let\thm@swap\@gobble
\def\@begintheorem#1#2[#3]{%
\deferred@thm@head{\the\thm@headfont \thm@indent
\@ifempty{#1}{\let\thmname\@gobble}{\let\thmname\@iden}%
\@ifempty{#2}{\let\thmnumber\@gobble}{\let\thmnumber\@iden}%
\@ifempty{#3}{\let\thmnote\@gobble}{\let\thmnote\@iden}%
\thm@swap\swappedhead\thmhead{#1}{#2}{#3}%
\the\thm@headpunct
\thmheadnl % possibly a newline.
\hskip\thm@headsep
}%
\ignorespaces}
\newskip\thm@headsep
\thm@headsep=5pt plus1pt minus1pt\relax
\let\adjust@parskip@nobreak=\@nbitem
\newtoks\dth@everypar
\dth@everypar={%
\@minipagefalse \global\@newlistfalse
\@noparitemfalse
\if@inlabel
\global\@inlabelfalse
\begingroup \setbox\z@\lastbox
\ifvoid\z@ \kern-\itemindent \fi
\endgroup
\unhbox\@labels
\fi
\if@nobreak \@nobreakfalse \clubpenalty\@M
\else \clubpenalty\@clubpenalty \everypar{}%
\fi
}%
\def\deferred@thm@head#1{%
\if@inlabel \indent \par \fi % eject a section head if one is pending
\if@nobreak
\adjust@parskip@nobreak
\else
\addpenalty\@beginparpenalty
\addvspace\@topsep
\addvspace{-\parskip}%
\fi
\global\@inlabeltrue
\everypar\dth@everypar
\sbox\@labels{\normalfont#1}%
\ignorespaces
}
\def\nonslanted{\relax
\@xp\let\@xp\@tempa\csname\f@shape shape\endcsname
\ifx\@tempa\itshape\upshape
\else\ifx\@tempa\slshape\upshape\fi\fi}
\def\swapnumbers{\edef\thm@swap{\if S\thm@swap N\else S\fi}}
\def\thm@swap{N}%
\let\@opargbegintheorem\relax
\def\th@plain{%
%% \let\thm@indent\noindent % no indent
%% \thm@headfont{\bfseries}% heading font is bold
%% \thm@notefont{}% same as heading font
%% \thm@headpunct{.}% add period after heading
%% \let\thm@swap\@gobble
%% \thm@preskip\topsep
%% \thm@postskip\theorempreskipamount
\itshape % body font
}
\def\th@definition{%
\normalfont % body font
}
\def\th@remark{%
\thm@headfont{\itshape}%
\normalfont % body font
\thm@preskip\topsep \divide\thm@preskip\tw@
\thm@postskip\thm@preskip
}
\def\@endtheorem{\endtrivlist\@endpefalse }
\newcommand{\newtheoremstyle}[9]{%
\@ifempty{#5}{\dimen@\z@skip}{\dimen@#5\relax}%
\ifdim\dimen@=\z@
\toks@{#4\let\thm@indent\noindent}%
\else
\toks@{#4\def\thm@indent{\noindent\hbox to#5{}}}%
\fi
\def\@tempa{#8}\ifx\space\@tempa
\toks@\@xp{\the\toks@ \thm@headsep\fontdimen\tw@\font\relax}%
\else
\def\@tempb{\newline}%
\ifx\@tempb\@tempa
\toks@\@xp{\the\toks@ \thm@headsep\z@skip
\def\thmheadnl{\newline}}%
\else
\toks@\@xp{\the\toks@ \thm@headsep#8\relax}%
\fi
\fi
\begingroup
\thm@space@setup
\@defaultunits\@tempskipa#2\thm@preskip\relax\@nnil
\@defaultunits\@tempskipb#3\thm@postskip\relax\@nnil
\xdef\@gtempa{\thm@preskip\the\@tempskipa
\thm@postskip\the\@tempskipb\relax}%
\endgroup
\@temptokena\@xp{\@gtempa
\thm@headfont{#6}\thm@headpunct{#7}%
}%
\@ifempty{#9}{%
\let\thmhead\thmhead@plain
}{%
\@namedef{thmhead@#1}##1##2##3{#9}%
\@temptokena\@xp{\the\@temptokena
\@xp\let\@xp\thmhead\csname thmhead@#1\endcsname}%
}%
\@xp\xdef\csname th@#1\endcsname{\the\toks@ \the\@temptokena}%
}
\DeclareRobustCommand{\qed}{%
\ifmmode \mathqed
\else
\leavevmode\unskip\penalty9999 \hbox{}\nobreak\hfill
\quad\hbox{\qedsymbol}%
\fi
}
\let\QED@stack\@empty
\let\qed@elt\relax
\newcommand{\pushQED}[1]{%
\toks@{\qed@elt{#1}}\@temptokena\expandafter{\QED@stack}%
\xdef\QED@stack{\the\toks@\the\@temptokena}%
}
\newcommand{\popQED}{%
\begingroup\let\qed@elt\popQED@elt \QED@stack\relax\relax\endgroup
}
\def\popQED@elt#1#2\relax{#1\gdef\QED@stack{#2}}
\newcommand{\qedhere}{%
\begingroup \let\mathqed\math@qedhere
\let\qed@elt\setQED@elt \QED@stack\relax\relax \endgroup
}
\newif\ifmeasuring@
\newif\iffirstchoice@ \firstchoice@true
\def\setQED@elt#1#2\relax{%
\ifmeasuring@
\else \iffirstchoice@ \gdef\QED@stack{\qed@elt{}#2}\fi
\fi
#1%
}
\def\qed@warning{%
\PackageWarning{amsthm}{The \@nx\qedhere command may not work
correctly here}%
}
\newcommand{\mathqed}{\quad\hbox{\qedsymbol}}
\def\linebox@qed{\hfil\hbox{\qedsymbol}\hfilneg}
\@ifpackageloaded{amsmath}{%
\def\math@qedhere{%
\@ifundefined{\@currenvir @qed}{%
\qed@warning\quad\hbox{\qedsymbol}%
}{%
\@xp\aftergroup\csname\@currenvir @qed\endcsname
}%
}
\def\displaymath@qed{%
\relax
\ifmmode
\ifinner \aftergroup\linebox@qed
\else
\eqno
\let\eqno\relax \let\leqno\relax \let\veqno\relax
\hbox{\qedsymbol}%
\fi
\else
\aftergroup\linebox@qed
\fi
}
\@xp\let\csname equation*@qed\endcsname\displaymath@qed
\def\equation@qed{%
\iftagsleft@
\hbox{\phantom{\quad\qedsymbol}}%
\gdef\alt@tag{%
\rlap{\hbox to\displaywidth{\hfil\qedsymbol}}%
\global\let\alt@tag\@empty
}%
\else
\gdef\alt@tag{%
\global\let\alt@tag\@empty
\vtop{\ialign{\hfil####\cr
\tagform@\theequation\cr
\qedsymbol\cr}}%
\setbox\z@
}%
\fi
}
\def\qed@tag{%
\global\tag@true \nonumber
&\omit\setboxz@h {\strut@ \qedsymbol}\tagsleft@false
\place@tag@gather
\kern-\tabskip
\ifst@rred \else \global\@eqnswtrue \fi \global\advance\row@\@ne \cr
}
\def\split@qed{%
\def\endsplit{\crcr\egroup \egroup \ctagsplit@false \rendsplit@
\aftergroup\align@qed
}%
}
\def\align@qed{%
\ifmeasuring@ \tag*{\qedsymbol}%
\else \let\math@cr@@@\qed@tag
\fi
}
\@xp\let\csname align*@qed\endcsname\align@qed
\@xp\let\csname gather*@qed\endcsname\align@qed
%% Needs some patching up for amsmath 1.2
}{% end of amsmath branch, start plain LaTeX branch
\def\math@qedhere{%
\@ifundefined{\@currenvir @qed}{%
\qed@warning \aftergroup\displaymath@qed
}{%
\@xp\aftergroup\csname\@currenvir @qed\endcsname
}%
}
\def\displaymath@qed{%
\relax
\ifmmode
\ifinner \aftergroup\aftergroup\aftergroup\linebox@qed
\else
\eqno \def\@badmath{$$}%
\let\eqno\relax \let\leqno\relax \let\veqno\relax
\hbox{\qedsymbol}%
\fi
\else
\aftergroup\linebox@qed
\fi
}
\@ifundefined{ver@leqno.clo}{%
\def\equation@qed{\displaymath@qed \quad}%
}{%
\def\equation@qed{\displaymath@qed}%
}
\def\@tempa#1$#2#3\@nil#4{%
\def#4{#1$#2\def\@currenvir{displaymath}#3}%
}%
\expandafter\ifx\csname[ \endcsname\relax
\expandafter\@tempa\[\@nil\[%
\else
\expandafter\expandafter\expandafter\@tempa\csname[
\expandafter\endcsname\expandafter\@nil
\csname[ \endcsname
\fi
}
\@ifpackageloaded{amstex}{%
\def\@tempa{TT}%
}{%
\@ifpackageloaded{amsmath}{%
\def\@tempb#1 v#2.#3\@nil{#2}%
\ifnum\@xp\@xp\@xp\@tempb\csname ver@amsmath.sty\endcsname v0.0\@nil
<\tw@
\def\@tempa{TT}%
\else
\def\@tempa{TF}%
\fi
}{%
\def\@tempa{TF}
}%
}
\if\@tempa
\renewcommand{\math@qedhere}{\quad\hbox{\qedsymbol}}%
\fi
\newcommand{\openbox}{\leavevmode
\hbox to.77778em{%
\hfil\vrule
\vbox to.675em{\hrule width.6em\vfil\hrule}%
\vrule\hfil}}
\DeclareRobustCommand{\textsquare}{%
\begingroup \usefont{U}{msa}{m}{n}\thr@@\endgroup
}
\providecommand{\qedsymbol}{\openbox}
\newenvironment{proof}[1][\proofname]{\par
\pushQED{\qed}%
\normalfont \topsep6\p@\@plus6\p@\relax
\trivlist
\item[\hskip\labelsep
\itshape
#1\@addpunct{.}]\ignorespaces
}{%
\popQED\endtrivlist\@endpefalse
}
\providecommand{\proofname}{Proof}
\endinput
%%
%% End of file `amsthm.sty'.