| author | wenzelm | 
| Tue, 21 Jun 2005 09:35:31 +0200 | |
| changeset 16511 | dad516b121cd | 
| parent 12343 | b05331869f79 | 
| child 17133 | 096792bdc58e | 
| permissions | -rw-r--r-- | 
| 3167 | 1 | |
| 8890 | 2 | \documentclass[12pt,a4paper,fleqn]{report}
 | 
| 10140 | 3 | \usepackage{graphicx,../iman,../extra,../isar}
 | 
| 8890 | 4 | \usepackage{generated/isabelle,generated/isabellesym}
 | 
| 10140 | 5 | \usepackage{../pdfsetup}  % last one!
 | 
| 8890 | 6 | |
| 10140 | 7 | \isabellestyle{it}
 | 
| 10222 | 8 | \newcommand{\isasyminv}{\isamath{{}^{-1}}}
 | 
| 12343 
b05331869f79
\renewcommand{\isasymzero}, \renewcommand{\isasymone};
 wenzelm parents: 
10222diff
changeset | 9 | \renewcommand{\isasymzero}{\isamath{0}}
 | 
| 
b05331869f79
\renewcommand{\isasymzero}, \renewcommand{\isasymone};
 wenzelm parents: 
10222diff
changeset | 10 | \renewcommand{\isasymone}{\isamath{1}}
 | 
| 8890 | 11 | |
| 12 | \newcommand{\secref}[1]{\S\ref{#1}}
 | |
| 13 | \newcommand{\figref}[1]{figure~\ref{#1}}
 | |
| 14 | ||
| 15 | \hyphenation{Isabelle}
 | |
| 16 | \hyphenation{Isar}
 | |
| 17 | \hyphenation{Haskell}
 | |
| 18 | ||
| 19 | \title{\includegraphics[scale=0.5]{isabelle_isar}
 | |
| 20 | \\[4ex] Using Axiomatic Type Classes in Isabelle} | |
| 21 | \author{\emph{Markus Wenzel} \\ TU M\"unchen}
 | |
| 22 | ||
| 23 | ||
| 24 | \setcounter{secnumdepth}{2} \setcounter{tocdepth}{2}
 | |
| 25 | ||
| 26 | \pagestyle{headings}
 | |
| 27 | \sloppy | |
| 28 | \binperiod %%%treat . like a binary operator | |
| 29 | ||
| 3167 | 30 | |
| 31 | \begin{document}
 | |
| 32 | ||
| 8890 | 33 | \underscoreoff | 
| 3167 | 34 | |
| 8890 | 35 | \maketitle | 
| 3167 | 36 | |
| 8890 | 37 | \begin{abstract}
 | 
| 38 | Isabelle offers order-sorted type classes on top of the simple types of | |
| 39 | plain Higher-Order Logic. The resulting type system is similar to that of | |
| 40 | the programming language Haskell. Its interpretation within the logic | |
| 41 | enables further application, though, apart from restricting polymorphism | |
| 42 |   syntactically.  In particular, the concept of \emph{Axiomatic Type Classes}
 | |
| 43 | provides a useful light-weight mechanism for hierarchically-structured | |
| 44 | abstract theories. Subsequently, we demonstrate typical uses of Isabelle's | |
| 45 | axiomatic type classes to model basic algebraic structures. | |
| 46 | ||
| 8907 | 47 | This document describes axiomatic type classes using Isabelle/Isar theories, | 
| 48 | with proofs expressed via Isar proof language elements. The new theory | |
| 49 | format greatly simplifies the arrangement of the overall development, since | |
| 50 | definitions and proofs may be freely intermixed. Users who prefer tactic | |
| 51 | scripts over structured proofs do not need to fall back on separate ML | |
| 52 | scripts, though, but may refer to Isar's tactic emulation commands. | |
| 8890 | 53 | \end{abstract}
 | 
| 3167 | 54 | |
| 55 | ||
| 8890 | 56 | \pagenumbering{roman} \tableofcontents \clearfirst
 | 
| 3167 | 57 | |
| 8890 | 58 | \include{body}
 | 
| 3167 | 59 | |
| 8890 | 60 | %FIXME | 
| 61 | \nocite{nipkow-types93}
 | |
| 62 | \nocite{nipkow-sorts93}
 | |
| 63 | \nocite{Wenzel:1997:TPHOL}
 | |
| 64 | \nocite{paulson-isa-book}
 | |
| 65 | \nocite{isabelle-isar-ref}
 | |
| 66 | \nocite{Wenzel:1999:TPHOL}
 | |
| 3167 | 67 | |
| 8890 | 68 | \begingroup | 
| 69 |   \bibliographystyle{plain} \small\raggedright\frenchspacing
 | |
| 70 |   \bibliography{../manual}
 | |
| 71 | \endgroup | |
| 3167 | 72 | |
| 8890 | 73 | \end{document}
 | 
| 3167 | 74 | |
| 75 | ||
| 8890 | 76 | %%% Local Variables: | 
| 77 | %%% mode: latex | |
| 78 | %%% TeX-master: t | |
| 79 | %%% End: | |
| 80 | % LocalWords: Isabelle FIXME |