haftmann@20946: haftmann@20946: %% $Id$ haftmann@20946: haftmann@20946: \documentclass[12pt,a4paper,fleqn]{report} haftmann@20946: \usepackage{latexsym,graphicx} haftmann@20946: \usepackage[refpage]{nomencl} haftmann@20946: \usepackage{../../iman,../../extra,../../isar,../../proof} wenzelm@26911: \usepackage{../../isabelle,../../isabellesym} haftmann@20946: \usepackage{style} wenzelm@26911: \usepackage{../../pdfsetup} haftmann@20946: haftmann@28540: haftmann@28565: %% setup haftmann@28540: haftmann@28565: % hyphenation haftmann@20946: \hyphenation{Isabelle} haftmann@20946: \hyphenation{Isar} haftmann@20946: haftmann@28565: % logical markup haftmann@28565: \newcommand{\strong}[1]{{\bfseries {#1}}} haftmann@28565: \newcommand{\qn}[1]{\emph{#1}} haftmann@28565: haftmann@28565: % typographic conventions haftmann@28565: \newcommand{\qt}[1]{``{#1}''} haftmann@28565: haftmann@28565: % verbatim text haftmann@28565: \newcommand{\isaverbatim}{\renewcommand{\baselinestretch}{1}\setlength{\baselineskip}{8pt}\fontsize{8pt}{0pt}} haftmann@28565: haftmann@28565: % invisibility haftmann@20946: \isadroptag{theory} haftmann@28565: haftmann@28565: % quoted segments haftmann@28565: \makeatletter haftmann@28565: \isakeeptag{quote} haftmann@28565: \newenvironment{quotesegment}{\begin{quote}\isa@parindent\parindent\parindent0pt\isa@parskip\parskip\parskip0pt}{\end{quote}} haftmann@28565: \renewcommand{\isatagquote}{\begin{quotesegment}} haftmann@28565: \renewcommand{\endisatagquote}{\end{quotesegment}} haftmann@28565: \makeatother haftmann@28565: haftmann@28565: %\renewcommand{\isasymlongleftrightarrow}{\isamath{\leftrightarrow}} haftmann@28565: %\renewcommand{\isasymdiv}{\isamath{{}^{-1}}} haftmann@28565: %\renewcommand{\isasymotimes}{\isamath{\circ}} haftmann@28565: haftmann@28565: haftmann@28565: %% content haftmann@28565: haftmann@20946: \title{\includegraphics[scale=0.5]{isabelle_isar} haftmann@20946: \\[4ex] Haskell-style type classes with Isabelle/Isar} haftmann@20946: \author{\emph{Florian Haftmann}} haftmann@20946: haftmann@20946: \begin{document} haftmann@20946: haftmann@20946: \maketitle haftmann@20946: haftmann@20946: \begin{abstract} haftmann@20946: This tutorial introduces the look-and-feel of Isar type classes haftmann@20946: to the end-user; Isar type classes are a convenient mechanism haftmann@20946: for organizing specifications, overcoming some drawbacks haftmann@20946: of raw axiomatic type classes. Essentially, they combine haftmann@20946: an operational aspect (in the manner of Haskell) with haftmann@20946: a logical aspect, both managed uniformly. haftmann@20946: \end{abstract} haftmann@20946: haftmann@20946: \thispagestyle{empty}\clearpage haftmann@20946: haftmann@20946: \pagenumbering{roman} haftmann@20946: \clearfirst haftmann@20946: haftmann@20946: \input{Thy/document/Classes.tex} haftmann@20946: haftmann@20946: \begingroup haftmann@20946: %\tocentry{\bibname} haftmann@20946: \bibliographystyle{plain} \small\raggedright\frenchspacing haftmann@23956: \bibliography{../../manual} haftmann@20946: \endgroup haftmann@20946: haftmann@20946: \end{document} haftmann@20946: haftmann@20946: haftmann@20946: %%% Local Variables: haftmann@20946: %%% mode: latex haftmann@20946: %%% TeX-master: t haftmann@20946: %%% End: