| 20946 |      1 | 
 | 
|  |      2 | %% $Id$
 | 
|  |      3 | 
 | 
|  |      4 | \documentclass[12pt,a4paper,fleqn]{report}
 | 
|  |      5 | \usepackage{latexsym,graphicx}
 | 
| 22317 |      6 | \usepackage{listings}
 | 
| 20946 |      7 | \usepackage[refpage]{nomencl}
 | 
|  |      8 | \usepackage{../../iman,../../extra,../../isar,../../proof}
 | 
|  |      9 | \usepackage{Thy/document/isabelle,Thy/document/isabellesym}
 | 
|  |     10 | \usepackage{style}
 | 
|  |     11 | \usepackage{Thy/document/pdfsetup}
 | 
|  |     12 | 
 | 
| 22347 |     13 | \renewcommand{\isasymlongleftrightarrow}{\isamath{\leftrightarrow}}
 | 
|  |     14 | \renewcommand{\isasymdiv}{\isamath{{}^{-1}}}
 | 
|  |     15 | \renewcommand{\isasymotimes}{\isamath{\circ}}
 | 
|  |     16 | 
 | 
| 20946 |     17 | \newcommand{\cmd}[1]{\isacommand{#1}}
 | 
|  |     18 | 
 | 
|  |     19 | \newcommand{\isasymINFIX}{\cmd{infix}}
 | 
|  |     20 | \newcommand{\isasymLOCALE}{\cmd{locale}}
 | 
|  |     21 | \newcommand{\isasymINCLUDES}{\cmd{includes}}
 | 
|  |     22 | \newcommand{\isasymDATATYPE}{\cmd{datatype}}
 | 
|  |     23 | \newcommand{\isasymAXCLASS}{\cmd{axclass}}
 | 
|  |     24 | \newcommand{\isasymFIXES}{\cmd{fixes}}
 | 
|  |     25 | \newcommand{\isasymASSUMES}{\cmd{assumes}}
 | 
|  |     26 | \newcommand{\isasymDEFINES}{\cmd{defines}}
 | 
|  |     27 | \newcommand{\isasymNOTES}{\cmd{notes}}
 | 
|  |     28 | \newcommand{\isasymSHOWS}{\cmd{shows}}
 | 
|  |     29 | \newcommand{\isasymCLASS}{\cmd{class}}
 | 
|  |     30 | \newcommand{\isasymINSTANCE}{\cmd{instance}}
 | 
|  |     31 | \newcommand{\isasymLEMMA}{\cmd{lemma}}
 | 
|  |     32 | \newcommand{\isasymPROOF}{\cmd{proof}}
 | 
|  |     33 | \newcommand{\isasymQED}{\cmd{qed}}
 | 
|  |     34 | \newcommand{\isasymFIX}{\cmd{fix}}
 | 
|  |     35 | \newcommand{\isasymASSUME}{\cmd{assume}}
 | 
|  |     36 | \newcommand{\isasymSHOW}{\cmd{show}}
 | 
|  |     37 | \newcommand{\isasymNOTE}{\cmd{note}}
 | 
|  |     38 | \newcommand{\isasymIN}{\cmd{in}}
 | 
|  |     39 | 
 | 
|  |     40 | \newcommand{\qt}[1]{``#1''}
 | 
|  |     41 | \newcommand{\qtt}[1]{"{}{#1}"{}}
 | 
|  |     42 | \newcommand{\qn}[1]{\emph{#1}}
 | 
|  |     43 | \newcommand{\strong}[1]{{\bfseries #1}}
 | 
|  |     44 | \newcommand{\fixme}[1][!]{\strong{FIXME: #1}}
 | 
|  |     45 | 
 | 
| 22317 |     46 | \lstset{basicstyle=\scriptsize\ttfamily,keywordstyle=\itshape,commentstyle=\itshape\sffamily,frame=single}
 | 
|  |     47 | \newcommand{\lstsml}[1]{\lstset{language=ML}\lstinputlisting{#1}}
 | 
|  |     48 | \newcommand{\lsthaskell}[1]{\lstset{language=Haskell}\lstinputlisting{#1}}
 | 
|  |     49 | 
 | 
| 20946 |     50 | \hyphenation{Isabelle}
 | 
|  |     51 | \hyphenation{Isar}
 | 
|  |     52 | 
 | 
|  |     53 | \isadroptag{theory}
 | 
|  |     54 | \title{\includegraphics[scale=0.5]{isabelle_isar}
 | 
|  |     55 |   \\[4ex] Haskell-style type classes with Isabelle/Isar}
 | 
|  |     56 | \author{\emph{Florian Haftmann}}
 | 
|  |     57 | 
 | 
|  |     58 | 
 | 
|  |     59 | \begin{document}
 | 
|  |     60 | 
 | 
|  |     61 | \maketitle
 | 
|  |     62 | 
 | 
|  |     63 | \begin{abstract}
 | 
|  |     64 |   This tutorial introduces the look-and-feel of Isar type classes
 | 
|  |     65 |   to the end-user; Isar type classes are a convenient mechanism
 | 
|  |     66 |   for organizing specifications, overcoming some drawbacks
 | 
|  |     67 |   of raw axiomatic type classes. Essentially, they combine
 | 
|  |     68 |   an operational aspect (in the manner of Haskell) with
 | 
|  |     69 |   a logical aspect, both managed uniformly.
 | 
|  |     70 | \end{abstract}
 | 
|  |     71 | 
 | 
|  |     72 | \thispagestyle{empty}\clearpage
 | 
|  |     73 | 
 | 
|  |     74 | \pagenumbering{roman}
 | 
|  |     75 | \clearfirst
 | 
|  |     76 | 
 | 
|  |     77 | \input{Thy/document/Classes.tex}
 | 
|  |     78 | 
 | 
|  |     79 | \begingroup
 | 
|  |     80 | %\tocentry{\bibname}
 | 
|  |     81 | \bibliographystyle{plain} \small\raggedright\frenchspacing
 | 
|  |     82 | \bibliography{../../manual,classes}
 | 
|  |     83 | \endgroup
 | 
|  |     84 | 
 | 
|  |     85 | \end{document}
 | 
|  |     86 | 
 | 
|  |     87 | 
 | 
|  |     88 | %%% Local Variables: 
 | 
|  |     89 | %%% mode: latex
 | 
|  |     90 | %%% TeX-master: t
 | 
|  |     91 | %%% End: 
 |