% Fonts and characters. \let\altemph\textsl \let\strong\textbf \let\code\texttt \let\const\textsf \newcommand*{\txtbksl} {\symbol{"5C}}% \ \newcommand*{\txtcaret}{\symbol{"5E}}% ^ \newcommand*{\txtunder}{\symbol{"5F}}% _ \newcommand*{\txtlcurl}{\symbol{"7B}}% { \newcommand*{\txtrcurl}{\symbol{"7D}}% } \newcommand*{\txttilde}{\symbol{"7E}}% ~ \newcommand*{\N}{\mathbb{N}} % requires amssymb \newcommand*{\Z}{\mathbb{Z}} % requires amssymb \newcommand*{\Q}{\mathbb{Q}} % requires amssymb \newcommand*{\R}{\mathbb{R}} % requires amssymb \newcommand*{\bigOh}{\mathcal{O}} % Abbreviations of latin phrases. \newcommand*{\ie}{\emph{i.e.}} \newcommand*{\eg}{\emph{e.g.}} \newcommand*{\etc}{\emph{etc}} \newcommand*{\vs}{\emph{vs.}} % Redefined symbols from amssymb. \renewcommand*{\emptyset}{\varnothing} \renewcommand*{\iff}{\mathrel{\Leftrightarrow}} \renewcommand*{\implies}{\mathrel{\Rightarrow}} \renewcommand*{\ge}{\geqslant} \renewcommand*{\le}{\leqslant} % For algorithms. \let\proc\textsc \let\kw\textbf \let\var\textsl \newcommand*{\eq}{\mathrel{==}} \renewcommand*{\neq}{\mathrel{!\!=}} \renewcommand*{\leq}{\mathrel{<=}} \renewcommand*{\geq}{\mathrel{>=}} \renewcommand*{\gets}{\mathrel{=}} \newcommand*{\opgets}[1]{\mathrel{#1\!=}} \newcommand*{\True}{\const{True}} \newcommand*{\False}{\const{False}} \newcommand*{\None}{\const{None}} \newcommand*{\cmod}{\mathbin{\%}} % Math macros. \newcommand*{\comp}[1]{\overline{#1}} % complement \newcommand*{\emptystr}{\varepsilon} % empty string \newcommand*{\lequiv}{\mathrel{\ \Longleftrightarrow\ }} \newcommand*{\lxor}{\oplus} \newcommand*{\floor}[1]{\lfloor#1\rfloor} \newcommand*{\ceil}[1]{\lceil#1\rceil} % Like {itemize} but using less vertical space. \newenvironment*{points} {\ifvmode\else\unskip\par\fi\begin{list}{$\bullet$} {\setlength{\topsep}{.25ex plus .125ex minus .1825ex} \setlength{\itemsep}{\topsep}\setlength{\parsep}{0ex} \setlength{\leftmargin}{1.75em}\setlength{\labelsep}{.5em} \setlength{\labelwidth}{1.75em}}\ignorespaces} {\ifvmode\else\unskip\fi\end{list}\ignorespaces} % Spacing macros with default argument. \newcommand*{\vstretch}[1][1]{\vspace*{\stretch{#1}}} \newcommand*{\hstretch}[1][1]{\hspace*{\stretch{#1}}} % 236-specific. \newcommand*{\LI}{\textsl{LI}} % for loop invariants