\usepackage{amsfonts} \usepackage{amsmath} \usepackage{amssymb} \usepackage{amsthm} \usepackage{environ} \usepackage{etoolbox} \usepackage{mathrsfs} \usepackage{mathtools} \usepackage{tcolorbox} \usepackage{tikz} \usepackage{xcolor} \tcbuselibrary{breakable} \tcbuselibrary{skins} % A pretty color palette taken from https://flatuicolors.com/palette/defo. To % see a preview of the different colors, use the \showcolors command below. \definecolor{flatdarkgray}{HTML}{7F8C8D} \definecolor{flatgray}{HTML}{BDC3C7} \definecolor{flatred}{HTML}{C0392B} \definecolor{flatorange}{HTML}{D35400} \definecolor{flatyellow}{HTML}{F39C12} \definecolor{flatdenim}{HTML}{2C3E50} \definecolor{flatpurple}{HTML}{8E44AD} \definecolor{flatblue}{HTML}{2980B9} \definecolor{flatgreen}{HTML}{27AE60} \definecolor{flatcyan}{HTML}{16A085} \definecolor{flatdarkgrayalt}{HTML}{95A5A6} \definecolor{flatgrayalt}{HTML}{ECF0F1} \definecolor{flatredalt}{HTML}{E74C3C} \definecolor{flatorangealt}{HTML}{E67E22} \definecolor{flatyellowalt}{HTML}{F1C40F} \definecolor{flatdenimalt}{HTML}{34495E} \definecolor{flatpurplealt}{HTML}{9B59B6} \definecolor{flatbluealt}{HTML}{3498DB} \definecolor{flatgreenalt}{HTML}{2ECC71} \definecolor{flatcyanalt}{HTML}{1ABC9C} \definecolor{flatbrown}{HTML}{836953} \newcommand{\showcolors}{% \begin{center} \begin{tikzpicture} \tikzstyle{swatch}=[minimum width=3cm, minimum height=0.5cm, y=0.5cm] \node[swatch, fill=flatdarkgray] at (0, 9) {\texttt{flatdarkgray}}; \node[swatch, fill=flatgray] at (0, 8) {\texttt{flatgray}}; \node[swatch, fill=flatred] at (0, 7) {\texttt{flatred}}; \node[swatch, fill=flatorange] at (0, 6) {\texttt{flatorange}}; \node[swatch, fill=flatyellow] at (0, 5) {\texttt{flatyellow}}; \node[swatch, fill=flatdenim] at (0, 4) {\texttt{flatdenim}}; \node[swatch, fill=flatpurple] at (0, 3) {\texttt{flatpurple}}; \node[swatch, fill=flatblue] at (0, 2) {\texttt{flatblue}}; \node[swatch, fill=flatgreen] at (0, 1) {\texttt{flatgreen}}; \node[swatch, fill=flatcyan] at (0, 0) {\texttt{flatcyan}}; \node[swatch, fill=flatdarkgrayalt] at (3, 9) {\texttt{flatdarkgrayalt}}; \node[swatch, fill=flatgrayalt] at (3, 8) {\texttt{flatgrayalt}}; \node[swatch, fill=flatredalt] at (3, 7) {\texttt{flatredalt}}; \node[swatch, fill=flatorangealt] at (3, 6) {\texttt{flatorangealt}}; \node[swatch, fill=flatyellowalt] at (3, 5) {\texttt{flatyellowalt}}; \node[swatch, fill=flatdenimalt] at (3, 4) {\texttt{flatdenimalt}}; \node[swatch, fill=flatpurplealt] at (3, 3) {\texttt{flatpurplealt}}; \node[swatch, fill=flatbluealt] at (3, 2) {\texttt{flatbluealt}}; \node[swatch, fill=flatgreenalt] at (3, 1) {\texttt{flatgreenalt}}; \node[swatch, fill=flatcyanalt] at (3, 0) {\texttt{flatcyanalt}}; \end{tikzpicture} \end{center} } % New theorem environments. \newtheorem{theorem}{Theorem} \theoremstyle{definition} \newtheorem{definition}{Definition} \newtheorem{benchmark}{Benchmark} \newtheorem{example}{Example} \newtheorem{invariant}{Invariant} % Toggleable TODOs. \newtoggle{showtodos} \toggletrue{showtodos} % \togglefalse{showtodos} \newcommand{\TODO}[2][]{% \iftoggle{showtodos}{{\textcolor{blue}{\textbf{TODO(#1): #2}}}}{}% } % Toggleable notes. \newtoggle{shownotes} \toggletrue{shownotes} % \togglefalse{shownotes} \newcommand{\NOTE}[2][]{% \iftoggle{shownotes}{{\textcolor{red}{NOTE(#1): #2}}}{}% } % Labels and references. To label a figure use the \figlabel command, to label % a lemma, use the \lemlabel command, etc. Similarly, use the \figref, lemref, % etc. commands to reference these labels. For example: % % \begin{figure} % % ... % \caption{A nice figure}\figlabel{MyNiceFigure} % \end{figure} % % Refer to \figref{MyNiceFigure} for a nice figure. % % Toggle showlabels to show or hide all labels. \newtoggle{showlabels} % \toggletrue{showlabels} \togglefalse{showlabels} \newcommand{\genericlabel}[2]{% \label{#1:#2}% \iftoggle{showlabels}{\textcolor{flatdarkgray}{\texttt{[#2]}}}{}% } \newcommand{\algolabel}[1]{\genericlabel{alg}{#1}} \newcommand{\algoref}[1]{Algorithm~\ref{alg:#1}} \newcommand{\applabel}[1]{\genericlabel{app}{#1}} \newcommand{\appref}[1]{Appendix~\ref{app:#1}} \newcommand{\benchlabel}[1]{\genericlabel{bench}{#1}} \newcommand{\benchref}[1]{Benchmark~\ref{bench:#1}} \newcommand{\clmlabel}[1]{\genericlabel{clm}{#1}} \newcommand{\clmref}[1]{Claim~\ref{clm:#1}} \newcommand{\eqnlabel}[1]{\genericlabel{eqn}{#1}} \newcommand{\eqnref}[1]{\eqref{eqn:#1}} \newcommand{\invlabel}[1]{\genericlabel{inv}{#1}} \newcommand{\invref}[1]{Invariant~\ref{inv:#1}} \newcommand{\examplelabel}[1]{\genericlabel{exa}{#1}} \newcommand{\exampleref}[1]{Example~\ref{exa:#1}} \newcommand{\figlabel}[1]{\genericlabel{fig}{#1}} \newcommand{\figref}[1]{Figure~\ref{fig:#1}} \newcommand{\lemlabel}[1]{\genericlabel{lem}{#1}} \newcommand{\lemref}[1]{Lemma~\ref{lem:#1}} \newcommand{\linelabel}[1]{\genericlabel{line}{#1}} \newcommand{\lineref}[1]{line~\ref{line:#1}} \newcommand{\Lineref}[1]{Line~\ref{line:#1}} \newcommand{\lstlabel}[1]{\genericlabel{lst}{#1}} \newcommand{\lstref}[1]{Listing~\ref{lst:#1}} \newcommand{\seclabel}[1]{\genericlabel{sec}{#1}} \newcommand{\secref}[1]{Section~\ref{sec:#1}} \newcommand{\appendixlabel}[1]{\genericlabel{appendix}{#1}} \newcommand{\appendixref}[1]{Appendix~\ref{appendix:#1}} \newcommand{\tablabel}[1]{\genericlabel{tab}{#1}} \newcommand{\tabref}[1]{Table~\ref{tab:#1}} \newcommand{\thmlabel}[1]{\genericlabel{thm}{#1}} \newcommand{\thmref}[1]{Theorem~\ref{thm:#1}} % Surrounding symbols. \DeclarePairedDelimiter{\parens}{(}{)} \DeclarePairedDelimiter{\set}{\{}{\}} \DeclarePairedDelimiterX{\setst}[2]{\{}{\}}{#1 \,\delimsize|\, #2} \DeclarePairedDelimiter{\brackets}{[}{]} \DeclarePairedDelimiterX{\pfrac}[2]{(}{)}{\frac{#1}{#2}} \DeclarePairedDelimiter{\ceil}{\lceil}{\rceil} \DeclarePairedDelimiter{\floor}{\lfloor}{\rfloor} % Symbols and abbreviations. \newcommand{\nats}{\mathbb{N}} \newcommand{\ints}{\mathbb{Z}} \newcommand{\rats}{\mathbb{Q}} \newcommand{\reals}{\mathbb{R}} \newcommand{\complexes}{\mathbb{C}} \newcommand{\partialto}{\rightharpoonup} % https://tex.stackexchange.com/a/74132 \newcommand{\defeq}{\stackrel{\mathclap{\mbox{\normalfont \tiny def}}}{=}} % Misc. \newcommand{\defword}[1]{\textbf{\textcolor{flatdenim}{#1}}} % Tech report environment. % % If you're writing a paper and there's too much content, you might want to % move some content out of the paper and into the technical report version of % the paper. To do this, you can put the content in the techreport environment % like this: % % This text will appear in the paper and tech report. % \begin{techreport} % This text will only appear in the tech report. % \end{techreport} % % When the techreportenabled toggle is enabled, the tech report content will be % shown. When the toggle is disabled, the tech report content will be hidden. % Moreover, when the toggle is enabled, the tech report content will be shown % with a red bar on its left margin to make it easier for readers to figure out % what is new in the tech report. \newtoggle{techreportenabled} \toggletrue{techreportenabled} \togglefalse{techreportenabled}