doc-src/Functions/functions.tex
author Walther Neuper <neuper@ist.tugraz.at>
Thu, 12 Aug 2010 15:03:34 +0200
branchisac-from-Isabelle2009-2
changeset 37913 20e3616b2d9c
parent 31250 cf75908fd3c3
child 43382 bf89455ccf9d
permissions -rw-r--r--
prepare reactivation of isac-update-Isa09-2
krauss@21212
     1
krauss@25092
     2
\documentclass[a4paper,fleqn]{article}
krauss@23003
     3
krauss@21212
     4
\usepackage{latexsym,graphicx}
krauss@21212
     5
\usepackage[refpage]{nomencl}
haftmann@30209
     6
\usepackage{../iman,../extra,../isar,../proof}
haftmann@30209
     7
\usepackage{../isabelle,../isabellesym}
krauss@21212
     8
\usepackage{style}
krauss@23003
     9
\usepackage{mathpartir}
krauss@23003
    10
\usepackage{amsthm}
haftmann@30209
    11
\usepackage{../pdfsetup}
krauss@21212
    12
krauss@21212
    13
\newcommand{\cmd}[1]{\isacommand{#1}}
krauss@21212
    14
krauss@21212
    15
\newcommand{\isasymINFIX}{\cmd{infix}}
krauss@21212
    16
\newcommand{\isasymLOCALE}{\cmd{locale}}
krauss@21212
    17
\newcommand{\isasymINCLUDES}{\cmd{includes}}
krauss@21212
    18
\newcommand{\isasymDATATYPE}{\cmd{datatype}}
krauss@21212
    19
\newcommand{\isasymDEFINES}{\cmd{defines}}
krauss@21212
    20
\newcommand{\isasymNOTES}{\cmd{notes}}
krauss@21212
    21
\newcommand{\isasymCLASS}{\cmd{class}}
krauss@21212
    22
\newcommand{\isasymINSTANCE}{\cmd{instance}}
krauss@21212
    23
\newcommand{\isasymLEMMA}{\cmd{lemma}}
krauss@21212
    24
\newcommand{\isasymPROOF}{\cmd{proof}}
krauss@21212
    25
\newcommand{\isasymQED}{\cmd{qed}}
krauss@21212
    26
\newcommand{\isasymFIX}{\cmd{fix}}
krauss@21212
    27
\newcommand{\isasymASSUME}{\cmd{assume}}
krauss@21212
    28
\newcommand{\isasymSHOW}{\cmd{show}}
krauss@21212
    29
\newcommand{\isasymNOTE}{\cmd{note}}
krauss@21212
    30
\newcommand{\isasymCODEGEN}{\cmd{code\_gen}}
krauss@21212
    31
\newcommand{\isasymPRINTCODETHMS}{\cmd{print\_codethms}}
krauss@21212
    32
\newcommand{\isasymFUN}{\cmd{fun}}
krauss@21212
    33
\newcommand{\isasymFUNCTION}{\cmd{function}}
krauss@21212
    34
\newcommand{\isasymPRIMREC}{\cmd{primrec}}
krauss@21212
    35
\newcommand{\isasymRECDEF}{\cmd{recdef}}
krauss@21212
    36
krauss@21212
    37
\newcommand{\qt}[1]{``#1''}
krauss@21212
    38
\newcommand{\qtt}[1]{"{}{#1}"{}}
krauss@21212
    39
\newcommand{\qn}[1]{\emph{#1}}
krauss@21212
    40
\newcommand{\strong}[1]{{\bfseries #1}}
krauss@21212
    41
\newcommand{\fixme}[1][!]{\strong{FIXME: #1}}
krauss@21212
    42
krauss@23003
    43
\newtheorem{exercise}{Exercise}{\bf}{\itshape}
krauss@23003
    44
%\newtheorem*{thmstar}{Theorem}{\bf}{\itshape}
krauss@21212
    45
krauss@21212
    46
\hyphenation{Isabelle}
krauss@21212
    47
\hyphenation{Isar}
krauss@21212
    48
krauss@21212
    49
\isadroptag{theory}
krauss@23003
    50
\title{Defining Recursive Functions in Isabelle/HOL}
krauss@23003
    51
\author{Alexander Krauss}
krauss@21212
    52
krauss@21212
    53
\isabellestyle{tt}
krauss@23188
    54
\renewcommand{\isastyletxt}{\isastyletext}% use same formatting for txt and text
krauss@21212
    55
krauss@21212
    56
\begin{document}
krauss@21212
    57
krauss@23805
    58
\date{\ \\}
krauss@21212
    59
\maketitle
krauss@21212
    60
krauss@21212
    61
\begin{abstract}
krauss@21212
    62
  This tutorial describes the use of the new \emph{function} package,
krauss@23003
    63
	which provides general recursive function definitions for Isabelle/HOL.
krauss@23188
    64
	We start with very simple examples and then gradually move on to more
krauss@23188
    65
	advanced topics such as manual termination proofs, nested recursion,
krauss@23805
    66
	partiality, tail recursion and congruence rules.
krauss@21212
    67
\end{abstract}
krauss@21212
    68
krauss@23003
    69
%\thispagestyle{empty}\clearpage
krauss@21212
    70
krauss@23003
    71
%\pagenumbering{roman}
krauss@23003
    72
%\clearfirst
krauss@21212
    73
krauss@23003
    74
\input{intro.tex}
krauss@21212
    75
\input{Thy/document/Functions.tex}
krauss@23805
    76
%\input{conclusion.tex}
krauss@21212
    77
krauss@21212
    78
\begingroup
krauss@21212
    79
%\tocentry{\bibname}
krauss@21212
    80
\bibliographystyle{plain} \small\raggedright\frenchspacing
haftmann@30209
    81
\bibliography{../manual}
krauss@21212
    82
\endgroup
krauss@21212
    83
krauss@21212
    84
\end{document}
krauss@21212
    85
krauss@21212
    86
krauss@21212
    87
%%% Local Variables: 
krauss@21212
    88
%%% mode: latex
krauss@21212
    89
%%% TeX-master: t
krauss@21212
    90
%%% End: