Slides/SlidesB.thy
author Christian Urban <urbanc@in.tum.de>
Thu, 19 Apr 2018 13:58:22 +0100
branchNominal2-Isabelle2016-1
changeset 3246 66114fa3d2ee
parent 3225 b7b80d5640bb
permissions -rw-r--r--
updated to Isabelle 2016-1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     1
(*<*)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     2
theory SlidesB
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     3
imports "~~/src/HOL/Library/LaTeXsugar" "../Nominal/Nominal2"
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     4
begin
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     5
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     6
notation (latex output)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     7
  set ("_") and
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     8
  Cons  ("_::/_" [66,65] 65) 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     9
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    10
(*>*)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    11
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    12
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    13
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    14
  %% was \begin{colormixin}{20!averagebackgroundcolor}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    15
  %% 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    16
  %% is \begin{colormixin}{50!averagebackgroundcolor}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    17
  \renewcommand{\slidecaption}{Dagstuhl, 14 October 2013}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    18
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    19
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    20
  \begin{frame}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    21
  \frametitle{%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    22
  \begin{tabular}{@ {}c@ {}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    23
  \Huge Nominal Isabelle\\[0mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    24
  \Large or, How Not to be Intimidated by\\[-3mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    25
  \Large the Variable Convention\\[-5mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    26
  \end{tabular}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    27
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    28
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    29
  Christian Urban\\[1mm]
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    30
  King's College London\\[-4mm]\mbox{}
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    31
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    32
 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    33
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    34
  \begin{block}{}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    35
  \color{gray}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    36
  \small
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    37
  {\bf\mbox{}\hspace{-1.5mm}Variable Convention:}\\[1mm] 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    38
  If $M_1,\ldots,M_n$ occur in a certain mathematical context
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    39
  (e.g. definition, proof), then in these terms all bound variables 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    40
  are chosen to be different from the free variables.\\[2mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    41
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    42
  \footnotesize\hfill Henk Barendregt in ``The Lambda-Calculus: Its Syntax and Semantics''
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    43
  \end{block}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    44
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    45
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    46
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    47
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    48
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    49
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    50
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    51
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    52
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    53
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    54
  \begin{frame}<1->[c]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    55
  \frametitle{}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    56
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    57
  \begin{center}
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    58
  \begin{tabular}{@ {\hspace{-2mm}}c@ {}}
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    59
  \includegraphics[scale=0.36]{phd-2.jpg}\,
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    60
  \includegraphics[scale=0.36]{phd-1.jpg}\\
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    61
  \hfill\textcolor{gray}{\small dinner after my PhD examination}
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    62
  \end{tabular}
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    63
  \end{center}
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    64
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    65
  \end{frame}}
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    66
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    67
*}
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    68
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    69
text_raw {*
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    70
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    71
  \mode<presentation>{
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    72
  \begin{frame}<1->[c]
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    73
  \frametitle{}
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    74
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    75
  \begin{itemize}
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    76
  \item \normalsize Aim: develop Nominal Isabelle for reasoning formally about 
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    77
  programming languages\\[-10mm]\mbox{}
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    78
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    79
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    80
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    81
  \begin{block}{}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    82
  \color{gray}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    83
  \footnotesize
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    84
  {\bf\mbox{}\hspace{-1.5mm}Variable Convention:}\\[0mm] 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    85
  If $M_1,\ldots,M_n$ occur in a certain mathematical context
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    86
  (e.g. definition, proof), then in these terms all bound variables 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    87
  are chosen to be different from the free variables.\hfill ---Henk Barendregt
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    88
  \end{block}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    89
  \end{center}\pause
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    90
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    91
  \mbox{}\\[-19mm]\mbox{}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    92
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    93
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    94
  \item found an error in an ACM journal paper by Bob Harper and Frank Pfenning 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    95
  about LF (and fixed it in three ways)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    96
  \item found also fixable errors in my Ph.D.-thesis about cut-elimination
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    97
  (examined by Henk Barendregt and Andy Pitts)
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
    98
  \item found that the variable convention can in principle be used for proving false
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    99
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   100
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   101
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   102
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   103
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   104
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   105
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   106
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   107
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   108
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   109
  \begin{frame}<1->[c]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   110
  \frametitle{Nominal Techniques}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   111
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   112
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   113
  \item Andy Pitts showed me that permutations\\ preserve $\alpha$-equivalence:
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   114
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   115
  \smath{t_1 \approx_{\alpha} t_2 \quad \Rightarrow\quad \pi \act t_1 \approx_{\alpha} \pi \act t_2} 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   116
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   117
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   118
  \item also permutations and substitutions commute, if you suspend permutations
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   119
  in front of variables
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   120
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   121
  \smath{\pi\act\sigma(t) = \sigma(\pi\act t)}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   122
  \end{center}\medskip\medskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   123
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   124
  \item this allowed us to define as simple Nominal Unification algorithm\medskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   125
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   126
  \smath{\nabla \vdash t \approx^?_{\alpha} t'}\hspace{2cm}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   127
  \smath{\nabla \vdash a \fresh^? t}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   128
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   129
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   130
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   131
  %\begin{textblock}{3}(13.1,1.3)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   132
  %\includegraphics[scale=0.26]{andrewpitts.jpg}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   133
  %\end{textblock}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   134
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   135
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   136
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   137
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   138
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   139
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   140
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   141
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   142
  \begin{frame}[c]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   143
  \frametitle{Nominal Isabelle}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   144
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   145
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   146
  \item a general theory about atoms and permutations\medskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   147
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   148
  \item sorted atoms and
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   149
  \item sort-respecting permutations\bigskip
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   150
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   151
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   152
  \item support and freshness
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   153
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   154
  \begin{tabular}{l}
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   155
  \smath{\textit{supp}(x) \dn \{ a \mid \textit{infinite}\,\{ b \mid \swap{a}{b}\act x \not= x\}\}}\\[2mm]
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   156
  \smath{a \fresh x \dn a \notin \textit{supp}(x)}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   157
  \end{tabular}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   158
  \end{center}\bigskip\pause
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   159
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   160
  \item allow users to reason about alpha-equivalence classes as if they were 
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   161
  syntax trees
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   162
  %
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   163
  %\item $\alpha$-equivalence
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   164
  %\begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   165
  %\begin{tabular}{l}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   166
  %\smath{as.x \approx_\alpha bs.y \dn}\\[2mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   167
  %\hspace{2cm}\smath{\exists \pi.\;\text{supp}(x) - as = \text{supp}(y) - bs}\\ 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   168
  %\hspace{2cm}\smath{\;\wedge\; \text{supp}(x) - as \fresh \pi}\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   169
  %\hspace{2cm}\smath{\;\wedge\; \pi \act x = y}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   170
  %\end{tabular}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   171
  %\end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   172
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   173
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   174
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   175
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   176
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   177
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   178
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   179
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   180
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   181
  \begin{frame}<1-7>
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   182
  \frametitle{New Types in HOL}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   183
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   184
   \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   185
  \begin{tikzpicture}[scale=1.5]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   186
  %%%\draw[step=2mm] (-4,-1) grid (4,1);
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   187
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   188
  \onslide<2-4,6->{\draw[very thick] (0.7,0.4) circle (4.25mm);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   189
  \onslide<1-4,6->{\draw[rounded corners=1mm, very thick] ( 0.0,-0.8) rectangle ( 1.8, 0.9);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   190
  \onslide<3-5,6->{\draw[rounded corners=1mm, very thick] (-1.95,0.85) rectangle (-2.85,-0.05);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   191
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   192
  \onslide<3-4,6->{\draw (-2.0, 0.845) --  (0.7,0.845);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   193
  \onslide<3-4,6->{\draw (-2.0,-0.045)  -- (0.7,-0.045);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   194
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   195
  \onslide<4-4,6->{\alert{\draw ( 0.7, 0.4) node {\footnotesize\begin{tabular}{@ {}c@ {}}$\alpha$-\\[-1mm]classes\end{tabular}};}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   196
  \onslide<4-5,6->{\alert{\draw (-2.4, 0.4) node {\footnotesize\begin{tabular}{@ {}c@ {}}$\alpha$-eq.\\[-1mm]terms\end{tabular}};}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   197
  \onslide<1-4,6->{\draw (1.8, 0.48) node[right=-0.1mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   198
    {\footnotesize\begin{tabular}{@ {}l@ {}}existing\\[-1mm] type\\ \onslide<4-4,6->{\alert{(sets of raw terms)}}\end{tabular}};}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   199
  \onslide<2-4,6->{\draw (0.9, -0.35) node {\footnotesize\begin{tabular}{@ {}l@ {}}non-empty\\[-1mm]subset\end{tabular}};}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   200
  \onslide<3-5,6->{\draw (-3.25, 0.55) node {\footnotesize\begin{tabular}{@ {}l@ {}}new\\[-1mm]type\end{tabular}};}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   201
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   202
  \onslide<3-4,6->{\draw[<->, very thick] (-1.8, 0.3) -- (-0.1,0.3);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   203
  \onslide<3-4,6->{\draw (-0.95, 0.3) node[above=0mm] {\footnotesize{}isomorphism};}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   204
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   205
  \onslide<6->{\draw[->, line width=2mm, red] (-1.0,-0.4) -- (0.35,0.16);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   206
  \end{tikzpicture}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   207
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   208
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   209
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   210
  \textcolor{red}{\large\bf\onslide<6->{define \boldmath$\alpha$-equivalence}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   211
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   212
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   213
  \begin{textblock}{9}(2.8,12.5)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   214
  \only<7>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   215
  \begin{tikzpicture}
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   216
  \draw (0,0) node[fill=cream, text width=8.5cm, thick, draw=red, rounded corners=1mm] (nn)
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   217
  {The ``new types mechanism'' is the reason why there is no Nominal Coq.};
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   218
  \end{tikzpicture}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   219
  \end{textblock}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   220
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   221
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   222
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   223
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   225
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   226
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   227
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   228
  \begin{frame}<1-3>[c]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   229
  \frametitle{HOL vs.~Nominal}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   230
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   231
  \begin{itemize}
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   232
  \item Nominal logic by Pitts is incompatible 
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   233
  with choice principles\medskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   234
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   235
  \item but HOL includes Hilbert's epsilon\pause\bigskip
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   236
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   237
  \item The solution: Do not require that everything has finite support\medskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   238
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   239
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   240
  \smath{\onslide<1-2>{\textit{finite}(\textit{supp}(x))  \quad\Rightarrow\quad} a \fresh a.x}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   241
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   242
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   243
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   244
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   245
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   246
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   247
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   248
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   249
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   250
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   251
  \begin{frame}<1-5>
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   252
  \frametitle{\begin{tabular}{c}Our Work\end{tabular}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   253
  \mbox{}\\[-6mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   254
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   255
    \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   256
  \begin{tikzpicture}[scale=1.5]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   257
  %%%\draw[step=2mm] (-4,-1) grid (4,1);
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   258
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   259
  \onslide<1>{\draw[very thick] (0.7,0.4) circle (4.25mm);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   260
  \onslide<1>{\draw[rounded corners=1mm, very thick] ( 0.0,-0.8) rectangle ( 1.8, 0.9);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   261
  \onslide<1->{\draw[rounded corners=1mm, very thick] (-1.95,0.85) rectangle (-2.85,-0.05);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   262
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   263
  \onslide<1>{\draw (-2.0, 0.845) --  (0.7,0.845);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   264
  \onslide<1>{\draw (-2.0,-0.045)  -- (0.7,-0.045);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   265
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   266
  \onslide<1>{\alert{\draw ( 0.7, 0.4) node {\footnotesize\begin{tabular}{@ {}c@ {}}$\alpha$-\\[-1mm]classes\end{tabular}};}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   267
  \onslide<1->{\alert{\draw (-2.4, 0.4) node {\footnotesize\begin{tabular}{@ {}c@ {}}$\alpha$-eq.\\[-1mm]terms\end{tabular}};}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   268
  \onslide<1>{\draw (1.8, 0.48) node[right=-0.1mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   269
    {\footnotesize\begin{tabular}{@ {}l@ {}}existing\\[-1mm] type\\ \onslide<1>{\alert{(sets of raw terms)}}\end{tabular}};}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   270
  \onslide<1>{\draw (0.9, -0.35) node {\footnotesize\begin{tabular}{@ {}l@ {}}non-empty\\[-1mm]subset\end{tabular}};}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   271
  \onslide<1->{\draw (-3.25, 0.55) node {\footnotesize\begin{tabular}{@ {}l@ {}}new\\[-1mm]type\end{tabular}};}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   272
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   273
  \onslide<1>{\draw[<->, very thick] (-1.8, 0.3) -- (-0.1,0.3);}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   274
  \onslide<1>{\draw (-0.95, 0.3) node[above=0mm] {\footnotesize{}isomorphism};}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   275
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   276
  %%\onslide<1>{\draw[->, line width=2mm, red] (-1.0,-0.4) -- (0.35,0.16);}
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   277
  \end{tikzpicture}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   278
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   279
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   280
  \begin{textblock}{9.5}(6,3.5)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   281
  \begin{itemize}
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   282
  \item<1-> define fv and $\alpha$
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   283
  \item<2-> build quotient / new type
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   284
  \item<3-> derive a reasoning infrastructure ($\fresh$, distinctness, injectivity, cases,\ldots) 
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   285
  \item<4-> derive a {\bf stronger} cases lemma
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   286
  \item<5-> from this, a {\bf stronger} induction principle (Barendregt variable convention built in)\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   287
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   288
  \textcolor{blue}{Foo ($\lambda x. \lambda y. t$) ($\lambda u. \lambda v. s$)} 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   289
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   290
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   291
  \end{textblock}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   292
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   293
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   294
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   295
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   296
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   297
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   298
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   299
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   300
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   301
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   302
  \begin{frame}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   303
  \frametitle{Nominal Isabelle} 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   304
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   305
  \begin{itemize}
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   306
  \item Users can for example define lambda-terms as:
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   307
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   308
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   309
      
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   310
 atom_decl name   text_raw {*\medskip\isanewline *}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   311
	nominal_datatype lam =
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   312
	    Var name
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   313
	  | App lam lam 
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   314
	  | Lam x::name t::lam   binds x in t ("Lam _. _")
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   315
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   316
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   317
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   318
  \mbox{}\bigskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   319
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   320
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   321
  \item These are \underline{\bf named} alpha-equivalence classes, for example
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   322
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   323
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   324
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   325
  \gb{@{text "Lam a.(Var a)"}} \alert{$\,=\,$} \gb{@{text "Lam b.(Var b)"}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   326
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   327
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   328
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   329
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   330
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   331
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   332
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   333
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   334
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   335
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   336
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   337
  \begin{frame}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   338
  \frametitle{\Large (Weak) Induction Principles} 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   339
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   340
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   341
  \item The usual induction principle for lambda-terms is as follows:
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   342
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   343
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   344
  \mbox{}\hspace{-1mm}\begin{beamercolorbox}[sep=1mm, wd=9cm]{boxcolor}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   345
  \centering\smath{%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   346
  \infer{P\,t}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   347
  {\begin{array}{l}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   348
  \forall x.\;P\,x\\[2mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   349
  \forall t_1\,t_2.\;P\,t_1\wedge P\,t_2\Rightarrow P\,(t_1\;t_2)\\[2mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   350
  \forall x\,t.\;P\,t\Rightarrow P\,(\lambda x.t)\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   351
  \end{array}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   352
  }}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   353
  \end{beamercolorbox}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   354
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   355
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   356
  \item It requires us in the lambda-case to show the property \smath{P} for
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   357
  all binders \smath{x}.\medskip\\ 
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   358
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   359
  (This nearly always requires renamings and they can be 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   360
  tricky to automate.)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   361
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   362
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   363
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   364
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   365
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   366
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   367
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   368
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   369
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   370
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   371
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   372
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   373
  \begin{frame}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   374
  \frametitle{\Large Strong Induction Principles} 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   375
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   376
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   377
  \item Therefore we introduced the following strong induction principle:
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   378
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   379
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   380
  \mbox{}\hspace{-2mm}\begin{beamercolorbox}[sep=1mm, wd=11.5cm]{boxcolor}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   381
  \centering\smath{%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   382
  \infer{\tikz[remember picture] \node[inner sep=1mm] (n1a) {\alert<4>{$P$}};%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   383
         \tikz[remember picture] \node[inner sep=1mm] (n2a) {\alert<3>{$c$}};%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   384
         \tikz[remember picture] \node[inner sep=1mm] (n3a) {\alert<2>{$t$}};}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   385
  {\begin{array}{l}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   386
  \forall x\,c.\;P\,c\;x\\[2mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   387
  \forall t_1\,t_2\,c.\;(\forall d.\,P d\,t_1)\wedge (\forall d. P\,d\,t_2)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   388
  \Rightarrow P\,c\;(t_1\,t_2)\\[2mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   389
  \forall x\,t\,c.\;\alert<1>{x\fresh \alert<3>{c}} 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   390
  \wedge (\forall d. P\,d\,t)\Rightarrow P\,c\;(\lambda x.t)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   391
  \end{array}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   392
  }}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   393
  \end{beamercolorbox}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   394
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   395
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   396
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   397
  \begin{textblock}{11}(0.9,10.9)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   398
  \only<2>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   399
  \begin{tikzpicture}[remember picture]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   400
  \draw (0,0) node[fill=cream, text width=10.5cm, thick, draw=red, rounded corners=1mm] (n3b)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   401
  { The variable over which the induction proceeds:\\[2mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   402
    \hspace{3mm}``\ldots By induction over the structure of \smath{M}\ldots''};
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   403
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   404
  \path[overlay, ->, ultra thick, red] (n3b) edge[out=90, in=-110] (n3a);
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   405
  \end{tikzpicture}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   406
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   407
  \only<3>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   408
  \begin{tikzpicture}[remember picture]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   409
  \draw (0,0) node[fill=cream, text width=11cm, thick, draw=red, rounded corners=1mm] (n2b)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   410
  {The {\bf context} of the induction; i.e.~what the binder should be fresh for
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   411
   $\quad\Rightarrow$ \smath{(x,y,N,L)}:\\[2mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   412
   ``\ldots By the variable convention we can assume \mbox{\smath{z\not\equiv x,y}} 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   413
     and \smath{z} not free in \smath{N}$\!$,\,\smath{L}\ldots''};
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   414
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   415
  \path[overlay, ->, ultra thick, red] (n2b) edge[out=90, in=-100] (n2a);
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   416
  \end{tikzpicture}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   417
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   418
  \only<4>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   419
  \begin{tikzpicture}[remember picture]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   420
  \draw (0,0) node[fill=cream, text width=11cm, thick, draw=red, rounded corners=1mm] (n1b)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   421
  {The property to be proved by induction:\\[-3mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   422
  \begin{center}\small
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   423
  \begin{tabular}{l}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   424
  \smath{\!\!\lambda
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   425
  (x,\!y,\!N\!,\!L).\,\lambda M.\;\,x\not=y\,\wedge\,x\fresh L\,\Rightarrow}\\[1mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   426
  \hspace{8mm}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   427
  \smath{M[x\!:=\!N][y\!:=\!L] = M[y\!:=\!L][x\!:=\!N[y\!:=\!L]]}  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   428
  \end{tabular}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   429
  \end{center}};
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   430
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   431
  \path[overlay, ->, ultra thick, red] (n1b) edge[out=90, in=-70] (n1a);
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   432
  \end{tikzpicture}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   433
  \end{textblock}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   434
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   435
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   436
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   437
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   438
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   439
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   440
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   441
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   442
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   443
  \begin{frame}<1-4>
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   444
  \frametitle{\begin{tabular}{c}Binding Sets of Names\end{tabular}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   445
  \mbox{}\\[-3mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   446
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   447
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   448
  \item binding sets of names has some interesting properties:\medskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   449
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   450
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   451
  \begin{tabular}{l}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   452
  \textcolor{blue}{$\forall\{x, y\}.\, x \rightarrow y \;\;\approx_\alpha\;\; \forall\{y, x\}.\, y \rightarrow x$}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   453
  \bigskip\smallskip\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   454
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   455
  \onslide<2->{%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   456
  \textcolor{blue}{$\forall\{x, y\}.\, x \rightarrow y \;\;\not\approx_\alpha\;\; \forall\{z\}.\, z \rightarrow z$}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   457
  }\bigskip\smallskip\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   458
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   459
  \onslide<3->{%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   460
  \textcolor{blue}{$\forall\{x\}.\, x \rightarrow y \;\;\approx_\alpha\;\; \forall\{x, \alert{z}\}.\, x \rightarrow y$}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   461
  }\medskip\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   462
  \onslide<3->{\hspace{4cm}\small provided $z$ is fresh for the type}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   463
  \end{tabular}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   464
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   465
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   466
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   467
  \begin{textblock}{8}(2,14.5)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   468
  \footnotesize $^*$ $x$, $y$, $z$ are assumed to be distinct
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   469
  \end{textblock}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   470
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   471
  \only<4>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   472
  \begin{textblock}{6}(2.5,4)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   473
  \begin{tikzpicture}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   474
  \draw (0,0) node[inner sep=3mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   475
  {\normalsize\color{darkgray}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   476
  \begin{minipage}{8cm}\raggedright
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   477
  For type-schemes the order of bound names does not matter, and
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   478
  $\alpha$-equivalence is preserved under \alert{vacuous} binders.
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   479
  \end{minipage}};
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   480
  \end{tikzpicture}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   481
  \end{textblock}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   482
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   483
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   484
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   485
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   486
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   487
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   488
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   489
  \begin{frame}<1-3>
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   490
  \frametitle{\begin{tabular}{c}Other Binding Modes\end{tabular}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   491
  \mbox{}\\[-3mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   492
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   493
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   494
  \item alpha-equivalence being preserved under vacuous binders is \underline{not} always
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   495
  wanted:\bigskip\bigskip\normalsize
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   496
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   497
  \textcolor{blue}{\begin{tabular}{@ {\hspace{-8mm}}l}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   498
  $\text{let}\;x = 3\;\text{and}\;y = 2\;\text{in}\;x - y\;\text{end}$\medskip\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   499
  \onslide<2->{$\;\;\;\only<2>{\approx_\alpha}\only<3>{\alert{\not\approx_\alpha}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   500
   \text{let}\;y = 2\;\text{and}\;x = 3\only<3->{\alert{\;\text{and}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   501
    \;z = \text{loop}}}\;\text{in}\;x - y\;\text{end}$}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   502
  \end{tabular}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   503
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   504
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   505
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   506
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   507
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   508
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   509
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   510
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   511
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   512
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   513
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   514
  \begin{frame}<1>
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   515
  \frametitle{\begin{tabular}{c}\Large{}Even Another Binding Mode\end{tabular}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   516
  \mbox{}\\[-3mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   517
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   518
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   519
  \item sometimes one wants to abstract more than one name, but the order \underline{does} matter\bigskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   520
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   521
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   522
  \textcolor{blue}{\begin{tabular}{@ {\hspace{-8mm}}l}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   523
  $\text{let}\;(x, y) = (3, 2)\;\text{in}\;x - y\;\text{end}$\medskip\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   524
  $\;\;\;\not\approx_\alpha
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   525
   \text{let}\;(y, x) = (3, 2)\;\text{in}\;x - y\;\text{end}$
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   526
  \end{tabular}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   527
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   528
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   529
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   530
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   531
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   532
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   533
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   534
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   535
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   536
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   537
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   538
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   539
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   540
  \begin{frame}<2-3>
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   541
  \frametitle{\begin{tabular}{c}Specification of Binding\end{tabular}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   542
  \mbox{}\\[-6mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   543
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   544
  \mbox{}\hspace{10mm}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   545
  \begin{tabular}{ll}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   546
  \multicolumn{2}{l}{\isacommand{nominal\_datatype} trm $=$}\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   547
  \hspace{5mm}\phantom{$|$} Var name\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   548
  \hspace{5mm}$|$ App trm trm\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   549
  \hspace{5mm}$|$ Lam \only<2->{x::}name \only<2->{t::}trm
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   550
  & \onslide<2->{\isacommand{bind} x \isacommand{in} t}\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   551
  \hspace{5mm}$|$ Let \only<2->{as::}assns \only<2->{t::}trm
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   552
  & \onslide<2->{\isacommand{bind} bn(as) \isacommand{in} t}\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   553
  \multicolumn{2}{l}{\isacommand{and} assns $=$}\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   554
  \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} ANil}\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   555
  \multicolumn{2}{l}{\hspace{5mm}$|$ ACons name trm assns}\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   556
  \multicolumn{2}{l}{\onslide<3->{\isacommand{binder} bn \isacommand{where}}}\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   557
  \multicolumn{2}{l}{\onslide<3->{\hspace{5mm}\phantom{$|$} bn(ANil) $=$ $[]$}}\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   558
  \multicolumn{2}{l}{\onslide<3->{\hspace{5mm}$|$ bn(ACons a t as) $=$ $[$a$]$ @ bn(as)}}\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   559
  \end{tabular}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   560
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   561
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   562
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   563
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   564
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   565
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   566
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   567
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   568
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   569
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   570
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   571
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   572
  \begin{frame}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   573
  \frametitle{So Far So Good}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   574
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   575
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   576
  \item A Faulty Lemma with the Variable Convention?\\[-8mm]\mbox{}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   577
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   578
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   579
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   580
  \begin{block}{}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   581
  \color{gray}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   582
  \small%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   583
  {\bf\mbox{}\hspace{-1.5mm}Variable Convention:}\\[1mm] 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   584
  If $M_1,\ldots,M_n$ occur in a certain mathematical context
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   585
  (e.g. definition, proof), then in these terms all bound variables 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   586
  are chosen to be different from the free variables.\\[2mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   587
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   588
  \footnotesize\hfill Barendregt in ``The Lambda-Calculus: Its Syntax and Semantics''
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   589
  \end{block}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   590
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   591
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   592
  \mbox{}\\[-18mm]\mbox{}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   593
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   594
  \begin{columns}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   595
  \begin{column}[t]{4.7cm}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   596
  Inductive Definitions:\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   597
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   598
  \smath{\infer{\text{concl}}{\text{prem}_1 \ldots \text{prem}_n\;\text{scs}}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   599
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   600
  \end{column}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   601
  \begin{column}[t]{7cm}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   602
  Rule Inductions:\\[2mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   603
  \begin{tabular}{l@ {\hspace{2mm}}p{5.5cm}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   604
  1.) & Assume the property for\\ & the premises. Assume \\ & the side-conditions.\\[1mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   605
  2.) & Show the property for\\ & the conclusion.\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   606
  \end{tabular}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   607
  \end{column}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   608
  \end{columns}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   609
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   610
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   611
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   612
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   613
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   614
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   615
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   616
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   617
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   618
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   619
  \setbeamerfont{itemize/enumerate subbody}{size=\normalsize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   620
  \begin{frame}[sqeeze]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   621
  \frametitle{Faulty Reasoning} 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   622
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   623
  %\mbox{}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   624
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   625
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   626
  \item Consider the two-place relation \smath{\text{foo}}:\medskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   627
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   628
  \begin{tabular}{ccc}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   629
  \raisebox{2.5mm}{\colorbox{cream}{%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   630
  \smath{\;\infer{x\mapsto x}{}}}}\hspace{2mm}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   631
  &
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   632
  \raisebox{2mm}{\colorbox{cream}{%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   633
  \smath{\infer{t_1\;t_2\mapsto t_1\;t_2}{}}}}\hspace{2mm}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   634
  &
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   635
  \colorbox{cream}{%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   636
  \smath{\infer{\lambda x.t\mapsto t'}{t\mapsto t'}}}\\[5mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   637
  \end{tabular}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   638
  \end{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   639
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   640
  \pause
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   641
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   642
  \item The lemma we going to prove:\smallskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   643
  \begin{center}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   644
  Let \smath{t\mapsto t'}. If \smath{y\fresh t} then \smath{y\fresh t'}.
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   645
  \end{center}\bigskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   646
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   647
  \only<3>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   648
  \item Cases 1 and 2 are trivial:\medskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   649
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   650
  \item If \smath{y\fresh x} then \smath{y\fresh x}.
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   651
  \item If \smath{y\fresh t_1\,t_2} then \smath{y\fresh t_1\,t_2}.
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   652
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   653
  }
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   654
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   655
  \only<4->{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   656
  \item Case 3:
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   657
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   658
  \item We know \tikz[remember picture,baseline=(ta.base)] \node (ta) {\smath{y\fresh \lambda x.t}.}; 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   659
  We have to show \smath{y\fresh t'}.$\!\!\!\!$ 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   660
  \item The IH says: if \smath{y\fresh t} then \smath{y\fresh t'}.
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   661
  \item<7,8> So we have \smath{y\fresh t}. Hence \smath{y\fresh t'} by IH. Done!
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   662
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   663
  }
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   664
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   665
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   666
  \begin{textblock}{11.3}(0.7,0.6)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   667
  \only<5-7>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   668
  \begin{tikzpicture}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   669
  \draw (0,0) node[fill=cream, text width=11.2cm, thick, draw=red, rounded corners=1mm] (nn)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   670
  {{\bf Variable Convention:}\\[2mm] 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   671
  \small
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   672
   If $M_1,\ldots,M_n$ occur in a certain mathematical context
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   673
   (e.g. definition, proof), then in these terms all bound variables 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   674
   are chosen to be different from the free variables.\smallskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   675
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   676
  \normalsize
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   677
   {\bf In our case:}\\[2mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   678
   The free variables are \smath{y} and \smath{t'}; the bound one is 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   679
   \smath{x}.\medskip
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   680
          
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   681
   By the variable convention we conclude that \smath{x\not= y}.
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   682
  };
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   683
  \end{tikzpicture}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   684
  \end{textblock}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   685
3225
b7b80d5640bb added new slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 3224
diff changeset
   686
  \begin{textblock}{9.2}(3.6,9.2)
3224
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   687
  \only<6,7>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   688
  \begin{tikzpicture}[remember picture]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   689
  \draw (0,0) node[fill=cream, text width=9cm, thick, draw=red, rounded corners=1mm] (tb)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   690
  {\small\smath{y\!\not\in\! \text{fv}(\lambda x.t) \Longleftrightarrow
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   691
          y\!\not\in\! \text{fv}(t)\!-\!\{x\}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   692
          \stackrel{x\not=y}{\Longleftrightarrow}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   693
          y\!\not\in\! \text{fv}(t)}};
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   694
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   695
  \path[overlay, ->, ultra thick, red] (tb) edge[out=-120, in=75] (ta);
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   696
  \end{tikzpicture}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   697
  \end{textblock}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   698
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   699
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   700
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   701
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   702
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   703
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   704
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   705
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   706
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   707
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   708
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   709
  \begin{frame}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   710
  \frametitle{Conclusions} 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   711
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   712
  \begin{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   713
  \item The user does not see anything of the ``raw'' level.
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   714
  \item The Nominal Isabelle automatically derives the strong structural
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   715
  induction principle for \underline{\bf all} nominal datatypes (not just the 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   716
  lambda-calculus)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   717
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   718
  \item They are easy to use: you just have to think carefully what the variable
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   719
  convention should be.
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   720
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   721
  \item We can explore the \colorbox{black}{\textcolor{white}{dark}} corners 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   722
  of the variable convention: when and where it can be used safely.
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   723
  
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   724
  \item<2> \alert{\bf Main Point:} Actually these proofs using the
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   725
  variable convention are all trivial / obvious / routine\ldots {\bf provided} 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   726
  you use Nominal Isabelle. ;o)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   727
 
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   728
  \end{itemize}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   729
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   730
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   731
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   732
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   733
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   734
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   735
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   736
text_raw {*
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   737
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   738
  \mode<presentation>{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   739
  \begin{frame}<1>[b]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   740
  \frametitle{
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   741
  \begin{tabular}{c}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   742
  \mbox{}\\[13mm]
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   743
  \alert{\LARGE Thank you very much!}\\
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   744
  \alert{\Large Questions?}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   745
  \end{tabular}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   746
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   747
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   748
  \end{frame}}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   749
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   750
*}
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   751
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   752
(*<*)
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   753
end
cf451e182bf0 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   754
(*>*)