\usepackage[asymptotics,mm,notions,adversary]{cryptocode}
% Layout
\newcommand{\scbf}[1]{\noindent\textbf{\textsc{#1}}}

% Abbreviations
%% Algorithms
\newcommand{\TrapGen}{\textsf{TrapGen}\xspace}
\newcommand{\ExtBasis}{\textsf{ExtBasis}\xspace}
\newcommand{\SampleR}{\textsf{SampleRight}\xspace}
\newcommand{\SampleL}{\textsf{SampleLeft}\xspace}
\newcommand{\GPVSample}{\textsf{GPVSample}\xspace}
%% Complexity
\newcommand{\NP}{\textsf{NP}\xspace}
\newcommand{\redto}{\ensuremath{\preceq_P}}
%% Primitives
\newcommand{\ZK}{\textsf{ZK}\xspace}
\newcommand{\ZKAoK}{\textsf{ZKAoK}\xspace}
\newcommand{\NIZK}{\textsf{NIZK}\xspace}
\newcommand{\QANIZK}{\textsf{QA-NIZK}\xspace}
\newcommand{\PKE}{\textsf{PKE}\xspace}
\newcommand{\OT}{\textsf{OT}\xspace}
%% Common
\newcommand{\Setup}{\ensuremath{\mathsf{Setup}}\xspace}
\newcommand{\Keygen}{\ensuremath{\mathsf{Keygen}}\xspace}
\newcommand{\param}{\ensuremath{\mathsf{par}}\xspace}
\newcommand{\pk}{\ensuremath{\mathsf{pk}}\xspace}
\newcommand{\sk}{\ensuremath{\mathsf{sk}}\xspace}
%% ZK
\newcommand{\trans}{\textsf{trans}\xspace}
\newcommand{\cmt}{\textsf{cmt}\xspace}
\newcommand{\com}{\ensuremath{\mathsf{com}}\xspace}
\newcommand{\chall}{\textsf{chall}\xspace}
\newcommand{\rsp}{\textsf{response}\xspace}
\newcommand{\extr}{\textsf{extract}\xspace}
\newcommand{\Commit}{\ensuremath{\mathsf{Commit}}\xspace}
\newcommand{\Verify}{\ensuremath{\mathsf{Verify}}\xspace}
\newcommand{\open}{\ensuremath{\mathsf{open}}\xspace}
\newcommand{\Open}{\textsf{Open}\xspace}

% Assumptions/Problems
%% Pairings
\newcommand{\DLP}{\textsf{DLP}\xspace}
\newcommand{\DDH}{\textsf{DDH}\xspace}
\newcommand{\SXDH}{\textsf{SXDH}\xspace}
\newcommand{\SDL}{\textsf{SDL}\xspace}
%% Lattices
\newcommand{\ISIS}{\ensuremath{\mathsf{ISIS}}\xspace}
\newcommand{\SIS}{\ensuremath{\mathsf{SIS}}\xspace}
\newcommand{\LWE}{\ensuremath{\mathsf{LWE}}\xspace}
\newcommand{\SIVP}{\ensuremath{\textsf{SIVP}_\gamma}\xspace}
%% Codes
\newcommand{\SDP}{\ensuremath{\mathsf{SDP}}\xspace}
%% Models
\newcommand{\UC}{\textsf{UC}\xspace}
\newcommand{\ROM}{\textsf{ROM}\xspace}
%% Experience/Games
\newcommand{\Exp}[2]{\ensuremath{\mathsf{Exp}^{#1}_{#2}}\xspace}
\newcommand{\Expt}{\ensuremath{\mathbf{Exp}}\xspace}
\newcommand{\advantage}[2]{\ensuremath{\mathrm{Advt}^{#1}_{#2}}\xspace}
\newcommand{\oracle}[2]{\ensuremath{\mathcal O^{\,\mathsf{#1}(\,#2\,)}_{}}\xspace}
\newcommand{\ensemble}[1]{\ensuremath{\mathcal S_{\mathsf{#1}}^{}}\xspace}
\newcommand{\Proba}[1]{\ensuremath{\Pr\left[#1\right]}\xspace}

% Operators
\newcommand{\iseq}{\overset{?}{=}}
\newcommand{\sample}{\xspace\ensuremath{\hookleftarrow}\xspace}
\newcommand{\bigO}{\ensuremath{\mathcal{O}}}
\newcommand{\softO}{\ensuremath{\tilde{\mathcal{O}}}}
\newcommand{\Span}{\ensuremath{\mathrm{span}}\xspace}
\newcommand{\U}{\ensuremath{\mathcal U}}

% Sets
%% Usual sets
\newcommand{\FF}{\xspace\ensuremath{\mathbb{F}}\xspace}
\newcommand{\RR}{\xspace\ensuremath{\mathbb{R}}\xspace}
\newcommand{\ZZ}{\xspace\ensuremath{\mathbb{Z}}\xspace}
\newcommand{\NN}{\xspace\ensuremath{\mathbb{N}}\xspace}
\newcommand{\CC}{\xspace\ensuremath{\mathbb{C}}\xspace}
\newcommand{\QQ}{\xspace\ensuremath{\mathbb{Q}}\xspace}
\newcommand{\Zq}{\xspace\ensuremath{\mathbb{Z}_q}\xspace}
\newcommand{\bit}{\xspace\ensuremath{\{0,1\}}\xspace}
\newcommand{\nbit}{\xspace\ensuremath{\{-1,0,1\}}\xspace}
\newcommand{\permutations}{\ensuremath{\mathfrak S}\xspace}
%% Pairings
\newcommand{\Zp}{\xspace\ensuremath{\mathbb{Z}_p}\xspace}
\newcommand{\GG}{\xspace\ensuremath{\mathbb{G}}\xspace}
\newcommand{\Gh}{\xspace\ensuremath{\widehat{\mathbb{G}}}\xspace}
\newcommand{\GT}{\xspace\ensuremath{\mathbb{G}_T}\xspace}
\newcommand{\atob}[2]{\xspace\ensuremath{\{#1,\ldots,\#2\}}}

% Primitives
%% Dynamic Group Signatures
\newcommand{\crt}{\mathsf{cert}}
\newcommand{\scr}{\mathsf{sec}}
\newcommand{\usk}{\mathsf{usk}}
\newcommand{\upk}{\mathsf{upk}}
\newcommand{\Ngs}{{N_\mathsf{gs}}}
\newcommand{\gspk}{\mathcal{Y}}
\newcommand{\join}{\mathsf{J}}
\newcommand{\Sign}{\mathsf{Sign}}
\newcommand{\user}{\mathsf{user}}
\newcommand{\users}{\mathsf{users}}
\newcommand{\GM}{\mathsf{GM}}
\newcommand{\OA}{\mathsf{OA}}
\newcommand{\ok}{\mathsf{ok}}
\newcommand{\transcripts}{\mathsf{transcripts}}
\newcommand{\transcript}{\mathsf{transcript}}
\newcommand{\trace}{\mathsf{trace}}
\newcommand{\ajoin}{\mathsf{a}\textrm{-}\mathsf{join}}
\newcommand{\bjoin}{\mathsf{b}\textrm{-}\mathsf{join}}
\newcommand{\pjoin}{\mathsf{p}\textrm{-}\mathsf{join}}
\newcommand{\interface}{\mathcal{I}}
\newcommand{\ssigma}{\boldsymbol{\sigma}\xspace}
\newcommand{\ID}{\ensuremath{\mathsf{ID}}\xspace}

% Other
\newcommand{\TODO}{\textbf{\textcolor{red}{TODO}}}

