700 lines
19 KiB
TeX
700 lines
19 KiB
TeX
|
\DeclareFontEncoding{LS1}{}{}
|
||
|
\DeclareFontSubstitution{LS1}{stix}{m}{n}
|
||
|
\DeclareMathAlphabet{\mathscr}{LS1}{stixscr}{m}{n}
|
||
|
|
||
|
\newcommand{\cA}{\mathcal{A}}
|
||
|
\newcommand{\cB}{\mathcal{B}}
|
||
|
\newcommand{\cC}{\mathcal{C}}
|
||
|
\newcommand{\cD}{\mathcal{D}}
|
||
|
\newcommand{\cE}{\mathcal{E}}
|
||
|
\newcommand{\cF}{\mathcal{F}}
|
||
|
\newcommand{\cG}{\mathcal{G}}
|
||
|
\newcommand{\cH}{\mathcal{H}}
|
||
|
\newcommand{\cI}{\mathcal{I}}
|
||
|
\newcommand{\cJ}{\mathcal{J}}
|
||
|
\newcommand{\cK}{\mathcal{K}}
|
||
|
\newcommand{\cL}{\mathcal{L}}
|
||
|
\newcommand{\cM}{\mathcal{M}}
|
||
|
\newcommand{\cN}{\mathcal{N}}
|
||
|
\newcommand{\cO}{\mathcal{O}}
|
||
|
\newcommand{\cP}{\mathcal{P}}
|
||
|
\newcommand{\cQ}{\mathcal{Q}}
|
||
|
\newcommand{\cR}{\mathcal{R}}
|
||
|
\newcommand{\cS}{\mathcal{S}}
|
||
|
\newcommand{\cT}{\mathcal{T}}
|
||
|
\newcommand{\cU}{\mathcal{U}}
|
||
|
\newcommand{\cV}{\mathcal{V}}
|
||
|
\newcommand{\cW}{\mathcal{W}}
|
||
|
\newcommand{\cX}{\mathcal{X}}
|
||
|
\newcommand{\cY}{\mathcal{Y}}
|
||
|
\newcommand{\cZ}{\mathcal{Z}}
|
||
|
|
||
|
\newcommand{\fA}{\mathfrak{A}}
|
||
|
\newcommand{\fB}{\mathfrak{B}}
|
||
|
\newcommand{\fC}{\mathfrak{C}}
|
||
|
\newcommand{\fD}{\mathfrak{D}}
|
||
|
\newcommand{\fE}{\mathfrak{E}}
|
||
|
\newcommand{\fF}{\mathfrak{F}}
|
||
|
\newcommand{\fG}{\mathfrak{G}}
|
||
|
\newcommand{\fH}{\mathfrak{H}}
|
||
|
\newcommand{\fI}{\mathfrak{I}}
|
||
|
\newcommand{\fJ}{{\bf\mathfrak{J}}}
|
||
|
\newcommand{\fK}{\mathfrak{K}}
|
||
|
\newcommand{\fL}{\mathfrak{L}}
|
||
|
\newcommand{\fM}{\mathfrak{M} \cfadd{multi}}
|
||
|
\newcommand{\fN}{\mathfrak{N}}
|
||
|
\newcommand{\fO}{\mathfrak{O}}
|
||
|
\newcommand{\fP}{\mathfrak{P}}
|
||
|
\newcommand{\fQ}{\mathfrak{Q}}
|
||
|
\newcommand{\fR}{\mathfrak{R}}
|
||
|
\newcommand{\fS}{\mathfrak{S}}
|
||
|
\newcommand{\fT}{\mathfrak{T}}
|
||
|
\newcommand{\fU}{\mathfrak{U}}
|
||
|
\newcommand{\fV}{\mathfrak{V}}
|
||
|
\newcommand{\fW}{\mathfrak{W}}
|
||
|
\newcommand{\fX}{\mathfrak{X}}
|
||
|
\newcommand{\fY}{\mathfrak{Y}}
|
||
|
\newcommand{\fZ}{\mathfrak{Z}}
|
||
|
|
||
|
\newcommand{\fa}{\mathfrak{a}}
|
||
|
\newcommand{\fb}{\mathfrak{b}}
|
||
|
\newcommand{\fc}{\mathfrak{c}}
|
||
|
\newcommand{\fd}{\mathfrak{d}}
|
||
|
\newcommand{\fe}{\mathfrak{e}}
|
||
|
\newcommand{\ff}{\mathfrak{f}}
|
||
|
\newcommand{\fg}{\mathfrak{g}}
|
||
|
\newcommand{\fh}{\mathfrak{h}}
|
||
|
%\newcommand{\fi}{\mathfrak{i}}
|
||
|
%\newcommand{\fj}{\mathfrak{j}}
|
||
|
\newcommand{\fk}{\mathfrak{k}}
|
||
|
\newcommand{\fl}{\mathfrak{l}}
|
||
|
\newcommand{\fm}{\mathfrak{m}}
|
||
|
\newcommand{\fn}{\mathfrak{n}}
|
||
|
\newcommand{\fo}{\mathfrak{o}}
|
||
|
\newcommand{\fp}{\mathfrak{p}}
|
||
|
\newcommand{\fq}{\mathfrak{q}}
|
||
|
\newcommand{\fr}{\mathfrak{r} \cfadd{rectifier}}
|
||
|
\newcommand{\fs}{\mathfrak{s}}
|
||
|
\newcommand{\ft}{\mathfrak{t}}
|
||
|
\newcommand{\fu}{\mathfrak{u}}
|
||
|
\newcommand{\fv}{\mathfrak{v}}
|
||
|
\newcommand{\fw}{\mathfrak{w}}
|
||
|
\newcommand{\fx}{\mathfrak{x}}
|
||
|
\newcommand{\fy}{\mathfrak{y}}
|
||
|
\newcommand{\fz}{\mathfrak{z}}
|
||
|
|
||
|
\newcommand{\bfa}{\mathbf{a}}
|
||
|
\newcommand{\bfb}{\mathbf{b}}
|
||
|
\newcommand{\bfc}{\mathbf{c}}
|
||
|
\newcommand{\bfd}{\mathbf{d}}
|
||
|
\newcommand{\bfe}{\mathbf{e}}
|
||
|
\newcommand{\bff}{\mathbf{f}}
|
||
|
\newcommand{\bfg}{\mathbf{g}}
|
||
|
\newcommand{\bfh}{\mathbf{h}}
|
||
|
\newcommand{\bfi}{\mathbf{i}}
|
||
|
\newcommand{\bfj}{\mathbf{j}}
|
||
|
\newcommand{\bfk}{\mathbf{k}}
|
||
|
\newcommand{\bfl}{\mathbf{l}}
|
||
|
\newcommand{\bfm}{\mathbf{m}}
|
||
|
\newcommand{\bfn}{\mathbf{n}}
|
||
|
\newcommand{\bfo}{\mathbf{o}}
|
||
|
\newcommand{\bfp}{\mathbf{p}}
|
||
|
\newcommand{\bfq}{\mathbf{q}}
|
||
|
\newcommand{\bfr}{\mathbf{r}}
|
||
|
\newcommand{\bfs}{\mathbf{s}}
|
||
|
\newcommand{\bft}{\mathbf{t}}
|
||
|
\newcommand{\bfu}{\mathbf{u}}
|
||
|
\newcommand{\bfv}{\mathbf{v}}
|
||
|
\newcommand{\bfw}{\mathbf{w}}
|
||
|
\newcommand{\bfx}{\mathbf{x}}
|
||
|
\newcommand{\bfy}{\mathbf{y}}
|
||
|
\newcommand{\bfz}{\mathbf{z}}
|
||
|
|
||
|
\newcommand{\bfA}{\mathbf{A}}
|
||
|
\newcommand{\bfB}{\mathbf{B}}
|
||
|
\newcommand{\bfC}{\mathbf{C}}
|
||
|
\newcommand{\bfD}{\mathbf{D}}
|
||
|
\newcommand{\bfE}{\mathbf{E}}
|
||
|
\newcommand{\bfF}{\mathbf{F}}
|
||
|
\newcommand{\bfG}{\mathbf{G}}
|
||
|
\newcommand{\bfH}{\mathbf{H}}
|
||
|
\newcommand{\bfI}{\mathbf{I}}
|
||
|
\newcommand{\bfJ}{\mathbf{J}}
|
||
|
\newcommand{\bfK}{\mathbf{K}}
|
||
|
\newcommand{\bfL}{\mathbf{L}}
|
||
|
\newcommand{\bfM}{\mathbf{M}}
|
||
|
\newcommand{\bfN}{\mathbf{N}}
|
||
|
\newcommand{\bfO}{\mathbf{O}}
|
||
|
\newcommand{\bfP}{\mathbf{P}}
|
||
|
\newcommand{\bfQ}{\mathbf{Q}}
|
||
|
\newcommand{\bfR}{\mathbf{R}}
|
||
|
\newcommand{\bfS}{\mathbf{S}}
|
||
|
\newcommand{\bfT}{\mathbf{T}}
|
||
|
\newcommand{\bfU}{\mathbf{U}}
|
||
|
\newcommand{\bfV}{\mathbf{V}}
|
||
|
\newcommand{\bfW}{\mathbf{W}}
|
||
|
\newcommand{\bfX}{\mathbf{X}}
|
||
|
\newcommand{\bfY}{\mathbf{Y}}
|
||
|
\newcommand{\bfZ}{\mathbf{Z}}
|
||
|
|
||
|
\newcommand{\scrA}{\mathscr{A}}
|
||
|
\newcommand{\scrB}{\mathscr{B}}
|
||
|
\newcommand{\scrC}{\mathscr{C}}
|
||
|
\newcommand{\scrD}{\mathscr{D}}
|
||
|
\newcommand{\scrE}{\mathscr{E}}
|
||
|
\newcommand{\scrF}{\mathscr{F}}
|
||
|
\newcommand{\scrG}{\mathscr{G}}
|
||
|
\newcommand{\scrH}{\mathscr{H}}
|
||
|
\newcommand{\scrI}{\mathscr{I}}
|
||
|
\newcommand{\scrJ}{\mathscr{J}}
|
||
|
\newcommand{\scrK}{\mathscr{K}}
|
||
|
\newcommand{\scrL}{\mathscr{L} \cfadd{def:lin_interp}}
|
||
|
\newcommand{\scrM}{\mathscr{M}}
|
||
|
\newcommand{\scrN}{\mathscr{N}}
|
||
|
\newcommand{\scrO}{\mathscr{O}}
|
||
|
\newcommand{\scrP}{\mathscr{P}}
|
||
|
\newcommand{\scrQ}{\mathscr{Q}}
|
||
|
\newcommand{\scrR}{\mathscr{R}}
|
||
|
\newcommand{\scrS}{\mathscr{S}}
|
||
|
\newcommand{\scrT}{\mathscr{T}}
|
||
|
\newcommand{\scrU}{\mathscr{U}}
|
||
|
\newcommand{\scrV}{\mathscr{V}}
|
||
|
\newcommand{\scrW}{\mathscr{W}}
|
||
|
\newcommand{\scrX}{\mathscr{X}}
|
||
|
\newcommand{\scrY}{\mathscr{Y}}
|
||
|
\newcommand{\scrZ}{\mathscr{Z}}
|
||
|
|
||
|
\newcommand{\LL}{\mathbb{L}}
|
||
|
|
||
|
\newcommand{\induct}{\dashrightarrow}
|
||
|
\newcommand{\with}{\curvearrowleft}
|
||
|
\newcommand{\lrSpace}{\ensuremath{\mkern-1.5mu}}
|
||
|
|
||
|
\newcommand{\eps}{\varepsilon}
|
||
|
\newcommand{\eg}{\unskip, e.g.,\ }
|
||
|
\newcommand{\Eg}{\unskip e.g.,\ }
|
||
|
|
||
|
\newcommand{\dpp}{\text{.}}
|
||
|
\newcommand{\dc}{\text{,}}
|
||
|
\newcommand{\dx}{\, {\rm d}}
|
||
|
\newcommand{\dxx}{{\rm d}}
|
||
|
|
||
|
\newcommand{\normmm}[1]{{\left\vert\kern-0.25ex\left\vert\kern-0.25ex\left\vert #1
|
||
|
\right\vert\kern-0.25ex\right\vert\kern-0.25ex\right\vert}
|
||
|
\cfadd{DNN_norm}}
|
||
|
|
||
|
\DeclarePairedDelimiter{\pr}{(}{)}
|
||
|
\DeclarePairedDelimiter{\br}{[}{]}
|
||
|
\DeclarePairedDelimiter{\cu}{\{}{\}}
|
||
|
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
|
||
|
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert\cfadd{DNN_norm}}
|
||
|
\DeclarePairedDelimiter{\floor}{\lfloor}{\rfloor}
|
||
|
\DeclarePairedDelimiter{\ceil}{\lceil}{\rceil}
|
||
|
\DeclarePairedDelimiter{\vt}{\langle}{\rangle}
|
||
|
|
||
|
\newcommand{\N}{\ensuremath{\mathbb N}}
|
||
|
\newcommand{\Z}{\ensuremath{\mathbb Z}}
|
||
|
\newcommand{\Q}{\ensuremath{\mathbb Q}}
|
||
|
\newcommand{\R}{\ensuremath{\mathbb R}}
|
||
|
\newcommand{\C}{\ensuremath{\mathbb C}}
|
||
|
\newcommand{\E}{\ensuremath{\mathbb E}}
|
||
|
\renewcommand{\P}{\ensuremath{\mathbb P}}
|
||
|
\newcommand{\parallelization}{\operatorname{P} \cfadd{def:generalParallelization}}
|
||
|
\newcommand{\parallelizationSpecial}{\mathbf{P} \cfadd{def:simpleParallelization}}
|
||
|
\newcommand{\pa}[1]{\left({#1}\right)}
|
||
|
\newcommand{\Rr}{\mathcal{R}_\mathfrak{r} \cfadd{def:ANNrealization} \cfadd{rectifier}}
|
||
|
\newcommand{\Ra}{\mathcal{R}_a \cfadd{def:ANNrealization}}
|
||
|
\newcommand{\1}{\mathbbm{1}}
|
||
|
\newcommand{\ii}{\mathfrak{i} \cfadd{padding}}
|
||
|
\newcommand{\pu}{\mathfrak{u}}
|
||
|
\newcommand{\fj}{\mathfrak{x}}
|
||
|
\newcommand{\network}{neural network \cfadd{def:ANN2}}
|
||
|
\newcommand{\interpolatingDNN}{\mathbf{F}}
|
||
|
\newcommand{\AffineANN}{\cfadd{linear}\mathbf{A}}
|
||
|
\newcommand{\bbigANNsum}{\cfadd{def:ANNsum:same}\mathop{\oplus}\limits}
|
||
|
\newcommand{\scalarMultANN}[2]{\cfadd{def:ANNscalar}#1\circledast#2}
|
||
|
\newcommand{\interpol}[2]{\cfadd{def:lin_interp}\mathscr{L}_{#1}^{#2}}
|
||
|
\newcommand{\infnorm}[1]{\cfadd{def:p-norm}\norm{#1}_{\infty}}
|
||
|
\newcommand{\MappingStructuralToVectorized}{\cfadd{def:TranslateStructuredIntoVectorizedDescription}\mathcal{T}}
|
||
|
\newcommand{\pmat}[1]{\begin{pmatrix}#1\end{pmatrix}}
|
||
|
|
||
|
\newcommand{\fwpr}{W}
|
||
|
\newcommand{\fwprr}{W}
|
||
|
\newcommand{\smallU}{u}
|
||
|
\newcommand{\smallF}{f}
|
||
|
\newcommand{\funcF}{F}
|
||
|
\newcommand{\funcG}{g}
|
||
|
\newcommand{\boundFG}{\mathfrak{L}}
|
||
|
\newcommand{\LipConstF}{L}
|
||
|
\newcommand{\mlp}[3]{U_{#1}^{#2,#3}}
|
||
|
\newcommand{\Msymb}{\mathcal{M}}
|
||
|
\newcommand{\littleM}{m}
|
||
|
\newcommand{\littleMM}{m}
|
||
|
\newcommand{\funcM}{\phi}
|
||
|
\newcommand{\funcMrep}[1]{\max\{ k \in \N \colon k \le \exp( \abs{\ln(#1)}^{1/2} ) \}}
|
||
|
\newcommand{\cost}[3]{{\mathfrak{C}}_{#3,#1,#2}}
|
||
|
|
||
|
\newcommand{\firstConstant}[1]{\mathfrak{K}_{#1}}
|
||
|
\renewcommand{\fR}{\mathscr{n}}
|
||
|
\newcommand{\secondConstant}[1]{\firstConstant{#1}\sqrt{#1 -1}}
|
||
|
\newcommand{\maxfn}{\varphi}
|
||
|
|
||
|
\renewcommand{\AA}{\mathbb{A}}
|
||
|
\newcommand{\PP}{\mathbf{P}}
|
||
|
\newcommand{\BB}{\mathbb{B}}
|
||
|
\newcommand{\CC}{\mathbb{C}}
|
||
|
\newcommand{\A}{\mathbf{A} \cfadd{linear}}
|
||
|
\newcommand{\U}{\mathbf{U}}
|
||
|
\newcommand{\V}{\mathbf{V}}
|
||
|
\newcommand{\F}{\mathbf{F}}
|
||
|
\newcommand{\G}{\mathbf{G}}
|
||
|
\newcommand{\I}{\mathbf{I} \cfadd{def:id_net}}
|
||
|
\renewcommand{\H}{\mathbf{H}}
|
||
|
\newcommand{\NN}{\mathbf{N}}
|
||
|
\newcommand{\lbd}{u}
|
||
|
\newcommand{\ubd}{v}
|
||
|
\newcommand{\len}{n}
|
||
|
\newcommand{\weight}{W \cfadd{linear}}
|
||
|
\newcommand{\bias}{B \cfadd{linear}}
|
||
|
|
||
|
\newcommand{\ind}[1]{\mathbbm{1}_{\smash{#1}}}
|
||
|
\newcommand{\iind}[1]{\mathlarger{\mathbbm{1}}_{#1}}
|
||
|
\newcommand\numberthis{\addtocounter{equation}{1}\tag{\theequation}}
|
||
|
\newcommand{\indicator}[1]{\mathbbm{1}_{\smash{#1}}}
|
||
|
|
||
|
% and in equations
|
||
|
\newcommand{\qandqShort}{\quad\text{and}\quad}
|
||
|
\newcommand{\andShort}{\text{ and }}
|
||
|
\newcommand{\forallDist}{\forall\,}
|
||
|
\newcommand{\identity}[1]{\mathrm{Id}_{#1}}
|
||
|
\newcommand{\smallsum}{\textstyle\sum}
|
||
|
\newcommand{\SmallSum}[2]{ {\textstyle\sum\limits_{#1}^{#2}}}
|
||
|
\newcommand{\idRelu}{\mathfrak I}
|
||
|
\newcommand{\Exists}{\exists\,}
|
||
|
\newcommand{\Forall}{\forall\,}
|
||
|
\newcommand{\mc}[1]{\mathcal{#1}}
|
||
|
\newcommand{\mf}[1]{\mathfrak{#1}}
|
||
|
\newcommand{\affineMap}{\mathbb{A}}
|
||
|
\newcommand{\idMatrix}{\operatorname{I} \cfadd{def:identityMatrix}}
|
||
|
\newcommand{\ANNs}{\mathbf{N} \cfadd{def:ANN}}
|
||
|
\newcommand{\MatrixANN}[1]{\mf N_{#1}}
|
||
|
\newcommand{\activation}{a}
|
||
|
\newcommand{\activationDim}[1]{\mathfrak{M}_{\activation,#1} \cfadd{multi}}
|
||
|
\newcommand{\functionANN}[1]{\mathcal{R}_{#1} \cfadd{def:ANNrealization}}
|
||
|
\newcommand{\paramANN}{\mathcal{P} \cfadd{def:ANN}}
|
||
|
\newcommand{\paramNotZeroANN}{\mathscr{P}}
|
||
|
\newcommand{\lengthANN}{\mathcal{L} \cfadd{def:ANN}}
|
||
|
\newcommand{\inDimANN}{\mathcal{I} \cfadd{def:ANN}}
|
||
|
\newcommand{\compANN}[2]{{#1 \bullet \allowbreak #2} \cfadd{def:ANNcomposition}}
|
||
|
\newcommand{\concANN}[2]{{#1 \odot #2}}
|
||
|
\newcommand{\concPsiANN}[2]{{#1 \odot_{\Psi} #2}}
|
||
|
\newcommand{\paraANN}[1]{\mathbf{P}_{#1}}
|
||
|
\newcommand{\paraLANN}[2]{\mathbf{P}_{#1,#2}}
|
||
|
\newcommand{\outDimANN}{\mathcal{O} \cfadd{def:ANN}}
|
||
|
\newcommand{\longerANN}[1]{\mathcal{E}_{#1} \cfadd{def:ANNenlargement}}
|
||
|
\newcommand{\idANN}[2]{\mathbb{I}_{#1,#2}}
|
||
|
\newcommand{\idANNshort}[1]{\mathbb{I}_{#1}}
|
||
|
\newcommand{\dims}{\mathcal{D} \cfadd{def:ANN}}
|
||
|
\newcommand{\hiddenLength}{\mathcal{H} \cfadd{def:ANN}}
|
||
|
\newcommand{\hiddenDimId}{\mathfrak{i}}
|
||
|
\newcommand{\qandq}{\qquad\text{and}\qquad}
|
||
|
\newcommand{\andq}{\text{and}\qquad}
|
||
|
\newcommand{\rect}{\mathfrak r \cfadd{rectifier}}
|
||
|
\newcommand{\Rect}{\mathfrak R}
|
||
|
\newcommand{\multdim}{\mathfrak M}
|
||
|
\DeclareMathOperator{\id}{id}
|
||
|
\newcommand{\matrixANN}[1]{\mathfrak{W}_{#1}}
|
||
|
\newcommand{\vectorANN}{\mathfrak{B}}
|
||
|
\newcommand{\sumANN}{\mathfrak{S} \cfadd{def:ANN:sum}}
|
||
|
\newcommand{\extensionANN}{\mathfrak{T} \cfadd{def:ANN:extension}}
|
||
|
\newcommand{\dimANNlevel}{\mathbb{D} \cfadd{def:ANN}}
|
||
|
\newcommand{\power}[2]{#1^{\bullet #2} \cfadd{def:iteratedANNcomposition}}
|
||
|
\newcommand{\scalar}[2]{ #1 \circledast #2 \cfadd{def:ANNscalar}}
|
||
|
\newcommand{\transpose}{* \cfadd{def:Transpose}}
|
||
|
\newcommand{\oSum}{\oplus \cfadd{def:ANNsum:same}}
|
||
|
\newcommand{\OSum}[2]{{\mathop\oplus\limits_{#1}^{#2} } \cfadd{def:ANNsum:same} }
|
||
|
\newcommand{\bSum}{{\mathop\boxplus} \cfadd{def:ANN:sum_diff}}
|
||
|
\newcommand{\BSum}[3]{{\mathop\boxplus\limits_{#1,#2}^{#3}} \cfadd{def:ANN:sum_diff}}
|
||
|
\newcommand{\modCont}{w \cfadd{mod_cont_def}}
|
||
|
|
||
|
\allowdisplaybreaks
|
||
|
|
||
|
\usepackage{scalerel,stackengine}
|
||
|
\newcommand\pig[1]{\scalerel*[5pt]{\big#1}{%
|
||
|
\ensurestackMath{\addstackgap[1.5pt]{\big#1}}}}
|
||
|
\newcommand\pigl[1]{\mathopen{\pig{#1}}}
|
||
|
\newcommand\pigr[1]{\mathclose{\pig{#1}}}
|
||
|
|
||
|
\newcommand\bpig[1]{\scalerel*[5pt]{\big#1}{%
|
||
|
\ensurestackMath{\addstackgap[1.5pt]{\big#1}}}}
|
||
|
\newcommand\bpigl[1]{\mathopen{\bpig{#1}}}
|
||
|
\newcommand\bpigr[1]{\mathclose{\bpig{#1}}}
|
||
|
|
||
|
%%%%%%%%%%%%%%%%%%%%%%%%
|
||
|
%%% Enum
|
||
|
%%%%%%%%%%%%%%%%%%%%%%%%
|
||
|
|
||
|
\ExplSyntaxOn
|
||
|
|
||
|
\NewDocumentCommand{\enum}{ O{;} m o }
|
||
|
{
|
||
|
\my_enum:nnn { #1 } { #2 } { #3 }
|
||
|
}
|
||
|
|
||
|
\seq_new:N \l__my_enum_seq
|
||
|
\tl_new:N \l__my_enum_item_tl
|
||
|
\prop_new:N \l__verbs
|
||
|
\prop_put:Nnn \l__verbs {show} {shows}
|
||
|
\prop_put:Nnn \l__verbs {imply} {implies}
|
||
|
\prop_put:Nnn \l__verbs {demonstrate} {demonstrates}
|
||
|
\prop_put:Nnn \l__verbs {prove} {proves}
|
||
|
\prop_put:Nnn \l__verbs {establish} {establishes}
|
||
|
\prop_put:Nnn \l__verbs {ensure} {ensures}
|
||
|
\prop_put:Nnn \l__verbs {assure} {assures}
|
||
|
\prop_put:Nnn \l__verbs {yield} {yields}
|
||
|
|
||
|
\int_new:N \l__number_of_args
|
||
|
|
||
|
\cs_new_protected:Nn \my_enum:nnn
|
||
|
{
|
||
|
%\seq_clear:N \l__my_enum_seq
|
||
|
%\clist_map_variable:nNn { #1 } \l__my_enum_item_tl
|
||
|
% {
|
||
|
% \__my_enum_add:V \l__my_enum_item_tl
|
||
|
% }
|
||
|
\seq_set_split:Nnn \l__my_enum_seq { #1 } { #2 }
|
||
|
\seq_remove_all:Nn \l__my_enum_seq {}
|
||
|
\int_set_eq:NN \l__number_of_args { \seq_count:N \l__my_enum_seq }
|
||
|
%triangle
|
||
|
%\int_compare:nF { \seq_count:N \l__my_enum_seq < 2 } { s }
|
||
|
%\nobreakspace
|
||
|
\seq_use:Nnnn \l__my_enum_seq { ~and~ } { ,~ } { ,~and~ }
|
||
|
\IfNoValueTF{#3}{}{
|
||
|
\space
|
||
|
\int_compare:nNnTF{ \l__number_of_args } < {2}{ \prop_item:Nn \l__verbs {#3} }{ #3 }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
\ExplSyntaxOff
|
||
|
|
||
|
%%%%%%%%%%%%%%%%%%%%%%%%
|
||
|
%%% Automatic cf-lists
|
||
|
|
||
|
%%%%%%%%%%%%%%%%%%%%%%%%
|
||
|
|
||
|
\ExplSyntaxOn
|
||
|
|
||
|
\seq_new:N \g_cflist_loaded
|
||
|
|
||
|
\seq_new:N \g_cflist_pending
|
||
|
|
||
|
\NewDocumentCommand{\cfadd}{ m }
|
||
|
|
||
|
{
|
||
|
|
||
|
\seq_if_in:NnF \g_cflist_loaded { #1 } {
|
||
|
|
||
|
\seq_if_in:NnF \g_cflist_pending { #1 } {
|
||
|
|
||
|
\seq_gput_right:Nn \g_cflist_pending { #1 }
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
\NewDocumentCommand{\cfload}{ o }
|
||
|
|
||
|
{
|
||
|
|
||
|
\seq_if_empty:NTF \g_cflist_pending {\unskip} {
|
||
|
|
||
|
(cf.\ \cref{\seq_use:Nn \g_cflist_pending {,}})\IfValueTF{#1}{#1~}{\unskip}
|
||
|
|
||
|
\seq_gconcat:NNN \g_cflist_loaded \g_cflist_loaded \g_cflist_pending
|
||
|
|
||
|
\seq_gclear:N \g_cflist_pending
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
\NewDocumentCommand{\cfclear} {} {
|
||
|
|
||
|
\seq_gclear:N \g_cflist_loaded
|
||
|
|
||
|
\seq_gclear:N \g_cflist_pending
|
||
|
|
||
|
}
|
||
|
|
||
|
\NewDocumentCommand{\cfout}{ o }
|
||
|
|
||
|
{
|
||
|
|
||
|
\seq_if_empty:NTF \g_cflist_pending {\unskip} {
|
||
|
|
||
|
(cf.\ \cref{\seq_use:Nn \g_cflist_pending {,}})\IfValueTF{#1}{#1~}{\unskip}
|
||
|
|
||
|
\seq_gclear:N \g_cflist_pending
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
\NewDocumentCommand{\ifnocf} { m } {
|
||
|
|
||
|
\seq_if_empty:NT \g_cflist_pending { #1 }
|
||
|
|
||
|
}
|
||
|
|
||
|
\NewDocumentCommand{\cfconsiderloaded}{ m }{
|
||
|
|
||
|
\seq_gput_right:Nn \g_cflist_loaded {#1}
|
||
|
|
||
|
}
|
||
|
|
||
|
\ExplSyntaxOff
|
||
|
|
||
|
%%%%%%%%%%%%%%%%%%%%%%%%
|
||
|
%%% Automatic proof headers and endings, local labels
|
||
|
%%%%%%%%%%%%%%%%%%%%%%%%
|
||
|
|
||
|
\NewDocumentEnvironment {athm} {m m} {%
|
||
|
%\newenvironment{athm}[2]{%
|
||
|
\begin{#1}\label{#2}\global\def\loc{#2}%
|
||
|
}{%
|
||
|
\end{#1}%
|
||
|
}
|
||
|
|
||
|
\NewDocumentEnvironment{aproof} {} {%
|
||
|
\begin{proof}[Proof~of~\cref{\loc}]%
|
||
|
}{%
|
||
|
\finishproofthus
|
||
|
\end{proof}%
|
||
|
}
|
||
|
|
||
|
\ExplSyntaxOff
|
||
|
|
||
|
\newcommand{\eqqref}[1]{\cref{eq:\loc.#1}}
|
||
|
\newcommand{\eqlabel}[1]{\label{eq:\loc.#1}}
|
||
|
|
||
|
\newcommand{\finishproofthus}{The proof of \cref{\loc} is thus complete.}
|
||
|
\newcommand{\finishproofthis}{This completes the proof of \cref{\loc}.}
|
||
|
|
||
|
%%%%%%%%%%%%%%%%%%%%%%%%
|
||
|
%%% Flexible math displays
|
||
|
%%%%%%%%%%%%%%%%%%%%%%%%
|
||
|
|
||
|
\ExplSyntaxOn
|
||
|
|
||
|
\NewDocumentEnvironment{flexmath}{ m o }{
|
||
|
\str_if_eq:noTF {a} {#1} {
|
||
|
\begin{equation}
|
||
|
\IfValueT{#2}{\label{eq:\loc.#2}}
|
||
|
\begin{aligned}
|
||
|
} {
|
||
|
\catcode`&=9
|
||
|
\renewcommand{\\}{}
|
||
|
\str_if_eq:noTF {d} {#1} {
|
||
|
\begin{equation}
|
||
|
\IfValueT{#2}{\label{eq:\loc.#2}}
|
||
|
} {
|
||
|
\begin{math}
|
||
|
}
|
||
|
}
|
||
|
}{
|
||
|
\str_if_eq:noTF {i} {#1} {
|
||
|
\end{math}
|
||
|
\catcode`&=4
|
||
|
} {
|
||
|
\str_if_eq:noTF {d} {#1} {
|
||
|
\end{equation}
|
||
|
} {
|
||
|
\end{aligned}
|
||
|
\end{equation}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
\ExplSyntaxOff
|
||
|
|
||
|
\ExplSyntaxOn
|
||
|
|
||
|
\bool_new:N \g_noteobserve
|
||
|
|
||
|
\NewDocumentCommand{\setnote}{}{
|
||
|
\bool_gset_true:N \g_noteobserve
|
||
|
}
|
||
|
|
||
|
\NewDocumentCommand{\setobserve}{}{
|
||
|
\bool_gset_false:N \g_noteobserve
|
||
|
}
|
||
|
|
||
|
\NewDocumentCommand{\nobs}{ o }{
|
||
|
\IfValueT{#1}{
|
||
|
\str_if_eq:noTF {note} {#1} {
|
||
|
\bool_gset_true:N \g_noteobserve
|
||
|
} {
|
||
|
\str_if_eq:noTF {Note} {#1} {
|
||
|
\bool_gset_true:N \g_noteobserve
|
||
|
} {
|
||
|
\bool_gset_false:N \g_noteobserve
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
\bool_if:nTF { \g_noteobserve } {
|
||
|
\bool_gset_false:N \g_noteobserve
|
||
|
note
|
||
|
} {
|
||
|
\bool_gset_true:N \g_noteobserve
|
||
|
observe
|
||
|
}
|
||
|
\IfValueF{#1}{~}
|
||
|
}
|
||
|
|
||
|
\NewDocumentCommand{\Nobs}{ o }{
|
||
|
\IfValueT{#1}{
|
||
|
\str_if_eq:noTF {note} {#1} {
|
||
|
\bool_gset_true:N \g_noteobserve
|
||
|
} {
|
||
|
\str_if_eq:noTF {Note} {#1} {
|
||
|
\bool_gset_true:N \g_noteobserve
|
||
|
} {
|
||
|
\bool_gset_false:N \g_noteobserve
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
\bool_if:nTF { \g_noteobserve } {
|
||
|
\bool_gset_false:N \g_noteobserve
|
||
|
Note
|
||
|
} {
|
||
|
\bool_gset_true:N \g_noteobserve
|
||
|
Observe
|
||
|
}
|
||
|
\IfValueF{#1}{~}
|
||
|
}
|
||
|
|
||
|
|
||
|
\bool_new:N \g_hencetherefore
|
||
|
|
||
|
\NewDocumentCommand{\hence}{ o }{
|
||
|
\IfValueT{#1}{
|
||
|
\str_if_eq:noTF {hence} {#1} {
|
||
|
\bool_gset_true:N \g_hencetherefore
|
||
|
} {
|
||
|
\str_if_eq:noTF {Hence} {#1} {
|
||
|
\bool_gset_true:N \g_hencetherefore
|
||
|
} {
|
||
|
\bool_gset_false:N \g_hencetherefore
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
\bool_if:nTF { \g_hencetherefore } {
|
||
|
\bool_gset_false:N \g_hencetherefore
|
||
|
hence
|
||
|
} {
|
||
|
\bool_gset_true:N \g_hencetherefore
|
||
|
therefore
|
||
|
}
|
||
|
\IfValueF{#1}{~}
|
||
|
}
|
||
|
|
||
|
\NewDocumentCommand{\Hence}{ o }{
|
||
|
\IfValueT{#1}{
|
||
|
\str_if_eq:noTF {hence} {#1} {
|
||
|
\bool_gset_true:N \g_hencetherefore
|
||
|
} {
|
||
|
\str_if_eq:noTF {Hence} {#1} {
|
||
|
\bool_gset_true:N \g_hencetherefore
|
||
|
} {
|
||
|
\bool_gset_false:N \g_hencetherefore
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
\bool_if:nTF { \g_hencetherefore } {
|
||
|
\bool_gset_false:N \g_hencetherefore
|
||
|
Hence
|
||
|
} {
|
||
|
\bool_gset_true:N \g_hencetherefore
|
||
|
Therefore
|
||
|
}
|
||
|
\IfValueF{#1}{~}
|
||
|
}
|
||
|
|
||
|
\int_new:N \g_furthermore
|
||
|
|
||
|
\NewDocumentCommand{\Moreover}{ o o }{
|
||
|
\IfValueT{#1}{
|
||
|
\str_case:nn {#1} {
|
||
|
{Next} {\int_gset:Nn {\g_furthermore} {0}}
|
||
|
{Furthermore} {\int_gset:Nn {\g_furthermore} {1}}
|
||
|
{Moreover} {\int_gset:Nn {\g_furthermore} {2}}
|
||
|
{In~addition} {\int_gset:Nn {\g_furthermore} {3}}
|
||
|
{note} {\bool_gset_true:N \g_noteobserve}
|
||
|
{observe} {\bool_gset_false:N \g_noteobserve}
|
||
|
}
|
||
|
\IfValueT{#2}{
|
||
|
\str_case:nn {#2} {
|
||
|
{Next} {\int_gset:Nn {\g_furthermore} {0}}
|
||
|
{Furthermore} {\int_gset:Nn {\g_furthermore} {1}}
|
||
|
{Moreover} {\int_gset:Nn {\g_furthermore} {2}}
|
||
|
{In~addition} {\int_gset:Nn {\g_furthermore} {3}}
|
||
|
{note} {\bool_gset_true:N \g_noteobserve}
|
||
|
{observe} {\bool_gset_false:N \g_noteobserve}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
\int_case:nn { \int_mod:nn {\g_furthermore} {4} } {
|
||
|
{ 0 } { Next,~\nobs that}
|
||
|
{ 1 } { Furthermore,~\nobs that}
|
||
|
{ 2 } { Moreover,~\nobs that}
|
||
|
{ 3 } { In~addition,~\nobs that}
|
||
|
}
|
||
|
\int_gincr:N \g_furthermore
|
||
|
\IfValueF{#1}{~}
|
||
|
}
|
||
|
|
||
|
\ExplSyntaxOff
|
||
|
|
||
|
|
||
|
|
||
|
\ExplSyntaxOn
|
||
|
|
||
|
\int_new:N \g_enumit
|
||
|
|
||
|
\NewDocumentCommand{\Enum}{ m o }{
|
||
|
\IfValueT{#2}{
|
||
|
\str_case:nn {#2} {
|
||
|
{ensure} {\int_gset:Nn {\g_enumit} {0}}
|
||
|
{ensures} {\int_gset:Nn {\g_enumit} {0}}
|
||
|
{assure} {\int_gset:Nn {\g_enumit} {1}}
|
||
|
{assures} {\int_gset:Nn {\g_enumit} {1}}
|
||
|
{prove} {\int_gset:Nn {\g_enumit} {2}}
|
||
|
{proves} {\int_gset:Nn {\g_enumit} {2}}
|
||
|
{show} {\int_gset:Nn {\g_enumit} {3}}
|
||
|
{shows} {\int_gset:Nn {\g_enumit} {3}}
|
||
|
{demonstrate} {\int_gset:Nn {\g_enumit} {4}}
|
||
|
{demonstrates} {\int_gset:Nn {\g_enumit} {4}}
|
||
|
{yield} {\int_gset:Nn {\g_enumit} {5}}
|
||
|
{yields} {\int_gset:Nn {\g_enumit} {5}}
|
||
|
{establish} {\int_gset:Nn {\g_enumit} {6}}
|
||
|
{establishes} {\int_gset:Nn {\g_enumit} {6}}
|
||
|
{imply} {\int_gset:Nn {\g_enumit} {7}}
|
||
|
{implies} {\int_gset:Nn {\g_enumit} {7}}
|
||
|
}
|
||
|
}
|
||
|
\int_case:nn { \int_mod:nn {\g_enumit} {8} } {
|
||
|
{ 0 } { \enum{ #1 }[ensure]{ } }
|
||
|
{ 1 } { \enum{ #1 }[assure] }
|
||
|
{ 2 } { \enum{ #1 }[prove] }
|
||
|
{ 3 } { \enum{ #1 }[show] }
|
||
|
{ 4 } { \enum{ #1 }[demonstrate] }
|
||
|
{ 5 } { \enum{ #1 }[yield] }
|
||
|
{ 6 } { \enum{ #1 }[establish] }
|
||
|
{ 7 } { \enum{ #1 }[imply] }
|
||
|
}
|
||
|
\int_gincr:N \g_enumit
|
||
|
}
|
||
|
|
||
|
\ExplSyntaxOff
|