\usepackage{amsthm}
\usepackage[dvipsnames]{xcolor}

\usepackage{fullpage}
\usepackage{microtype}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{tabu}
\usepackage{url}
\usepackage{graphicx}
\usepackage{booktabs}

\usepackage{xspace}
\usepackage{multirow}
\usepackage{enumitem}
\usepackage{amsmath}
\usepackage{mathtools}

\usepackage{framed}
\usepackage{booktabs}
\usepackage{caption}

\usepackage{nopageno}

\usepackage[T1]{fontenc}
\usepackage{fourier}
\DeclareSymbolFont{calletters}{OMS}{cmsy}{m}{n}
\DeclareSymbolFontAlphabet{\mathcal}{calletters}

\usepackage[hang,flushmargin]{footmisc}

\usepackage{hyperref}
\hypersetup{
  colorlinks=true,
  linkcolor={MidnightBlue},
  citecolor={MidnightBlue},
  urlcolor={MidnightBlue}
}

\usepackage[capitalize]{cleveref}

\theoremstyle{plain}
\newtheorem{theorem}{Theorem}
\newtheorem{example}[theorem]{Example}

\newcommand{\N}{\mathbb{N}}
\newcommand{\R}{\mathbb{R}}

\newcommand{\concat}{\mathbin{||}}
\newcommand{\abs}[1]{\left| #1 \right|}
\newcommand{\ceil}[1]{\left\lceil #1 \right\rceil}
\newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor}
\newcommand{\set}[1]{\left\{ #1 \right\}}
\newcommand{\norm}[1]{\left\| #1 \right\|}

\DeclareMathOperator*{\Exp}{\mathbb{E}}
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator*{\argmin}{arg\,min}

\newcommand{\CBC}{\mathrm{CBC}}
\newcommand{\IV}{\mathrm{IV}}

\newcommand{\calA}{\mathcal{A}}
\newcommand{\calB}{\mathcal{B}}
\newcommand{\calK}{\mathcal{K}}
\newcommand{\calL}{\mathcal{L}}
\newcommand{\calO}{\mathcal{O}}
\newcommand{\calR}{\mathcal{R}}
\newcommand{\calS}{\mathcal{S}}
\newcommand{\calX}{\mathcal{X}}
\newcommand{\calY}{\mathcal{Y}}

\newcommand{\mr}[1]{\ensuremath{\mathrm{{#1}}}}

\newcommand{\deq}{\mathrel{\mathop:}=}
\newcommand{\zo}{\ensuremath{\{0,1\}}}
\newcommand{\getsr}{\xleftarrow{\textsc{r}}}

\newcommand{\esm}[1]{\ensuremath{#1}}
\newcommand{\ms}[1]{\esm{\mathsf{#1}}}

\newcommand{\prg}{\ms{PRG}}
\newcommand{\prf}{\ms{PRF}}
\newcommand{\prp}{\ms{PRP}}

\newcommand{\poly}{\esm{\mr{poly}}}
\newcommand{\polylog}{\operatorname{polylog}}
\newcommand{\negl}{\esm{\mr{negl}}}

\newcommand{\ord}[1]{\esm{{#1}^{\mr{th}}}}

\newcommand{\pp}{\ms{pp}}
\newcommand{\ct}{\ms{ct}}
\newcommand{\sk}{\ms{sk}}
\newcommand{\pk}{\ms{pk}}
\newcommand{\mpk}{\ms{mpk}}
\newcommand{\vk}{\ms{vk}}
\newcommand{\td}{\ms{td}}

\newcommand{\protoleft}[1]{\xleftarrow{\mathmakebox[26em]{\displaystyle #1}}}
\newcommand{\protoright}[1]{\xrightarrow{\mathmakebox[26em]{\displaystyle #1}}}
\newcommand{\cert}{\text{cert}}

\newcommand{\protoleftshort}[1]{\xleftarrow{\mathmakebox[16em]{\displaystyle #1}}}
\newcommand{\protorightshort}[1]{\xrightarrow{\mathmakebox[16em]{\displaystyle #1}}}

\newcommand{\Setup}{\ms{Setup}}
\newcommand{\KeyGen}{\ms{KeyGen}}
\newcommand{\Encrypt}{\ms{Encrypt}}
\newcommand{\Decrypt}{\ms{Decrypt}}
\newcommand{\Sign}{\ms{Sign}}
\newcommand{\Verify}{\ms{Verify}}
\newcommand{\Eval}{\ms{Eval}}
\newcommand{\KeySwitch}{\ms{KeySwitch}}

\newcommand{\G}{\mathbb{G}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\Zp}{\mathbb{Z}_p}
\newcommand{\Zq}{\mathbb{Z}_q}

\newcommand{\hint}[1]{{\bf Hint:} #1}

\newcommand{\av}{\mathbf{a}}
\newcommand{\bv}{\mathbf{b}}
\newcommand{\cv}{\mathbf{c}}
\newcommand{\ev}{\mathbf{e}}
\newcommand{\gv}{\mathbf{g}}
\newcommand{\hv}{\mathbf{h}}
\newcommand{\rv}{\mathbf{r}}
\newcommand{\sv}{\mathbf{s}}
\newcommand{\tv}{\mathbf{t}}
\newcommand{\uv}{\mathbf{u}}
\newcommand{\vv}{\mathbf{v}}
\newcommand{\xv}{\mathbf{x}}
\newcommand{\yv}{\mathbf{y}}
\newcommand{\zv}{\mathbf{z}}
\newcommand{\Am}{\mathbf{A}}
\newcommand{\Bm}{\mathbf{B}}
\newcommand{\Gm}{\mathbf{G}}
\newcommand{\Hm}{\mathbf{H}}
\newcommand{\Rm}{\mathbf{R}}
\newcommand{\Tm}{\mathbf{T}}
\newcommand{\Wm}{\mathbf{W}}
\newcommand{\zerov}{\boldsymbol{0}}

\newcommand{\Ginv}{\Gm^{-1}}

\newcommand{\appc}{\stackrel{c}{\approx}}

\newcommand{\TT}{\mathsf{T}}
\newcommand{\hk}{\mathsf{hk}}
\newcommand{\hash}{\mathsf{H}}

\newcounter{problemcounter}
\newcommand{\problem}[1]{\stepcounter{problemcounter}
  \paragraph{Problem \theproblemcounter: #1.}}

\newcommand{\hyb}{\mathsf{Hyb}}

\newcommand{\SIS}{\ms{SIS}\xspace}
\newcommand{\ISIS}{\ms{ISIS}\xspace}
\newcommand{\LWE}{\ms{LWE}\xspace}
