author wenzelm
Mon, 30 Nov 2020 19:08:58 +0100
changeset 72793 35d200023993
parent 72100 9fa6dde8d959
permissions -rw-r--r--
obsolete -- done by Isabelle/PIDE/ML;

% this should be the last package used

% snip



% for uniform font size


\title{Functional Data Structures}
\author{Tobias Nipkow}

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}.



\section{Bibliographic Notes}

\paragraph{Red-black trees}
The insert function follows Okasaki \cite{Okasaki}. The delete function
in theory \isa{RBT\_Set} follows Kahrs \cite{Kahrs-html,Kahrs-JFP01},
an alternative delete function is given in theory \isa{RBT\_Set2}.

\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}  and the article by Hinze~\cite{jfp/Hinze18}.

\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}.

\paragraph{Join-based BSTs}
They were invented by Adams \cite{Adams-TR92,Adams-JFP93}
and analyzed by Blelloch \emph{et al.} \cite{BlellochFS-SPAA16}.

\paragraph{Leftist heaps}
They were invented by Crane \cite{Crane72}. A first functional implementation
is due to N\'u\~{n}ez \emph{et al.}~\cite{NunezPP95}.