\documentclass[11pt,a4paper]{article}
\usepackage{isabelle,isabellesym}
\usepackage{latexsym}
% this should be the last package used
\usepackage{pdfsetup}
% snip
\newcommand{\repeatisanl}[1]{\ifnum#1=0\else\isanewline\repeatisanl{\numexpr#1-1}\fi}
\newcommand{\snip}[4]{\repeatisanl#2#4\repeatisanl#3}
\urlstyle{rm}
\isabellestyle{it}
\renewcommand{\isacharunderscore}{\_}
\renewcommand{\isacharunderscorekeyword}{\_}
% for uniform font size
\renewcommand{\isastyle}{\isastyleminor}
\begin{document}
\title{Functional Data Structures}
\author{Tobias Nipkow}
\maketitle
\begin{abstract}
A collection of verified functional data structures. The emphasis is on
conciseness of algorithms and succinctness of proofs, more in the style
of a textbook than a library of efficient algorithms.
For more details see \cite{Nipkow16}.
\end{abstract}
\setcounter{tocdepth}{1}
\tableofcontents
\newpage
\input{session}
\section{Bibliographic Notes}
\paragraph{Red-black trees}
The insert function follows Okasaki \cite{Okasaki}, the delete function
Kahrs \cite{Kahrs-html,Kahrs-JFP01}.
\paragraph{2-3 trees}
Equational definitions were given by Hoffmann and
O'Donnell~\cite{HoffmannOD-TOPLAS82} (only insertion)
and Reade \cite{Reade-SCP92}.
Our formalisation is based on the teaching material by
Turbak~\cite{Turbak230} .
\paragraph{1-2 brother trees}
They were invented by Ottmann and Six~\cite{OttmannS76,OttmannW-CJ80}.
The functional version is due to Hinze~\cite{Hinze-bro12}.
\paragraph{AA trees}
They were invented by Arne Anderson \cite{Andersson-WADS93}.
Our formalisation follows Ragde~\cite{Ragde14} but fixes a number
of mistakes.
\paragraph{Splay trees}
They were invented by Sleator and Tarjan \cite{SleatorT-JACM85}.
Our formalisation follows Schoenmakers \cite{Schoenmakers-IPL93}.
\bibliographystyle{abbrv}
\bibliography{root}
\end{document}