\usepackage{graphicx}
\usepackage{float}
\usepackage{amssymb}
\usepackage{color}
\usepackage{listings}
\usepackage{mathtools}

\DeclareMathOperator{\im}{Im}

\usepackage{tikz} % http://pdp7.org/blog/?p=133
\usetikzlibrary{matrix, arrows, decorations}
\tikzset{node distance=3em, row sep=3em, column sep=3em, auto}

\pgfdeclaredecoration{single line}{initial}{ 
        \state{initial}[width=\pgfdecoratedpathlength-1sp]{\pgfpathmoveto{\pgfpointorigin}} 
        \state{final}{\pgfpathlineto{\pgfpointorigin}} 
} 

\tikzset{ 
        raise line/.style={ 
                decoration={single line, raise=#1}, decorate 
        } 
}

\newcommand{\N}{\mathbb{N}}
\newcommand{\Np}{{\mathbb{N}^{>0}}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\cat}[1]{\mathbf{#1}}
\newcommand{\Ab}{\cat{Ab}}
\newcommand{\sAb}{\cat{sAb}}
\newcommand{\Set}{\cat{Set}}
\newcommand{\sSet}{\cat{sSet}}
\newcommand{\Top}{\cat{Top}}
\newcommand{\DELTA}{\cat{\Delta}}
\newcommand{\Ch}[1]{\mathbf{Ch}(#1)}
\newcommand{\Hom}[3]{\mathbf{Hom}_{#1}(#2, #3)}
\newcommand{\id}{\mathbf{id}}

\newcommand{\iso}{\cong}
\newcommand{\tot}[1]{\xrightarrow{\,\,{#1}\,\,}}
\newcommand{\mapstot}[1]{\xmapsto{\,\,{#1}\,\,}}
\newcommand{\eps}{\varepsilon}
\newcommand{\I}{\,\mid\,}
\newcommand{\then}{\Rightarrow}
\newcommand{\mono}{\hookrightarrow}
\newcommand{\epi}{\twoheadrightarrow}
\newcommand{\del}{\partial}
\newcommand{\nsubgrp}{\trianglelefteq}

\newcommand{\todo}[1]{
	\addcontentsline{tdo}{todo}{\protect{#1}}
	$\ast$ \marginpar{\tiny $\ast$ #1}
}
\makeatletter
	\newcommand \listoftodos{\section*{Todo list} \@starttoc{tdo}}
	\newcommand\l@todo[2]{
		\par\noindent \textit{#2}, \parbox{10cm}{#1}\par
	}
\makeatother
