author | wenzelm |
Fri, 19 Aug 2005 22:25:14 +0200 | |
changeset 17129 | 228eec5f5502 |
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:
10222
diff
changeset
|
9 |
\renewcommand{\isasymzero}{\isamath{0}} |
b05331869f79
\renewcommand{\isasymzero}, \renewcommand{\isasymone};
wenzelm
parents:
10222
diff
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 |