| 3162 |      1 | %process by     latex ind-defs-slides; dvips -Plime ind-defs-slides
 | 
|  |      2 | %               ghostview -magstep -2 -landscape ind-defs-slides.ps
 | 
|  |      3 | %  $Id$
 | 
|  |      4 | \documentclass[a4,slidesonly,semlayer]{seminar}
 | 
|  |      5 | 
 | 
|  |      6 | \usepackage{fancybox}
 | 
|  |      7 | \usepackage{semhelv}
 | 
|  |      8 | \usepackage{epsf}
 | 
|  |      9 | \def\printlandscape{\special{landscape}}    % Works with dvips.
 | 
|  |     10 | 
 | 
|  |     11 | \slidesmag{5}\articlemag{2}    %the difference is 3 instead of 4!
 | 
|  |     12 | \extraslideheight{30pt}
 | 
|  |     13 | 
 | 
|  |     14 | \renewcommand\slidefuzz{6pt}
 | 
|  |     15 | \sloppy\hfuzz2pt   %sloppy defines \hfuzz0.5pt but it's mainly for text
 | 
|  |     16 | 
 | 
|  |     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}}
 | 
|  |     23 | 
 | 
|  |     24 | \newcommand\heading[1]{%
 | 
|  |     25 |   \begin{center}\large\bf\shadowbox{#1}\end{center}
 | 
|  |     26 |   \vspace{1ex minus 1ex}}
 | 
|  |     27 | 
 | 
|  |     28 | \newpagestyle{mine}%
 | 
|  |     29 |   {L. Paulson\hfil A Fixedpoint Approach to (Co)Inductive Definitions\hfil
 | 
|  |     30 |       \thepage}%
 | 
|  |     31 |   {\hfil\special{psfile=cuarms.eps hscale=20 vscale=20 voffset=-6
 | 
|  |     32 |       hoffset=-14}\hfil}
 | 
|  |     33 | \pagestyle{mine}
 | 
|  |     34 | 
 | 
|  |     35 | 
 | 
|  |     36 | \begin{document}
 | 
|  |     37 | \slidefonts
 | 
|  |     38 | 
 | 
|  |     39 | \begin{slide}\centering
 | 
|  |     40 | \shadowbox{% 
 | 
|  |     41 |     \begin{Bcenter}
 | 
|  |     42 |     {\Large\bf A Fixedpoint Approach to}\\[2ex]
 | 
|  |     43 |     {\Large\bf (Co)Inductive Definitions}
 | 
|  |     44 |     \end{Bcenter}}
 | 
|  |     45 | \bigskip
 | 
|  |     46 | 
 | 
|  |     47 |     \begin{Bcenter}
 | 
|  |     48 |     Lawrence C. Paulson\\
 | 
|  |     49 |     Computer Laboratory\\
 | 
|  |     50 |     University of Cambridge\\
 | 
|  |     51 |     England\\[1ex]
 | 
|  |     52 |     \verb|lcp@cl.cam.ac.uk|
 | 
|  |     53 |     \end{Bcenter}
 | 
|  |     54 | \bigskip
 | 
|  |     55 | 
 | 
|  |     56 | {\footnotesize Thanks: SERC grants GR/G53279, GR/H40570; ESPRIT Project 6453
 | 
|  |     57 |   `Types'} 
 | 
|  |     58 | \end{slide}
 | 
|  |     59 | 
 | 
|  |     60 | 
 | 
|  |     61 | \begin{slide}
 | 
|  |     62 | \heading{Inductive Definitions}
 | 
|  |     63 | \begin{itemize}
 | 
|  |     64 |   \item {\bf datatypes}
 | 
|  |     65 |     \begin{itemize}
 | 
|  |     66 |       \item finite lists, trees
 | 
|  |     67 |       \item syntax of expressions, \ldots
 | 
|  |     68 |     \end{itemize}
 | 
|  |     69 |   \item {\bf inference systems}
 | 
|  |     70 |     \begin{itemize}
 | 
|  |     71 |       \item transitive closure of a relation
 | 
|  |     72 |       \item transition systems
 | 
|  |     73 |       \item structural operational semantics
 | 
|  |     74 |     \end{itemize}
 | 
|  |     75 | \end{itemize}
 | 
|  |     76 | 
 | 
|  |     77 | Supported by Boyer/Moore, HOL, Coq, \ldots, Isabelle/ZF
 | 
|  |     78 | \end{slide}
 | 
|  |     79 | 
 | 
|  |     80 | 
 | 
|  |     81 | \begin{slide}
 | 
|  |     82 | \heading{Coinductive Definitions}
 | 
|  |     83 | \begin{itemize}
 | 
|  |     84 |   \item {\bf codatatypes}
 | 
|  |     85 |     \begin{itemize}
 | 
|  |     86 |       \item {\it infinite\/} lists, trees
 | 
|  |     87 |       \item  syntax of {\it infinite\/} expressions, \ldots
 | 
|  |     88 |     \end{itemize}
 | 
|  |     89 |   \item {\bf bisimulation relations}
 | 
|  |     90 |     \begin{itemize}
 | 
|  |     91 |       \item process equivalence
 | 
|  |     92 |       \item uses in functional programming (Abramksy, Howe)
 | 
|  |     93 |     \end{itemize}
 | 
|  |     94 | \end{itemize}
 | 
|  |     95 | 
 | 
|  |     96 | Supported by \ldots ?, \ldots, Isabelle/ZF
 | 
|  |     97 | \end{slide}
 | 
|  |     98 | 
 | 
|  |     99 | 
 | 
|  |    100 | \begin{slide}
 | 
|  |    101 | \heading{The Knaster-Tarksi Fixedpoint Theorem}
 | 
|  |    102 | $h$ a monotone function
 | 
|  |    103 | 
 | 
|  |    104 | $D$ a set such that $h(D)\sbs D$
 | 
|  |    105 | 
 | 
|  |    106 | The {\bf least} fixedpoint $\lfp(D,h)$ yields {\bf inductive} definitions
 | 
|  |    107 | 
 | 
|  |    108 | The {\bf greatest} fixedpoint $\gfp(D,h)$ yields {\bf coinductive} definitions
 | 
|  |    109 | 
 | 
|  |    110 | {\it A general approach\/}:
 | 
|  |    111 | \begin{itemize}
 | 
|  |    112 |   \item handles all provably monotone definitions
 | 
|  |    113 |   \item works for set theory, higher-order logic, \ldots
 | 
|  |    114 | \end{itemize}
 | 
|  |    115 | \end{slide}
 | 
|  |    116 | 
 | 
|  |    117 | 
 | 
|  |    118 | \begin{slide}
 | 
|  |    119 | \heading{An Implementation in Isabelle/ZF}\centering
 | 
|  |    120 | \begin{itemize}
 | 
|  |    121 |   \item {\bf Input} 
 | 
|  |    122 |      \begin{itemize}
 | 
|  |    123 |       \item description of {\it introduction rules\/} \& tree's {\it
 | 
|  |    124 |           constructors\/} 
 | 
|  |    125 |       \item {\it theorems\/} implying that the definition is {\it monotonic\/}
 | 
|  |    126 |     \end{itemize}
 | 
|  |    127 |   \item {\bf Output} 
 | 
|  |    128 |      \begin{itemize}
 | 
|  |    129 |       \item (co)induction rules
 | 
|  |    130 |       \item case analysis rule and {\it rule inversion\/} tools, \ldots
 | 
|  |    131 |     \end{itemize}
 | 
|  |    132 | \end{itemize}
 | 
|  |    133 | 
 | 
|  |    134 | \vfill
 | 
|  |    135 | {\it flexible, secure, \ldots but fast\/}
 | 
|  |    136 | \end{slide}
 | 
|  |    137 | 
 | 
|  |    138 | 
 | 
|  |    139 | \begin{slide}
 | 
|  |    140 | \heading{Working Examples}
 | 
|  |    141 | \begin{itemize}
 | 
|  |    142 |   \item lists
 | 
|  |    143 |   \item terms recursive over lists: $\term(A) = A\times\lst(\term(A))$
 | 
|  |    144 |   \item primitive recursive functions
 | 
|  |    145 |   \item lazy lists
 | 
|  |    146 |   \item bisimulations for lazy lists
 | 
|  |    147 |   \item combinator reductions; Church-Rosser Theorem
 | 
|  |    148 |   \item mutually recursive trees \& forests
 | 
|  |    149 | \end{itemize}
 | 
|  |    150 | \end{slide}
 | 
|  |    151 | 
 | 
|  |    152 | 
 | 
|  |    153 | \begin{slide}
 | 
|  |    154 | \heading{Other Work Using Fixedpoints}
 | 
|  |    155 | {\bf The HOL system}:
 | 
|  |    156 | \begin{itemize}
 | 
|  |    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)
 | 
|  |    160 | \end{itemize}
 | 
|  |    161 | 
 | 
|  |    162 | {\bf Coq and LEGO}:
 | 
|  |    163 | \begin{itemize}
 | 
|  |    164 |   \item (Co)induction {\it almost\/} expressible in base logic (CoC)
 | 
|  |    165 |   \item \ldots{} inductive definitions are built-in
 | 
|  |    166 | \end{itemize}
 | 
|  |    167 | \end{slide}
 | 
|  |    168 | 
 | 
|  |    169 | 
 | 
|  |    170 | \begin{slide}
 | 
|  |    171 | \heading{Limitations \& Future Developments}\centering
 | 
|  |    172 | \begin{itemize}
 | 
|  |    173 |   \item {\bf infinite-branching trees}
 | 
|  |    174 |     \begin{itemize}
 | 
|  |    175 |       \item justification requires proof
 | 
|  |    176 |       \item would be easier to {\it build them in\/}!
 | 
|  |    177 |     \end{itemize}
 | 
|  |    178 |   \item {\bf recursive function definitions}
 | 
|  |    179 |     \begin{itemize}
 | 
|  |    180 |       \item use {\it well-founded\/} recursion
 | 
|  |    181 |       \item distinct from datatype definitions
 | 
|  |    182 |     \end{itemize}
 | 
|  |    183 |   \item {\bf port to Isabelle/HOL}
 | 
|  |    184 | \end{itemize}
 | 
|  |    185 | \end{slide}
 | 
|  |    186 | 
 | 
|  |    187 | \end{document}
 | 
|  |    188 | 
 | 
|  |    189 | 
 | 
|  |    190 | {\it flat\/} ordered pairs used to define infinite lists, \ldots
 | 
|  |    191 | 
 | 
|  |    192 | \begin{slide}
 | 
|  |    193 | \heading{}\centering
 | 
|  |    194 | \end{slide}
 | 
|  |    195 | 
 |