104
|
1 |
\contentsline {section}{\numberline {1}Introduction}{1}
|
|
2 |
\contentsline {section}{\numberline {2}Fixedpoint operators}{2}
|
|
3 |
\contentsline {section}{\numberline {3}Elements of an inductive or co-inductive definition}{2}
|
|
4 |
\contentsline {subsection}{\numberline {3.1}The form of the introduction rules}{2}
|
|
5 |
\contentsline {subsection}{\numberline {3.2}The fixedpoint definitions}{3}
|
|
6 |
\contentsline {subsection}{\numberline {3.3}Mutual recursion}{4}
|
|
7 |
\contentsline {subsection}{\numberline {3.4}Proving the introduction rules}{4}
|
|
8 |
\contentsline {subsection}{\numberline {3.5}The elimination rule}{4}
|
|
9 |
\contentsline {section}{\numberline {4}Induction and co-induction rules}{5}
|
|
10 |
\contentsline {subsection}{\numberline {4.1}The basic induction rule}{5}
|
|
11 |
\contentsline {subsection}{\numberline {4.2}Mutual induction}{5}
|
|
12 |
\contentsline {subsection}{\numberline {4.3}Co-induction}{6}
|
|
13 |
\contentsline {section}{\numberline {5}Examples of inductive and co-inductive definitions}{6}
|
|
14 |
\contentsline {subsection}{\numberline {5.1}The finite set operator}{7}
|
|
15 |
\contentsline {subsection}{\numberline {5.2}Lists of $n$ elements}{7}
|
|
16 |
\contentsline {subsection}{\numberline {5.3}A demonstration of {\ptt mk\unhbox \voidb@x \kern .06em \vbox {\hrule width.3em}cases}}{9}
|
|
17 |
\contentsline {subsection}{\numberline {5.4}A co-inductive definition: bisimulations on lazy lists}{9}
|
|
18 |
\contentsline {subsection}{\numberline {5.5}The accessible part of a relation}{10}
|
|
19 |
\contentsline {subsection}{\numberline {5.6}The primitive recursive functions}{11}
|
|
20 |
\contentsline {section}{\numberline {6}Datatypes and co-datatypes}{13}
|
|
21 |
\contentsline {subsection}{\numberline {6.1}Constructors and their domain}{13}
|
|
22 |
\contentsline {subsection}{\numberline {6.2}The case analysis operator}{14}
|
|
23 |
\contentsline {subsection}{\numberline {6.3}Example: lists and lazy lists}{15}
|
|
24 |
\contentsline {subsection}{\numberline {6.4}Example: mutual recursion}{16}
|
|
25 |
\contentsline {subsection}{\numberline {6.5}A four-constructor datatype}{18}
|
|
26 |
\contentsline {subsection}{\numberline {6.6}Proving freeness theorems}{19}
|
|
27 |
\contentsline {section}{\numberline {7}Conclusions and future work}{20}
|
|
28 |
\contentsline {section}{\numberline {A}Inductive and co-inductive definitions: users guide}{22}
|
|
29 |
\contentsline {subsection}{\numberline {A.1}The result structure}{22}
|
|
30 |
\contentsline {subsection}{\numberline {A.2}The argument structure}{23}
|
|
31 |
\contentsline {section}{\numberline {B}Datatype and co-datatype definitions: users guide}{24}
|
|
32 |
\contentsline {subsection}{\numberline {B.1}The result structure}{24}
|
|
33 |
\contentsline {subsection}{\numberline {B.2}The argument structure}{24}
|