src/Doc/Datatypes/document/root.tex
author blanchet
Mon, 03 Feb 2014 17:55:50 +0100
changeset 55290 3951ced4156c
parent 54073 1e4c845c1f18
child 55355 b5b64d9d1002
permissions -rw-r--r--
searchable underscores
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
55290
3951ced4156c searchable underscores
blanchet
parents: 54073
diff changeset
     2
\usepackage[T1]{fontenc}
52805
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
     3
\usepackage{cite}
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
     4
\usepackage{enumitem}
53647
e78ebb290dd6 more (co)data docs
blanchet
parents: 53621
diff changeset
     5
\usepackage{footmisc}
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
     6
\usepackage{latexsym}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
     7
\usepackage{graphicx}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
     8
\usepackage{iman}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
     9
\usepackage{extra}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    10
\usepackage{isar}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    11
\usepackage{isabelle}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    12
\usepackage{isabellesym}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    13
\usepackage{style}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    14
\usepackage{pdfsetup}
52822
ae938ac9a721 more (co)datatype docs
blanchet
parents: 52806
diff changeset
    15
\usepackage{railsetup}
ae938ac9a721 more (co)datatype docs
blanchet
parents: 52806
diff changeset
    16
\usepackage{framed}
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    17
53552
eed6efba4e3f more (co)datatype docs
blanchet
parents: 53544
diff changeset
    18
\setcounter{secnumdepth}{3}
eed6efba4e3f more (co)datatype docs
blanchet
parents: 53544
diff changeset
    19
\setcounter{tocdepth}{3}
eed6efba4e3f more (co)datatype docs
blanchet
parents: 53544
diff changeset
    20
55290
3951ced4156c searchable underscores
blanchet
parents: 54073
diff changeset
    21
\renewcommand\_{\hbox{\textunderscore\kern-.05ex}}
3951ced4156c searchable underscores
blanchet
parents: 54073
diff changeset
    22
52805
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
    23
\newbox\boxA
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
    24
\setbox\boxA=\hbox{\ }
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
    25
\parindent=4\wd\boxA
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
    26
53621
9c3a80af72ff more (co)data doc
blanchet
parents: 53619
diff changeset
    27
\newcommand\blankline{\vskip-.25\baselineskip}
53552
eed6efba4e3f more (co)datatype docs
blanchet
parents: 53544
diff changeset
    28
53621
9c3a80af72ff more (co)data doc
blanchet
parents: 53619
diff changeset
    29
\newenvironment{indentblock}{\list{}{\setlength{\leftmargin}{\parindent}}\item[]}{\endlist}
53552
eed6efba4e3f more (co)datatype docs
blanchet
parents: 53544
diff changeset
    30
53617
da5e1887d7a7 more (co)data doc
blanchet
parents: 53552
diff changeset
    31
\newcommand{\keyw}[1]{\textbf{#1}}
53534
de2027f9aff3 more (co)datatype documentation
blanchet
parents: 53491
diff changeset
    32
\newcommand{\synt}[1]{\textit{#1}}
53544
2176a7e40786 more (co)data docs
blanchet
parents: 53534
diff changeset
    33
\newcommand{\hthm}[1]{\textbf{\textit{#1}}}
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    34
53491
2479b39d9d09 more docs
blanchet
parents: 53028
diff changeset
    35
%\renewcommand{\isactrlsub}[1]{\/$\sb{\mathrm{#1}}$}
2479b39d9d09 more docs
blanchet
parents: 53028
diff changeset
    36
\renewcommand{\isactrlsub}[1]{\/$\sb{#1}$}
2479b39d9d09 more docs
blanchet
parents: 53028
diff changeset
    37
\renewcommand{\isadigit}[1]{\/\ensuremath{\mathrm{#1}}}
52822
ae938ac9a721 more (co)datatype docs
blanchet
parents: 52806
diff changeset
    38
\renewcommand{\isacharprime}{\isamath{{'}\mskip-2mu}}
52794
aae782070611 more (co)datatype documentation
blanchet
parents: 52792
diff changeset
    39
\renewcommand{\isacharunderscore}{\mbox{\_}}
aae782070611 more (co)datatype documentation
blanchet
parents: 52792
diff changeset
    40
\renewcommand{\isacharunderscorekeyword}{\mbox{\_}}
52805
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
    41
\renewcommand{\isachardoublequote}{\mbox{\upshape{``}}}
53028
a1e64c804c35 more (co)datatype documentation
blanchet
parents: 52841
diff changeset
    42
\renewcommand{\isachardoublequoteopen}{\mbox{\upshape{``}\kern.1ex}}
a1e64c804c35 more (co)datatype documentation
blanchet
parents: 52841
diff changeset
    43
\renewcommand{\isachardoublequoteclose}{\/\kern.15ex\mbox{\upshape{''}}}
52794
aae782070611 more (co)datatype documentation
blanchet
parents: 52792
diff changeset
    44
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    45
\hyphenation{isa-belle}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    46
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    47
\isadroptag{theory}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    48
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    49
\title{%\includegraphics[scale=0.5]{isabelle_hol} \\[4ex]
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    50
Defining (Co)datatypes in Isabelle/HOL}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    51
\author{\hbox{} \\
53619
27d2c98d9d9f more (co)data docs
blanchet
parents: 53617
diff changeset
    52
Jasmin Christian Blanchette,
27d2c98d9d9f more (co)data docs
blanchet
parents: 53617
diff changeset
    53
Lorenz Panny, \\
27d2c98d9d9f more (co)data docs
blanchet
parents: 53617
diff changeset
    54
Andrei Popescu, and
52805
7f2f42046361 more (co)datatype documentation
blanchet
parents: 52794
diff changeset
    55
Dmitriy Traytel \\
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    56
{\normalsize Institut f\"ur Informatik, Technische Universit\"at M\"unchen} \\
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    57
\hbox{}}
55290
3951ced4156c searchable underscores
blanchet
parents: 54073
diff changeset
    58
3951ced4156c searchable underscores
blanchet
parents: 54073
diff changeset
    59
\urlstyle{tt}
3951ced4156c searchable underscores
blanchet
parents: 54073
diff changeset
    60
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    61
\begin{document}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    62
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    63
\maketitle
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    64
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    65
\begin{abstract}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    66
\noindent
54073
1e4c845c1f18 reword abstract
blanchet
parents: 53753
diff changeset
    67
This tutorial describes the new package for defining datatypes and codatatypes
1e4c845c1f18 reword abstract
blanchet
parents: 53753
diff changeset
    68
in Isabelle/HOL. The package provides four main commands:
53753
ae7f50e70c09 renamed "primcorec" to "primcorecursive", to open the door to a 'theory -> theory' command called "primcorec" (cf. "fun" vs. "function")
blanchet
parents: 53647
diff changeset
    69
\keyw{datatype\_new}, \keyw{codatatype}, \keyw{primrec\_new},
54073
1e4c845c1f18 reword abstract
blanchet
parents: 53753
diff changeset
    70
and \keyw{primcorec}. The commands suffixed by
53753
ae7f50e70c09 renamed "primcorec" to "primcorecursive", to open the door to a 'theory -> theory' command called "primcorec" (cf. "fun" vs. "function")
blanchet
parents: 53647
diff changeset
    71
\keyw{\_new} are intended to subsume, and eventually replace, the corresponding
ae7f50e70c09 renamed "primcorec" to "primcorecursive", to open the door to a 'theory -> theory' command called "primcorec" (cf. "fun" vs. "function")
blanchet
parents: 53647
diff changeset
    72
commands from the old datatype package.
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    73
\end{abstract}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    74
52794
aae782070611 more (co)datatype documentation
blanchet
parents: 52792
diff changeset
    75
\tableofcontents
aae782070611 more (co)datatype documentation
blanchet
parents: 52792
diff changeset
    76
52792
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    77
\input{Datatypes.tex}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    78
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    79
\let\em=\sl
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    80
\bibliography{manual}{}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    81
\bibliographystyle{abbrv}
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    82
3e651be14fcd sketched documentation for new (co)datatype package
blanchet
parents:
diff changeset
    83
\end{document}