
krauss@21212: 
krauss@25092: \documentclass[a4paper,fleqn]{article}
krauss@23003: 
krauss@21212: \usepackage{latexsym,graphicx}
krauss@21212: \usepackage[refpage]{nomencl}
haftmann@30209: \usepackage{../iman,../extra,../isar,../proof}
haftmann@30209: \usepackage{../isabelle,../isabellesym}
krauss@21212: \usepackage{style}
krauss@23003: \usepackage{mathpartir}
krauss@23003: \usepackage{amsthm}
haftmann@30209: \usepackage{../pdfsetup}
krauss@21212: 
krauss@21212: \newcommand{\cmd}[1]{\isacommand{#1}}
krauss@21212: 
krauss@21212: \newcommand{\isasymINFIX}{\cmd{infix}}
krauss@21212: \newcommand{\isasymLOCALE}{\cmd{locale}}
krauss@21212: \newcommand{\isasymINCLUDES}{\cmd{includes}}
krauss@21212: \newcommand{\isasymDATATYPE}{\cmd{datatype}}
krauss@21212: \newcommand{\isasymDEFINES}{\cmd{defines}}
krauss@21212: \newcommand{\isasymNOTES}{\cmd{notes}}
krauss@21212: \newcommand{\isasymCLASS}{\cmd{class}}
krauss@21212: \newcommand{\isasymINSTANCE}{\cmd{instance}}
krauss@21212: \newcommand{\isasymLEMMA}{\cmd{lemma}}
krauss@21212: \newcommand{\isasymPROOF}{\cmd{proof}}
krauss@21212: \newcommand{\isasymQED}{\cmd{qed}}
krauss@21212: \newcommand{\isasymFIX}{\cmd{fix}}
krauss@21212: \newcommand{\isasymASSUME}{\cmd{assume}}
krauss@21212: \newcommand{\isasymSHOW}{\cmd{show}}
krauss@21212: \newcommand{\isasymNOTE}{\cmd{note}}
krauss@21212: \newcommand{\isasymCODEGEN}{\cmd{code\_gen}}
krauss@21212: \newcommand{\isasymPRINTCODETHMS}{\cmd{print\_codethms}}
krauss@21212: \newcommand{\isasymFUN}{\cmd{fun}}
krauss@21212: \newcommand{\isasymFUNCTION}{\cmd{function}}
krauss@21212: \newcommand{\isasymPRIMREC}{\cmd{primrec}}
krauss@21212: \newcommand{\isasymRECDEF}{\cmd{recdef}}
krauss@21212: 
krauss@21212: \newcommand{\qt}[1]{``#1''}
krauss@21212: \newcommand{\qtt}[1]{"{}{#1}"{}}
krauss@21212: \newcommand{\qn}[1]{\emph{#1}}
krauss@21212: \newcommand{\strong}[1]{{\bfseries #1}}
krauss@21212: \newcommand{\fixme}[1][!]{\strong{FIXME: #1}}
krauss@21212: 
krauss@23003: \newtheorem{exercise}{Exercise}{\bf}{\itshape}
krauss@23003: %\newtheorem*{thmstar}{Theorem}{\bf}{\itshape}
krauss@21212: 
krauss@21212: \hyphenation{Isabelle}
krauss@21212: \hyphenation{Isar}
krauss@21212: 
krauss@21212: \isadroptag{theory}
krauss@23003: \title{Defining Recursive Functions in Isabelle/HOL}
krauss@23003: \author{Alexander Krauss}
krauss@21212: 
krauss@21212: \isabellestyle{tt}
krauss@23188: \renewcommand{\isastyletxt}{\isastyletext}% use same formatting for txt and text
krauss@21212: 
krauss@21212: \begin{document}
krauss@21212: 
krauss@23805: \date{\ \\}
krauss@21212: \maketitle
krauss@21212: 
krauss@21212: \begin{abstract}
krauss@21212:   This tutorial describes the use of the new \emph{function} package,
krauss@23003: 	which provides general recursive function definitions for Isabelle/HOL.
krauss@23188: 	We start with very simple examples and then gradually move on to more
krauss@23188: 	advanced topics such as manual termination proofs, nested recursion,
krauss@23805: 	partiality, tail recursion and congruence rules.
krauss@21212: \end{abstract}
krauss@21212: 
krauss@23003: %\thispagestyle{empty}\clearpage
krauss@21212: 
krauss@23003: %\pagenumbering{roman}
krauss@23003: %\clearfirst
krauss@21212: 
krauss@23003: \input{intro.tex}
krauss@21212: \input{Thy/document/Functions.tex}
krauss@23805: %\input{conclusion.tex}
krauss@21212: 
krauss@21212: \begingroup
krauss@21212: %\tocentry{\bibname}
krauss@21212: \bibliographystyle{plain} \small\raggedright\frenchspacing
haftmann@30209: \bibliography{../manual}
krauss@21212: \endgroup
krauss@21212: 
krauss@21212: \end{document}
krauss@21212: 
krauss@21212: 
krauss@21212: %%% Local Variables: 
krauss@21212: %%% mode: latex
krauss@21212: %%% TeX-master: t
krauss@21212: %%% End: 




