\documentclass[
11pt,a4paper]{
article}
\usepackage[T1]{fontenc}
\usepackage{isabelle,isabellesym}
% this should be the last package used
\usepackage{pdfsetup}
\usepackage{railsetup}
% urls in roman style, theory text in math-similar italics
\urlstyle{rm}
\isabellestyle{it}
\newcommand\isafor{
\textsf{IsaFoR}}
\newcommand\ceta{
\textsf{Ce
\kern-.
18emT
\kern-.
18emA}}
\begin{document}
\title{Deriving class instances for datatypes.
\footnote{Supported by FWF (Austrian Scien
ce Fund) projects P27502 and Y757.}}
\author{Christian Sternagel and Ren\'e Thiemann}
\maketitle
\begin{abstract}
We provide a framework for registering automatic methods
to derive class instances
of datatypes,
as it is possible using Haskell's ``deriving Ord, Show, \ldots'' feature.
We further implemented such automatic methods to derive comparators, linear orders, parametrizable equality functions,
and hash-functions which are required in the
Isabelle Collection Framework \cite{rbt} and the Container Framework \cite{containers}.
Moreover, for the tactic of Blanchette to show that a datatype is countable, we implemented a
wrapper so that this tactic becomes accessible in our framework. All of the generators are based on
the infrastructure that is provided by the BNF-based datatype package.
Our formalization was performed as part of the \isafor/\ceta{} project%
\footnote{\url{http://cl-informatik.uibk.ac.at/software/ceta}} \cite{CeTA}.
With our new tactics we could remove
several tedious proofs for (conditional) linear orders, and conditional equality operators
within \isafor{} and the Container Framework.
\end{abstract}
\tableofcontents
% include generated text of all theories
\input{session}
\section{Acknowledgements}
We thank
\begin{itemize}
\item Lukas Bulwahn and Brian Huffman for the discussion on a generic derive command.
\item Jasmin Blanchette for providing the tactic for countability for BNF-based datatypes.
\item Jasmin Blanchette and Dmitriy Traytel for adjusting the Isabelle/ML interface of
the BNF-based datatypes.
\item Alexander Krauss for telling us to avoid the function package for this task.
\item Peter Lammich for the inspiration of developing a hash-function generator.
\item Andreas Lochbihler for the inspiration of developing generators for the container framework.
\item Christian Urban for his cookbook on Isabelle/ML.
\item Stefan Berghofer, Florian Haftmann, Cezary Kaliszyk, Tobias Nipkow, and Makarius Wenzel for their explanations
on several Isabelle related questions.
\end{itemize}
\bibliographystyle{abbrv}
\bibliography{root}
\end{document}
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland