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