src/Doc/Datatypes/document/root.tex
author haftmann
Mon, 06 Feb 2017 20:56:34 +0100
changeset 64990 c6a7de505796
parent 62816 19387866eace
child 69503 c2a736883b01
permissions -rw-r--r--
more explicit errors in pathological cases
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
52794
aae782070611 more (co)datatype documentation
blanchet
parents: 52792
diff changeset
     1
\documentclass[12pt,a4paper]{article} % fleqn
60185
cc71f01f9fde prefer lmodern, which produces scalable T1 fonts even with Debian-ized TeXLive;
wenzelm
parents: 59300
diff changeset
     2
\usepackage{lmodern}
55290
3951ced4156c searchable underscores
blanchet
parents: 54073
diff changeset
     3
\usepackage[T1]{fontenc}
62747
f65ef4723aca more 'corec' docs
blanchet
parents: 61303
diff changeset
     4
\usepackage{amsfonts}
55355
b5b64d9d1002 more docs
blanchet
parents: 55290
diff changeset
     5
\usepackage{amsmath}
52805
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
     6
\usepackage{cite}
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
     7
\usepackage{enumitem}
53647
e78ebb290dd6 more (co)data docs
blanchet
parents: 53621
diff changeset
     8
\usepackage{footmisc}
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
     9
\usepackage{latexsym}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    10
\usepackage{graphicx}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    11
\usepackage{iman}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    12
\usepackage{extra}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    13
\usepackage{isar}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    14
\usepackage{isabelle}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    15
\usepackage{isabellesym}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    16
\usepackage{style}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    17
\usepackage{pdfsetup}
52822
ae938ac9a721 more (co)datatype docs
blanchet
parents: 52806
diff changeset
    18
\usepackage{railsetup}
ae938ac9a721 more (co)datatype docs
blanchet
parents: 52806
diff changeset
    19
\usepackage{framed}
57542
faa8b4486d5a more docs
blanchet
parents: 57079
diff changeset
    20
\usepackage{regexpatch}
faa8b4486d5a more docs
blanchet
parents: 57079
diff changeset
    21
faa8b4486d5a more docs
blanchet
parents: 57079
diff changeset
    22
\makeatletter
faa8b4486d5a more docs
blanchet
parents: 57079
diff changeset
    23
\xpatchcmd{\chaptermark}{\MakeUppercase}{}{}{}%
faa8b4486d5a more docs
blanchet
parents: 57079
diff changeset
    24
\xpatchcmd{\sectionmark}{\MakeUppercase}{}{}{}%
faa8b4486d5a more docs
blanchet
parents: 57079
diff changeset
    25
\xpatchcmd*{\tableofcontents}{\MakeUppercase}{}{}{}%
faa8b4486d5a more docs
blanchet
parents: 57079
diff changeset
    26
\makeatother
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    27
53552
eed6efba4e3f more (co)datatype docs
blanchet
parents: 53544
diff changeset
    28
\setcounter{secnumdepth}{3}
eed6efba4e3f more (co)datatype docs
blanchet
parents: 53544
diff changeset
    29
\setcounter{tocdepth}{3}
eed6efba4e3f more (co)datatype docs
blanchet
parents: 53544
diff changeset
    30
55290
3951ced4156c searchable underscores
blanchet
parents: 54073
diff changeset
    31
\renewcommand\_{\hbox{\textunderscore\kern-.05ex}}
3951ced4156c searchable underscores
blanchet
parents: 54073
diff changeset
    32
52805
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
    33
\newbox\boxA
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
    34
\setbox\boxA=\hbox{\ }
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
    35
\parindent=4\wd\boxA
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
    36
53621
9c3a80af72ff more (co)data doc
blanchet
parents: 53619
diff changeset
    37
\newcommand\blankline{\vskip-.25\baselineskip}
53552
eed6efba4e3f more (co)datatype docs
blanchet
parents: 53544
diff changeset
    38
53621
9c3a80af72ff more (co)data doc
blanchet
parents: 53619
diff changeset
    39
\newenvironment{indentblock}{\list{}{\setlength{\leftmargin}{\parindent}}\item[]}{\endlist}
53552
eed6efba4e3f more (co)datatype docs
blanchet
parents: 53544
diff changeset
    40
53617
da5e1887d7a7 more (co)data doc
blanchet
parents: 53552
diff changeset
    41
\newcommand{\keyw}[1]{\textbf{#1}}
53534
de2027f9aff3 more (co)datatype documentation
blanchet
parents: 53491
diff changeset
    42
\newcommand{\synt}[1]{\textit{#1}}
53544
2176a7e40786 more (co)data docs
blanchet
parents: 53534
diff changeset
    43
\newcommand{\hthm}[1]{\textbf{\textit{#1}}}
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    44
53491
2479b39d9d09 more docs
blanchet
parents: 53028
diff changeset
    45
%\renewcommand{\isactrlsub}[1]{\/$\sb{\mathrm{#1}}$}
55355
b5b64d9d1002 more docs
blanchet
parents: 55290
diff changeset
    46
\renewcommand\isactrlsub[1]{\/$\sb{#1}$}
b5b64d9d1002 more docs
blanchet
parents: 55290
diff changeset
    47
\renewcommand\isadigit[1]{\/\ensuremath{\mathrm{#1}}}
b5b64d9d1002 more docs
blanchet
parents: 55290
diff changeset
    48
\renewcommand\isacharprime{\isamath{{'}\mskip-2mu}}
b5b64d9d1002 more docs
blanchet
parents: 55290
diff changeset
    49
\renewcommand\isacharunderscore{\mbox{\_}}
b5b64d9d1002 more docs
blanchet
parents: 55290
diff changeset
    50
\renewcommand\isacharunderscorekeyword{\mbox{\_}}
b5b64d9d1002 more docs
blanchet
parents: 55290
diff changeset
    51
\renewcommand\isachardoublequote{\mbox{\upshape{``}}}
b5b64d9d1002 more docs
blanchet
parents: 55290
diff changeset
    52
\renewcommand\isachardoublequoteopen{\mbox{\upshape{``}\kern.1ex}}
b5b64d9d1002 more docs
blanchet
parents: 55290
diff changeset
    53
\renewcommand\isachardoublequoteclose{\/\kern.15ex\mbox{\upshape{''}}}
b5b64d9d1002 more docs
blanchet
parents: 55290
diff changeset
    54
\renewcommand\isacharverbatimopen{\isacharbraceleft\isacharasterisk}
b5b64d9d1002 more docs
blanchet
parents: 55290
diff changeset
    55
\renewcommand\isacharverbatimclose{\isacharasterisk\isacharbraceright}
57575
b0d31645f47a doc fixes (contributed by Christian Sternagel)
blanchet
parents: 57542
diff changeset
    56
\renewcommand{\isasyminverse}{\isamath{{}^{-}}}
52794
aae782070611 more (co)datatype documentation
blanchet
parents: 52792
diff changeset
    57
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    58
\hyphenation{isa-belle}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    59
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    60
\isadroptag{theory}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    61
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    62
\title{%\includegraphics[scale=0.5]{isabelle_hol} \\[4ex]
59300
blanchet
parents: 59282
diff changeset
    63
Defining (Co)datatypes and Primitively (Co)recursive Functions in Isabelle/HOL}
61303
af6b8bd0d076 tuned datatype docs
blanchet
parents: 60185
diff changeset
    64
\author{Julian Biendarra, Jasmin Christian Blanchette, \\
af6b8bd0d076 tuned datatype docs
blanchet
parents: 60185
diff changeset
    65
Martin Desharnais, Lorenz Panny, \\
af6b8bd0d076 tuned datatype docs
blanchet
parents: 60185
diff changeset
    66
Andrei Popescu, and Dmitriy Traytel}
55290
3951ced4156c searchable underscores
blanchet
parents: 54073
diff changeset
    67
3951ced4156c searchable underscores
blanchet
parents: 54073
diff changeset
    68
\urlstyle{tt}
3951ced4156c searchable underscores
blanchet
parents: 54073
diff changeset
    69
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    70
\begin{document}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    71
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    72
\maketitle
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    73
59300
blanchet
parents: 59282
diff changeset
    74
\begin{sloppy}
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    75
\begin{abstract}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    76
\noindent
59300
blanchet
parents: 59282
diff changeset
    77
This tutorial describes the definitional package for datatypes and codatatypes,
blanchet
parents: 59282
diff changeset
    78
and for primitively recursive and corecursive functions, in Isabelle/HOL. The
61303
af6b8bd0d076 tuned datatype docs
blanchet
parents: 60185
diff changeset
    79
following commands are provided:
af6b8bd0d076 tuned datatype docs
blanchet
parents: 60185
diff changeset
    80
\keyw{datatype}, \keyw{datatype_\allowbreak compat}, \keyw{prim\-rec}, \keyw{co\-data\-type},
af6b8bd0d076 tuned datatype docs
blanchet
parents: 60185
diff changeset
    81
\keyw{prim\-co\-rec}, \keyw{prim\-co\-recursive}, \keyw{bnf}, \keyw{lift_\allowbreak bnf},
af6b8bd0d076 tuned datatype docs
blanchet
parents: 60185
diff changeset
    82
\keyw{copy_\allowbreak bnf}, \keyw{bnf_\allowbreak axiom\-atization},
af6b8bd0d076 tuned datatype docs
blanchet
parents: 60185
diff changeset
    83
\keyw{print_\allowbreak bnfs}, and \keyw{free_\allowbreak constructors}.
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    84
\end{abstract}
59300
blanchet
parents: 59282
diff changeset
    85
\end{sloppy}
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    86
52794
aae782070611 more (co)datatype documentation
blanchet
parents: 52792
diff changeset
    87
\tableofcontents
aae782070611 more (co)datatype documentation
blanchet
parents: 52792
diff changeset
    88
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    89
\input{Datatypes.tex}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    90
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    91
\let\em=\sl
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    92
\bibliography{manual}{}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    93
\bibliographystyle{abbrv}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    94
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    95
\end{document}