%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% TESTART.TEX						    July 1990      %
%                                                                          %
% This file is part of the AMS-LaTeX Version 1.0 distribution              %
%   American Mathematical Society, Technical Support Group,                %
%   P. O. Box 6248, Providence, RI 02940                                   %
%   800-321-4AMS (321-4267) or 401-455-4080                                %
%   Internet: Tech-Support@Math.AMS.com                                    %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentstyle[draft%
,amscd%
%,syntonly%
%,amssymb%
]{amsart}

\typeout{To run syntax check, enter \string\syntaxonly;}
\typein{otherwise, just press return:}

%% \theoremstyle{plain} %% This is the default
\newtheorem{thm}{Theorem}[section]
\newtheorem{cor}[thm]{Corollary}
\newtheorem{lem}[thm]{Lemma}
\newtheorem{prop}[thm]{Proposition}
\newtheorem{ax}{Axiom}

\theoremstyle{definition}
\newtheorem{defn}{Definition}[section]

\theoremstyle{remark}
\newtheorem{rem}{Remark}[section]
\newtheorem{notation}{Notation}
\renewcommand{\thenotation}{}  % to make the notation environment unnumbered

\numberwithin{equation}{section}

\newcommand{\thmref}[1]{Theorem~\ref{#1}}
\newcommand{\secref}[1]{\S\ref{#1}}
\newcommand{\lemref}[1]{Lemma~\ref{#1}}

\newcommand{\bits}{\{0,1\}}
\newcommand{\A}{{\cal A}}
\newcommand{\B}{{\cal B}}
\newcommand{\st}{\sigma}
\newcommand{\XcY}{{(X,Y)}}
\newcommand{\XgY}{{(X,Y)}}  % preferred form of X given Y.
\newcommand{\SX}{{S_X}}
\newcommand{\SY}{{S_Y}}
\newcommand{\SXY}{{S_{X,Y}}}
\newcommand{\SXgYy}{{S_{X|Y}(y)}}
\newcommand{\maXgYy}{{\mu_{X|Y}(y)}}
\newcommand{\maXgYw}{{\hat\mu_{X|Y}}}
\newcommand{\cG}{{\chi(\G)}}
\newcommand{\Cw}[1]{{\hat C_#1(X|Y)}}
\newcommand{\G}{{G(X|Y)}}
\newcommand{\PX}{{P_\X}}
\newcommand{\PY}{{P_\Y}}
\newcommand{\X}{{\cal X}}
\newcommand{\Y}{{\cal Y}}
\newcommand{\sphixys}{{\st_\phi(x,y)}}      % {{\st(x,y)}}
\newcommand{\LwphiXY}{{\hat L_\phi}}        % {{\hat L_\phi(X,Y)}}
\newcommand{\lphixy}{{l_\phi(x,y)}}
\newcommand{\per}{\operatorname{per}}
\newcommand{\cov}{\operatorname{cov}}
\newcommand{\non}{\operatorname{non}}
\newcommand{\cf}{\operatorname{cf}}
\newcommand{\add}{\operatorname{add}}
\newcommand{\End}{\operatorname{End}}

\input{extradef} % Some extra definitions for particular formatting
%                  needs of this documentation.

\begin{document}

\title[AMSTEX Option Sample Paper]
{Sample Paper for the `AMSTEX' Option\\
and the `AMSART' Documentstyle\\
File name: TESTART.TEX}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% First author
\author{David Belar}
\address{Department of Electrical Engineering\\
        University of Minnesota\\ Minneapolis, Minnesota 55455}
\thanks{Research of the first author was supported in part by NSF grant
CCR-87-10433 and DARPA Contract N00019-89-J-1988}

%% Second author
\author{Lenore Eifrig}
\address{Department of Mathematics\\Indiana University\\
        Bloomington, Indiana 47405}
\thanks{Research of the second author was supported in part by NSF
grant CCR-86-75257 and DARPA Contract N00019-89-J-1988}
\email{eifrig@@bacs} % Note the doubled @@

%% Third author
\author{Shafi N\"a\"at\"anen}
\address{MIT Laboratory for Computer Science \\
        545 Technology Square\\ Cambridge, MA 02139}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\date{October 23, 1991}

\subjclass{Primary 05C38, 15A15; Secondary 05A15, 15A18}

\keywords{$K$-graph, random pair, negligible set, nonatomic ccc order}

\dedicatory{Dedicated to the memory of Parfon Samuelson}

\thanks{This paper is in final form and no version of it will be
submitted for publication elsewhere}

\maketitle

\begin{abstract}
This paper is a sample illustrating  the use of the {\tt amstex}
option in \LaTeX{}, and the American Mathematical Society preprint
documentstyle, {\tt amsart}.
The file used to prepare this sample is {\bf testart.tex}.
\end{abstract}

\tableofcontents

\section{Introduction}
\label{intro}

This paper illustrates the use of the {\tt amsart} documentstyle, as
well as the use of features from the {\tt amstex} option.  It consists
of extracts from published papers,
interspersed with sample \TeX{} coding,
instructions to authors, and comments about the use
of particular commands.

Sections \ref{s:font} and ~\ref{s:comp} are devoted to examples
of the commands described in the \amslatex/ users guide.
Appendix~\ref{s:eq} gives comprehensive examples of the
display environments \env{align}, \env{gather}, \env{split},
\env{multline}, and \env{alignat}.

\subsection{Acknowledgment}
It is a pleasure to thank the referee for his valuable suggestions which
resulted in an improvement of the manuscript.

\section{Top matter instructions}
\label{s:topmatter}

The term `top matter' will be used to mean the title, author, abstract
and other preliminary information.  All such information should be
typed at the beginning of a document, between \verb=\begin{document}=
and \verb=\maketitle=.%
%
\footnote{Actually, as stated in the \LaTeX{} book, the top matter
information can also be typed before
{\tt\char`\\begin\char`\{document\char`\}}; but the placement
recommended here segregrates the information nicely in its own area.}
%
See the examples at the beginning of this paper.
Some of the top matter information will print
in a footnote on the first page, or at the end of the
document, but such placement is done automatically by \LaTeX{}.

\subsection{Title} The \verb=\title= command is used as described in
the \LaTeX{} book, but it has an additional option like sectioning
commands, to specify the text of the running head.  Thus
\begin{verbatim}
\title[The Selberg Trace Formula]
{Some Explicit Cases of the Selberg Trace\\
Formula for Vector-Valued Functions}
\end{verbatim}
would put the text ``The Selberg Trace Formula'' into the running head
on right-hand pages, and the text in curly braces would print as the
full title on the first page.

\subsection{Author}
Like the \verb=\title= command, the \verb=\author= command has a square bracket
option used to specify the left-hand running head.  If there are two or more
authors, the American Mathematical Society practice is to use initials
instead of full first and middle names in the running head.

In addition, in the {\tt amsart} documentstyle, a separate
\verb=\author= command should be used for each author.
This makes it easier to group commands like
\verb=\address= and \verb=\thanks= with the associated
\verb=\author= command.  Cf.~the example top matter section
in this file.

\subsection{Addresses}
Provide an address for each author by using the \verb=\address=
command following the \verb=\author= command.  Note that
no abbreviations are used in addresses.  Electronic mail adresses
should also be given, when applicable, using \verb=\email=.

The addresses should be entered in the same order as the author names
on the title page.  In the {\tt amsart} documentstyle, address
information prints at the end of the paper, following the references.

\subsection{First-page footnotes}
Use \verb=\thanks= for acknowledgments of grant support or other
research support and similar information. This information will print
as a footnote on the first page. If it pertains to only one author out
of two or more, then refer to `first author' or `second author,' as
shown in the examples in this paper.

Papers published in proceedings of conferences are often abstracts or
preliminary versions, and review journals such as {\it Mathematical
Reviews\/} will be more interested in reviewing the final version.  In
such a case, use \verb=\thanks= to produce a first-page footnote
saying ``The final [detailed] version of this paper will be [has been]
submitted for publication elsewhere.''  Proceedings papers that are
to be considered for review by {\it Mathematical Reviews\/} should
include the following statement: ``This paper is in final form and no
version of it will be submitted for publication elsewhere.''

Subject classification numbers (\verb=\subjclass=) are part of the top
matter and will appear as footnotes at the bottom of the first page.
Subject classifications (\verb=\subjclass=) are required for
submissions to the American Mathematical Society.  Use the 1980
Mathematics Subject Classification (1985 Revision) that appears in
annual indexes of {\it Mathematical Reviews\/} beginning in 1984.
(Note: Give a complete five-digit number; the two-digit prefixes from
the Contents are insufficient.)

An optional key words and phrases footnote may be added using
the \verb=\keywords= command.

An abstract should be typed immediately after the \verb=\maketitle=
command, using the standard `abstract' environment.  The heading
``{\sc Abstract.}'' will be added automatically.

\section{Enumeration of Hamiltonian paths in a graph}
Let $\bold A=(a_{ij})$ be the adjacency matrix of
graph $G$.
The corresponding Kirchhoff matrix $\bold K=(k_{ij})$ is obtained from
$\bold A$ by replacing in $-\bold A$ each diagonal entry by the degree of its
corresponding vertex; i.e., the $i$th diagonal entry is identified
with the degree of the $i$th vertex. It is well known that
\begin{equation}
\det\bold K(i|i)=\text{ the number of spanning trees of $G$},
\quad i=1,\dots,n
\end{equation}
where $\bold K(i|i)$ is the $i$th principal submatrix of $\bold K$.
\indexcs{text}%
\begin{verbatim}
\det\bold K(i|i)=\text{ the number of spanning trees of $G$},
\end{verbatim}

Let $C_{i(j)}$ be the set of graphs obtained from $G$ by attaching edge
$(v_iv_j)$ to each spanning tree of $G$. Denote by $C_i=\bigcup_j
C_{i(j)}$. It is obvious that the collection of Hamiltonian cycles is a
subset of $C_i$. Note that the cardinality of $C_i$ is $k_{ii}\det
\bold K(i|i)$. Let $\widehat X=\{\hat x_1,\dots,\hat x_n\}$.
\indexcs{dots}%
\begin{verbatim}
$\widehat X=\{\hat x_1,\dots,\hat x_n\}$
\end{verbatim}
Define multiplication for the elements of $\widehat X$ by
\begin{equation}\label{multdef}
\hat x_i\hat x_j=\hat x_j\hat x_i,\quad \hat x^2_i=0,\quad
i,j=1,\dots,n.
\end{equation}
Let $\hat k_{ij}=k_{ij}\hat x_j$ and $\hat k_{ij}=-\sum_{j\not=i}
\hat k_{ij}$. Then the number of Hamiltonian cycles $H_c$ is given by the
relation \cite{liuchow:formalsum}
\begin{equation}\label{H-cycles}
\biggl(\prod^n_{\,j=1}\hat x_j\biggr)H_c=\frac{1}{2}\hat k_{ij}\det
\widehat{\bold K}(i|i),\qquad i=1,\dots,n.
\end{equation}
The task here is to express \eqref{H-cycles}
in a form free of any $\hat x_i$,
$i=1,\dots,n$. The result also leads to the resolution of enumeration of
Hamiltonian paths in a graph.

It is well known that the enumeration of Hamiltonian cycles and paths in a
complete graph $K_n$ and in a complete bipartite graph $K_{n_1n_2}$
can only be found from {\em first combinatorial principles\/}
\cite{hapa:graphenum}. One wonders
if there exists a formula which can be used very efficiently to produce
$K_n$ and $K_{n_1n_2}$. Recently, using Lagrangian methods, Goulden and
Jackson have shown that $H_c$ can be expressed in terms of the determinant
and permanent of the adjacency matrix \cite{gouja:lagrmeth}.
However, the formula of Goulden
and Jackson determines neither $K_n$ nor $K_{n_1n_2}$ effectively. In this
paper, using an algebraic method, we parametrize the adjacency matrix. The
resulting formula also involves the determinant and permanent, but it can
easily be applied to $K_n$ and $K_{n_1n_2}$. In addition, we eliminate the
permanent from $H_c$ and show that $H_c$ can be represented by a
determinantal function of multivariables, each variable with domain $\{0,1\}$.
Furthermore, we show that $H_c$ can be written by number of spanning trees
of subgraphs. Finally, we apply the formulas to a complete multigraph
$K_{n_1\dots n_p}$.

The conditions $a_{ij}=a_{ji}$, $i,j=1,\dots,n$, are not required in this
paper. All formulas can be extended to a digraph simply by multiplying
$H_c$ by 2.

\section{Main Theorem}
\label{s:mt}

\begin{notation} For $p,q\in P$ and $n\in\omega$ we write
$(q,n)\le(p,n)$ if $q\le p$ and $A_{q,n}=A_{p,n}$.
\index{notation@{\tt notation} environment}%
\begin{verbatim}
\begin{notation} For $p,q\in P$ and $n\in\omega$
...
\end{notation}
\end{verbatim}

We will make liberal use of Cichon's Diagram \cite{fre:cichon}:
\[\begin{CD}
\cov(\cal L) @>>> \non(\cal K) @>>> \cf(\cal K) @>>> \cf(\cal L)\\
@VVV @AAA @AAA @VVV\\
\add(\cal L) @>>> \add(\cal K) @>>> \cov(\cal K) @>>> \non(\cal L)
\end{CD}\]
\index{CD@{\tt CD} environment}%
\begin{verbatim}
\[\begin{CD}
\cov(\cal L) @>>> \non(\cal K) @>>> \cf(\cal K) @>>> \cf(\cal L)\\
@VVV @AAA @AAA @VVV\\
\add(\cal L) @>>> \add(\cal K) @>>> \cov(\cal K) @>>> \non(\cal L)
\end{CD}\]
\end{verbatim}
\end{notation}

Let $\bold B=(b_{ij})$ be an $n\times n$ matrix. Let $\bold n=\{1,
\dots,n\}$. Using the properties of \eqref{multdef}, it is readily seen that
{\samepage
\begin{lem}\label{lem-per}
\begin{equation}
\prod_{i\in\bold n}\biggl(\sum_{\,j\in\bold n}b_{ij}\hat x_i\biggr)=
\biggl(\prod_{\,i\in\bold n}\hat x_i\biggr)\per \bold B
\end{equation}
where $\per \bold B$ is the permanent of $\bold B$.
\end{lem}
}

Let $\widehat Y=\{\hat y_1,\dots,\hat y_n\}$. Define multiplication
for the elements of $\widehat Y$ by
\begin{equation}
\hat y_i\hat y_j+\hat y_j\hat y_i=0,\quad i,j=1,\dots,n.
\end{equation}
Then, it follows that
{\samepage
\begin{lem}\label{lem-det}
\begin{equation}\label{detprod}
\prod_{i\in\bold n}\biggl(\sum_{\,j\in\bold n}b_{ij}\hat y_j\biggr)=
\biggl(\prod_{\,i\in\bold n}\hat y_i\biggr)\det\bold B.
\end{equation}
\end{lem}
}

Note that all basic properties of determinants are direct consequences
of Lemma ~\ref{lem-det}. Write
\begin{equation}\label{sum-bij}
\sum_{j\in\bold n}b_{ij}\hat y_j=\sum_{j\in\bold n}b^{(\lambda)}
_{ij}\hat y_j+(b_{ii}-\lambda_i)\hat y_i\hat y
\end{equation}
where
\begin{equation}
b^{(\lambda)}_{ii}=\lambda_i,\quad b^{(\lambda)}_{ij}=b_{ij},
\quad i\not=j.
\end{equation}
Let $\bold B^{(\lambda)}=(b^{(\lambda)}_{ij})$. By \eqref{detprod}
and \eqref{sum-bij}, it is
straightforward to show the following
result:
\begin{thm}\label{thm-main}
\begin{equation}\label{detB}
\det\bold B=
\sum^n_{l =0}\sum_{I_l \subseteq n}
\prod_{i\in I_l}(b_{ii}-\lambda_i)
\det\bold B^{(\lambda)}(I_l |I_l ),
\end{equation}
where $I_l =\{i_1,\dots,i_l \}$ and $\bold B^{(\lambda)}(I_l |I_l )$
is the principal submatrix obtained from $\bold B^{(\lambda)}$
by deleting its $i_1,\dots,i_l $ rows and columns.
\end{thm}

\begin{rem}
Let $\bold M$ be an $n\times n$ matrix. The convention
$\bold M(\bold n|\bold n)=1$ has been used in \eqref{detB} and hereafter.
\end{rem}

Before proceeding with our discussion, we pause to note that
\thmref{thm-main} yields immediately a fundamental formula which can be
used to compute the coefficients of a characteristic polynomial
\cite{mami:matrixth}:
{\samepage
\begin{cor}\label{BI}
Write $\det(\bold B-x\bold I)=\sum^n_{l =0}(-1)
^l b_l x^l $. Then
\begin{equation}\label{bl-sum}
b_l =\sum_{I_l \subseteq\bold n}\det\bold B(I_l |I_l ).
\end{equation}
\end{cor}
}
Let
\begin{equation}
\bold K(t,t_1,\dots,t_n)=\begin{pmatrix} D_1t&-a_{12}t_2&\dots&-a_{1n}t_n\\
-a_{21}t_1&D_2t&\dots&-a_{2n}t_n\\
\hdotsfor[2]{4}\\
-a_{n1}t_1&-a_{n2}t_2&\dots&D_nt\end{pmatrix},
\end{equation}
\index{pmatrix@{\tt pmatrix} environment}%
\indexcs{hdotsfor}%
\begin{verbatim}
\begin{pmatrix} D_1t&-a_{12}t_2&\dots&-a_{1n}t_n\\
-a_{21}t_1&D_2t&\dots&-a_{2n}t_n\\
\hdotsfor[2]{4}\\
-a_{n1}t_1&-a_{n2}t_2&\dots&D_nt\end{pmatrix}
\end{verbatim}
where
\begin{equation}
D_i=\sum_{j\in\bold n}a_{ij}t_j,\quad i=1,\dots,n.
\end{equation}

Set
\begin{equation*}
D(t_1,\dots,t_n)=\frac{\delta}{\delta t}\det\bold K(t,t_1,\dots,t_n)
|_{t=1}.
\end{equation*}
Then
\begin{equation}\label{sum-Di}
D(t_1,\dots,t_n)=\sum_{i\in\bold n}D_i\det\bold K(t=1,t_1,\dots,t_n;
i|i),
\end{equation}
where $\bold K(t=1,t_1,\dots,t_n; i|i)$ is the $i$th principal
submatrix of $\bold K(t=1,t_1,\dots,t_n)$.

Theorem ~\ref{thm-main} leads to
\begin{equation}\label{detK1}
\det\bold K(t_1,t_1,\dots,t_n)=\sum_{I\in\bold n}(-1)^{|I|}t^{n-|I|}
\prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\bold A
^{(\lambda t)}(\overline{I}|\overline I).
\end{equation}
Note that
\begin{equation}\label{detK2}
\det\bold K(t=1,t_1,\dots,t_n)=\sum_{I\in\bold n}(-1)^{|I|}
\prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\bold A
^{(\lambda)}(\overline{I}|\overline{I})=0.
\end{equation}

Let $t_i=\hat x_i,i=1,\dots,n$. Lemma ~\ref{lem-per} yields
\begin{multline}
\biggl(\sum_{\,i\in\bold n}a_{l _i}x_i\biggr)
\det\bold K(t=1,x_1,\dots,x_n;l |l )\\
=\biggl(\prod_{\,i\in\bold n}\hat x_i\biggr)
\sum_{I\subseteq\bold n-\{l \}}
(-1)^{|I|}\per\bold A^{(\lambda)}(I|I)\det\bold A^{(\lambda)}
(\overline I\cup\{l \}|\overline I\cup\{l \}).
\label{sum-ali}
\end{multline}
\index{multline@{\tt multline} environment}%
\begin{verbatim}
\begin{multline}
\biggl(\sum_{\,i\in\bold n}a_{l _i}x_i\biggr)
\det\bold K(t=1,x_1,\dots,x_n;l |l )\\
=\biggl(\prod_{\,i\in\bold n}\hat x_i\biggr)
\sum_{I\subseteq\bold n-\{l \}}
(-1)^{|I|}\per\bold A^{(\lambda)}(I|I)\det\bold A^{(\lambda)}
(\overline I\cup\{l \}|\overline I\cup\{l \}).
\label{sum-ali}
\end{multline}
\end{verbatim}

By \eqref{H-cycles}, \eqref{detprod}, and \eqref{sum-bij}, we have
\begin{prop}\label{prop:eg}
\begin{equation}
H_c=\frac1{2n}\sum^n_{l =0}(-1)^{l}
D_{l},
\end{equation}
where
\begin{equation}\label{delta-l}
D_{l}=\left.\sum_{I_{l}\subseteq \bold n}
D(t_1,\dots,t_n)\right|
_{t_i=\left\{\begin{smallmatrix}
0,& \text{if }i\in I_{l}\quad\\% \quad added for centering
1,& \text{otherwise}\end{smallmatrix}\right.\;,\;\; i=1,\dots,n.}
\end{equation}
\end{prop}

\section{Application}
\label{lincomp}

We consider here the applications of Theorems~\ref{th-info-ow-ow} and
~\ref{th-weak-ske-owf} to a complete
multipartite graph $K_{n_1\dots n_p}$. It can be shown that the
number of spanning trees of $K_{n_1\dots n_p}$
may be written
\begin{equation}\label{e:st}
T=n^{p-2}\prod^p_{i=1}
(n-n_i)^{n_i-1}
\end{equation}
where
\begin{equation}
n=n_1+\dots+n_p.
\end{equation}

It follows from Theorems~\ref{th-info-ow-ow} and
~\ref{th-weak-ske-owf} that
\begin{equation}\label{e:barwq}
\begin{split}
H_c&=\frac1{2n}
\sum^n_{{l}=0}(-1)^{l}(n-{l})^{p-2}
\sum_{l _1+\dots+l _p=l}\prod^p_{i=1}
\binom{n_i}{l _i}\\
&\quad\cdot[(n-l )-(n_i-l _i)]^{n_i-l _i}\cdot
\biggl[(n-l )^2-\sum^p_{j=1}(n_i-l _i)^2\biggr].\end{split}
\end{equation}
\indexcs{binom}%
\begin{verbatim}
... \binom{n_i}{l _i}\\
\end{verbatim}
and
\begin{equation}\label{joe}
\begin{split}
H_c&=\frac12\sum^{n-1}_{l =0}
(-1)^{l}(n-l )^{p-2}
\sum_{l _1+\dots+l _p=l}
\prod^p_{i=1}\binom{n_i}{l _i}\\
&\quad\cdot[(n-l )-(n_i-l _i)]^{n_i-l _i}
\left(1-\frac{l _p}{n_p}\right)
[(n-l )-(n_p-l _p)].
\end{split}
\end{equation}

The enumeration of $H_c$ in a $K_{n_1\dotsm n_p}$ graph can also be
carried out by Theorem ~\ref{thm-H-param} or ~\ref{thm-asym}
together with the algebraic method of \eqref{multdef}.
Some elegant representations may be obtained. For example, $H_c$ in
a $K_{n_1n_2n_3}$ graph may be written
\begin{equation}\label{j:mark}
\begin{split}
H_c=&
\frac{n_1!\,n_2!\,n_3!}
{n_1+n_2+n_3}\sum_i\left[\binom{n_1}{i}
\binom{n_2}{n_3-n_1+i}\binom{n_3}{n_3-n_2+i}\right.\\
&+\left.\binom{n_1-1}{i}
\binom{n_2-1}{n_3-n_1+i}
\binom{n_3-1}{n_3-n_2+i}\right].\end{split}
\end{equation}

\section{Secret Key Exchanges}
\label{SKE}

Modern cryptography is fundamentally concerned with the problem of
secure private communication.  A Secret Key Exchange is a protocol
where Alice and Bob, having no secret information in common to start,
are able to agree on a common secret key, conversing over a public
channel.  The notion of a Secret Key Exchange protocol was first
introduced in the seminal paper of Diffie and Hellman
\cite{dihe:newdir}. \cite{dihe:newdir} presented a concrete
implementation of a Secret Key Exchange protocol, dependent on a
specific assumption (a variant on the discrete log), specially
tailored to yield Secret Key Exchange. Secret Key Exchange is of
course trivial if trapdoor permutations exist. However, there is no
known implementation based on a weaker general assumption.

The concept of an informationally one-way function was introduced
in \cite{imlelu:oneway}. We give only an informal definition here:

\begin{defn} A polynomial time
computable function $f = \{f_k\}$ is informationally
one-way if there is no probabilistic polynomial time algorithm which
(with probability of the form $1 - k^{-e}$ for some $e > 0$)
returns on input $y \in \bits^{k}$ a random element of $f^{-1}(y)$.
\end{defn}
In the non-uniform setting \cite{imlelu:oneway} show that these are not
weaker than one-way functions:
\begin{thm}[\cite{imlelu:oneway} (non-uniform)]
\label{th-info-ow-ow}
The existence of informationally one-way functions
implies the existence of one-way functions.
\end{thm}
We will stick to the convention introduced above of saying
``non-uniform'' before the theorem statement when the theorem
makes use of non-uniformity. It should be understood that
if nothing is said then the result holds for both the uniform and
the non-uniform models.

It now follows from \thmref{th-info-ow-ow} that

\begin{thm}[non-uniform]\label{th-weak-ske-owf} Weak SKE
implies the existence of a one-way function.
\end{thm}

More recently, the
polynomial-time, interior point algorithms for linear programming have
been extended to the case of convex quadratic programs
\cite{moad:quadpro,ye:intalg}, certain linear  complementarity
problems \cite{komiyo:lincomp,miyoki:lincomp}, and the nonlinear
complementarity problem \cite{komiyo:unipfunc}.  The connection between these
algorithms and the classical Newton method for  nonlinear equations is
well explained in \cite{komiyo:lincomp}.

\section{Review}
\label{computation}

We begin our discussion with the following definition:

\begin{defn}

A function $H\colon  \Re^n \to \Re^n$ is said to be {\em
B-differentiable\/} at the point $z$ if (i)~$H$ is Lipschitz
continuous in a neighborhood of $z$, and (ii)~ there exists a positive
homogeneous function $BH(z)\colon  \Re^n \to \Re^n$, called the {\em
B-derivative\/} of $H$ at $z$, such that
\[ \lim_{v \to 0} \frac{H(z+v) - H(z) - BH(z)v}{\| v \|} = 0. \]
The function $H$ is {\em B-differentiable in  set $S$} if it is B-differentiable
at every point in $S$.
The B-derivative $BH(z)$ is said to be {\em strong\/} if
\[ \lim_{(v,v') \to (0,0)} \frac{H(z+v) - H(z+v') - BH(z)(v
 -v')}{\| v - v' \|}
   = 0. \]
\end{defn}

\begin{lem}\label{limbog} There exists a smooth function $\psi_0(z)$
defined for $|z|>1-2a$ satisfying the following properties\rom:
\begin{enumerate}
\renewcommand{\labelenumi}{(\roman{enumi})}
\item $\psi_0(z)$ is bounded above and below by positive constants
$c_1\leq \psi_0(z)\leq c_2$.
\item If $|z|>1$, then $\psi_0(z)=1$.
\item For all $z$ in the domain of $\psi_0$, $\Delta_0\ln \psi_0\geq 0$.
\item If $1-2a<|z|<1-a$, then $\Delta_0\ln \psi_0\geq
c_3>0$.
\end{enumerate}
\end{lem}

\begin{pf}
We choose $\psi_0(z)$ to be a radial function depending only on
$r=|z|$. Let $h(r)\geq 0$ be a suitable smooth function satisfying $h(r)\geq
c_3$ for $1-2a<|z|<1-a$, and $h(r)=0$ for $|z|>1-\tfrac a2$. The radial
Laplacian
\[\Delta_0\ln\psi_0(r)=\left(\frac {d^2}{dr^2}+\frac
1r\frac d{dr}\right)\ln\psi_0(r)\]
has smooth coefficients for $r>1-2a$. Therefore, we may
apply the existence and uniqueness theory for ordinary differential
equations. Simply let $\ln \psi_0(r)$ be the solution of the differential
equation
\[(\frac{d^2}{dr^2}+\frac 1r\frac d{dr})\ln \psi_0(r)=h(r)\] with initial
conditions given by $\ln \psi_0(1)=0$ and $\ln\psi_0'(1)=0$.

Next, let $D_\nu$ be a finite collection of pairwise disjoint disks,
all of which are contained in the unit disk centered at the origin in
$C$. We assume that $D_\nu=\{z|\,|z-z_\nu|<\delta\}$. Suppose that
$D_\nu(a)$ denotes the smaller concentric disk $D_\nu(a)=\{z|\,
|z-z_\nu|\leq (1-2a)\delta\}$. We define a smooth weight function
$\Phi_0(z)$ for $z\in C-\bigcup_\nu D_\nu(a)$ by setting $\Phi_
0(z)=1$ when $z\notin \bigcup_\nu D_\nu$ and $\Phi_
0(z)=\psi_0((z-z_\nu)/\delta)$ when $z$ is an element of $D_\nu$. It
follows from \lemref{limbog} that $\Phi_ 0$ satisfies the properties:
\begin{enumerate}
\renewcommand{\labelenumi}{(\roman{enumi})}
\item \label{boundab}$\Phi_ 0(z)$ is bounded above and below by
positive constants $c_1\leq \Phi_ 0(z)\leq c_2$.
\item \label{d:over}$\Delta_0\ln\Phi_ 0\geq 0$ for all
$z\in C-\bigcup_\nu D_\nu(a)$,
the domain where the function $\Phi_ 0$ is defined.
\item \label{d:ad}$\Delta_0\ln\Phi_ 0\geq c_3\delta^{-2}$
when $(1-2a)\delta<|z-z_\nu|<(1-a)\delta$.
\end{enumerate}
Let $A_\nu$ denote the annulus $A_\nu=\{(1-2a)\delta<|z-z_\nu|<(1-a)
\delta \}$, and set $A=\bigcup_\nu A_\nu$. The
properties (\ref{d:over}) and (\ref{d:ad}) of $\Phi_ 0$
may be summarized as $\Delta_0\ln \Phi_ 0\geq c_3\delta^{-2}\chi_A$,
where $\chi _A$ is the characteristic function of $A$.
\end{pf}

Suppose that $\alpha$ is a nonnegative real constant. We apply
Proposition~\ref{prop:eg}
with $\Phi(z)=\Phi_ 0(z) e^{\alpha|z|^2}$. If $u\in C^\infty_0(R^2-\bigcup_\nu
D_\nu(a))$, assume that $\cal D$ is a bounded domain containing the  support of
$u$ and $A\subset \cal D\subset R^2-\bigcup_\nu D_\nu(a)$. A calculation gives
\[\int_{\cal D}|\overline\partial u|^2\Phi_ 0(z) e^{\alpha|z|^2}\geq c_4\alpha
\int_{\cal D}|u|^2\Phi_ 0e^{\alpha|z|^2}+c_5\delta^{-2}\int_ A|u|^2\Phi_ 0e^{
\alpha|z|^2}.\]

The boundedness, property (\ref{boundab}) of $\Phi_ 0$, then yields
\[\int_{\cal D}|\overline\partial u|^2e^{\alpha|z|^2}\geq c_6\alpha
\int_{\cal D}|u|^2e^{\alpha|z|^2}+c_7\delta^{-2}\int_ A|u|^2e^{\alpha|z|^2}.\]

Let $B(X)$ be the set of blocks of $\Lambda_{X}$
and let $b(X) = |B(X)|$. If $\phi \in Q_{X}$ then
$\phi$ is constant on the blocks of $\Lambda_{X}$.
\begin{equation}\label{far-d}
 P_{X} = \{ \phi \in M | \Lambda_{\phi} = \Lambda_{X} \},
\qquad
Q_{X} = \{\phi \in M | \Lambda_{\phi} \geq \Lambda_{X} \}.
\end{equation}
If $\Lambda_{\phi} \geq \Lambda_{X}$ then
$\Lambda_{\phi} = \Lambda_{Y}$ for some $Y \geq X$ so that
\[ Q_{X} = \bigcup_{Y \geq X} P_{Y}. \]
Thus by M\"obius inversion
\[ |P_{Y}|= \sum_{X\geq Y} \mu (Y,X)|Q_{X}|.\]
Thus there is a bijection from $Q_{X}$ to $W^{B(X)}$.
In particular $|Q_{X}| = w^{b(X)}$.

Next note that $b(X)=\dim X$. We see this by choosing a
basis for $X$ consisting of vectors $v^{k}$ defined by
\[v^{k}_{i}=
\begin{cases} 1 & \text{if $i \in \Lambda_{k}$},\\
0 &\text{otherwise.} \end{cases}
\]
\index{cases@{\tt cases} environment}
\begin{verbatim}
\[v^{k}_{i}=
\begin{cases} 1 & \text{if $i \in \Lambda_{k}$},\\
0 &\text{otherwise.} \end{cases}
\]
\end{verbatim}

\begin{lem}\label{p0201}
Let $\A$ be an arrangement. Then
\[ \chi (\A,t) = \sum_{\B \subseteq \A}
(-1)^{|\B|} t^{\dim T(\B)}. \]
\end{lem}

In order to compute $R''$ recall the definition
of $S(X,Y)$ from \lemref{lem-per}. Since $H \in \B$,
$\A_{H} \subseteq \B$. Thus if $T(\B) = Y$ then
$\B \in S(H,Y)$. Let $L'' = L(\A'')$. Then
\begin{equation}\label{E_SXgYy}
\begin{split}
R''&= \sum_{H\in \B \subseteq \A} (-1)^{|\B|}
t^{\dim T(\B)}\\
&= \sum_{Y \in L''} \sum_{\B \in S(H,Y)}
(-1)^{|\B|}t^{\dim Y} \\
&= -\sum_{Y \in L''} \sum_{\B \in S(H,Y)} (-1)^
{|\B - \A_{H}|} t^{\dim Y} \\
&= -\sum_{Y \in L''} \mu (H,Y)t^{\dim Y} \\
&= -\chi (\A '',t).
\end{split}
\end{equation}

\begin{cor}\label{tripleA}
Let $(\A,\A',\A'')$ be a triple of arrangements. Then
\[ \pi (\A,t) = \pi (\A',t) + t \pi (\A'',t). \]
\end{cor}

\begin{defn}
Let $(\A,\A',\A'')$ be a triple with respect to
the hyperplane $H \in \A$. Call $H$ a {\em separator}
if $T(\A) \not\in L(\A')$.
\end{defn}

\begin{cor}\label{nsep}
Let $(\A,\A',\A'')$ be a triple with respect to $H \in \A$.
\begin{enumerate}
\renewcommand{\labelenumi}{(\roman{enumi})}
\item
If $H$ is a separator then
\[ \mu (\A) = - \mu (\A'') \]
and hence
\[ |\mu (\A)| = | \mu (\A'')|. \]

\item If $H$ is not a separator then
\[\mu (\A) = \mu (\A') - \mu (\A'') \]
and
\[ |\mu (\A)| = |\mu (\A')| + |\mu (\A'')|. \]
\end{enumerate}
\end{cor}

\begin{pf}
It follows from \thmref{th-info-ow-ow} that $\pi(\A,t)$
has leading term
\[(-1)^{r(\A)}\mu (\A)t^{r(\A)}.\]
The conclusion
follows by comparing coefficients of the leading
terms on both sides of the equation in
Corollary~\ref{tripleA}. If $H$ is a separator then
$r(\A') < r(\A)$ and there is no contribution
from $\pi (\A',t)$.
\end{pf}

The Poincar\'e polynomial of an arrangement
will appear repeatedly
in these notes. It will be shown to equal the
Poincar\'e polynomial
of the graded algebras which we are going to
associate with $\A$. It is also the Poincar\'e
polynomial of the complement $M(\A)$ for a
complex arrangement. Here we prove
that the Poincar\'e polynomial is the chamber
counting function for a real arrangement. The
complement $M(\A)$ is a disjoint union of chambers
\[M(\A) = \bigcup_{C \in \operatorname{Cham}(\A)} C.\]
The number
of chambers is determined by the Poincar\'e
polynomial as follows.

\begin{thm}\label{th-realarr}
Let $\A_{\bold R}$ be a real arrangement. Then
\[ |\operatorname{Cham}(\A_{\bold R})| = \pi (\A_{\bold R},1). \]
\end{thm}

\begin{pf}
We check the properties required in Corollary~\ref{nsep}:
(i) follows from $\pi (\Phi_{ l},t) = 1$, and (ii) is a
consequence of Corollary~\ref{BI}.
\end{pf}

\begin{figure}
\vspace{5cm}
\caption{$Q(\A_{1}) = xyz(x-z)(x+z)(y-z)(y+z)$}
\end{figure}

\begin{figure}
\vspace{5cm}
\caption{$Q(\A_{2})= xyz(x+y+z)(x+y-z)(x-y+z)(x-y-z)$}
\end{figure}

\begin{thm}
\label{T_first_the_int}
Let $\phi$ be a protocol for a random pair $\XcY$.
If one of $\st_\phi(x',y)$ and $\st_\phi(x,y')$ is a prefix of the other
and $(x,y)\in\SXY$, then
\[
\langle \st_j(x',y)\rangle_{j=1}^\infty
=\langle \st_j(x,y)\rangle_{j=1}^\infty
=\langle \st_j(x,y')\rangle_{j=1}^\infty .
\]
\end{thm}
\begin{pf}
We show by induction on $i$ that
\[
\langle \st_j(x',y)\rangle_{j=1}^i
=\langle \st_j(x,y)\rangle_{j=1}^i
=\langle \st_j(x,y')\rangle_{j=1}^i.
\]
The induction hypothesis holds vacuously for $i=0$.
Assume it holds for $i-1$, in particular
$[\st_j(x',y)]_{j=1}^{i-1}=[\st_j(x,y')]_{j=1}^{i-1}$.
Then one of $[\st_j(x',y)]_{j=i}^{\infty}$ and $[\st_j(x,y')]_{j=i}^{\infty}$
is a prefix of the other which implies that
one of $\st_i(x',y)$ and $\st_i(x,y')$ is a prefix of the other.
If the $i$th message is transmitted by $\PX$ then,
by the separate-transmissions property and the induction hypothesis,
$\st_i(x,y)=\st_i(x,y')$,
hence one of $\st_i(x,y)$ and $\st_i(x',y)$ is a prefix of the other.
By the implicit-termination property, neither $\st_i(x,y)$ nor $\st_i(x',y)$
can be a proper prefix of the other, hence they must be the same and
$\st_i(x',y)=\st_i(x,y)=\st_i(x,y')$.
If the $i$th message is transmitted by $\PY$ then, symmetrically,
$\st_i(x,y)=\st_i(x',y)$
by the induction hypothesis and the separate-transmissions property, and, then,
$\st_i(x,y)=\st_i(x,y')$ by the implicit-termination property,
proving the induction step.
\end{pf}

If $\phi$ is a protocol for $\XgY$, and $(x,y)$, $(x',y)$ are distinct
inputs in $\SXY$, then, by the correct-decision property,
$\langle\st_j(x,y)\rangle_{j=1}^\infty\ne\langle \st_j(x',y)\rangle_{j=1}^\infty$.

Equation~(\ref{E_SXgYy}) defined $\PY$'s ambiguity set $\SXgYy$
to be the set of possible $X$ values when $Y=y$.
The last corollary implies that for all $y\in\SY$,
the multiset%
\footnote{A multiset allows multiplicity of elements.
Hence, $\{0,01,01\}$ is prefix free as a set, but not as a multiset.}
of codewords $\{\sphixys:x\in\SXgYy\}$ is prefix free.

\section{One-Way Complexity}
\label{S_Cp1}

$\Cw1$, the one-way complexity of a random pair $\XcY$,
is the number of bits $\PX$ must transmit in the worst case
when $\PY$ is not permitted to transmit any feedback messages.
Starting with $\SXY$, the support set of $\XcY$, we define $\G$,
the {\it characteristic hypergraph\/} of $\XcY$, and show that
\[
\Cw1=\lceil\,\log\cG\rceil\ .
\]

Let $\XcY$ be a random pair.
For each $y$ in $\SY$, the support set of $Y$, Equation~(\ref{E_SXgYy})
defined $\SXgYy$ to be the set of possible $x$ values when $Y=y$.
The {\it characteristic hypergraph\/} $\G$ of $\XcY$
has $\SX$ as its vertex set and the hyperedge $\SXgYy$ for each $y\in\SY$.

We can now prove a continuity theorem.
\begin{thm}\label{t:conl}
Let $\Omega \subset\bold R^n$ be an open set, let
$u\in BV(\Omega ;\bold R^m)$, and let
\begin{equation}\label{quts}
T^u_x=\left\{y\in\bold R^m: y=\tilde u(x)+\left\langle \frac{Du}{|Du|}(x),z
\right\rangle \text{ for some }z\in\bold R^n\right\}
\end{equation}
for every $x\in\Omega \backslash S_u$. Let $f\colon \bold R^m\to \bold
R^k$ be a Lipschitz continuous function such that $f(0)=0$, and let $v=f(u)\colon
\Omega \to \bold R^k$. Then $v\in BV(\Omega ;\bold R^k)$ and
\begin{equation}
Jv=(f(u^+)-f(u^-))\otimes \nu_u\cdot\, \cal
H_{n-1}|_{S_u}.\end{equation}
In addition, for $|\widetilde{D}u|$-almost every $x\in\Omega $ the restriction
of the function $f$ to $T^u_x$ is differentiable at $\tilde u(x)$ and
\begin{equation}
\widetilde{D}v=\nabla (f|_{T^u_x})(\tilde u)\frac{\widetilde{D}u}{|
\widetilde{D}u|}\cdot|\widetilde{D}u|.\end{equation}
\end{thm}

Before proving the theorem, we state without proof three elementary
remarks which will be useful in the sequel.
\begin{rem}\label{r:omb}
Let $\omega\colon \left]0,+\infty\right[\to \left]0,+\infty\right[$
be a continuous function such that $\omega (t)\to 0$ as $t\to
0$. Then
\[\lim_{h\to 0^+}g(\omega(h))=L\Leftrightarrow\lim_{h\to
0^+}g(h)=L\]
for any function $g\colon \left]0,+\infty\right[\to \bold R$.
\end{rem}
\begin{rem}\label{r:dif}
Let $g \colon  \bold R^n\to \bold R$ be a Lipschitz
continuous function and assume that
\[L(z)=\lim_{h\to 0^+}\frac{g(hz)-g(0)}h\]
exists for every $z\in\bold Q^n$ and that $L$ is a linear function of $z$.
Then $g$ is differentiable at 0.
\end{rem}
\begin{rem}\label{r:dif0}
Let $A \colon  \bold R^n\to \bold R^m$ be a linear
function, and let $f \colon  \bold R^m\to \bold R$ be a function. Then
the restriction of $f$ to the range of $A$ is differentiable at 0 if and
only if $f(A)\colon \bold R^n\to \bold R$ is differentiable at 0 and
\[\nabla(f|_{\operatorname{Im}(A)})(0)A=\nabla (f(A))(0).\]
\end{rem}

\begin{pf}
 We begin by showing that $v\in BV(\Omega;\bold R^k)$ and
\begin{equation}\label{e:bomb}
|Dv|(B)\le K|Du|(B)\qquad\forall B\in\bold B(\Omega ),\end{equation}
where $K>0$ is the Lipschitz constant of $f$. By \eqref{sum-Di}
and by the approximation
result quoted in \secref{s:mt},
it is possible to find a sequence $(u_h)\subset C^1(\Omega ;\bold R^m)$
converging to $u$ in $L^1(\Omega ;\bold R^m)$ and such that
\[\lim_{h\to +\infty}\int_\Omega |\nabla u_h|\,dx=|Du|(\Omega ).\]
The functions $v_h=f(u_h)$ are locally Lipschitz continuous in $\Omega $,
and the definition of differential implies that $|\nabla v_h|\le K|\nabla
u_h|$ almost everywhere in $\Omega $. The lower semicontinuity of the total
variation and \eqref{sum-Di} yield
\begin{equation}
\begin{split}
|Dv|(\Omega )\le\liminf_{h\to +\infty}|Dv_h|(\Omega) &
=\liminf_{h\to +\infty}\int_\Omega |\nabla v_h|\,dx\\
&\le K\liminf_{h\to +\infty}\int_\Omega
|\nabla u_h|\,dx=K|Du|(\Omega).
\end{split}\end{equation}
Since $f(0)=0$, we have also
\[\int_\Omega |v|\,dx\le K\int_\Omega |u|\,dx;\]
therefore $u\in BV(\Omega ;\bold R^k)$. Repeating the same argument for
every open set $A\subset\Omega $, we get \eqref{e:bomb}
for every $B\in\bold B(\Omega)$,
because $|Dv|$, $|Du|$ are Radon measures. To prove \lemref{limbog},
first we observe that
\begin{equation}\label{e:SS}
S_v\subset S_u,\qquad\tilde v(x)=f(\tilde u(x))\qquad \forall x\in\Omega
\backslash S_u.\end{equation}
In fact, for every $\varepsilon >0$ we have
\[\{y\in B_\rho(x): |v(y)-f(\tilde u(x))|>\varepsilon \}\subset \{y\in
B_\rho(x): |u(y)-\tilde u(x)|>\varepsilon /K\},\]
hence
\[\lim_{\rho\to 0^+}\frac{|\{y\in B_\rho(x): |v(y)-f(\tilde u(x))|>
\varepsilon \}|}{\rho^n}=0\]
whenever $x\in\Omega \backslash S_u$.
By a similar argument, if $x\in S_u$ is a point such that there exists
a triplet $(u^+,u^-,\nu_u)$ satisfying \eqref{detK1}, \eqref{detK2}, then
\[
(v^+(x)-v^-(x))\otimes \nu_v=(f(u^+(x))-f(u^-(x)))\otimes\nu_u\quad
\text{if }x\in S_v
\]
and $f(u^-(x))=f(u^+(x))$ if $x\in S_u\backslash S_v$. Hence, by (1.8) we get
\begin{equation*}\begin{split}
Jv(B)=\int_{B\cap S_v}(v^+-v^-)\otimes \nu_v\,d\cal H_{n-1}&=
\int_{B\cap S_v}(f(u^+)-f(u^-))\otimes \nu_u\,d\cal H_{n-1}\\
&=\int_{B\cap S_u}(f(u^+)-f(u^-))\otimes \nu_u\,d\cal H_{n-1}
\end{split}\end{equation*}
and \lemref{limbog} is proved.
\end{pf}

To prove \eqref{e:SS}, it is not restrictive to assume that $k=1$. Moreover,
to simplify our notation, from now on we shall assume that $\Omega =\bold
R^n$. The proof of \eqref{e:SS} is divided into two steps. In the first step we
prove the statement in the one-dimensional case $(n=1)$, using
\thmref{th-weak-ske-owf}.
In the second step we achieve the general result using
\thmref{t:conl}.

\subsection*{Step 1}
Assume that $n=1$. Since $S_u$ is at most countable,
\eqref{sum-bij}
yields that $|\widetilde{D}v|(S_u\backslash S_v)=0$, so that
\eqref{e:st} and \eqref{e:barwq}
imply that $Dv=\widetilde{D}v+Jv$ is the Radon-Nikod\'ym decomposition of
$Dv$ in absolutely continuous and singular part with respect to $|\widetilde{D}
u|$. By \thmref{th-weak-ske-owf}, we have
\begin{equation*}
\frac{\widetilde{D}v}{|\widetilde{D}u|}(t)=\lim_{s\to t^+}
\frac{Dv(\left[t,s\right[)}{|\widetilde{D}u|(\left[t,s\right[)},\qquad
\frac{\widetilde{D}u}{|\widetilde{D}u|}(t)=\lim_{s\to t^+}
\frac{Du(\left[t,s\right[)}{|\widetilde{D}u|(\left[t,s\right[)}\end{equation*}
$|\widetilde{D}u|$-almost everywhere in $\bold R$. It is well known (see,
for instance, \cite[2.5.16]{ste:sint})
that every one-dimensional function of bounded
variation $w$ has a unique left continuous representative, i.e., a function
$\hat w$ such that $\hat w=w$ almost everywhere and $\lim_{s\to
t^-}\hat w(s)=\hat w(t)$ for every $t\in\bold R$. These conditions imply
\begin{equation}
\hat u(t)=Du(\left]-\infty,t\right[),
\qquad \hat v(t)=Dv(\left]-\infty,t\right[)\qquad
\forall t\in\bold R
\end{equation}
and
\begin{equation}\label{alimo}
\hat v(t)=f(\hat u(t))\qquad\forall t\in\bold R.\end{equation}
Let $t\in\bold R$ be
such that $|\widetilde{D}u|(\left[t,s\right[)>0$ for every $s>t$
and assume that the limits in \eqref{joe} exist. By \eqref{j:mark} and
\eqref{far-d}
we get
\begin{equation*}\begin{split}
\frac{\hat v(s)-\hat v(t)}{|\widetilde{D}u|(\left[t,s\right[)}&=\frac
{f(\hat u(s))-f(\hat u(t))}{|\widetilde{D}u|(\left[t,s\right[)}\\
&=\frac{f(\hat u(s))-f(\hat
u(t)+\dfrac{\widetilde{D}u}{|\widetilde{D}u|}(t)|\widetilde{D}u
|(\left[t,s\right[))}{|\widetilde{D}u|(\left[t,s\right[)}\\
&+\frac
{f(\hat u(t)+\dfrac{\widetilde{D}u}{|\widetilde{D}u|}(t)|\widetilde{D}
u|(\left[t,s\right[))-f(\hat u(t))}{|\widetilde{D}u|(\left[t,s\right[)}
\end{split}\end{equation*}
for every $s>t$. Using the Lipschitz condition on $f$ we find
{\setlength{\multlinegap}{0pt}
\begin{multline*}
\left|\frac{\hat v(s)-\hat v(t)}{|\widetilde{D}u|(\left[t,s\right[)}
-\frac{f(\hat u(t)+\dfrac{\widetilde{D}u}{|\widetilde{D}u|}(t)
|\widetilde{D}u|(\left[t,s\right[))-f(\hat
u(t))}{|\widetilde{D}u|(\left[t,s\right[)}\right|\\
\le K\left|
\frac{\hat u(s)-\hat u(t)}{|\widetilde{D}u|(\left[t,s\right[)}
-\frac{\widetilde{D}u}{|
\widetilde{D}u|}(t)\right|.\end{multline*}
}% end of group with \multlinegap=0pt
By \eqref{e:bomb}, the function $s\to |\widetilde{D}u|(\left[t,s\right[)$
is continuous
and converges to 0 as $s\downarrow t$. Therefore Remark~\ref{r:omb}
and the previous inequality imply
\[\frac{\widetilde{D}v}{|\widetilde{D}u|}(t)=\lim_{h\to 0^+}
\frac{f(\hat u(t)+h\dfrac{\widetilde{D}u}{|\widetilde{D}u|}
(t))-f(\hat u(t))}h\quad|\widetilde{D}u|\text{-a.e. in }\bold R.\]
By \eqref{joe}, $\hat u(x)=\tilde u(x)$ for every $x\in\bold R\backslash S_u$;
moreover, applying the same argument to the functions $u'(t)=u(-t)$,
$v'(t)=f(u'(t))=v(-t)$, we get
\[\frac{\widetilde{D}v}{|\widetilde{D}u|}(t)=\lim_{h\to 0}
\frac{f(\tilde u(t)+h\dfrac{\widetilde{D}u}{|\widetilde{D}u|}(t))-f(\tilde
u(t))}{h}\qquad|\widetilde{D}u|\text{-a.e. in }\bold R\]
and our statement is proved.

\subsection*{Step 2}

Let us consider now the general case $n>1$. Let $\nu\in\bold
R^n$ be such that $|\nu|=1$, and let $\pi_\nu=\{y\in\bold R^n: \langle
y,\nu\rangle =0\}$. In the following, we shall identify $\bold R^n$ with
$\pi_\nu\times\bold R$, and we shall denote by $y$ the variable ranging in
$\pi_\nu$ and by $t$ the variable ranging in $\bold R$. By the just proven
one-dimensional result, and by \thmref{thm-main}, we get
\[\lim_{h\to 0}\frac{f(\tilde u(y+t\nu)+h\dfrac{\widetilde{D}u_y}{|
\widetilde{D}u_y|}(t))-f(\tilde u(y+t\nu))}h=\frac{\widetilde{D}v_y}{|
\widetilde{D}u_y|}(t)\qquad|\widetilde{D}u_y|\text{-a.e. in }\bold R\]
for $\cal H_{n-1}$-almost every $y\in \pi_\nu$. We claim that
\begin{equation}
\frac{\langle \widetilde{D}u,\nu\rangle }{|\langle \widetilde{D}u,\nu\rangle
|}(y+t\nu)=\frac{\widetilde{D}u_y}
{|\widetilde{D}u_y|}(t)\qquad|\widetilde{D}u_y|\text{-a.e. in }\bold R
\end{equation}
for $\cal H_{n-1}$-almost every $y\in\pi_\nu$. In fact, by
\eqref{sum-ali} and \eqref{delta-l} we get
\begin{multline*}
\int_{\pi_\nu}\frac{\widetilde{D}u_y}{|\widetilde{D}u_y|}\cdot|\widetilde{D}u_y
|\,d\cal H_{n-1}(y)=\int_{\pi_\nu}\widetilde{D}u_y\,d\cal H_{n-1}(y)\\
=\langle \widetilde{D}u,\nu\rangle =\frac
{\langle \widetilde{D}u,\nu\rangle }{|\langle \widetilde{D}u,\nu\rangle|}\cdot
|\langle \widetilde{D}u,\nu\rangle |=\int_{\pi_\nu}\frac{
\langle \widetilde{D}u,\nu\rangle }{|\langle \widetilde{D}u,\nu\rangle |}
(y+\cdot \nu)\cdot|\widetilde{D}u_y|\,d\cal H_{n-1}(y)
\end{multline*}
and \eqref{far-d} follows from \eqref{sum-Di}. By the same argument it
is possible to prove that
\begin{equation}
\frac{\langle \widetilde{D}v,\nu\rangle }{|\langle \widetilde{D}u,\nu\rangle
|}(y+t\nu)=\frac{\widetilde{D}v_y}{|\widetilde{D}u_y|}(t)\qquad|
\widetilde{D}u_y|\text{-a.e. in }\bold R\end{equation}
for $\cal H_{n-1}$-almost every $y\in \pi_\nu$. By \eqref{far-d}
and \eqref{E_SXgYy} we get
\[
\lim_{h\to 0}\frac{f(\tilde u(y+t\nu)+h\dfrac{\langle \widetilde{D}
u,\nu\rangle }{|\langle \widetilde{D}u,\nu\rangle |}(y+t\nu))-f(\tilde
u(y+t\nu))}{h}
=\frac{\langle \widetilde{D}v,\nu\rangle }{|\langle
\widetilde{D}u,\nu\rangle |}(y+t\nu)\]
for $\cal H_{n-1}$-almost every $y\in\pi_\nu$, and using again
\eqref{detK1}, \eqref{detK2} we get
\[
\lim_{h\to 0}\frac{f(\tilde u(x)+h\dfrac{\langle
\widetilde{D}u,\nu\rangle }{|\langle \widetilde{D}u,\nu\rangle |}(x))-f(\tilde
u(x))}{h}=\frac{\langle \widetilde{D}v,\nu\rangle }{|\langle \widetilde{D}u,\nu
\rangle |}(x)
\]
$|\langle \widetilde{D}u,\nu\rangle|$-a.e. in $\bold R^n$.

Since the function $|\langle \widetilde{D}u,\nu\rangle |/|\widetilde{D}u|$
is strictly positive $|\langle \widetilde{D}u,\nu\rangle |$-almost everywhere,
we obtain also
\[
\lim_{h\to 0}\frac{f(\tilde u(x)+h\dfrac{|\langle
\widetilde{D}u,\nu\rangle |}{|\widetilde{D}u|}(x)\dfrac{\langle \widetilde{D}
u,\nu\rangle }{|\langle \widetilde{D}u,\nu\rangle |}(x))-f(\tilde u(x))}{h}\\
=\frac{|\langle \widetilde{D}u,\nu\rangle |}{|\widetilde{D}u|}(x)\frac
{\langle \widetilde{D}v,\nu\rangle }{|\langle
\widetilde{D}u,\nu\rangle |}(x)
\]
$|\langle \widetilde{D}u,\nu\rangle |$-almost everywhere in $\bold R^n$.

Finally, since
\begin{align*}
&\frac{|\langle \widetilde{D}u,\nu\rangle |}{|\widetilde{D}u|}
\frac{\langle \widetilde{D}u,\nu\rangle }{|\langle \widetilde{D}u,\nu\rangle|}
=\frac{\langle \widetilde{D}u,\nu\rangle }{|\widetilde{D}u|}
=\left\langle \frac{\widetilde{D}u}{|\widetilde{D}u|},\nu\right\rangle
        \qquad|\widetilde{D}u|\text{-a.e. in }\bold R^n\\
&\frac{|\langle \widetilde{D}u,\nu\rangle |}{|\widetilde{D}u|}
\frac{\langle \widetilde{D}v,\nu\rangle }{|\langle \widetilde{D}u,\nu\rangle|}
=\frac{\langle \widetilde{D}v,\nu\rangle }{|\widetilde{D}u|}
=\left\langle \frac{\widetilde{D}v}{|\widetilde{D}u|},\nu\right\rangle
        \qquad|\widetilde{D}u|\text{-a.e. in }\bold R^n
\end{align*}
and since both sides of \eqref{alimo}
are zero $|\widetilde{D}u|$-almost everywhere
on $|\langle \widetilde{D}u,\nu\rangle |$-negligible sets, we conclude that
\[
\lim_{h\to 0}\frac{f\left(
\tilde u(x)+h\left\langle \dfrac{\widetilde{D}
u}{|\widetilde{D}u|}(x),\nu\right\rangle \right)-f(\tilde u(x))}h
=\left\langle \frac{\widetilde{D}v}{|\widetilde{D}u|}(x),\nu\right\rangle,
\]
$|\widetilde{D}u|$-a.e. in $\bold R^n$.
Since $\nu$ is arbitrary, by Remarks \ref{r:dif} and~\ref{r:dif0}
the restriction of $f$ to
the affine space $T^u_x$ is differentiable at $\tilde u(x)$ for $|\widetilde{D}
u|$-almost every $x\in \bold R^n$ and \eqref{quts} holds.\qed

It follows from \eqref{sum-Di}, \eqref{detK1}, and \eqref{detK2} that
\begin{equation}\label{Dt}
D(t_1,\dots,t_n)=\sum_{I\in\bold n}(-1)^{|I|-1}|I|
\prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\bold A^{(\lambda)}
(\overline I|\overline I).
\end{equation}
Let $t_i=\hat x_i$, $i=1,\dots,n$. Lemma 1 leads to
\begin{equation}\label{Dx}
D(\hat x_1,\dots,\hat x_n)=\prod_{i\in\bold n}\hat x_i
\sum_{I\in\bold n}(-1)^{|I|-1}|I|\per \bold A
^{(\lambda)}(I|I)\det\bold A^{(\lambda)}(\overline I|\overline I).
\end{equation}
By \eqref{H-cycles}, \eqref{sum-Di}, and \eqref{Dx},
we have the following result:
{\samepage
\begin{thm}\label{thm-H-param}
\begin{equation}\label{H-param}
H_c=\frac{1}{2n}\sum^n_{l =1}l (-1)^{l -1}A_{l}
^{(\lambda)},
\end{equation}
where
\begin{equation}\label{A-l-lambda}
A^{(\lambda)}_l =\sum_{I_l \subseteq\bold n}\per \bold A
^{(\lambda)}(I_l |I_l )\det\bold A^{((\lambda)}
(\overline I_{l}|\overline I_l ),|I_{l}|=l .
\end{equation}
\end{thm}
}

It is worth noting that $A_l ^{(\lambda)}$ of \eqref{A-l-lambda} is
similar to the coefficients $b_l $ of the characteristic polynomial of
\eqref{bl-sum}. It is well known in graph theory that the coefficients
$b_l $ can be expressed as a sum over certain subgraphs. It is
interesting to see whether $A_l $, $\lambda=0$, structural properties
of a graph.

We may call \eqref{H-param} a parametric representation of $H_c$. In
computation, the parameter $\lambda_i$ plays very important roles. The
choice of the parameter usually depends on the properties of the given
graph. For a complete graph $K_n$, let $\lambda_i=1$, $i=1,\dots,n$.
It follows from \eqref{A-l-lambda} that
\begin{equation}\label{compl-gr}
A^{(1)}_l =\begin{cases} n!,&\text{if }l =1\\
0,&\text{otherwise}.\end{cases}
\end{equation}
By \eqref{H-param}
\begin{equation}
H_c=\frac 12(n-1)!.
\end{equation}
For a complete bipartite graph $K_{n_1n_2}$, let $\lambda_i=0$, $i=1,\dots,n$.
By \eqref{A-l-lambda},
\begin{equation}
A_l =
\begin{cases} -n_1!n_2!\delta_{n_1n_2},&\text{if }l =2\\
0,&\text{otherwise }.\end{cases}
\label{compl-bip-gr}
\end{equation}
Theorem ~\ref{thm-H-param}
leads to
\begin{equation}
H_c=\frac1{n_1+n_2}n_1!n_2!\delta_{n_1n_2}.
\end{equation}

Now, we consider an asymmetrical approach. Theorem \ref{thm-main} leads to
\begin{multline}
\det\bold K(t=1,t_1,\dots,t_n;l |l )\\
=\sum_{I\subseteq\bold n-\{l \}}
(-1)^{|I|}\prod_{i\in I}t_i\prod_{j\in I}
(D_j+\lambda_jt_j)\det\bold A^{(\lambda)}
(\overline I\cup\{l \}|\overline I\cup\{l \}).
\end{multline}

By \eqref{H-cycles} and \eqref{sum-ali} we have the following asymmetrical
result:
\begin{thm}\label{thm-asym}
\begin{equation}
H_c=\frac12\sum_{I\subseteq\bold n-\{l \}}
(-1)^{|I|}\per\bold A^{(\lambda)}(I|I)\det
\bold A^{(\lambda)}
(\overline I\cup\{l \}|\overline I\cup\{l \})
\end{equation}
which reduces to Goulden--Jackson's formula when $\lambda_i=0,i=1,\dots,n$
\cite{mami:matrixth}.
\end{thm}

\section{Various font features of the {\tt amstex} option}
\label{s:font}
\subsection{Bold versions of special symbols}

In the \opt{amstex} option \cs{boldsymbol} is used for getting
individual bold math symbols and bold Greek letters---everything in
math except for letters of the Latin alphabet,
where you'd use \cs{bold}.  For example,
\begin{verbatim}
A_\infty + \pi A_0 \sim
\bold{A}_{\boldsymbol{\infty}} \boldsymbol{+}
\boldsymbol{\pi} \bold{A}_{\boldsymbol{0}}
\end{verbatim}
looks like this:
\[A_\infty + \pi A_0 \sim \bold{A}_{\boldsymbol{\infty}}
\boldsymbol{+} \boldsymbol{\pi} \bold{A}_{\boldsymbol{0}}\]

\subsection{``Poor man's bold''}
If a bold version of a particular symbol doesn't exist in the
available fonts,
then \cs{boldsymbol} can't be used to make that symbol bold.
At the present time, this means that
\cs{boldsymbol} can't be used with symbols from
the {\sc msam} and {\sc msbm} fonts, among others.
In some cases, poor man's bold (\cs{pmb}) can be used instead
of \cs{boldsymbol}:
%  Can't show example from msam or msbm because this document is
%  supposed to be TeXable even if the user doesn't have
%  AMSFonts.  MJD 5-JUL-1990
\[\frac{\partial x}{\partial y}
\pmb{\Bigg\vert}
\frac{\partial y}{\partial z}\]
\begin{verbatim}
\[\frac{\partial x}{\partial y}
\pmb{\Bigg\vert}
\frac{\partial y}{\partial z}\]
\end{verbatim}
So-called ``large operator'' symbols such as $\sum$ and $\prod$
require an additional command, \cs{mathop},
to produce proper spacing and limits when \cs{pmb} is used.
For further details see {\it The \TeX book}.
\[\sum\begin{Sb}i<B\\\text{$i$ odd}\end{Sb}
\prod_\kappa \kappa F(r_i)\qquad
\mathop{\pmb{\sum}}\begin{Sb}i<B\\\text{$i$ odd}\end{Sb}
\mathop{\pmb{\prod}}_\kappa \kappa(r_i)
\]
\begin{verbatim}
\[\sum\begin{Sb}i<B\\\text{$i$ odd}\end{Sb}
\prod_\kappa \kappa F(r_i)\qquad
\mathop{\pmb{\sum}}\begin{Sb}i<B\\\text{$i$ odd}\end{Sb}
\mathop{\pmb{\prod}}_\kappa \kappa(r_i)
\]
\end{verbatim}

\section{Compound symbols and other features}
\label{s:comp}
\subsection{Multiple integral signs}

\cs{iint}, \cs{iiint}, and \cs{iiiint} give multiple integral signs
with the spacing between them nicely adjusted,  in both text and
display style.  \cs{idotsint} gives two integral signs with dots
between them.
\begin{gather}
\iint\limits_A f(x,y)\,dx\,dy\qquad\iiint\limits_A
f(x,y,z)\,dx\,dy\,dz\\
\iiiint\limits_A
f(w,x,y,z)\,dw\,dx\,dy\,dz\qquad\idotsint\limits_A f(x_1,\dots,x_k)
\end{gather}

\subsection{Over and under arrows}

Some extra over and under arrow operations are provided in
the \opt{amstex} option.  (Basic \latex/ provides
\cs{overrightarrow} and \cs{overleftarrow}).
\begin{align*}
\overrightarrow{\psi_\delta(t) E_t h}&
=\underrightarrow{\psi_\delta(t) E_t h}\\
\overleftarrow{\psi_\delta(t) E_t h}&
=\underleftarrow{\psi_\delta(t) E_t h}\\
\overleftrightarrow{\psi_\delta(t) E_t h}&
=\underleftrightarrow{\psi_\delta(t) E_t h}
\end{align*}
\begin{verbatim}
\begin{align*}
\overrightarrow{\psi_\delta(t) E_t h}&
=\underrightarrow{\psi_\delta(t) E_t h}\\
\overleftarrow{\psi_\delta(t) E_t h}&
=\underleftarrow{\psi_\delta(t) E_t h}\\
\overleftrightarrow{\psi_\delta(t) E_t h}&
=\underleftrightarrow{\psi_\delta(t) E_t h}
\end{align*}
\end{verbatim}
These all scale properly in subscript sizes:
\[\int_{\overrightarrow{AB}} ax\,dx\]
\begin{verbatim}
\[\int_{\overrightarrow{AB}} ax\,dx\]
\end{verbatim}

\subsection{Dots}

Normally you need only type \cs{dots} for ellipsis dots in a
math formula.  The main exception is when the dots
fall at the end of the formula; then you need to
specify one of \cs{dotsc} (series dots, after a comma),
\cs{dotsb} (binary dots, for binary relations or operators),
\cs{dotsm} (multiplication dots), or \cs{dotsi} (dots after
an integral).  For example, the input
\begin{verbatim}
Then we have the series $A_1,A_2,\dotsc$,
the regional sum $A_1+A_2+\dotsb$,
the orthogonal product $A_1A_2\dotsm$,
and the infinite integral
\[\int_{A_1}\int_{A_2}\dotsi\].
\end{verbatim}
produces
\begin{quotation}
Then we have the series $A_1,A_2,\dotsc$,
the regional sum $A_1+A_2+\dotsb$,
the orthogonal product $A_1A_2\dotsm$,
and the infinite integral
\[\int_{A_1}\int_{A_2}\dotsi\]
\end{quotation}

\subsection{Accents in math}

Double accents:
\[\Hat{\Hat{H}}\quad\Check{\Check{C}}\quad
\Tilde{\Tilde{T}}\quad\Acute{\Acute{A}}\quad
\Grave{\Grave{G}}\quad\Dot{\Dot{D}}\quad
\Ddot{\Ddot{D}}\quad\Breve{\Breve{B}}\quad
\Bar{\Bar{B}}\quad\Vec{\Vec{V}}\]
\begin{verbatim}
\[\Hat{\Hat{H}}\quad\Check{\Check{C}}\quad
\Tilde{\Tilde{T}}\quad\Acute{\Acute{A}}\quad
\Grave{\Grave{G}}\quad\Dot{\Dot{D}}\quad
\Ddot{\Ddot{D}}\quad\Breve{\Breve{B}}\quad
\Bar{\Bar{B}}\quad\Vec{\Vec{V}}\]
\end{verbatim}
This double accent operation is complicated
and tends to slow down the processing of a \tex/ file.
If your document contains many double accents, you can
use \cs{accentedsymbol} in the preamble of your document to
help speed things up.  \cs{accented\-symbol}
is used like \cs{newcommand}:
\begin{verbatim}
\accentedsymbol{\Ahathat}{\Hat{\Hat A}}
\end{verbatim}

\subsection{Superscripted accents}
For superscripting accent characters, use \cs{sphat},
\cs{spcheck}, \cs{sptilde}, \cs{spdot}, \cs{spddot}, \cs{spdddot},
\cs{spbreve}.
\begin{gather}
(AmBD)\sphat\quad(AmBD)\spcheck\quad(AmBD)\sptilde\\
(AmBD)\spdot\quad(AmBD)\spddot\quad(AmBD)\spdddot\quad
(AmBD)\spbreve
\end{gather}
\begin{verbatim}
\begin{gather}
(AmBD)\sphat\quad(AmBD)\spcheck\quad(AmBD)\sptilde\\
(AmBD)\spdot\quad(AmBD)\spddot\quad(AmBD)\spdddot\quad
(AmBD)\spbreve
\end{gather}
\end{verbatim}

\subsection{Dot accents}
\cs{dddot} and \cs{ddddot} are available to
produce triple and quadruple dot accents
in addition to the \cs{dot} and \cs{ddot} accents already available
in \latex/:
\[\dddot{Q}\qquad\ddddot{R}\]
\begin{verbatim}
\[\dddot{Q}\qquad\ddddot{R}\]
\end{verbatim}

\subsection{Roots}

In the \opt{amstex} option \cs{leftroot} and \cs{uproot} allow you to adjust
the position of the root index of a radical:
\begin{verbatim}
\sqrt[\leftroot{-2}\uproot{2}\beta]{k}
\end{verbatim}
gives good positioning of the $\beta$:
\[\sqrt[\leftroot{-2}\uproot{2}\beta]{k}\]

\subsection{Boxed formulas} The command \cs{boxed} puts a box around its
argument, like \cs{fbox} except that the contents are in math mode:
\begin{verbatim}
\boxed{W_t-F\subseteq V(P_i)\subseteq W_t}
\end{verbatim}
\[\boxed{W_t-F\subseteq V(P_i)\subseteq W_t}.\]

\subsection{Extensible arrows} \verb"@>>>" and \verb"@<<<" produce
arrows that extend automatically to accommodate unusually wide
subscripts or superscripts.  The text of the subscript or superscript
is typed in between the \verb+>+ or \verb+<+ symbols.
Example:
\[F\times\triangle[n-1]  @>>{\partial_0\alpha(b)}>
E^{\partial_0b}\]
\begin{verbatim}
\[F\times\triangle[n-1]  @>>{\partial_0\alpha(b)}>
E^{\partial_0b}\]
\end{verbatim}
For users whose keyboards don't have \verb=<= and \verb=>=
keys, \verb=@)))= and \verb=@(((= are available as synonyms.

\subsection{{\tt\bslash overset}, {\tt\bslash underset} and
{\tt\bslash sideset}}
Examples:
\[\overset{*}{X}\qquad\underset{*}{X}\qquad
\overset{a}{\underset{b}{X}}\]
\begin{verbatim}
\[\overset{*}{X}\qquad\underset{*}{X}\qquad
\overset{a}{\underset{b}{X}}\]
\end{verbatim}

The command \cs{sideset} is for a rather special
purpose: putting symbols at the subscript and superscript
corners of a large operator symbol such as $\sum$ or $\prod$,
without affecting the placement of limits.
Examples:
\[\sideset{_*^*}{_*^*}\prod_k\qquad
\sideset{}{'}\sum_{0\le i\le m} E_i\beta x
\]
\begin{verbatim}
\[\sideset{_*^*}{_*^*}\prod_k\qquad
\sideset{}{'}\sum_{0\le i\le m} E_i\beta x
\]
\end{verbatim}

\subsection{The {\tt\bslash text} command}
The main use of the command \cs{text} is for words or phrases in a
display:
\[\bold{y}=\bold{y}'\quad\text{if and only if}\quad
y'_k=\delta_k y_{\tau(k)}\]
\begin{verbatim}
\[\bold{y}=\bold{y}'\quad\text{if and only if}\quad
y'_k=\delta_k y_{\tau(k)}\]
\end{verbatim}

\subsection{Operator names}
The more common math functions such as $\log$, $\sin$, and $\lim$
have predefined control sequences: \verb=\log=, \verb=\sin=,
\verb=\lim=.
The \opt{amstex} option provides \cs{operatorname} and
\cs{operatornamewithlimits}
for producing new function names that will have the
same typographical treatment.
Examples:
\[\|f\|_\infty=
\operatornamewithlimits{ess\,sup}_{x\in R^n}|f(x)|\]
\begin{verbatim}
\[\|f\|_\infty=
\operatornamewithlimits{ess\,sup}_{x\in R^n}|f(x)|\]
\end{verbatim}
\[\operatorname{meas}_1\{u\in R_+^1\:f^*(u)>\alpha\}
=\operatorname{meas}_n\{x\in R^n\:|f(x)|\geq\alpha\}
\quad \forall\alpha>0.\]
\begin{verbatim}
\[\operatorname{meas}_1\{u\in R_+^1\:f^*(u)>\alpha\}
=\operatorname{meas}_n\{x\in R^n\:|f(x)|\geq\alpha\}
\quad \forall\alpha>0.\]
\end{verbatim}
If you use a particular operator name often, you
can save yourself some typing and make
your \latex/ file more readable by defining an abbreviation
in the preamble area of your document, using \cs{newcommand}:
\begin{verbatim}
\newcommand{\esssup}{\operatornamewithlimits{ess\,sup}}
\newcommand{\meas}{\operatorname{meas}}
\end{verbatim}

Some special operatornames are predefined in the
\opt{amstex} option:
\cs{varinjlim}, \cs{varprojlim}, \cs{varliminf},
and \cs{varlimsup}.
Here's what they look like in use:
\begin{align}
&\varlimsup_{n\rightarrow\infty}
       \cal{Q}(u_n,u_n-u^{\#})\le0\\
&\varinjlim (m_i^\lambda\cdot)^*\le0\\
&\varprojlim_{p\in S(A)}A_p\le0\\
&\varliminf_{n\rightarrow\infty}
  \left|a_{n+1}\right|/\left|a_n\right|=0
\end{align}
\begin{verbatim}
\begin{align}
&\varlimsup_{n\rightarrow\infty}
       \cal{Q}(u_n,u_n-u^{\#})\le0\\
&\varinjlim (m_i^\lambda\cdot)^*\le0\\
&\varprojlim_{p\in S(A)}A_p\le0\\
&\varliminf_{n\rightarrow\infty}
  \left|a_{n+1}\right|/\left|a_n\right|=0
\end{align}
\end{verbatim}

\subsection{{\tt\bslash mod} and its relatives}
The commands \cs{mod} and \cs{pod} are variants of
\cs{pmod} preferred by some authors; \cs{mod} omits the parentheses,
whereas \cs{pod} omits the `mod' and retains the parentheses.
Examples:
\begin{align}
x&\equiv y+1\pmod{m^2}\\
x&\equiv y+1\mod{m^2}\\
x&\equiv y+1\pod{m^2}\\
\end{align}
\begin{verbatim}
\begin{align}
x&\equiv y+1\pmod{m^2}\\
x&\equiv y+1\mod{m^2}\\
x&\equiv y+1\pod{m^2}\\
\end{align}
\end{verbatim}

\subsection{Fractions and related constructions}
\label{fracs}
In the \opt{amstex} option,
\cs{frac} has a square bracket option that can be used
to specify the thickness of the fraction line.  For example:
\[\frac[1.5pt]{H(z+v)-H(z)-BH(z)v}{\|v\|}\]
\begin{verbatim}
\[\frac[1.5pt]{H(z+v)-H(z)-BH(z)v}{\|v\|}\]
\end{verbatim}
There is also \cs{fracwithdelims}, for stacked
constructions with delimiters on either side.
\[\fracwithdelims[]{H(z+v)-H(z)-BH(z)v}{\|v\|}\]
\begin{verbatim}
\[\fracwithdelims[]{H(z+v)-H(z)-BH(z)v}{\|v\|}\]
\end{verbatim}
Because it is used fairly often, the construction
\verb=\fracwithdelims()[0pt]= has a short form,
\cs{binom}.
Example:
\begin{equation}
\begin{split}
\sum_{\gamma\in\Gamma_C} I_\gamma&
=2^k-\binom{k}{1}2^{k-1}+\binom{k}{2}2^{k-2}\\
&\quad+\dots+(-1)^l\binom{k}{l}2^{k-l}
+\dots+(-1)^k\\
&=(2-1)^k=1
\end{split}
\end{equation}
\begin{verbatim}
\begin{equation}
\begin{split}
[\sum_{\gamma\in\Gamma_C} I_\gamma&
=2^k-\binom{k}{1}2^{k-1}+\binom{k}{2}2^{k-2}\\
&\quad+\dots+(-1)^l\binom{k}{l}2^{k-l}
+\dots+(-1)^k\\
&=(2-1)^k=1
\end{split}
\end{equation}
\end{verbatim}
There are also abbreviations
\begin{verbatim}
\dfrac        \dbinom
\tfrac        \tbinom
\end{verbatim}
for the commonly needed constructions
\begin{verbatim}
{\displaystyle\frac ... }   {\displaystyle\binom ... }
{\textstyle\frac ... }      {\textstyle\binom ... }
\end{verbatim}

\subsection{Continued fractions}
The continued fraction
\begin{equation}
\cfrac{1}{\sqrt{2}+
 \cfrac{1}{\sqrt{2}+
  \cfrac{1}{\sqrt{2}+
   \cfrac{1}{\sqrt{2}+
    \cfrac{1}{\sqrt{2}+\dotsb
}}}}}
\end{equation}
can be obtained by typing
{\samepage
\begin{verbatim}
\cfrac{1}{\sqrt{2}+
 \cfrac{1}{\sqrt{2}+
  \cfrac{1}{\sqrt{2}+
   \cfrac{1}{\sqrt{2}+
    \cfrac{1}{\sqrt{2}+\dotsb
}}}}}
\end{verbatim}
}Left or right placement of any of the numerators is accomplished by using
\cs{lcfrac} or \cs{rcfrac} instead of \cs{cfrac}.

\subsection{Smash}

In \opt{amstex} there are optional arguments \verb"t" and
\verb"b" for the plain \tex/
command \cs{smash}, because sometimes it is advantageous to be
able to `smash' only the top or only the bottom of something while
retaining the natural depth or height.  In the formula
 $X_j=(1/\sqrt{\smash[b]{\lambda_j}})X_j'$ \cs{smash}\verb=[b]=
has been used to limit the size of the radical symbol.
\begin{verbatim}
$X_j=(1/\sqrt{\smash[b]{\lambda_j}})X_j'$
\end{verbatim}
Without the use of \cs{smash}\verb=[b]= the formula would
have appeared thus: $X_j=(1/\sqrt{\lambda_j})X_j'$.

\subsection{The `cases' environment}
`Cases' constructions like the following can be produced using
the \env{cases} environment.
\begin{equation}
P_{r-j}=
  \begin{cases}
    0&  \text{if $r-j$ is odd},\\
    r!\,(-1)^{(r-j)/2}&  \text{if $r-j$ is even}.
  \end{cases}
\end{equation}
\begin{verbatim}
\begin{equation} P_{r-j}=
  \begin{cases}
    0&  \text{if $r-j$ is odd},\\
    r!\,(-1)^{(r-j)/2}&  \text{if $r-j$ is even}.
  \end{cases}
\end{equation}
\end{verbatim}
Notice the use of \cs{text} and the embedded math.

\subsection{Matrix}

Here are samples of the matrix environments,
\cs{matrix}, \cs{pmatrix}, \cs{bmatrix}, \cs{vmatrix} and \cs{Vmatrix}:
\begin{equation}
\begin{matrix}
\vartheta& \varrho\\\varphi& \varpi
\end{matrix}\quad
\begin{pmatrix}
\vartheta& \varrho\\\varphi& \varpi
\end{pmatrix}\quad
\begin{bmatrix}
\vartheta& \varrho\\\varphi& \varpi
\end{bmatrix}\quad
\begin{vmatrix}
\vartheta& \varrho\\\varphi& \varpi
\end{vmatrix}\quad
\begin{Vmatrix}
\vartheta& \varrho\\\varphi& \varpi
\end{Vmatrix}
\end{equation}
\begin{verbatim}
\begin{matrix}
\vartheta& \varrho\\\varphi& \varpi
\end{matrix}\quad
\begin{pmatrix}
\vartheta& \varrho\\\varphi& \varpi
\end{pmatrix}\quad
\begin{bmatrix}
\vartheta& \varrho\\\varphi& \varpi
\end{bmatrix}\quad
\begin{vmatrix}
\vartheta& \varrho\\\varphi& \varpi
\end{vmatrix}\quad
\begin{Vmatrix}
\vartheta& \varrho\\\varphi& \varpi
\end{Vmatrix}
\end{verbatim}

To produce a small matrix suitable for use in text, use the
\env{smallmatrix} environment.
\begin{verbatim}
\begin{math}
  \bigl( \begin{smallmatrix}
      a&b\\ c&d
    \end{smallmatrix} \bigr)
\end{math}
\end{verbatim}
To show
the effect of the matrix on the surrounding lines of
a paragraph, we put it here: \begin{math}
  \bigl( \begin{smallmatrix}
      a&b\\ c&d
    \end{smallmatrix} \bigr)
\end{math}
and follow it with enough text to ensure that there will
be at least one full line below the matrix.

\cs{hdotsfor}\verb"{"\<number>\verb"}" produces a row of dots in a matrix
spanning the given number of columns:
\[W(\Phi)= \begin{Vmatrix}
\dfrac\varphi{(\varphi_1,\varepsilon_1)}&0&\dots&0\\
\dfrac{\varphi k_{n2}}{(\varphi_2,\varepsilon_1)}&
\dfrac\varphi{(\varphi_2,\varepsilon_2)}&\dots&0\\
\hdotsfor{5}\\
\dfrac{\varphi k_{n1}}{(\varphi_n,\varepsilon_1)}&
\dfrac{\varphi k_{n2}}{(\varphi_n,\varepsilon_2)}&\dots&
\dfrac{\varphi k_{n\,n-1}}{(\varphi_n,\varepsilon_{n-1})}&
\dfrac{\varphi}{(\varphi_n,\varepsilon_n)}
\end{Vmatrix}\]
\begin{verbatim}
\[W(\Phi)= \begin{Vmatrix}
\dfrac\varphi{(\varphi_1,\varepsilon_1)}&0&\dots&0\\
\dfrac{\varphi k_{n2}}{(\varphi_2,\varepsilon_1)}&
\dfrac\varphi{(\varphi_2,\varepsilon_2)}&\dots&0\\
\hdotsfor{5}\\
\dfrac{\varphi k_{n1}}{(\varphi_n,\varepsilon_1)}&
\dfrac{\varphi k_{n2}}{(\varphi_n,\varepsilon_2)}&\dots&
\dfrac{\varphi k_{n\,n-1}}{(\varphi_n,\varepsilon_{n-1})}&
\dfrac{\varphi}{(\varphi_n,\varepsilon_n)}
\end{Vmatrix}\]
\end{verbatim}
The spacing of the dots can be varied through use of a square-bracket
option, for example, \verb"\hdotsfor[1.5]{3}".  The number in square brackets
will be used as a multiplier; the normal value is 1.

\subsection{The {\tt Sb} and {\tt Sp} environments}

The \env{Sb} and \env{Sp} environments can be used to typeset several
lines as a subscript or superscript:
for example
\begin{verbatim}
\begin{equation}
  \sum\begin{Sb}
        0\le i\le m\\ 0<j<n
      \end{Sb}
    P(i,j)
\end{equation}
\end{verbatim}
produces a two-line subscript underneath the sum:
\begin{equation}
  \sum\begin{Sb}
        0\le i\le m\\ 0<j<n
      \end{Sb}
    P(i,j)
\end{equation}
\env{Sb} and \env{Sp} can be used anywhere that an ordinary subscript or
superscript can be used.

\subsection{Commutative diagrams}

Example:
\[\begin{CD}
S^{{\cal W}_\Lambda}\otimes T   @>j>>   T\\
@VVV                                    @VV{\End P}V\\
(S\otimes T)/I                  @=      (Z\otimes T)/J
\end{CD}\]
\begin{verbatim}
\[\begin{CD}
S^{{\cal W}_\Lambda}\otimes T   @>j>>   T\\
@VVV                                    @VV{\End P}V\\
(S\otimes T)/I                  @=      (Z\otimes T)/J
\end{CD}\]
\end{verbatim}
(assuming \cs{End} is defined as \cs{operatorname}{\tt\char`\{End\char`\}}).
\index{CD@{\tt CD} environment}%
\index{"@VVV@{\tt "@VVV}}%
\index{"@>>>@{\tt "@>>>}}%
\index{VVV@{\tt "@VVV}}%

\subsection{Big-g-g-g delimiters}
Here are some big delimiters, first in \cs{normalsize}:
\[\biggl(\bold E_{y}
  \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
  \biggr)
\]
\begin{verbatim}
\[\biggl(\bold E_{y}
  \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
  \biggr)
\]
\end{verbatim}
and now in \cs{Large} size:
% amsart.sty doesn't define \Large, so we have to do this:
{\makeatletter\@setsize\Large{18\p@}\xivpt\@xivpt
\[\biggl(\bold E_{y}
  \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
  \biggr)
\]}
\begin{verbatim}
{\Large
\[\biggl(\bold E_{y}
  \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
  \biggr)
\]}
\end{verbatim}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\makeatletter

%% This turns on vertical rules at the right and left margins, to
%% better illustrate the spacing for certain multiple-line equation
%% structures.
\def\@makecol{\ifvoid\footins \setbox\@outputbox\box\@cclv
   \else\setbox\@outputbox
     \vbox{\boxmaxdepth \maxdepth
     \unvbox\@cclv\vskip\skip\footins\footnoterule\unvbox\footins}\fi
  \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats
  \setbox\@outputbox\hbox{\vrule width.1pt
        \vbox to\@colht{\boxmaxdepth\maxdepth
         \@texttop\dimen128=\dp\@outputbox\unvbox\@outputbox
         \vskip-\dimen128\@textbottom}%
        \vrule width.1pt}%
     \global\maxdepth\@maxdepth}

\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\appendix
\section{Examples of multiple-line equation structures}
\label{s:eq}
The lines indicating the margins are to make the marginal
spacing stand out more clearly in some of
the display examples in this appendix.

\subsection{Split}
The {\tt split} environment is not an independent environment
but should be used inside something else such as {\tt equation}
or {\tt align}.

The equation number for a {\tt split} will be shifted to the previous line
when there is not enough room for it, if equation numbers are on the left;
otherwise the number shifts down to the next line.
\begin{equation}
\begin{split}
f_{h,\varepsilon}(x,y)
&=\varepsilon\bold E_{x,y}\int_0^{t_\varepsilon}
L_{x,y_\varepsilon(\varepsilon u)}\varphi(x)\,du\\
&= h\int L_{x,z}\varphi(x)\rho_x(dz)\\
&\quad+h\biggl[\frac{1}{t_\varepsilon}\biggl(\bold E_{y}
  \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
  -t_\varepsilon\int L_{x,z}\varphi(x)\rho_x(dz)\biggr)\\
&\phantom{{=}+h\biggl[}+\frac{1}{t_\varepsilon}
  \biggl(\bold E_{y}\int_0^{t_\varepsilon}L_{x,y^x(s)}
    \varphi(x)\,ds -\bold E_{x,y}\int_0^{t_\varepsilon}
   L_{x,y_\varepsilon(\varepsilon s)}
   \varphi(x)\,ds\biggr)\biggr]\\
&=h\widehat{L}_x\varphi(x)+h\theta_\varepsilon(x,y),
\end{split}
\end{equation}
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{equation}
\begin{split}
f_{h,\varepsilon}(x,y)
&=\varepsilon\bold E_{x,y}\int_0^{t_\varepsilon}
L_{x,y_\varepsilon(\varepsilon u)}\varphi(x)\,du\\
&= h\int L_{x,z}\varphi(x)\rho_x(dz)\\
&\quad+h\biggl[\frac{1}{t_\varepsilon}\biggl(\bold E_{y}
  \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
  -t_\varepsilon\int L_{x,z}\varphi(x)\rho_x(dz)\biggr)\\
&\phantom{{=}+h\biggl[}+\frac{1}{t_\varepsilon}
  \biggl(\bold E_{y}\int_0^{t_\varepsilon}L_{x,y^x(s)}
    \varphi(x)\,ds -\bold E_{x,y}\int_0^{t_\varepsilon}
   L_{x,y_\varepsilon(\varepsilon s)}
   \varphi(x)\,ds\biggr)\biggr]\\
&=h\widehat{L}_x\varphi(x)+h\theta_\varepsilon(x,y),
\end{split}
\end{equation}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
Unnumbered version:
\begin{equation*}
\begin{split}
f_{h,\varepsilon}(x,y)
&=\varepsilon\bold E_{x,y}\int_0^{t_\varepsilon}
L_{x,y_\varepsilon(\varepsilon u)}\varphi(x)\,du\\
&= h\int L_{x,z}\varphi(x)\rho_x(dz)\\
&\quad+h\biggl[\frac{1}{t_\varepsilon}\biggl(\bold E_{y}
  \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
  -t_\varepsilon\int L_{x,z}\varphi(x)\rho_x(dz)\biggr)\\
&\phantom{{=}+h\biggl[}+\frac{1}{t_\varepsilon}
  \biggl(\bold E_{y}\int_0^{t_\varepsilon}L_{x,y^x(s)}
    \varphi(x)\,ds -\bold E_{x,y}\int_0^{t_\varepsilon}
   L_{x,y_\varepsilon(\varepsilon s)}
   \varphi(x)\,ds\biggr)\biggr]\\
&=h\widehat{L}_x\varphi(x)+h\theta_\varepsilon(x,y),
\end{split}
\end{equation*}
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{equation*}
\begin{split}
f_{h,\varepsilon}(x,y)
&=\varepsilon\bold E_{x,y}\int_0^{t_\varepsilon}
L_{x,y_\varepsilon(\varepsilon u)}\varphi(x)\,du\\
&= h\int L_{x,z}\varphi(x)\rho_x(dz)\\
&\quad+h\biggl[\frac{1}{t_\varepsilon}\biggl(\bold E_{y}
  \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
  -t_\varepsilon\int L_{x,z}\varphi(x)\rho_x(dz)\biggr)\\
&\phantom{{=}+h\biggl[}+\frac{1}{t_\varepsilon}
  \biggl(\bold E_{y}\int_0^{t_\varepsilon}L_{x,y^x(s)}
    \varphi(x)\,ds -\bold E_{x,y}\int_0^{t_\varepsilon}
   L_{x,y_\varepsilon(\varepsilon s)}
   \varphi(x)\,ds\biggr)\biggr]\\
&=h\widehat{L}_x\varphi(x)+h\theta_\varepsilon(x,y),
\end{split}
\end{equation*}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
If the option {\tt ctagsplt} is included in the documentstyle options
list, the equation numbers for {\tt split} environments will be
centered vertically on the height
of  the {\tt split}:
{\makeatletter\ctagsplit@true
\begin{equation}
\begin{split}
 |I_2|&=\left|\int_{0}^T \psi(t)\left\{u(a,t)-\int_{\gamma(t)}^a
  \frac{d\theta}{k(\theta,t)}
  \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi\right\}dt\right|\\
&\le C_6\left|\left|f\int_\Omega\left|\widetilde{S}^{-1,0}_{a,-}
  W_2(\Omega,\Gamma_l)\right|\right|
  \left||u|\overset{\circ}\to W_2^{\widetilde{A}}
  (\Omega;\Gamma_r,T)\right|\right|.
\end{split}
\end{equation}}%
Some text after to test the below-display spacing.

%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
Use of {\tt split} within {\tt align}:
{\delimiterfactor750
\begin{align}
\begin{split}|I_1|&=\left|\int_\Omega gRu\,d\Omega\right|\\
  &\le C_3\left[\int_\Omega\left(\int_{a}^x
  g(x\i,t)\,d\xi\right)^2d\Omega\right]^{1/2}\\
&\quad\times \left[\int_\Omega\left\{u^2_x+\frac{1}{k}
  \left(\int_{a}^x cu_t\,d\xi\right)^2\right\}
  c\Omega\right]^{1/2}\\
&\le C_4\left|\left|f\left|\widetilde{S}^{-1,0}_{a,-}
  W_2(\Omega,\Gamma_l)\right|\right|
  \left||u|\overset{\circ}\to W_2^{\widetilde{A}}
  (\Omega;\Gamma_r,T)\right|\right|.
\end{split}\label{eq:A}\\
\begin{split}|I_2|&=\left|\int_{0}^T \psi(t)\left\{u(a,t)
  -\int_{\gamma(t)}^a\frac{d\theta}{k(\theta,t)}
  \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi\right\}dt\right|\\
&\le C_6\left|\left|f\int_\Omega
 \left|\widetilde{S}^{-1,0}_{a,-}
  W_2(\Omega,\Gamma_l)\right|\right|
  \left||u|\overset{\circ}\to W_2^{\widetilde{A}}
  (\Omega;\Gamma_r,T)\right|\right|.
\end{split}
\end{align}}%
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{align}
\begin{split}|I_1|&=\left|\int_\Omega gRu\,d\Omega\right|\\
  &\le C_3\left[\int_\Omega\left(\int_{a}^x
  g(x\i,t)\,d\xi\right)^2d\Omega\right]^{1/2}\\
&\quad\times \left[\int_\Omega\left\{u^2_x+\frac{1}{k}
  \left(\int_{a}^x cu_t\,d\xi\right)^2\right\}
  c\Omega\right]^{1/2}\\
&\le C_4\left|\left|f\left|\widetilde{S}^{-1,0}_{a,-}
  W_2(\Omega,\Gamma_l)\right|\right|
  \left||u|\overset{\circ}\to W_2^{\widetilde{A}}
  (\Omega;\Gamma_r,T)\right|\right|.
\end{split}\label{eq:A}\\
\begin{split}|I_2|&=\left|\int_{0}^T \psi(t)\left\{u(a,t)
  -\int_{\gamma(t)}^a\frac{d\theta}{k(\theta,t)}
  \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi\right\}dt\right|\\
&\le C_6\left|\left|f\int_\Omega
  \left|\widetilde{S}^{-1,0}_{a,-}
  W_2(\Omega,\Gamma_l)\right|\right|
  \left||u|\overset{\circ}\to W_2^{\widetilde{A}}
  (\Omega;\Gamma_r,T)\right|\right|.
\end{split}
\end{align}
\end{verbatim}

%%%%%%%%%%%%%%%%%%

\newpage
Unnumbered {\tt align}, with a number on the second {\tt split}:
\begin{align*}
\begin{split}|I_1|&=\left|\int_\Omega gRu\,d\Omega\right|\\
  &\le C_3\left[\int_\Omega\left(\int_{a}^x
  g(x\i,t)\,d\xi\right)^2d\Omega\right]^{1/2}\\
&\phantom{=}\times \left[\int_\Omega\left\{u^2_x+\frac{1}{k}
  \left(\int_{a}^x cu_t\,d\xi\right)^2\right\}
  c\Omega\right]^{1/2}\\
&\le C_4\left|\left|f\left|\widetilde{S}^{-1,0}_{a,-}
  W_2(\Omega,\Gamma_l)\right|\right|
  \left||u|\overset{\circ}\to W_2^{\widetilde{A}}
  (\Omega;\Gamma_r,T)\right|\right|.
\end{split}\\
\begin{split}|I_2|&=\left|\int_{0}^T \psi(t)\left\{u(a,t)
  -\int_{\gamma(t)}^a\frac{d\theta}{k(\theta,t)}
  \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi\right\}dt\right|\\
&\le C_6\left|\left|f\int_\Omega
  \left|\widetilde{S}^{-1,0}_{a,-}
  W_2(\Omega,\Gamma_l)\right|\right|
  \left||u|\overset{\circ}\to W_2^{\widetilde{A}}
  (\Omega;\Gamma_r,T)\right|\right|.
\end{split}\tag{\theequation$'$}
\end{align*}
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{align*}
\begin{split}|I_1|&=\left|\int_\Omega gRu\,d\Omega\right|\\
  &\le C_3\left[\int_\Omega\left(\int_{a}^x
  g(x\i,t)\,d\xi\right)^2d\Omega\right]^{1/2}\\
&\phantom{=}\times \left[\int_\Omega\left\{u^2_x+\frac{1}{k}
  \left(\int_{a}^x cu_t\,d\xi\right)^2\right\}
  c\Omega\right]^{1/2}\\
&\le C_4\left|\left|f\left|\widetilde{S}^{-1,0}_{a,-}
  W_2(\Omega,\Gamma_l)\right|\right|
  \left||u|\overset{\circ}\to W_2^{\widetilde{A}}
  (\Omega;\Gamma_r,T)\right|\right|.
\end{split}\\
\begin{split}|I_2|&=\left|\int_{0}^T \psi(t)\left\{u(a,t)
  -\int_{\gamma(t)}^a\frac{d\theta}{k(\theta,t)}
  \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi\right\}dt\right|\\
&\le C_6\left|\left|f\int_\Omega
  \left|\widetilde{S}^{-1,0}_{a,-}
  W_2(\Omega,\Gamma_l)\right|\right|
  \left||u|\overset{\circ}\to W_2^{\widetilde{A}}
  (\Omega;\Gamma_r,T)\right|\right|.
\end{split}\tag{\theequation$'$}
\end{align*}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\subsection{Multline}
Numbered version:
\begin{multline}\label{eq:E}
\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
 -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
 =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
  \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
\end{multline}
To test the use of \verb=\label= and
\verb=\ref=, we refer to the number of this
equation here: (\ref{eq:E}).

\begin{verbatim}
\begin{multline}\label{eq:E}
\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
 -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
 =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
  \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
\end{multline}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

Unnumbered version:
\begin{multline*}
\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
 -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
 =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
  \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
\end{multline*}
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{multline*}
\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
 -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
 =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
  \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
\end{multline*}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
And now an ``unnumbered'' version numbered with a literal tag:
\begin{multline*}\tag*{[a]}
\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
 -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
 =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
  \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
\end{multline*}
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{multline*}\tag*{[a]}
\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
 -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
 =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
  \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
\end{multline*}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

The same display with \verb=\multlinegap= set to zero.
Notice that the space on the left in
the first line does not change, because of the equation number, while
the second line is pushed over to the right margin.
{\setlength{\multlinegap}{0pt}
\begin{multline*}\tag*{[a]}
\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
 -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
 =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
  \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
\end{multline*}}%
Some text after to test the below-display spacing.

\begin{verbatim}
{\setlength{\multlinegap}{0pt}
\begin{multline*}\tag*{[a]}
\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
 -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
 =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
  \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
\end{multline*}}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Gather}
Numbered version with \verb;\notag; on the second line:
\begin{gather}
D(a,r)\equiv\{z\in\bold C\colon |z-a|<r\},\\
\operatorname{seg}(a,r)\equiv\{z\in\bold C\colon
\Im z= \Im a,\ |z-a|<r\},\notag\\
c(e,\theta,r)\equiv\{(x,y)\in\bold C
\colon |x-e|<y\tan\theta,\ 0<y<r\},\\
C(E,\theta,r)\equiv\bigcup_{e\in E}c(e,\theta,r).
\end{gather}
\begin{verbatim}
\begin{gather}
D(a,r)\equiv\{z\in\bold C\colon |z-a|<r\},\\
\operatorname{seg}(a,r)\equiv\{z\in\bold C\colon
\Im z= \Im a,\ |z-a|<r\},\notag\\
c(e,\theta,r)\equiv\{(x,y)\in\bold C
\colon |x-e|<y\tan\theta,\ 0<y<r\},\\
C(E,\theta,r)\equiv\bigcup_{e\in E}c(e,\theta,r).
\end{gather}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

Unnumbered version.
\begin{gather*}
D(a,r)\equiv\{z\in\bold C\colon |z-a|<r\},\\
\operatorname{seg}(a,r)\equiv\{z\in\bold C\colon
\Im z= \Im a,\ |z-a|<r\},\\
c(e,\theta,r)\equiv\{(x,y)\in\bold C
 \colon |x-e|<y\tan\theta,\ 0<y<r\},\\
C(E,\theta,r)\equiv\bigcup_{e\in E}c(e,\theta,r).
\end{gather*}
Some text after to test the below-display spacing.
\begin{verbatim}
\begin{gather*}
D(a,r)\equiv\{z\in\bold C\colon |z-a|<r\},\\
\operatorname{seg}(a,r)\equiv\{z\in\bold C\colon
\Im z= \Im a,\ |z-a|<r\},\\
c(e,\theta,r)\equiv\{(x,y)\in\bold C
 \colon |x-e|<y\tan\theta,\ 0<y<r\},\\
C(E,\theta,r)\equiv\bigcup_{e\in E}c(e,\theta,r).
\end{gather*}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\subsection{Align}
Numbered version:
\begin{align}
\gamma_x(t)&=(\cos tu+\sin tx,v),\\
\gamma_y(t)&=(u,\cos tv+\sin ty),\\
\gamma_z(t)&=\left(\cos tu+\frac\alpha\beta\sin tv,
  -\frac\beta\alpha\sin tu+\cos tv\right).
\end{align}
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{align}
\gamma_x(t)&=(\cos tu+\sin tx,v),\\
\gamma_y(t)&=(u,\cos tv+\sin ty),\\
\gamma_z(t)&=\left(\cos tu+\frac\alpha\beta\sin tv,
  -\frac\beta\alpha\sin tu+\cos tv\right).
\end{align}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

Unnumbered version:
\begin{align*}
\gamma_x(t)&=(\cos tu+\sin tx,v),\\
\gamma_y(t)&=(u,\cos tv+\sin ty),\\
\gamma_z(t)&=\left(\cos tu+\frac\alpha\beta\sin tv,
  -\frac\beta\alpha\sin tu+\cos tv\right).
\end{align*}
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{align*}
\gamma_x(t)&=(\cos tu+\sin tx,v),\\
\gamma_y(t)&=(u,\cos tv+\sin ty),\\
\gamma_z(t)&=\left(\cos tu+\frac\alpha\beta\sin tv,
  -\frac\beta\alpha\sin tu+\cos tv\right).
\end{align*}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\subsection{Align and split within gather}
When using the {\tt align} environment within the {\tt gather}
environment, one or the other, or both, should be unnumbered
(using the * form), since
having numbering for both the outer and inner environment
would cause a conflict.

Automically numbered {\tt gather} with {\tt split} and {\tt align*}:
\begin{gather}
\begin{split} \varphi(x,z)
&=z-\gamma_{10}x-\sum_{m+n\ge2}\gamma_{mn}x^mz^n\\
&=z-Mr^{-1}x-\sum_{m+n\ge2}Mr^{-(m+n)}x^mz^n
\end{split}\\[6pt]
\begin{align*}
\zeta^0 &=(\xi^0)^2,\\
\zeta^1 &=\xi^0\xi^1,\\
\zeta^2 &=(\xi^1)^2,
\end{align*}
\end{gather}
Here the {\tt split} environment gets a number from the outer
{\tt gather} environment; numbers for the {\tt align*} are suppressed
because of the star.

\begin{verbatim}
\begin{gather}
\begin{split} \varphi(x,z)
&=z-\gamma_{10}x-\sum_{m+n\ge2}\gamma_{mn}x^mz^n\\
&=z-Mr^{-1}x-\sum_{m+n\ge2}Mr^{-(m+n)}x^mz^n
\end{split}\\[6pt]
\begin{align*}
\zeta^0 &=(\xi^0)^2,\\
\zeta^1 &=\xi^0\xi^1,\\
\zeta^2 &=(\xi^1)^2,
\end{align*}
\end{gather}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

The *-ed form of {\tt gather} with the non-*-ed form of
{\tt align}.
\begin{gather*}
\begin{split} \varphi(x,z)
&=z-\gamma_{10}x-\sum_{m+n\ge 2}\gamma_{mn}x^mz^n\\
&=z-Mr^{-1}x-\sum_{m+n\ge 2}Mr^{-(m+n)}x^mz^n
\end{split}\\[6pt]
\begin{align} \zeta^0&=(\xi^0)^2,\\
\zeta^1 &=\xi^0\xi^1,\\
\zeta^2 &=(\xi^1)^2,
\end{align}
\end{gather*}
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{gather*}
\begin{split} \varphi(x,z)
&=z-\gamma_{10}x-\sum_{m+n\ge 2}\gamma_{mn}x^mz^n\\
&=z-Mr^{-1}x-\sum_{m+n\ge 2}Mr^{-(m+n)}x^mz^n
\end{split}\\[6pt]
\begin{align} \zeta^0&=(\xi^0)^2,\\
\zeta^1 &=\xi^0\xi^1,\\
\zeta^2 &=(\xi^1)^2,
\end{align}
\end{gather*}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\subsection{Alignat}
Numbered version:
\begin{alignat}{3}
V_i & =v_i - q_i v_j, & \qquad X_i & = x_i - q_i x_j,
 & \qquad U_i & = u_i,
 \qquad \text{for $i\ne j$;}\label{eq:B}\\
V_j & = v_j, & \qquad X_j & = x_j,
  & \qquad U_j & u_j + \sum_{i\ne j} q_i u_i.
\end{alignat}
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{alignat}{3}
V_i & =v_i - q_i v_j, & \qquad X_i & = x_i - q_i x_j,
 & \qquad U_i & = u_i,
 \qquad \text{for $i\ne j$;}\label{eq:B}\\
V_j & = v_j, & \qquad X_j & = x_j,
  & \qquad U_j & u_j + \sum_{i\ne j} q_i u_i.
\end{alignat}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

Unnumbered version:
\begin{alignat*}3
V_i & =v_i - q_i v_j, & \qquad X_i & = x_i - q_i x_j,
 & \qquad U_i & = u_i,
 \qquad \text{for $i\ne j$;} \\
V_j & = v_j, & \qquad X_j & = x_j,
  & \qquad U_j & u_j + \sum_{i\ne j} q_i u_i.
\end{alignat*}
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{alignat*}3
V_i & =v_i - q_i v_j, & \qquad X_i & = x_i - q_i x_j,
 & \qquad U_i & = u_i,
 \qquad \text{for $i\ne j$;} \\
V_j & = v_j, & \qquad X_j & = x_j,
  & \qquad U_j & u_j + \sum_{i\ne j} q_i u_i.
\end{alignat*}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
The most common use for \env{alignat} is for things like
\begin{alignat}{2}
x& =y && \qquad \text {by (\ref{eq:A})}\label{eq:C}\\
x'& = y' && \qquad \text {by (\ref{eq:B})}\label{eq:D}\\
x+x' & = y+y' && \qquad \text {by Axiom 1.}
\end{alignat}
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{alignat}{2}
x& =y && \qquad \text {by (\ref{eq:A})}\label{eq:C}\\
x'& = y' && \qquad \text {by (\ref{eq:B})}\label{eq:D}\\
x+x' & = y+y' && \qquad \text {by Axiom 1.}
\end{alignat}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

The expanded version, \env{xalignat}:
\begin{xalignat}{2}
x& =y && \text {by (\ref{eq:C})}\\
x'& = y' && \text {by (\ref{eq:D})}\\
x+x' & = y+y' && \text {by Axiom 1.}
\end{xalignat}
Some text after to test the below-display spacing.

\begin{verbatim}
\begin{xalignat}{2}
x& =y && \text {by (\ref{eq:C})}\\
x'& = y' && \text {by (\ref{eq:D})}\\
x+x' & = y+y' && \text {by Axiom 1.}
\end{xalignat}
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

\bibliographystyle{amsplain}
\bibliography{test}

\end{document}
\endinput


\documentclass[]{article}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\usepackage{fixltx2e} % provides \textsubscript
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
\else % if luatex or xelatex
  \ifxetex
    \usepackage{mathspec}
  \else
    \usepackage{fontspec}
  \fi
  \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
\fi
% use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
% use microtype if available
\IfFileExists{microtype.sty}{%
\usepackage{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\usepackage[unicode=true]{hyperref}
\hypersetup{
            pdftitle={Mathematics Handout - Logaritmics},
            pdfauthor={Daniel Frederico Lins Leite},
            pdfborder={0 0 0},
            breaklinks=true}
\urlstyle{same}  % don't use monospace font for urls
\IfFileExists{parskip.sty}{%
\usepackage{parskip}
}{% else
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
}
\setlength{\emergencystretch}{3em}  % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{0}
% Redefines (sub)paragraphs to behave more like sections
\ifx\paragraph\undefined\else
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
\fi
\ifx\subparagraph\undefined\else
\let\oldsubparagraph\subparagraph
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
\fi

\title{Mathematics Handout - Logaritmics}
\author{Daniel Frederico Lins Leite}
\date{July 2016}

\begin{document}
\maketitle

\section{Introduction}\label{introduction}

{Exp is continuous} \[x^l = A => log_x A = l\]
\[x^m = B => log_x B = m\] \[x^n = A*B => log_x(A*B) = n\]
\[x^n = x^l*x^m\] \[x^n = x^(l+m)\] Given that power in bijective and
onto * \[n = l+m\] \[log_x (A*B) = log_x A + log_x B\]

{Logarithm Division Rule} \[x^l = A => log_x A = l\]
\[x^m = B => log_x B = m\] \[x^n = A/B => log_x(A/B) = n\]
\[x^n = (x^l)/(x^m)\] \[x^n = x^l*x^(-m)\] Given that power in bijective
and onto * \[n=l-m\] \[log_x (A/B) = log_x A - log_x B\]

{Logarithm Division Rule} \[log_x A = B => x^B = A\] First multiply the
left side for c \[C*(log_x A) = C*B\] Now raise the right side to C
\[(x^B)^C =  A^C\] Given the Power rule \[x^(B*C) = A^C\] We can write
this expression as log as \[log_x (A^C) = B*C\] Which give use
\[log_x (A^C) = C*(log_x A)\]

\end{document}


\documentclass{wg21}

\usepackage{xcolor}
\usepackage{soul}
\usepackage{ulem}
\usepackage{fullpage}
\usepackage{parskip}
\usepackage{csquotes}
\usepackage{listings}
\usepackage{minted}
\usepackage{enumitem}

\lstdefinestyle{base}{
  language=c++,
  breaklines=false,
  basicstyle=\ttfamily\color{black},
  moredelim=**[is][\color{green!50!black}]{@}{@},
  escapeinside={(*@}{@*)}
}

\newcommand{\cc}[1]{\mintinline{c++}{#1}}
\newminted[cpp]{c++}{}

\title{Making \cc{std::queue} constexpr}
\docnumber{P1925R0}
\audience{LEWGI}
\author{Alexander Zaitsev}{zamazan4ik@tut.by, zamazan4ik@gmail.com}

\begin{document}
\maketitle

\section{Revision history}
\begin{itemize}
  \item R0 -- Initial draft
\end{itemize}

\section{Abstract}
\cc{std::queue} is not currently \cc{constexpr} friendly. With the loosening
of requirements on \cc{constexpr} in \cite{P0784R1} and related papers, we
can now make \cc{std::queue} \cc{constexpr}, and we should in order to support
the \cc{constexpr} reflection effort (and other evident use cases).

\section{Motivation}
\cc{std::queue} is not so widely-used standard container as \cc{std::vector} or \cc{std::string}. But there is no reason to keep \cc{std::queue} in non-\cc{constexpr} state since one of the main directions of C++ evolution is compile-time programming. And we want to use in compile-time as much as possible from STL. And this paper makes \cc{std::queue} available in compile-time.

\section{Proposed wording}
We basically mark all the member and non-member functions of \cc{std::queue} \cc{constexpr}.

Direction to the editor: please apply \cc{constexpr} to all of \cc{std::queue},
including any additions that might be missing from this paper.

In \textbf{[support.limits.general]}, add the new feature test macro
\cc{__cpp_lib_constexpr_queue} with the corresponding value for header
\cc{<queue>} to Table 36 \textbf{[tab:support.ft]}.

Change in \textbf{[queue.syn] 22.6.2}:
\begin{quote}
\begin{codeblock}
#include <initializer_list>

namespace std {
  template<class T, class Container = deque<T>> class queue;

  template<class T, class Container>
    @\added{constexpr}@ bool operator==(const queue<T, Container>& x, const queue<T, Container>& y);
  template<class T, class Container>
    @\added{constexpr}@ bool operator!=(const queue<T, Container>& x, const queue<T, Container>& y);
  template<class T, class Container>
    @\added{constexpr}@ bool operator< (const queue<T, Container>& x, const queue<T, Container>& y);
  template<class T, class Container>
    @\added{constexpr}@ bool operator> (const queue<T, Container>& x, const queue<T, Container>& y);
  template<class T, class Container>
    @\added{constexpr}@ bool operator<=(const queue<T, Container>& x, const queue<T, Container>& y);
  template<class T, class Container>
    @\added{constexpr}@ bool operator>=(const queue<T, Container>& x, const queue<T, Container>& y);
  template<class T, three_way_comparable Container>
    @\added{constexpr}@ compare_three_way_result_t<Container>
      operator<=>(const queue<T, Container>& x, const queue<T, Container>& y);

  template<class T, class Container>
    @\added{constexpr}@ void swap(queue<T, Container>& x, queue<T, Container>& y)
      noexcept(noexcept(x.swap(y)));
  template<class T, class Container, class Alloc>
    struct uses_allocator<queue<T, Container>, Alloc>;
}
\end{codeblock}
[...]
\end{quote}

Change in \textbf{[queue.defn] 22.6.4.1}:
\begin{quote}
\begin{codeblock}
namespace std {
  template<class T, class Container = deque<T>>
  class queue {
  public:
  	using value_type      = typename Container::value_type;
  	using reference       = typename Container::reference;
  	using const_reference = typename Container::const_reference;
  	using size_type       = typename Container::size_type;
  	using container_type  =          Container;

  protected:
  	Container c;

  public:
  	@\added{constexpr}@ queue() : queue(Container()) {}
  	@\added{constexpr}@ explicit queue(const Container&);
  	@\added{constexpr}@ explicit queue(Container&&);
  	template<class Alloc> @\added{constexpr}@ explicit queue(const Alloc&);
  	template<class Alloc> @\added{constexpr}@ queue(const Container&, const Alloc&);
  	template<class Alloc> @\added{constexpr}@ queue(Container&&, const Alloc&);
  	template<class Alloc> @\added{constexpr}@ queue(const queue&, const Alloc&);
  	template<class Alloc> @\added{constexpr}@ queue(queue&&, const Alloc&);

  	[[nodiscard]] @\added{constexpr}@ bool empty() const    { return c.empty(); }
  	@\added{constexpr}@ size_type         size()  const     { return c.size(); }
  	@\added{constexpr}@ reference         front()           { return c.front(); }
  	@\added{constexpr}@ const_reference   front() const     { return c.front(); }
  	@\added{constexpr}@ reference         back()            { return c.back(); }
  	@\added{constexpr}@ const_reference   back() const      { return c.back(); }
  	@\added{constexpr}@ void push(const value_type& x)      { c.push_back(x); }
  	@\added{constexpr}@ void push(value_type&& x)           { c.push_back(std::move(x)); }
  	template<class... Args>
  	  @\added{constexpr}@ decltype(auto) emplace(Args&&... args)
  	    { return c.emplace_back(std::forward<Args>(args)...); }
  	@\added{constexpr}@ void pop()                          { c.pop_front(); }
  	@\added{constexpr}@ void swap(queue& q) noexcept(is_nothrow_swappable_v<Container>)
  	  { using std::swap; swap(c, q.c); }
  };

  template<class Container>
    queue(Container) -> queue<typename Container::value_type, Container>;

  template<class Container, class Allocator>
    queue(Container, Allocator) -> queue<typename Container::value_type, Container>;

  template<class T, class Container>
    @\added{constexpr}@ void swap(queue<T, Container>& x, queue<T, Container>& y)
      noexcept(noexcept(x.swap(y)));

  template<class T, class Container, class Alloc>
    struct uses_allocator<queue<T, Container>, Alloc>
      : uses_allocator<Container, Alloc>::type { };
}
\end{codeblock}%
\end{quote}

Change in \textbf{[queue.cons] 22.6.4.2}:
\begin{quote}
\begin{itemdecl}
@\added{constexpr}@ explicit queue(const Container& cont);
\end{itemdecl}
[...]
\begin{itemdecl}
@\added{constexpr}@ explicit queue(Container&& cont);
\end{itemdecl}
\end{quote}

Change in \textbf{[queue.cons.alloc] 22.6.4.3}:
\begin{quote}
\begin{itemdecl}
template<class Alloc> @\added{constexpr}@ explicit queue(const Alloc& a);
\end{itemdecl}
[...]
\begin{itemdecl}
template<class Alloc> @\added{constexpr}@ queue(const container_type& cont, const Alloc& a);
\end{itemdecl}
[...]
\begin{itemdecl}
template<class Alloc> @\added{constexpr}@ queue(container_type&& cont, const Alloc& a);
\end{itemdecl}
[...]
\begin{itemdecl}
template<class Alloc> @\added{constexpr}@ queue(const queue& q, const Alloc& a);
\end{itemdecl}
[...]
\begin{itemdecl}
template<class Alloc> @\added{constexpr}@ queue(queue&& q, const Alloc& a);
\end{itemdecl}
[...]
\end{quote}

Change in \textbf{[queue.ops] 22.6.4.4}:
\begin{quote}
\begin{itemdecl}
template<class T, class Container>
  @\added{constexpr}@ bool operator==(const queue<T, Container>& x, const queue<T, Container>& y);
\end{itemdecl}
[...]
\begin{itemdecl}
template<class T, class Container>
  @\added{constexpr}@ bool operator!=(const queue<T, Container>& x,  const queue<T, Container>& y);
\end{itemdecl}
[...]
\begin{itemdecl}
template<class T, class Container>
  @\added{constexpr}@ bool operator< (const queue<T, Container>& x, const queue<T, Container>& y);
\end{itemdecl}
[...]
\begin{itemdecl}
template<class T, class Container>
  @\added{constexpr}@ bool operator> (const queue<T, Container>& x, const queue<T, Container>& y);
\end{itemdecl}
[...]
\begin{itemdecl}
template<class T, class Container>
  @\added{constexpr}@ bool operator<=(const queue<T, Container>& x, const queue<T, Container>& y);
\end{itemdecl}
[...]
\begin{itemdecl}
template<class T, class Container>
  @\added{constexpr}@ bool operator>=(const queue<T, Container>& x,
                                      const queue<T, Container>& y);
\end{itemdecl}
[...]
\begin{itemdecl}
template<class T, three_way_comparable Container>
  @\added{constexpr}@ compare_three_way_result_t<Container>
    operator<=>(const queue<T, Container>& x, const queue<T, Container>& y);
\end{itemdecl}
[...]
\end{quote}

Change in \textbf{[queue.special] 22.6.4.5}:
\begin{quote}
\begin{itemdecl}
template<class T, class Container>
  @\added{constexpr}@ void swap(queue<T, Container>& x, queue<T, Container>& y)
    noexcept(noexcept(x.swap(y)));
\end{itemdecl}

\end{quote}

\section{Implementation}
Possible implementation can be found here: \href{https://github.com/ZaMaZaN4iK/llvm-project/tree/feature/queue_constexpr}{LLVM fork}. Notice that when proposal was written constexpr destructors were not supported in Clang.

\section{References}
\renewcommand{\section}[2]{}%
\begin{thebibliography}{9}

\bibitem[P0784R1]{P0784R1}
  Multiple authors,
  \emph{Standard containers and constexpr}\newline
  \url{http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0784r1.html}

\end{thebibliography}

\end{document}