\usepackage{libertine}
\usepackage{listings}
\usepackage{algorithmic}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{bussproofs}
\usepackage{tikz}
\usepackage{tikz-qtree,tikz-qtree-compat,circuitikz}

\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}

\lstset{
frame=tb,
numbers=left,
numberstyle=\tiny,
breaklines=true,
postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\color{red}\hookrightarrow\space}},
extendedchars=true,
inputencoding=utf8,
keywordstyle=
}

\DeclareMathOperator{\Hom}{Hom}
%\DeclareMathOperator{\P}{\frak{P}}
%\DeclareMathOperator{\exp}{exp}
%\DeclareMathOperator{\ln}{ln}
\providecommand{\N}{\ensuremath{\mathbb{N}}}
\providecommand{\lequiv}{\ensuremath{\Leftrightarrow}}
\providecommand{\limplies}{\ensuremath{\Rightarrow}}
\providecommand{\seq}{\ensuremath{\Longrightarrow}}

\theoremstyle{definition}
\newtheorem*{def*}{Definition}
