doc-src/IsarAdvanced/Functions/functions.tex
author urbanc
Fri, 17 Nov 2006 17:32:30 +0100
changeset 21405 26b51f724fe6
parent 21212 547224bf9348
child 23003 4b0bf04a4d68
permissions -rw-r--r--
added an intro lemma for freshness of products; set up the simplifier so that it can deal with the compact and long notation for freshness constraints (FIXME: it should also be able to deal with the special case of freshness of atoms)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
21212
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
     1
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
     2
%% $Id$
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
     3
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
     4
\documentclass[12pt,a4paper,fleqn]{report}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
     5
\usepackage{latexsym,graphicx}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
     6
\usepackage{listings}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
     7
\usepackage[refpage]{nomencl}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
     8
\usepackage{../../iman,../../extra,../../isar,../../proof}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
     9
\usepackage{Thy/document/isabelle,Thy/document/isabellesym}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    10
\usepackage{style}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    11
\usepackage{Thy/document/pdfsetup}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    12
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    13
\newcommand{\cmd}[1]{\isacommand{#1}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    14
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    15
\newcommand{\isasymINFIX}{\cmd{infix}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    16
\newcommand{\isasymLOCALE}{\cmd{locale}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    17
\newcommand{\isasymINCLUDES}{\cmd{includes}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    18
\newcommand{\isasymDATATYPE}{\cmd{datatype}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    19
\newcommand{\isasymAXCLASS}{\cmd{axclass}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    20
\newcommand{\isasymFIXES}{\cmd{fixes}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    21
\newcommand{\isasymASSUMES}{\cmd{assumes}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    22
\newcommand{\isasymDEFINES}{\cmd{defines}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    23
\newcommand{\isasymNOTES}{\cmd{notes}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    24
\newcommand{\isasymSHOWS}{\cmd{shows}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    25
\newcommand{\isasymCLASS}{\cmd{class}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    26
\newcommand{\isasymINSTANCE}{\cmd{instance}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    27
\newcommand{\isasymLEMMA}{\cmd{lemma}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    28
\newcommand{\isasymPROOF}{\cmd{proof}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    29
\newcommand{\isasymQED}{\cmd{qed}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    30
\newcommand{\isasymFIX}{\cmd{fix}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    31
\newcommand{\isasymASSUME}{\cmd{assume}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    32
\newcommand{\isasymSHOW}{\cmd{show}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    33
\newcommand{\isasymNOTE}{\cmd{note}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    34
\newcommand{\isasymIN}{\cmd{in}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    35
\newcommand{\isasymCODEGEN}{\cmd{code\_gen}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    36
\newcommand{\isasymPRINTCODETHMS}{\cmd{print\_codethms}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    37
\newcommand{\isasymFUN}{\cmd{fun}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    38
\newcommand{\isasymFUNCTION}{\cmd{function}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    39
\newcommand{\isasymPRIMREC}{\cmd{primrec}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    40
\newcommand{\isasymRECDEF}{\cmd{recdef}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    41
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    42
\newcommand{\qt}[1]{``#1''}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    43
\newcommand{\qtt}[1]{"{}{#1}"{}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    44
\newcommand{\qn}[1]{\emph{#1}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    45
\newcommand{\strong}[1]{{\bfseries #1}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    46
\newcommand{\fixme}[1][!]{\strong{FIXME: #1}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    47
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    48
\lstset{basicstyle=\scriptsize\ttfamily, keywordstyle=\itshape, commentstyle=\itshape\sffamily, frame=shadowbox}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    49
\newcommand{\lstsml}[1]{\lstset{language=ML}\lstinputlisting{#1}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    50
\newcommand{\lsthaskell}[1]{\lstset{language=Haskell}\lstinputlisting{#1}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    51
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    52
\hyphenation{Isabelle}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    53
\hyphenation{Isar}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    54
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    55
\isadroptag{theory}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    56
\title{\includegraphics[scale=0.5]{isabelle_isar}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    57
  \\[4ex] Defining Recursive Functions in Isabelle/HOL}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    58
\author{\emph{Alexander Krauss}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    59
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    60
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    61
\isabellestyle{tt}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    62
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    63
\begin{document}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    64
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    65
\maketitle
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    66
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    67
\begin{abstract}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    68
  This tutorial describes the use of the new \emph{function} package,
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    69
  starting with very simple examples and the proceeding to the more
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    70
  intricate ones. No familiarity with other definition facilities is
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    71
  assumed.
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    72
\end{abstract}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    73
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    74
\thispagestyle{empty}\clearpage
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    75
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    76
\pagenumbering{roman}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    77
\clearfirst
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    78
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    79
\input{Thy/document/Functions.tex}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    80
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    81
\begingroup
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    82
%\tocentry{\bibname}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    83
\bibliographystyle{plain} \small\raggedright\frenchspacing
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    84
\bibliography{../../manual}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    85
\endgroup
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    86
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    87
\end{document}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    88
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    89
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    90
%%% Local Variables: 
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    91
%%% mode: latex
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    92
%%% TeX-master: t
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    93
%%% End: