src/Doc/Functions/document/root.tex
author wenzelm
Tue, 09 Mar 2021 21:11:05 +0100
changeset 73404 299f6a8faccc
parent 73401 8b464825d2b5
permissions -rw-r--r--
proper type-setting of cartouches (requires T1); \usepackage[T1]{fontenc} is default for mkroot; \usepackage[utf8]{inputenc} is obsolete in lualatex;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
25092
1d7616d74095 removed funny formatting
krauss
parents: 23805
diff changeset
     1
\documentclass[a4paper,fleqn]{article}
73404
299f6a8faccc proper type-setting of cartouches (requires T1);
wenzelm
parents: 73401
diff changeset
     2
\usepackage[T1]{fontenc}
73401
8b464825d2b5 removed unused latex packages;
wenzelm
parents: 59005
diff changeset
     3
\usepackage{graphicx}
21212
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
     4
\usepackage[refpage]{nomencl}
48948
fa49f8890ef3 more standard document preparation within session context;
wenzelm
parents: 42511
diff changeset
     5
\usepackage{iman,extra,isar}
fa49f8890ef3 more standard document preparation within session context;
wenzelm
parents: 42511
diff changeset
     6
\usepackage{isabelle,isabellesym}
21212
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
     7
\usepackage{style}
23003
4b0bf04a4d68 updated
krauss
parents: 21212
diff changeset
     8
\usepackage{mathpartir}
4b0bf04a4d68 updated
krauss
parents: 21212
diff changeset
     9
\usepackage{amsthm}
48948
fa49f8890ef3 more standard document preparation within session context;
wenzelm
parents: 42511
diff changeset
    10
\usepackage{pdfsetup}
21212
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    11
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    12
\newcommand{\cmd}[1]{\isacommand{#1}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    13
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    14
\newcommand{\isasymINFIX}{\cmd{infix}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    15
\newcommand{\isasymLOCALE}{\cmd{locale}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    16
\newcommand{\isasymINCLUDES}{\cmd{includes}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    17
\newcommand{\isasymDATATYPE}{\cmd{datatype}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    18
\newcommand{\isasymDEFINES}{\cmd{defines}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    19
\newcommand{\isasymNOTES}{\cmd{notes}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    20
\newcommand{\isasymCLASS}{\cmd{class}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    21
\newcommand{\isasymINSTANCE}{\cmd{instance}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    22
\newcommand{\isasymLEMMA}{\cmd{lemma}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    23
\newcommand{\isasymPROOF}{\cmd{proof}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    24
\newcommand{\isasymQED}{\cmd{qed}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    25
\newcommand{\isasymFIX}{\cmd{fix}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    26
\newcommand{\isasymASSUME}{\cmd{assume}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    27
\newcommand{\isasymSHOW}{\cmd{show}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    28
\newcommand{\isasymNOTE}{\cmd{note}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    29
\newcommand{\isasymCODEGEN}{\cmd{code\_gen}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    30
\newcommand{\isasymPRINTCODETHMS}{\cmd{print\_codethms}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    31
\newcommand{\isasymFUN}{\cmd{fun}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    32
\newcommand{\isasymFUNCTION}{\cmd{function}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    33
\newcommand{\isasymPRIMREC}{\cmd{primrec}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    34
\newcommand{\isasymRECDEF}{\cmd{recdef}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    35
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    36
\newcommand{\qt}[1]{``#1''}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    37
\newcommand{\qtt}[1]{"{}{#1}"{}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    38
\newcommand{\qn}[1]{\emph{#1}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    39
\newcommand{\strong}[1]{{\bfseries #1}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    40
\newcommand{\fixme}[1][!]{\strong{FIXME: #1}}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    41
23003
4b0bf04a4d68 updated
krauss
parents: 21212
diff changeset
    42
\newtheorem{exercise}{Exercise}{\bf}{\itshape}
4b0bf04a4d68 updated
krauss
parents: 21212
diff changeset
    43
%\newtheorem*{thmstar}{Theorem}{\bf}{\itshape}
21212
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    44
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    45
\hyphenation{Isabelle}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    46
\hyphenation{Isar}
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
\isadroptag{theory}
23003
4b0bf04a4d68 updated
krauss
parents: 21212
diff changeset
    49
\title{Defining Recursive Functions in Isabelle/HOL}
4b0bf04a4d68 updated
krauss
parents: 21212
diff changeset
    50
\author{Alexander Krauss}
21212
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
\isabellestyle{tt}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    53
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    54
\begin{document}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    55
23805
953eb3c5f793 updated
krauss
parents: 23188
diff changeset
    56
\date{\ \\}
21212
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    57
\maketitle
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    58
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    59
\begin{abstract}
52791
9e4bb60f8007 tuned docs (the function package isn't so new anymore)
blanchet
parents: 48985
diff changeset
    60
  This tutorial describes the use of the \emph{function} package,
23003
4b0bf04a4d68 updated
krauss
parents: 21212
diff changeset
    61
	which provides general recursive function definitions for Isabelle/HOL.
23188
595a0e24bd8e updated
krauss
parents: 23003
diff changeset
    62
	We start with very simple examples and then gradually move on to more
595a0e24bd8e updated
krauss
parents: 23003
diff changeset
    63
	advanced topics such as manual termination proofs, nested recursion,
23805
953eb3c5f793 updated
krauss
parents: 23188
diff changeset
    64
	partiality, tail recursion and congruence rules.
21212
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    65
\end{abstract}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    66
23003
4b0bf04a4d68 updated
krauss
parents: 21212
diff changeset
    67
%\thispagestyle{empty}\clearpage
21212
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    68
23003
4b0bf04a4d68 updated
krauss
parents: 21212
diff changeset
    69
%\pagenumbering{roman}
4b0bf04a4d68 updated
krauss
parents: 21212
diff changeset
    70
%\clearfirst
21212
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    71
23003
4b0bf04a4d68 updated
krauss
parents: 21212
diff changeset
    72
\input{intro.tex}
48948
fa49f8890ef3 more standard document preparation within session context;
wenzelm
parents: 42511
diff changeset
    73
\input{Functions.tex}
23805
953eb3c5f793 updated
krauss
parents: 23188
diff changeset
    74
%\input{conclusion.tex}
21212
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
\begingroup
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    77
%\tocentry{\bibname}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    78
\bibliographystyle{plain} \small\raggedright\frenchspacing
48948
fa49f8890ef3 more standard document preparation within session context;
wenzelm
parents: 42511
diff changeset
    79
\bibliography{manual}
21212
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    80
\endgroup
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    81
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    82
\end{document}
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    83
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    84
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    85
%%% Local Variables: 
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    86
%%% mode: latex
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    87
%%% TeX-master: t
547224bf9348 Added a (stub of a) function tutorial
krauss
parents:
diff changeset
    88
%%% End: