\RequirePackage{listings}
\RequirePackage{xcolor}

\definecolor{commentsColor}{rgb}{0.497495, 0.497587, 0.497464}
\definecolor{keywordsColor}{rgb}{0.000000, 0.000000, 0.635294}
\definecolor{stringColor}{rgb}{0.558215, 0.000000, 0.135316}

\lstset{ % Code syntax highlighting colors
  backgroundcolor=\color{white},   % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}
  basicstyle=\footnotesize,        % the size of the fonts that are used for the code
  breakatwhitespace=false,         % sets if automatic breaks should only happen at whitespace
  breaklines=true,                 % sets automatic line breaking
  captionpos=b,                    % sets the caption-position to bottom
  commentstyle=\color{commentsColor}\textit,    % comment style
  deletekeywords={...},            % if you want to delete keywords from the given language
  escapeinside={\%*}{*)},          % if you want to add LaTeX within your code
  extendedchars=true,              % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
  frame=tb,	                   	   % adds a frame around the code
  keepspaces=true,                 % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
  keywordstyle=\color{keywordsColor}\bfseries,       % keyword style
  language=Python,                 % the language of the code (can be overrided per snippet)
  otherkeywords={*,...},           % if you want to add more keywords to the set
  numbers=left,                    % where to put the line-numbers; possible values are (none, left, right)
  numbersep=5pt,                   % how far the line-numbers are from the code
  numberstyle=\tiny\color{commentsColor}, % the style that is used for the line-numbers
  rulecolor=\color{black},         % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
  showspaces=false,                % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
  showstringspaces=false,          % underline spaces within strings only
  showtabs=false,                  % show tabs within strings adding particular underscores
  stepnumber=1,                    % the step between two line-numbers. If it's 1, each line will be numbered
  stringstyle=\color{stringColor}, % string literal style
  tabsize=2,	                   % sets default tabsize to 2 spaces
  title=\lstname,                  % show the filename of files included with \lstinputlisting; also try caption instead of title
  columns=fixed                    % Using fixed column width (for e.g. nice alignment)
}

% Lexical symbols
\newcommand{\doubleunderline}[1]{\underline{\underline{#1}}}
\newcommand{\qed}{\hfill$\square.$}
\newcommand{\ezqed}{\hfill$\square$\kern-.65em \tiny ${}^{e\!z}$ \normalsize . }
\allowdisplaybreaks %page break in align

\newcommand{\lbr}{\quad \\}

% Mathematical symbols
\newcommand{\obda}{\text{o.\,B.\,d.\,A. }}
\newcommand{\obdaEN}{\text{w.\,l.\,o.\,g. }}
\newcommand{\dd}{\text{d}}
\newcommand{\fral}{\;\forall\,}
\newcommand{\exst}{\;\exists\,}
\newcommand{\lsum}{\sum\limits}
\newcommand{\la}[2]{\left(#1\wedge#2\right)}
%\newcommand{\la*}{\wedge}
\newcommand{\lna}[2]{\neg\left(#1\wedge#2\right)}
\newcommand{\lo}[2]{\left(#1\vee#2\right)}
%\newcommand{\lo*}{\vee}
\newcommand{\lno}[2]{\neg\left(#1\vee#2\right)}
\newcommand{\lxo}[2]{#1\oplus#2}
%\newcommand{\lxo*}{\oplus}
\newcommand{\peq}{\overset{!}{=}}
\newcommand{\lnx}[2]{\neg\left(#1\oplus#2\right)}
\newcommand{\dbar}{d\hspace*{-0.08em}\bar{}\hspace*{0.1em}}
\newcommand{\spur}[1]{\textrm{Sp}\left(#1\right)}
\newcommand{\twovec}[2]{\begin{bmatrix}#1 \\ #2\end{bmatrix}}
\newcommand{\twocovec}[2]{\begin{bmatrix}#1 & #2\end{bmatrix}}
\newcommand{\fourmat}[4]{\begin{bmatrix}#1 & #2 \\ #3 & #4\end{bmatrix}}
\newcommand{\ppow}[2]{#1^{(#2)}}
\newcommand{\sandw}[3]{\bra{#1}#2\ket{#3}}
\newcommand{\tsandw}[2]{\sandw{#1}{#2}{#1}}
\newcommand{\sidenote}[1]{\marginpar{\begin{footnotesize}#1\end{footnotesize}}}
\newcommand{\nhilbert}[1]{\ppow{\mathcal{H}}{#1}}
\newcommand{\anticom}[2]{ \{ #1 , #2 \} }
\newcommand{\undertilde}[1]{\underset{\sim}{#1}}
\newcommand{\delfrac}[2]{\frac{\partial #1}{\partial #2}}
\newcommand{\timeder}[1]{\overset{.}{#1}}
\newcommand{\lagdens}{\mathcal{L}}

% Environments
