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