src/HOL/Data_Structures/document/root.tex
author nipkow
Sat, 05 Dec 2015 17:23:50 +0100
changeset 61791 21502fb1ff0a
parent 61784 21b34a2269e5
child 62496 f187aaf602c4
permissions -rw-r--r--
tuned
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
61203
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
     1
\documentclass[11pt,a4paper]{article}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
     2
\usepackage{isabelle,isabellesym}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
     3
\usepackage{latexsym}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
     4
% this should be the last package used
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
     5
\usepackage{pdfsetup}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
     6
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
     7
% snip
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
     8
\newcommand{\repeatisanl}[1]{\ifnum#1=0\else\isanewline\repeatisanl{\numexpr#1-1}\fi}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
     9
\newcommand{\snip}[4]{\repeatisanl#2#4\repeatisanl#3}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    10
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    11
\urlstyle{rm}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    12
\isabellestyle{it}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    13
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    14
\renewcommand{\isacharunderscore}{\_}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    15
\renewcommand{\isacharunderscorekeyword}{\_}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    16
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    17
% for uniform font size
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    18
\renewcommand{\isastyle}{\isastyleminor}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    19
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    20
\begin{document}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    21
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    22
\title{Functional Data Structures}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    23
\author{Tobias Nipkow}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    24
\maketitle
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    25
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    26
\begin{abstract}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    27
A collection of verified functional data structures. The emphasis is on
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    28
conciseness of algorithms and succinctness of proofs, more in the style
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    29
of a textbook than a library of efficient algorithms.
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    30
\end{abstract}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    31
61224
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    32
\setcounter{tocdepth}{1}
61203
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    33
\tableofcontents
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    34
\newpage
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    35
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    36
\input{session}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    37
61224
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    38
\section{Bibliographic Notes}
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    39
61480
3885464e4874 tuned text
nipkow
parents: 61224
diff changeset
    40
\paragraph{Red-black trees}
61224
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    41
The insert function follows Okasaki \cite{Okasaki}, the delete function
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    42
Kahrs \cite{Kahrs-html,Kahrs-JFP01}.
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    43
61480
3885464e4874 tuned text
nipkow
parents: 61224
diff changeset
    44
\paragraph{2-3 trees}
61791
nipkow
parents: 61784
diff changeset
    45
Equational definitions were given by Hoffmann and
nipkow
parents: 61784
diff changeset
    46
O'Donnell~\cite{HoffmannOD-TOPLAS82} (only insertion)
nipkow
parents: 61784
diff changeset
    47
and Reade \cite{Reade-SCP92}.
nipkow
parents: 61784
diff changeset
    48
Our formalisation is based on the teaching material by
nipkow
parents: 61784
diff changeset
    49
Turbak~\cite{Turbak230} .
61480
3885464e4874 tuned text
nipkow
parents: 61224
diff changeset
    50
61784
21b34a2269e5 added 1-2 brother trees
nipkow
parents: 61697
diff changeset
    51
\paragraph{1-2 brother trees}
21b34a2269e5 added 1-2 brother trees
nipkow
parents: 61697
diff changeset
    52
They were invented by Ottmann and Six~\cite{OttmannS76,OttmannW-CJ80}.
21b34a2269e5 added 1-2 brother trees
nipkow
parents: 61697
diff changeset
    53
The functional version is due to Hinze~\cite{Hinze-bro12}.
21b34a2269e5 added 1-2 brother trees
nipkow
parents: 61697
diff changeset
    54
61525
87244a9cfe40 added splay trees
nipkow
parents: 61480
diff changeset
    55
\paragraph{Splay trees}
87244a9cfe40 added splay trees
nipkow
parents: 61480
diff changeset
    56
They were invented by Sleator and Tarjan \cite{SleatorT-JACM85}.
87244a9cfe40 added splay trees
nipkow
parents: 61480
diff changeset
    57
Our formalisation follows Schoenmakers \cite{Schoenmakers-IPL93}.
87244a9cfe40 added splay trees
nipkow
parents: 61480
diff changeset
    58
61224
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    59
\bibliographystyle{abbrv}
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    60
\bibliography{root}
61203
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    61
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    62
\end{document}