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