1 %process by latex ind-defs-slides; dvips -Plime ind-defs-slides
2 % ghostview -magstep -2 -landscape ind-defs-slides.ps
4 \documentclass[a4,slidesonly,semlayer]{seminar}
9 \def\printlandscape{\special{landscape}} % Works with dvips.
11 \slidesmag{5}\articlemag{2} %the difference is 3 instead of 4!
12 \extraslideheight{30pt}
14 \renewcommand\slidefuzz{6pt}
15 \sloppy\hfuzz2pt %sloppy defines \hfuzz0.5pt but it's mainly for text
17 \newcommand\sbs{\subseteq}
18 \newcommand\Pow{{\cal P}}
19 \newcommand\lfp{\hbox{\tt lfp}}
20 \newcommand\gfp{\hbox{\tt gfp}}
21 \newcommand\lst{\hbox{\tt list}}
22 \newcommand\term{\hbox{\tt term}}
24 \newcommand\heading[1]{%
25 \begin{center}\large\bf\shadowbox{#1}\end{center}
26 \vspace{1ex minus 1ex}}
29 {L. Paulson\hfil A Fixedpoint Approach to (Co)Inductive Definitions\hfil
31 {\hfil\special{psfile=cuarms.eps hscale=20 vscale=20 voffset=-6
39 \begin{slide}\centering
42 {\Large\bf A Fixedpoint Approach to}\\[2ex]
43 {\Large\bf (Co)Inductive Definitions}
50 University of Cambridge\\
52 \verb|lcp@cl.cam.ac.uk|
56 {\footnotesize Thanks: SERC grants GR/G53279, GR/H40570; ESPRIT Project 6453
62 \heading{Inductive Definitions}
66 \item finite lists, trees
67 \item syntax of expressions, \ldots
69 \item {\bf inference systems}
71 \item transitive closure of a relation
72 \item transition systems
73 \item structural operational semantics
77 Supported by Boyer/Moore, HOL, Coq, \ldots, Isabelle/ZF
82 \heading{Coinductive Definitions}
84 \item {\bf codatatypes}
86 \item {\it infinite\/} lists, trees
87 \item syntax of {\it infinite\/} expressions, \ldots
89 \item {\bf bisimulation relations}
91 \item process equivalence
92 \item uses in functional programming (Abramksy, Howe)
96 Supported by \ldots ?, \ldots, Isabelle/ZF
101 \heading{The Knaster-Tarksi Fixedpoint Theorem}
102 $h$ a monotone function
104 $D$ a set such that $h(D)\sbs D$
106 The {\bf least} fixedpoint $\lfp(D,h)$ yields {\bf inductive} definitions
108 The {\bf greatest} fixedpoint $\gfp(D,h)$ yields {\bf coinductive} definitions
110 {\it A general approach\/}:
112 \item handles all provably monotone definitions
113 \item works for set theory, higher-order logic, \ldots
119 \heading{An Implementation in Isabelle/ZF}\centering
123 \item description of {\it introduction rules\/} \& tree's {\it
125 \item {\it theorems\/} implying that the definition is {\it monotonic\/}
129 \item (co)induction rules
130 \item case analysis rule and {\it rule inversion\/} tools, \ldots
135 {\it flexible, secure, \ldots but fast\/}
140 \heading{Working Examples}
143 \item terms recursive over lists: $\term(A) = A\times\lst(\term(A))$
144 \item primitive recursive functions
146 \item bisimulations for lazy lists
147 \item combinator reductions; Church-Rosser Theorem
148 \item mutually recursive trees \& forests
154 \heading{Other Work Using Fixedpoints}
155 {\bf The HOL system}:
157 \item Melham's induction package: special case of Fixedpoint Theorem
158 \item Andersen \& Petersen's induction package
159 \item (no HOL datatype package uses fixedpoints)
164 \item (Co)induction {\it almost\/} expressible in base logic (CoC)
165 \item \ldots{} inductive definitions are built-in
171 \heading{Limitations \& Future Developments}\centering
173 \item {\bf infinite-branching trees}
175 \item justification requires proof
176 \item would be easier to {\it build them in\/}!
178 \item {\bf recursive function definitions}
180 \item use {\it well-founded\/} recursion
181 \item distinct from datatype definitions
183 \item {\bf port to Isabelle/HOL}
190 {\it flat\/} ordered pairs used to define infinite lists, \ldots