doc-src/IsarAdvanced/Classes/classes.tex
author wenzelm
Sat, 06 Dec 2008 00:04:44 +0100 (2008-12-05)
changeset 29000 5e03bc760355
parent 28727 185110a4b97a
child 29016 31110b40eae7
permissions -rw-r--r--
improved future_schedule: more robust handling of failed parents (explicit join), final join of all futures, including Exn.release_all;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20946
75b56e51fade initial draft
haftmann
parents:
diff changeset
     1
75b56e51fade initial draft
haftmann
parents:
diff changeset
     2
%% $Id$
75b56e51fade initial draft
haftmann
parents:
diff changeset
     3
75b56e51fade initial draft
haftmann
parents:
diff changeset
     4
\documentclass[12pt,a4paper,fleqn]{report}
75b56e51fade initial draft
haftmann
parents:
diff changeset
     5
\usepackage{latexsym,graphicx}
75b56e51fade initial draft
haftmann
parents:
diff changeset
     6
\usepackage[refpage]{nomencl}
75b56e51fade initial draft
haftmann
parents:
diff changeset
     7
\usepackage{../../iman,../../extra,../../isar,../../proof}
26911
871cc7f11034 use Isabelle sty files from Doc/;
wenzelm
parents: 26784
diff changeset
     8
\usepackage{../../isabelle,../../isabellesym}
20946
75b56e51fade initial draft
haftmann
parents:
diff changeset
     9
\usepackage{style}
26911
871cc7f11034 use Isabelle sty files from Doc/;
wenzelm
parents: 26784
diff changeset
    10
\usepackage{../../pdfsetup}
20946
75b56e51fade initial draft
haftmann
parents:
diff changeset
    11
75b56e51fade initial draft
haftmann
parents:
diff changeset
    12
28565
haftmann
parents: 28540
diff changeset
    13
%% setup
20946
75b56e51fade initial draft
haftmann
parents:
diff changeset
    14
28565
haftmann
parents: 28540
diff changeset
    15
% hyphenation
20946
75b56e51fade initial draft
haftmann
parents:
diff changeset
    16
\hyphenation{Isabelle}
75b56e51fade initial draft
haftmann
parents:
diff changeset
    17
\hyphenation{Isar}
75b56e51fade initial draft
haftmann
parents:
diff changeset
    18
28565
haftmann
parents: 28540
diff changeset
    19
% logical markup
haftmann
parents: 28540
diff changeset
    20
\newcommand{\strong}[1]{{\bfseries {#1}}}
haftmann
parents: 28540
diff changeset
    21
\newcommand{\qn}[1]{\emph{#1}}
haftmann
parents: 28540
diff changeset
    22
haftmann
parents: 28540
diff changeset
    23
% typographic conventions
haftmann
parents: 28540
diff changeset
    24
\newcommand{\qt}[1]{``{#1}''}
haftmann
parents: 28540
diff changeset
    25
haftmann
parents: 28540
diff changeset
    26
% verbatim text
28727
185110a4b97a clarified verbatim vs. typewriter
haftmann
parents: 28714
diff changeset
    27
\newcommand{\isatypewriter}{\fontsize{9pt}{0pt}\tt\renewcommand{\baselinestretch}{1}\setlength{\baselineskip}{9pt}}
28565
haftmann
parents: 28540
diff changeset
    28
haftmann
parents: 28540
diff changeset
    29
% invisibility
20946
75b56e51fade initial draft
haftmann
parents:
diff changeset
    30
\isadroptag{theory}
28565
haftmann
parents: 28540
diff changeset
    31
haftmann
parents: 28540
diff changeset
    32
% quoted segments
haftmann
parents: 28540
diff changeset
    33
\makeatletter
haftmann
parents: 28540
diff changeset
    34
\isakeeptag{quote}
haftmann
parents: 28540
diff changeset
    35
\newenvironment{quotesegment}{\begin{quote}\isa@parindent\parindent\parindent0pt\isa@parskip\parskip\parskip0pt}{\end{quote}}
haftmann
parents: 28540
diff changeset
    36
\renewcommand{\isatagquote}{\begin{quotesegment}}
haftmann
parents: 28540
diff changeset
    37
\renewcommand{\endisatagquote}{\end{quotesegment}}
haftmann
parents: 28540
diff changeset
    38
\makeatother
haftmann
parents: 28540
diff changeset
    39
haftmann
parents: 28540
diff changeset
    40
%\renewcommand{\isasymlongleftrightarrow}{\isamath{\leftrightarrow}}
haftmann
parents: 28540
diff changeset
    41
%\renewcommand{\isasymdiv}{\isamath{{}^{-1}}}
haftmann
parents: 28540
diff changeset
    42
%\renewcommand{\isasymotimes}{\isamath{\circ}}
haftmann
parents: 28540
diff changeset
    43
haftmann
parents: 28540
diff changeset
    44
haftmann
parents: 28540
diff changeset
    45
%% content
haftmann
parents: 28540
diff changeset
    46
20946
75b56e51fade initial draft
haftmann
parents:
diff changeset
    47
\title{\includegraphics[scale=0.5]{isabelle_isar}
75b56e51fade initial draft
haftmann
parents:
diff changeset
    48
  \\[4ex] Haskell-style type classes with Isabelle/Isar}
75b56e51fade initial draft
haftmann
parents:
diff changeset
    49
\author{\emph{Florian Haftmann}}
75b56e51fade initial draft
haftmann
parents:
diff changeset
    50
75b56e51fade initial draft
haftmann
parents:
diff changeset
    51
\begin{document}
75b56e51fade initial draft
haftmann
parents:
diff changeset
    52
75b56e51fade initial draft
haftmann
parents:
diff changeset
    53
\maketitle
75b56e51fade initial draft
haftmann
parents:
diff changeset
    54
75b56e51fade initial draft
haftmann
parents:
diff changeset
    55
\begin{abstract}
75b56e51fade initial draft
haftmann
parents:
diff changeset
    56
  This tutorial introduces the look-and-feel of Isar type classes
75b56e51fade initial draft
haftmann
parents:
diff changeset
    57
  to the end-user; Isar type classes are a convenient mechanism
75b56e51fade initial draft
haftmann
parents:
diff changeset
    58
  for organizing specifications, overcoming some drawbacks
75b56e51fade initial draft
haftmann
parents:
diff changeset
    59
  of raw axiomatic type classes. Essentially, they combine
75b56e51fade initial draft
haftmann
parents:
diff changeset
    60
  an operational aspect (in the manner of Haskell) with
75b56e51fade initial draft
haftmann
parents:
diff changeset
    61
  a logical aspect, both managed uniformly.
75b56e51fade initial draft
haftmann
parents:
diff changeset
    62
\end{abstract}
75b56e51fade initial draft
haftmann
parents:
diff changeset
    63
75b56e51fade initial draft
haftmann
parents:
diff changeset
    64
\thispagestyle{empty}\clearpage
75b56e51fade initial draft
haftmann
parents:
diff changeset
    65
75b56e51fade initial draft
haftmann
parents:
diff changeset
    66
\pagenumbering{roman}
75b56e51fade initial draft
haftmann
parents:
diff changeset
    67
\clearfirst
75b56e51fade initial draft
haftmann
parents:
diff changeset
    68
75b56e51fade initial draft
haftmann
parents:
diff changeset
    69
\input{Thy/document/Classes.tex}
75b56e51fade initial draft
haftmann
parents:
diff changeset
    70
75b56e51fade initial draft
haftmann
parents:
diff changeset
    71
\begingroup
75b56e51fade initial draft
haftmann
parents:
diff changeset
    72
%\tocentry{\bibname}
75b56e51fade initial draft
haftmann
parents:
diff changeset
    73
\bibliographystyle{plain} \small\raggedright\frenchspacing
23956
48494ccfabaf updated
haftmann
parents: 22347
diff changeset
    74
\bibliography{../../manual}
20946
75b56e51fade initial draft
haftmann
parents:
diff changeset
    75
\endgroup
75b56e51fade initial draft
haftmann
parents:
diff changeset
    76
75b56e51fade initial draft
haftmann
parents:
diff changeset
    77
\end{document}
75b56e51fade initial draft
haftmann
parents:
diff changeset
    78
75b56e51fade initial draft
haftmann
parents:
diff changeset
    79
75b56e51fade initial draft
haftmann
parents:
diff changeset
    80
%%% Local Variables: 
75b56e51fade initial draft
haftmann
parents:
diff changeset
    81
%%% mode: latex
75b56e51fade initial draft
haftmann
parents:
diff changeset
    82
%%% TeX-master: t
75b56e51fade initial draft
haftmann
parents:
diff changeset
    83
%%% End: