src/HOL/Data_Structures/document/root.tex
author immler
Wed, 11 May 2016 16:13:17 +0200
changeset 63081 5a5beb3dbe7e
parent 62706 49c6a54ceab6
child 64318 1e92b5c35615
permissions -rw-r--r--
introduced class topological_group between topological_monoid and real_normed_vector
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.
62496
f187aaf602c4 added invariant proofs to AA trees
nipkow
parents: 61791
diff changeset
    30
f187aaf602c4 added invariant proofs to AA trees
nipkow
parents: 61791
diff changeset
    31
For more details see \cite{Nipkow16}.
61203
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    32
\end{abstract}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    33
61224
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    34
\setcounter{tocdepth}{1}
61203
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    35
\tableofcontents
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    36
\newpage
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    37
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    38
\input{session}
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    39
61224
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    40
\section{Bibliographic Notes}
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    41
61480
3885464e4874 tuned text
nipkow
parents: 61224
diff changeset
    42
\paragraph{Red-black trees}
61224
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    43
The insert function follows Okasaki \cite{Okasaki}, the delete function
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    44
Kahrs \cite{Kahrs-html,Kahrs-JFP01}.
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    45
61480
3885464e4874 tuned text
nipkow
parents: 61224
diff changeset
    46
\paragraph{2-3 trees}
61791
nipkow
parents: 61784
diff changeset
    47
Equational definitions were given by Hoffmann and
nipkow
parents: 61784
diff changeset
    48
O'Donnell~\cite{HoffmannOD-TOPLAS82} (only insertion)
nipkow
parents: 61784
diff changeset
    49
and Reade \cite{Reade-SCP92}.
nipkow
parents: 61784
diff changeset
    50
Our formalisation is based on the teaching material by
nipkow
parents: 61784
diff changeset
    51
Turbak~\cite{Turbak230} .
61480
3885464e4874 tuned text
nipkow
parents: 61224
diff changeset
    52
61784
21b34a2269e5 added 1-2 brother trees
nipkow
parents: 61697
diff changeset
    53
\paragraph{1-2 brother trees}
21b34a2269e5 added 1-2 brother trees
nipkow
parents: 61697
diff changeset
    54
They were invented by Ottmann and Six~\cite{OttmannS76,OttmannW-CJ80}.
21b34a2269e5 added 1-2 brother trees
nipkow
parents: 61697
diff changeset
    55
The functional version is due to Hinze~\cite{Hinze-bro12}.
21b34a2269e5 added 1-2 brother trees
nipkow
parents: 61697
diff changeset
    56
62496
f187aaf602c4 added invariant proofs to AA trees
nipkow
parents: 61791
diff changeset
    57
\paragraph{AA trees}
f187aaf602c4 added invariant proofs to AA trees
nipkow
parents: 61791
diff changeset
    58
They were invented by Arne Anderson \cite{Andersson-WADS93}.
f187aaf602c4 added invariant proofs to AA trees
nipkow
parents: 61791
diff changeset
    59
Our formalisation follows Ragde~\cite{Ragde14} but fixes a number
f187aaf602c4 added invariant proofs to AA trees
nipkow
parents: 61791
diff changeset
    60
of mistakes.
f187aaf602c4 added invariant proofs to AA trees
nipkow
parents: 61791
diff changeset
    61
61525
87244a9cfe40 added splay trees
nipkow
parents: 61480
diff changeset
    62
\paragraph{Splay trees}
87244a9cfe40 added splay trees
nipkow
parents: 61480
diff changeset
    63
They were invented by Sleator and Tarjan \cite{SleatorT-JACM85}.
87244a9cfe40 added splay trees
nipkow
parents: 61480
diff changeset
    64
Our formalisation follows Schoenmakers \cite{Schoenmakers-IPL93}.
87244a9cfe40 added splay trees
nipkow
parents: 61480
diff changeset
    65
62706
49c6a54ceab6 added Leftist_Heap
nipkow
parents: 62496
diff changeset
    66
\paragraph{Leftist heaps}
49c6a54ceab6 added Leftist_Heap
nipkow
parents: 62496
diff changeset
    67
They were invented by Crane \cite{Crane72}. A first functional implementation
49c6a54ceab6 added Leftist_Heap
nipkow
parents: 62496
diff changeset
    68
is due to N\'u\~{n}ez \emph{et al.}~\cite{NunezPP95}.
49c6a54ceab6 added Leftist_Heap
nipkow
parents: 62496
diff changeset
    69
61224
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    70
\bibliographystyle{abbrv}
759b5299a9f2 added red black trees
nipkow
parents: 61203
diff changeset
    71
\bibliography{root}
61203
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    72
a8a8eca85801 New subdirectory for functional data structures
nipkow
parents:
diff changeset
    73
\end{document}