Slides/SlidesA.thy
author Cezary Kaliszyk <cezarykaliszyk@gmail.com>
Fri, 30 Mar 2012 07:15:24 +0200
changeset 3143 1da802bd2ab1
parent 3121 878de0084b62
permissions -rw-r--r--
Correct Aux and proof sketch that it's same as alpha-equality, following Dan Synek's proof.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3121
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     1
(*<*)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     2
theory SlidesA
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     3
imports "~~/src/HOL/Library/LaTeXsugar" "Nominal"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     4
begin
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     5
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     6
notation (latex output)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     7
  set ("_") and
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     8
  Cons  ("_::/_" [66,65] 65) 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     9
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    10
(*>*)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    11
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    12
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    13
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    14
  %% was \begin{colormixin}{20!averagebackgroundcolor}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    15
  %% 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    16
  %% is \begin{colormixin}{50!averagebackgroundcolor}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    17
  \renewcommand{\slidecaption}{Warsaw, 9 February 2012}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    18
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    19
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    20
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    21
  \frametitle{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    22
  \begin{tabular}{@ {}c@ {}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    23
  \Huge Nominal Techniques\\[0mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    24
  \Huge in Isabelle\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    25
  \Large or, How Not to be Intimidated by the\\[-3mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    26
  \Large Variable Convention\\[-5mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    27
  \end{tabular}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    28
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    29
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    30
  Christian Urban\\[1mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    31
  King's College London\\[-6mm]\mbox{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    32
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    33
 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    34
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    35
  \begin{block}{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    36
  \color{gray}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    37
  \small
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    38
  {\bf\mbox{}\hspace{-1.5mm}Variable Convention:}\\[1mm] 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    39
  If $M_1,\ldots,M_n$ occur in a certain mathematical context
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    40
  (e.g. definition, proof), then in these terms all bound variables 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    41
  are chosen to be different from the free variables.\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    42
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    43
  \footnotesize\hfill Barendregt in ``The Lambda-Calculus: Its Syntax and Semantics''
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    44
  \end{block}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    45
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    46
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    47
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    48
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    49
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    50
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    51
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    52
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    53
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    54
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    55
  \begin{frame}<1->[c]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    56
  \frametitle{Nominal Techniques}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    57
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    58
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    59
  \item Andy Pitts found out that permutations\\ preserve $\alpha$-equivalence:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    60
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    61
  \smath{t_1 \approx_{\alpha} t_2 \quad \Rightarrow\quad \pi \act t_1 \approx_{\alpha} \pi \act t_2} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    62
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    63
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    64
  \item also permutations and substitutions commute, if you suspend permutations
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    65
  in front of variables
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    66
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    67
  \smath{\pi\act\sigma(t) = \sigma(\pi\act t)}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    68
  \end{center}\medskip\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    69
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    70
  \item this allowed us to define Nominal Unification\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    71
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    72
  \smath{\nabla \vdash t \approx^?_{\alpha} t'}\hspace{2cm}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    73
  \smath{\nabla \vdash a \fresh^? t}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    74
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    75
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    76
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    77
  \begin{textblock}{3}(13.1,1.1)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    78
  \includegraphics[scale=0.26]{andrewpitts.jpg}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    79
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    80
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    81
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    82
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    83
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    84
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    85
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    86
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    87
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    88
  \begin{frame}[c]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    89
  \frametitle{Nominal Isabelle}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    90
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    91
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    92
  \item a theory about atoms and permutations\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    93
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    94
  \item support and freshness
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    95
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    96
  \smath{\text{supp}(x) \dn \{ a \mid \text{infinite}\,\{ b \mid \swap{a}{b}\act x \not= x\}\}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    97
  \end{center}\bigskip\pause
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    98
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    99
  \item $\alpha$-equivalence
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   100
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   101
  \begin{tabular}{l}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   102
  \smath{as.x \approx_\alpha bs.y \dn}\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   103
  \hspace{2cm}\smath{\exists \pi.\;\text{supp}(x) - as = \text{supp}(y) - bs}\\ 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   104
  \hspace{2cm}\smath{\;\wedge\; \text{supp}(x) - as \fresh \pi}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   105
  \hspace{2cm}\smath{\;\wedge\; \pi \act x = y}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   106
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   107
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   108
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   109
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   110
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   111
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   112
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   113
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   114
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   115
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   116
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   117
  \begin{frame}<1-6>
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   118
  \frametitle{New Types in HOL}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   119
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   120
   \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   121
  \begin{tikzpicture}[scale=1.5]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   122
  %%%\draw[step=2mm] (-4,-1) grid (4,1);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   123
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   124
  \onslide<2-4,6>{\draw[very thick] (0.7,0.4) circle (4.25mm);}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   125
  \onslide<1-4,6>{\draw[rounded corners=1mm, very thick] ( 0.0,-0.8) rectangle ( 1.8, 0.9);}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   126
  \onslide<3-5,6>{\draw[rounded corners=1mm, very thick] (-1.95,0.85) rectangle (-2.85,-0.05);}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   127
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   128
  \onslide<3-4,6>{\draw (-2.0, 0.845) --  (0.7,0.845);}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   129
  \onslide<3-4,6>{\draw (-2.0,-0.045)  -- (0.7,-0.045);}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   130
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   131
  \onslide<4-4,6>{\alert{\draw ( 0.7, 0.4) node {\footnotesize\begin{tabular}{@ {}c@ {}}$\alpha$-\\[-1mm]classes\end{tabular}};}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   132
  \onslide<4-5,6>{\alert{\draw (-2.4, 0.4) node {\footnotesize\begin{tabular}{@ {}c@ {}}$\alpha$-eq.\\[-1mm]terms\end{tabular}};}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   133
  \onslide<1-4,6>{\draw (1.8, 0.48) node[right=-0.1mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   134
    {\footnotesize\begin{tabular}{@ {}l@ {}}existing\\[-1mm] type\\ \onslide<4-4,6>{\alert{(sets of raw terms)}}\end{tabular}};}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   135
  \onslide<2-4,6>{\draw (0.9, -0.35) node {\footnotesize\begin{tabular}{@ {}l@ {}}non-empty\\[-1mm]subset\end{tabular}};}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   136
  \onslide<3-5,6>{\draw (-3.25, 0.55) node {\footnotesize\begin{tabular}{@ {}l@ {}}new\\[-1mm]type\end{tabular}};}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   137
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   138
  \onslide<3-4,6>{\draw[<->, very thick] (-1.8, 0.3) -- (-0.1,0.3);}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   139
  \onslide<3-4,6>{\draw (-0.95, 0.3) node[above=0mm] {\footnotesize{}isomorphism};}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   140
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   141
  \onslide<6>{\draw[->, line width=2mm, red] (-1.0,-0.4) -- (0.35,0.16);}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   142
  \end{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   143
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   144
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   145
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   146
  \textcolor{red}{\large\bf\onslide<6>{define $\alpha$-equivalence}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   147
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   148
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   149
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   150
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   151
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   152
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   153
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   154
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   155
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   156
  \begin{frame}<1-3>[c]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   157
  \frametitle{HOL vs.~Nominal}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   158
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   159
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   160
  \item Nominal logic / nominal sets by Pitts are incompatible 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   161
  with choice principles\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   162
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   163
  \item HOL includes Hilbert's epsilon\pause\bigskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   164
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   165
  \item Solution: Do not require that everything has finite support\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   166
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   167
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   168
  \smath{\onslide<1-2>{\text{finite}(\text{supp}(x))  \quad\Rightarrow\quad} a \fresh a.x}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   169
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   170
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   171
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   172
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   173
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   174
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   175
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   176
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   177
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   178
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   179
  \begin{frame}[c]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   180
  \frametitle{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   181
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   182
  \begin{tabular}{c@ {\hspace{2mm}}c}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   183
  \\[6mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   184
  \begin{tabular}{c}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   185
  \includegraphics[scale=0.11]{harper.jpg}\\[-2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   186
  {\footnotesize Bob Harper}\\[-2.5mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   187
  {\footnotesize (CMU)}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   188
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   189
  \begin{tabular}{c}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   190
  \includegraphics[scale=0.37]{pfenning.jpg}\\[-2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   191
  {\footnotesize Frank Pfenning}\\[-2.5mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   192
  {\footnotesize (CMU)}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   193
  \end{tabular} &
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   194
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   195
  \begin{tabular}{p{6cm}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   196
  \raggedright
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   197
  \color{gray}{published a proof in\\ {\bf ACM Transactions on Computational Logic}, 2005,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   198
  $\sim$31pp}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   199
  \end{tabular}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   200
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   201
  \pause
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   202
  \\[0mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   203
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   204
  \begin{tabular}{c}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   205
  \includegraphics[scale=0.36]{appel.jpg}\\[-2mm] 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   206
  {\footnotesize Andrew Appel}\\[-2.5mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   207
  {\footnotesize (Princeton)}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   208
  \end{tabular} &
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   209
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   210
  \begin{tabular}{p{6cm}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   211
  \raggedright
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   212
  \color{gray}{relied on their proof in a\\ {\bf security} critical application}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   213
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   214
  \end{tabular}\medskip\pause
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   215
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   216
  \small
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   217
  \begin{minipage}{1.0\textwidth}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   218
  (I also found an {\bf error} in my Ph.D.-thesis about cut-elimination
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   219
  examined by Henk Barendregt and Andy Pitts.)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   220
  \end{minipage}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   221
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   222
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   223
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   224
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   225
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   226
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   227
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   228
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   229
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   230
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   231
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   232
  \begin{frame}<1,2,3,4>[squeeze]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   233
  \frametitle{Formalisation of LF} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   234
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   235
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   236
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   237
  \begin{tabular}{@ {\hspace{-16mm}}lc}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   238
  \mbox{}\\[-6mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   239
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   240
  \textcolor{white}{\raisebox{4mm}{1.~Solution}} &
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   241
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   242
  [node distance=25mm,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   243
   text height=1.5ex,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   244
   text depth=.25ex,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   245
   node1/.style={
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   246
     rectangle, minimum size=10mm, rounded corners=3mm, very thick, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   247
     draw=black!50, top color=white, bottom color=black!20},
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   248
  ]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   249
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   250
  \node (proof) [node1] {\large Proof};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   251
  \node (def)   [node1, left of=proof] {\large$\,\;\dn\;\,$};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   252
  \node (alg)  [node1, right of=proof] {\large\hspace{1mm}Alg.\hspace{1mm}\mbox{}};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   253
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   254
  \draw[->,black!50,line width=2mm] (proof) -- (def);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   255
  \draw[->,black!50,line width=2mm] (proof) -- (alg);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   256
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   257
  \onslide<2->{\draw[white,line width=1mm] (0.1,0.6) -- (-0.1,0.25) -- (0.1,-0.25) -- (-0.1,-0.6);} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   258
  \end{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   259
  \\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   260
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   261
  \onslide<3->{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   262
  \raisebox{4mm}{\textcolor{white}{1st Solution}} &
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   263
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   264
  [node distance=25mm,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   265
   text height=1.5ex,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   266
   text depth=.25ex,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   267
   node1/.style={
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   268
     rectangle, minimum size=10mm, rounded corners=3mm, very thick, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   269
     draw=black!50, top color=white, bottom color=black!20},
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   270
   node2/.style={
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   271
     rectangle, minimum size=12mm, rounded corners=3mm, very thick, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   272
     draw=red!70, top color=white, bottom color=red!50!black!20}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   273
  ]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   274
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   275
  \node (proof) [node1] {\large Proof};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   276
  \node (def)   [node2, left of=proof] {\large$\dn{}\!\!^\text{+ex}$};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   277
  \node (alg)   [node1, right of=proof] {\large\hspace{1mm}Alg.\hspace{1mm}\mbox{}};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   278
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   279
  \draw[->,black!50,line width=2mm] (proof) -- (def);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   280
  \draw[->,black!50,line width=2mm] (proof) -- (alg);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   281
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   282
  \end{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   283
  \\[2mm]}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   284
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   285
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   286
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   287
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   288
  \begin{textblock}{3}(13.2,5.1)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   289
  \onslide<3->{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   290
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   291
  \node at (0,0) [single arrow, shape border rotate=270, fill=red,text=white]{2h};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   292
  \end{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   293
  }
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   294
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   295
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   296
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   297
  \begin{textblock}{11}(1.4,14.3)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   298
  \only<1->{\footnotesize (one needs to check $\sim$31pp~of informal paper proofs from 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   299
            ACM Transactions on Computational Logic, 2005)}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   300
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   301
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   302
  \only<4->{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   303
  \begin{textblock}{9}(10,11.5)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   304
  \begin{tikzpicture}[remember picture, overlay]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   305
  \draw (0,0) node[fill=cream, text width=5.3cm, thick, draw=red, rounded corners=1mm] (n2)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   306
  {\raggedright I also found \mbox{(fixable)} mistakes in my Ph.D.~thesis. 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   307
  };
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   308
  \end{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   309
  \end{textblock}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   310
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   311
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   312
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   313
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   314
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   315
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   316
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   317
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   318
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   319
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   320
  \begin{frame}[c]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   321
  \frametitle{\LARGE\begin{tabular}{c}Nominal Isabelle\end{tabular}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   322
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   323
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   324
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   325
  \item \ldots{}is a tool on top of the theorem prover
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   326
  Isabelle; bound variables have names (no de Bruijn 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   327
  indices).\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   328
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   329
  \item It can be used to, for example, represent lambda terms
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   330
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   331
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   332
  \smath{M ::= x\;\mid\; M\,N \;\mid\; \lambda x.M}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   333
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   334
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   335
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   336
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   337
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   338
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   339
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   340
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   341
text_raw {* 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   342
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   343
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   344
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   345
  \small
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   346
  \begin{beamercolorbox}[sep=1mm, wd=11cm]{boxcolor}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   347
  {\bf Substitution Lemma:} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   348
  If \smath{x\not\equiv y} and
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   349
  \smath{x\not\in \text{fv}(L)}, then\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   350
  \mbox{}\hspace{5mm}\smath{M[x:=N][y:=L]\equiv M[y:=L][x:=N[y:=L]]}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   351
  \end{beamercolorbox}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   352
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   353
  {\bf Proof:} \alert<4>{By induction on the structure of \smath{M}.}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   354
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   355
  \item {\bf Case 1:} \smath{M} is a variable.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   356
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   357
  \begin{tabular}{@ {}l@ {\hspace{1mm}}p{9cm}@ {}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   358
   Case 1.1. & \smath{M\equiv x}. Then both sides \alert<3,4>{equal} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   359
               \smath{N[y:=L]} since \smath{x\not\equiv y}.\\[1mm] 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   360
   Case 1.2. & \smath{M\equiv y}. Then both sides \alert<3,4>{equal}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   361
               \smath{L}, for \smath{x\not\in \text{fv}(L)}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   362
             & implies \smath{L[x:=\ldots]\equiv L}.\\[1mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   363
   Case 1.3. & \smath{M\equiv z\not\equiv x,y}. Then both sides \alert<3,4>{equal} \smath{z}.\\[1mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   364
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   365
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   366
  \item {\bf Case 2:} \smath{M\equiv \lambda z.M_1}. 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   367
  \alert<2>{By the variable convention we may assume that \smath{z\not\equiv x,y} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   368
  and \smath{z} is not free in \smath{N,L}.}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   369
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   370
  \begin{tabular}{@ {}r@ {\hspace{1mm}}l@ {}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   371
  \smath{(\lambda z.M_1)[x\!:=\!N][y\!:=\!L]} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   372
  \smath{\equiv} & \smath{\lambda z.(M_1[x\!:=\!N][y\!:=\!L])}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   373
  \smath{\equiv} & \smath{\lambda z.(M_1[y\!:=\!L][x\!:=\!N[y\!:=\!L]])}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   374
  \smath{\equiv} & \smath{(\lambda z.M_1)[y\!:=\!L][x\!:=\!N[y\!:=\!L]]}.\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   375
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   376
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   377
  \item {\bf Case 3:} \smath{M\equiv M_1 M_2}. 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   378
  The statement follows again from the induction hypothesis. \hfill$\,\Box\,$
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   379
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   380
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   381
  \begin{textblock}{11}(4,3)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   382
  \begin{block}<5>{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   383
  Remember only if \smath{y\not=x} and \smath{x\not\in \text{fv}(N)} then\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   384
  \smath{\quad(\lambda y.M)[x:=N]=\lambda y.(M[x:=N])}\\[4mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   385
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   386
          \begin{tabular}{c@ {\hspace{2mm}}l@ {\hspace{2mm}}l@ {}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   387
            & \smath{(\lambda z.M_1)[x:=N][y:=L]}\\[1.3mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   388
            \smath{\equiv} & \smath{(\lambda z.(M_1[x:=N]))[y:=L]} & $\stackrel{1}{\leftarrow}$\\[1.3mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   389
            \smath{\equiv} & \smath{\lambda z.(M_1[x:=N][y:=L])} & $\stackrel{2}{\leftarrow}$\\[1.3mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   390
            \smath{\equiv} & \smath{\lambda z.(M_1[y:=L][x:=N[y:=L]])} & IH\\[1.3mm] 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   391
            \smath{\equiv} & \smath{(\lambda z.(M_1[y:=L]))[x:=N[y:=L]])} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   392
                                 & $\stackrel{2}{\rightarrow}$ \alert{\bf\;!}\\[1.3mm] 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   393
            \smath{\equiv} & \smath{(\lambda z.M_1)[y:=L][x:=N[y:=L]]}. & 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   394
                                                             $\stackrel{1}{\rightarrow}$\\[1.3mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   395
          \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   396
  \end{block}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   397
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   398
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   399
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   400
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   401
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   402
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   403
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   404
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   405
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   406
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   407
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   408
  \frametitle{Nominal Isabelle} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   409
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   410
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   411
  \item Define lambda-terms as:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   412
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   413
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   414
      
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   415
 atom_decl name   text_raw {*\medskip\isanewline *}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   416
	nominal_datatype lam =
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   417
	    Var "name"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   418
	  | App "lam" "lam" 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   419
	  | Lam "\<guillemotleft>name\<guillemotright>lam" ("Lam _._")
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   420
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   421
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   422
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   423
  \mbox{}\bigskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   424
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   425
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   426
  \item These are \underline{\bf named} alpha-equivalence classes, for example
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   427
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   428
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   429
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   430
  \gb{@{text "Lam a.(Var a)"}} \alert{$\,=\,$} \gb{@{text "Lam b.(Var b)"}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   431
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   432
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   433
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   434
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   435
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   436
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   437
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   438
(*<*)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   439
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   440
nominal_primrec
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   441
  subst :: "lam \<Rightarrow> name \<Rightarrow> lam \<Rightarrow> lam"  ("_[_::=_]" [100,100,100] 100)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   442
where
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   443
  "(Var x)[y::=s] = (if x=y then s else (Var x))"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   444
| "(App t\<^isub>1 t\<^isub>2)[y::=s] = App (t\<^isub>1[y::=s]) (t\<^isub>2[y::=s])"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   445
| "x\<sharp>(y,s) \<Longrightarrow> (SlidesA.Lam x t)[y::=s] = SlidesA.Lam x (t[y::=s])"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   446
apply(finite_guess)+
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   447
apply(rule TrueI)+
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   448
apply(simp add: abs_fresh)+
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   449
apply(fresh_guess)+
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   450
done
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   451
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   452
(*>*)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   453
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   454
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   455
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   456
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   457
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   458
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   459
  %%\frametitle{\large Formal Proof of the Substitution Lemma} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   460
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   461
  \small
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   462
  \begin{tabular}{@ {\hspace{-4mm}}c @ {}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   463
  \begin{minipage}{1.1\textwidth}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   464
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   465
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   466
lemma forget: 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   467
  assumes a: "x \<sharp> L"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   468
  shows "L[x::=P] = L"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   469
using a by (nominal_induct L avoiding: x P rule: lam.strong_induct)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   470
                (auto simp add: abs_fresh fresh_atm)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   471
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   472
lemma fresh_fact: 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   473
  fixes z::"name"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   474
  assumes a: "z \<sharp> N" "z \<sharp> L"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   475
  shows "z \<sharp> N[y::=L]"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   476
using a by (nominal_induct N avoiding: z y L rule: lam.strong_induct)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   477
                (auto simp add: abs_fresh fresh_atm)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   478
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   479
lemma substitution_lemma:  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   480
  assumes a: "x \<noteq> y" "x \<sharp> L" -- {* \mbox{}\hspace{-2mm}\tikz[remember picture] \node (n1) {}; *}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   481
  shows "M[x::=N][y::=L] = M[y::=L][x::=N[y::=L]]"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   482
using a 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   483
by (nominal_induct M avoiding: x y N L rule: lam.strong_induct)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   484
     (auto simp add: fresh_fact forget)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   485
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   486
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   487
  \end{minipage}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   488
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   489
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   490
  \begin{textblock}{6}(11,9)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   491
  \only<2>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   492
  \begin{tikzpicture}[remember picture, overlay]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   493
  \draw (0,0) node[fill=cream, text width=5.5cm, thick, draw=red, rounded corners=1mm] (n2)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   494
  {\setlength\leftmargini{6mm}%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   495
   \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   496
   \item stands for \smath{x\not\in \text{fv}(L)}\\[-2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   497
   \item reads as ``\smath{x} fresh for \smath{L}'' 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   498
   \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   499
  };
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   500
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   501
  \path[overlay, ->, very thick, red] (n2) edge[out=-90, in=0] (n1);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   502
  \end{tikzpicture}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   503
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   504
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   505
  \only<1-3>{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   506
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   507
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   508
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   509
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   510
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   511
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   512
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   513
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   514
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   515
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   516
  \frametitle{\LARGE (Weak) Induction Principles} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   517
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   518
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   519
  \item The usual induction principle for lambda-terms is as follows:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   520
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   521
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   522
  \mbox{}\hspace{-1mm}\begin{beamercolorbox}[sep=1mm, wd=9cm]{boxcolor}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   523
  \centering\smath{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   524
  \infer{P\,t}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   525
  {\begin{array}{l}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   526
  \forall x.\;P\,x\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   527
  \forall t_1\,t_2.\;P\,t_1\wedge P\,t_2\Rightarrow P\,(t_1\;t_2)\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   528
  \forall x\,t.\;P\,t\Rightarrow P\,(\lambda x.t)\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   529
  \end{array}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   530
  }}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   531
  \end{beamercolorbox}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   532
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   533
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   534
  \item It requires us in the lambda-case to show the property \smath{P} for
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   535
  all binders \smath{x}.\smallskip\\ 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   536
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   537
  (This nearly always requires renamings and they can be 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   538
  tricky to automate.)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   539
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   540
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   541
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   542
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   543
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   544
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   545
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   546
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   547
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   548
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   549
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   550
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   551
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   552
  \frametitle{\LARGE Strong Induction Principles} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   553
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   554
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   555
  \item Therefore we will use the following strong induction principle:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   556
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   557
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   558
  \mbox{}\hspace{-2mm}\begin{beamercolorbox}[sep=1mm, wd=11.5cm]{boxcolor}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   559
  \centering\smath{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   560
  \infer{\tikz[remember picture] \node[inner sep=1mm] (n1a) {\alert<4>{$P$}};%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   561
         \tikz[remember picture] \node[inner sep=1mm] (n2a) {\alert<3>{$c$}};%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   562
         \tikz[remember picture] \node[inner sep=1mm] (n3a) {\alert<2>{$t$}};}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   563
  {\begin{array}{l}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   564
  \forall x\,c.\;P\,c\;x\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   565
  \forall t_1\,t_2\,c.\;(\forall d.\,P d\,t_1)\wedge (\forall d. P\,d\,t_2)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   566
  \Rightarrow P\,c\;(t_1\,t_2)\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   567
  \forall x\,t\,c.\;\alert<1>{x\fresh \alert<3>{c}} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   568
  \wedge (\forall d. P\,d\,t)\Rightarrow P\,c\;(\lambda x.t)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   569
  \end{array}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   570
  }}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   571
  \end{beamercolorbox}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   572
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   573
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   574
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   575
  \begin{textblock}{11}(0.9,10.9)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   576
  \only<2>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   577
  \begin{tikzpicture}[remember picture]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   578
  \draw (0,0) node[fill=cream, text width=10.5cm, thick, draw=red, rounded corners=1mm] (n3b)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   579
  { The variable over which the induction proceeds:\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   580
    \hspace{3mm}``\ldots By induction over the structure of \smath{M}\ldots''};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   581
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   582
  \path[overlay, ->, ultra thick, red] (n3b) edge[out=90, in=-110] (n3a);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   583
  \end{tikzpicture}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   584
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   585
  \only<3>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   586
  \begin{tikzpicture}[remember picture]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   587
  \draw (0,0) node[fill=cream, text width=11cm, thick, draw=red, rounded corners=1mm] (n2b)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   588
  {The {\bf context} of the induction; i.e.~what the binder should be fresh for
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   589
   $\quad\Rightarrow$ \smath{(x,y,N,L)}:\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   590
   ``\ldots By the variable convention we can assume \mbox{\smath{z\not\equiv x,y}} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   591
     and \smath{z} not free in \smath{N}$\!$,\,\smath{L}\ldots''};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   592
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   593
  \path[overlay, ->, ultra thick, red] (n2b) edge[out=90, in=-100] (n2a);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   594
  \end{tikzpicture}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   595
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   596
  \only<4>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   597
  \begin{tikzpicture}[remember picture]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   598
  \draw (0,0) node[fill=cream, text width=11cm, thick, draw=red, rounded corners=1mm] (n1b)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   599
  {The property to be proved by induction:\\[-3mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   600
  \begin{center}\small
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   601
  \begin{tabular}{l}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   602
  \smath{\!\!\lambda
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   603
  (x,\!y,\!N\!,\!L).\,\lambda M.\;\,x\not=y\,\wedge\,x\fresh L\,\Rightarrow}\\[1mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   604
  \hspace{8mm}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   605
  \smath{M[x\!:=\!N][y\!:=\!L] = M[y\!:=\!L][x\!:=\!N[y\!:=\!L]]}  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   606
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   607
  \end{center}};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   608
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   609
  \path[overlay, ->, ultra thick, red] (n1b) edge[out=90, in=-70] (n1a);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   610
  \end{tikzpicture}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   611
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   612
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   613
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   614
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   615
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   616
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   617
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   618
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   619
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   620
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   621
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   622
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   623
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   624
  \frametitle{\LARGE Strong Induction Principles} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   625
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   626
   \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   627
  \mbox{}\hspace{-2mm}\begin{beamercolorbox}[sep=1mm, wd=11.5cm]{boxcolor}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   628
  \centering\smath{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   629
  \infer{P\,\alert{c}\;t}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   630
  {\begin{array}{l}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   631
  \forall x\,c.\;P\,c\;x\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   632
  \forall t_1\,t_2\,c.\;(\forall d.\,P d\,t_1)\wedge (\forall d. P\,d\,t_2)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   633
  \Rightarrow P\,c\;(t_1\,t_2)\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   634
  \forall x\,t\,c.\;x\fresh c \wedge (\forall d. P\,d\,t)\Rightarrow P\,c\;(\lambda x.t)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   635
  \end{array}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   636
  }}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   637
  \end{beamercolorbox}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   638
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   639
 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   640
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   641
  \only<1>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   642
  \begin{textblock}{14}(1.2,9.2)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   643
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   644
  \item There is a condition for when Barendregt's variable convention
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   645
    is applicable---it is almost always satisfied, but not always:\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   646
    
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   647
    The induction context \smath{c} needs to be finitely supported 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   648
    (is not allowed to mention all names as free).
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   649
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   650
  \end{textblock}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   651
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   652
  \only<2>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   653
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   654
  \item In the case of the substitution lemma:\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   655
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   656
  \begin{textblock}{16.5}(0.7,11.5)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   657
  \small
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   658
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   659
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   660
(*<*)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   661
lemma 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   662
  assumes a: "x\<noteq>y" "x \<sharp> L"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   663
  shows "M[x::=N][y::=L] = M[y::=L][x::=N[y::=L]]"
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   664
using a
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   665
(*>*)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   666
proof (nominal_induct M avoiding: x y N L rule: lam.strong_induct)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   667
txt_raw {* \isanewline$\ldots$ *}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   668
(*<*)oops(*>*)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   669
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   670
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   671
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   672
  \end{itemize}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   673
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   674
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   675
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   676
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   677
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   678
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   679
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   680
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   681
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   682
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   683
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   684
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   685
  \frametitle{\Large \mbox{Same Problem with Rule Inductions}} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   686
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   687
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   688
  \item We can specify typing-rules for lambda-terms as:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   689
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   690
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   691
  \begin{tabular}{@ {\hspace{-6mm}}c@ {}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   692
  \colorbox{cream}{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   693
  \smath{\infer{\Gamma\vdash x:\tau}{(x\!:\!\tau)\in\Gamma\;\;\text{valid}\;\Gamma}}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   694
  \;\;
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   695
  \colorbox{cream}{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   696
  \smath{\infer{\Gamma\vdash t_1\;t_2:\tau}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   697
        {\Gamma\vdash t_1:\sigma\!\rightarrow\!\tau & \Gamma\vdash t_2:\sigma}}}\\[4mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   698
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   699
  \colorbox{cream}{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   700
  \smath{\infer{\Gamma\vdash \lambda x.t:\sigma\!\rightarrow\!\tau}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   701
        {x\fresh \Gamma & (x\!:\!\sigma)\!::\!\Gamma\vdash t:\tau}}}\\[6mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   702
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   703
  \colorbox{cream}{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   704
  \smath{\infer{\text{valid}\;[]}{}}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   705
  \;\;\;\;
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   706
  \colorbox{cream}{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   707
  \smath{\infer{\text{valid}\;(x\!:\!\tau)\!::\!\Gamma}{x\fresh\Gamma & \text{valid}\;\Gamma}}}\\[8mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   708
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   709
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   710
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   711
  \item If \smath{\Gamma_1\vdash t:\tau} and \smath{\text{valid}\;\Gamma_2},
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   712
  \smath{\Gamma_1\subseteq \Gamma_2} then \smath{\Gamma_2\vdash t:\tau}.$\!\!\!\!\!$
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   713
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   714
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   715
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   716
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   717
  \begin{textblock}{11}(1.3,4)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   718
  \only<2>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   719
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   720
  \draw (0,0) node[fill=cream, text width=10.5cm, thick, draw=red, rounded corners=1mm] (nn)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   721
  {The proof of the weakening lemma is said to be trivial / obvious / routine 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   722
   /\ldots{} in many places.\\[2mm] 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   723
          
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   724
  (I am actually still looking for a place in the literature where a
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   725
  trivial / obvious / routine /\ldots{} proof is spelled out --- I know of
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   726
  proofs by Gallier, McKinna \& Pollack and Pitts, but I would not
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   727
  call them trivial / obvious / routine /\ldots)};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   728
  \end{tikzpicture}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   729
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   730
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   731
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   732
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   733
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   734
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   735
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   736
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   737
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   738
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   739
  \begin{frame}[c]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   740
  \frametitle{Recall: Rule Inductions} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   741
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   742
  \begin{center}\large
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   743
  \colorbox{cream}{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   744
  \smath{\infer[\text{rule}]{\text{concl}}{\text{prem}_1 \ldots \text{prem}_n\;\text{scs}}}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   745
  \end{center}\bigskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   746
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   747
  \begin{tabular}[t]{l}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   748
  Rule Inductions:\\[1mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   749
  \begin{tabular}{l@ {\hspace{2mm}}p{8.4cm}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   750
  1.) & Assume the property for the premises. Assume the side-conditions.\\[1mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   751
  2.) & Show the property for the conclusion.\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   752
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   753
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   754
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   755
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   756
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   757
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   758
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   759
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   760
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   761
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   762
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   763
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   764
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   765
  \frametitle{\LARGE\mbox{Induction Principle for Typing}} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   766
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   767
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   768
  \item The induction principle that comes with the typing definition is as follows:\\[-13mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   769
  \mbox{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   770
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   771
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   772
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   773
  \begin{tabular}{@ {\hspace{-5mm}}c@ {}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   774
  \colorbox{cream}{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   775
  \smath{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   776
  \infer{\Gamma\vdash t:\tau \Rightarrow P\,\Gamma\,t\,\tau}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   777
  {\begin{array}{l}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   778
      \forall \Gamma\,x\,\tau.\,\;(x\!:\!\tau)\in\Gamma\wedge
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   779
         \text{valid}\,\Gamma\Rightarrow P\,\Gamma\,(x)\,\tau\\[4mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   780
      \forall \Gamma\,t_1\,t_2\,\sigma\,\tau.\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   781
      P\,\Gamma\,t_1\,(\sigma\!\rightarrow\!\tau)\wedge
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   782
      P\,\Gamma\,t_2\,\sigma
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   783
      \Rightarrow P\,\Gamma\,(t_1\,t_2)\,\tau\\[4mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   784
      \forall \Gamma\,x\,t\,\sigma\,\tau.\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   785
      x\fresh\Gamma\wedge
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   786
      P\,((x\!:\!\sigma)\!::\!\Gamma)\,t\,\tau
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   787
      \Rightarrow P\,\Gamma (\lambda x.t)\,(\sigma\!\rightarrow\!\tau)\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   788
   \end{array}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   789
  }
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   790
  }}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   791
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   792
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   793
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   794
  \begin{textblock}{4}(9,13.8)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   795
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   796
  \draw (0,0) node[fill=cream, text width=3.9cm, thick, draw=red, rounded corners=1mm] (nn)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   797
  {\small Note the quantifiers!};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   798
  \end{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   799
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   800
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   801
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   802
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   803
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   804
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   805
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   806
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   807
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   808
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   809
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   810
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   811
  \frametitle{\LARGE \mbox{Proof of Weakening Lemma}} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   812
  \mbox{}\\[-18mm]\mbox{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   813
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   814
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   815
  \colorbox{cream}{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   816
  \smath{\infer{\Gamma\vdash \lambda x.t:\sigma\!\rightarrow\!\tau}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   817
        {x\fresh \Gamma & (x\!:\!\sigma)\!::\!\Gamma\vdash t:\tau}}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   818
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   819
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   820
  \begin{minipage}{1.1\textwidth}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   821
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   822
  \item If \smath{\Gamma_1\!\vdash\! t\!:\!\tau} then 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   823
  \smath{\alert<1>{\forall \Gamma_2}.\,\text{valid}\,\Gamma_2 \wedge \Gamma_1\!\subseteq\!
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   824
  \Gamma_2\!\Rightarrow\! \Gamma_2\!\vdash\! t\!:\!\tau}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   825
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   826
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   827
  \pause
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   828
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   829
  \mbox{}\hspace{-5mm}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   830
  \underline{For all \smath{\Gamma_1}, \smath{x}, \smath{t}, \smath{\sigma} and \smath{\tau}}:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   831
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   832
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   833
  \item We know:\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   834
  \smath{\forall \alert<4->{\Gamma_2}.\,\text{valid}\,\alert<4->{\Gamma_2} \wedge 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   835
    (x\!:\!\sigma)\!::\!\Gamma_1\!\subseteq\! \alert<4->{\Gamma_2} \Rightarrow \!\!
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   836
    \tikz[remember picture, baseline=(ea.base)] 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   837
         \node (ea) {\smath{\alert<4->{\Gamma_2}}};\!\vdash\! t\!:\!\tau}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   838
  \smath{x\fresh\Gamma_1}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   839
  \onslide<3->{\smath{\text{valid}\,\Gamma_2 \wedge \Gamma_1\!\subseteq\!\Gamma_2
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   840
                      \only<6->{\Rightarrow (x\!:\!\sigma)\!::\!\Gamma_1\!\subseteq\!
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   841
                                            (x\!:\!\sigma)\!::\!\Gamma_2}}}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   842
  \onslide<3->{\smath{\textcolor{white}{\text{valid}\,\Gamma_2 \wedge \Gamma_1\!\subseteq\!\Gamma_2
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   843
          \Rightarrow} \only<7->{\;\alert{\text{valid}\,(x\!:\!\sigma)\!::\!\Gamma_2\;\;\text{\bf ???}}}}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   844
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   845
  \item We have to show:\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   846
  \only<2>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   847
  \smath{\forall \Gamma_2.\,\text{valid}\,\Gamma_2 \wedge 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   848
  \Gamma_1\!\subseteq\!\Gamma_2 \Rightarrow \Gamma_2\!\vdash\! 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   849
  \lambda x.t\!:\!\sigma\!\rightarrow\!\tau}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   850
  \only<3->{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   851
  \smath{\Gamma_2\!\vdash\!\lambda x.t\!:\!\sigma\!\rightarrow\!\tau}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   852
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   853
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   854
  \end{minipage}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   855
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   856
  \begin{textblock}{4}(10,6.5)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   857
  \only<5->{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   858
  \begin{tikzpicture}[remember picture]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   859
  \draw (0,0) node[fill=cream, text width=4cm, thick, draw=red, rounded corners=1mm] (eb)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   860
  {\smath{\Gamma_2\mapsto (x\!:\!\sigma)\!::\!\Gamma_2}};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   861
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   862
  \path[overlay, ->, ultra thick, red] (eb) edge[out=-90, in=80] (ea);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   863
  \end{tikzpicture}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   864
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   865
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   866
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   867
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   868
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   869
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   870
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   871
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   872
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   873
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   874
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   875
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   876
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   877
  \begin{textblock}{14.8}(0.7,0.5)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   878
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   879
  \item The usual proof of strong normalisation for simply- typed lambda-terms 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   880
  establishes first:\\[1mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   881
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   882
  \colorbox{cream}{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   883
  \begin{tabular}{@ {}p{11cm}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   884
  Lemma: If for all reducible \smath{s}, \smath{t[x\!:=\!s]} is reducible, then
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   885
  \smath{\lambda x.t} is reducible.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   886
  \end{tabular}}\smallskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   887
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   888
  \item Then one shows for a closing (simultaneous) substitution:\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   889
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   890
  \colorbox{cream}{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   891
  \begin{tabular}{@ {}p{11cm}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   892
  Theorem: If \smath{\Gamma\vdash t:\tau}, then for all closing
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   893
  substitutions \smath{\theta} containing reducible terms only, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   894
  \smath{\theta(t)} is reducible.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   895
  \end{tabular}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   896
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   897
  \mbox{}\\[1mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   898
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   899
  Lambda-Case: By ind.~we know \smath{(x\!\mapsto\! s\cup\theta)(t)}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   900
  is reducible with \smath{s} being reducible. This is equal\alert{$^*$} to
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   901
  \smath{(\theta(t))[x\!:=\!s]}. Therefore, we can apply the lemma and get \smath{\lambda
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   902
  x.(\theta(t))} is reducible. Because this is equal\alert{$^*$} to
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   903
  \smath{\theta(\lambda x.t)}, we are done.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   904
  \hfill\footnotesize\alert{$^*$}you have to take a deep breath
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   905
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   906
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   907
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   908
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   909
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   910
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   911
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   912
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   913
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   914
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   915
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   916
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   917
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   918
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   919
  \frametitle{\LARGE \mbox{Proof of Weakening Lemma}} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   920
  \mbox{}\\[-18mm]\mbox{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   921
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   922
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   923
  \colorbox{cream}{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   924
  \smath{\infer{\Gamma\vdash \lambda x.t:\sigma\!\rightarrow\!\tau}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   925
        {x\fresh \Gamma & (x\!:\!\sigma)\!::\!\Gamma\vdash t:\tau}}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   926
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   927
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   928
  \begin{minipage}{1.1\textwidth}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   929
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   930
  \item If \smath{\Gamma_1\!\vdash\! t\!:\!\tau} then 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   931
  \smath{\text{valid}\,\Gamma_2 \wedge \Gamma_1\!\subseteq\!
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   932
  \Gamma_2\!\Rightarrow\! \Gamma_2\!\vdash\! t\!:\!\tau}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   933
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   934
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   935
  \mbox{}\hspace{-5mm}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   936
  \underline{For all \smath{\Gamma_1}, \smath{x}, \smath{t}, \smath{\sigma} and \smath{\tau}}:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   937
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   938
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   939
  \item We know:\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   940
  \smath{\forall \Gamma_2.\,\text{valid}\,\Gamma_2 \wedge 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   941
    (x\!:\!\sigma)\!::\!\Gamma_1\!\subseteq\! \Gamma_2 \Rightarrow \!\!
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   942
    \Gamma_2\!\vdash\! t\!:\!\tau}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   943
  \smath{x\fresh\Gamma_1}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   944
  \begin{tabular}{@ {}ll@ {}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   945
  \smath{\text{valid}\,\Gamma_2 \wedge \Gamma_1\!\subseteq\!\Gamma_2} &
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   946
  \only<2->{\smath{\alert{\Rightarrow (x\!:\!\sigma)\!::\!\Gamma_1\!\subseteq\! 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   947
                           (x\!:\!\sigma)\!::\!\Gamma_2}}}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   948
  \smath{\alert{x\fresh\Gamma_2}} & 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   949
  \only<2->{\smath{\alert{\Rightarrow \text{valid}\,(x\!:\!\sigma)\!::\!\Gamma_2}}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   950
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   951
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   952
  \item We have to show:\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   953
  \smath{\Gamma_2\!\vdash\!\lambda x.t\!:\!\sigma\!\rightarrow\!\tau}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   954
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   955
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   956
  \end{minipage}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   957
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   958
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   959
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   960
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   961
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   962
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   963
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   964
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   965
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   966
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   967
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   968
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   969
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   970
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   971
  \frametitle{SN (Again)} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   972
  \mbox{}\\[-8mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   973
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   974
  \colorbox{cream}{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   975
  \begin{tabular}{@ {}p{10.5cm}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   976
  Theorem: If \smath{\Gamma\vdash t:\tau}, then for all closing
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   977
  substitutions \smath{\theta} containing reducible terms only, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   978
  \smath{\theta(t)} is reducible.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   979
  \end{tabular}}\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   980
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   981
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   982
  \item
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   983
  Since we say that the strong induction should avoid \smath{\theta}, we
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   984
  get the assumption \alert{$x\fresh\theta$} then:\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   985
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   986
  \begin{tabular}{@ {}p{10.5cm}}\raggedright
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   987
  Lambda-Case: By ind.~we know \smath{(x\!\mapsto\! s\cup\theta)(t)} is reducible 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   988
  with
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   989
  \smath{s} being reducible. This is {\bf equal} to
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   990
  \smath{(\theta(t))[x\!:=\!s]}. Therefore, we can apply the lemma and get
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   991
  \smath{\lambda x.(\theta(t))} is reducible. Because this is {\bf equal} to
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   992
  \smath{\theta(\lambda x.t)}, we are done.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   993
  \end{tabular}\smallskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   994
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   995
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   996
  \begin{tabular}{rl}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   997
  \smath{x\fresh\theta\Rightarrow} & 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   998
  \smath{(x\!\mapsto\! s\cup\theta)(t) \;\alert{=}\;(\theta(t))[x\!:=\!s]}\\[1mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   999
  &
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1000
  \smath{\theta(\lambda x.t) \;\alert{=}\; \lambda x.(\theta(t))}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1001
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1002
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1003
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1004
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1005
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1006
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1007
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1008
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1009
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1010
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1011
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1012
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1013
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1014
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1015
  \frametitle{So Far So Good}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1016
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1017
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1018
  \item A Faulty Lemma with the Variable Convention?\\[-8mm]\mbox{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1019
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1020
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1021
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1022
  \begin{block}{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1023
  \color{gray}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1024
  \small%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1025
  {\bf\mbox{}\hspace{-1.5mm}Variable Convention:}\\[1mm] 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1026
  If $M_1,\ldots,M_n$ occur in a certain mathematical context
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1027
  (e.g. definition, proof), then in these terms all bound variables 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1028
  are chosen to be different from the free variables.\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1029
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1030
  \footnotesize\hfill Barendregt in ``The Lambda-Calculus: Its Syntax and Semantics''
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1031
  \end{block}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1032
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1033
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1034
  \mbox{}\\[-18mm]\mbox{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1035
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1036
  \begin{columns}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1037
  \begin{column}[t]{4.7cm}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1038
  Inductive Definitions:\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1039
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1040
  \smath{\infer{\text{concl}}{\text{prem}_1 \ldots \text{prem}_n\;\text{scs}}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1041
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1042
  \end{column}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1043
  \begin{column}[t]{7cm}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1044
  Rule Inductions:\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1045
  \begin{tabular}{l@ {\hspace{2mm}}p{5.5cm}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1046
  1.) & Assume the property for\\ & the premises. Assume \\ & the side-conditions.\\[1mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1047
  2.) & Show the property for\\ & the conclusion.\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1048
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1049
  \end{column}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1050
  \end{columns}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1051
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1052
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1053
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1054
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1055
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1056
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1057
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1058
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1059
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1060
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1061
  \setbeamerfont{itemize/enumerate subbody}{size=\normalsize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1062
  \begin{frame}[sqeeze]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1063
  \frametitle{Faulty Reasoning} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1064
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1065
  %\mbox{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1066
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1067
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1068
  \item Consider the two-place relation \smath{\text{foo}}:\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1069
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1070
  \begin{tabular}{ccc}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1071
  \raisebox{2.5mm}{\colorbox{cream}{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1072
  \smath{\;\infer{x\mapsto x}{}}}}\hspace{2mm}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1073
  &
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1074
  \raisebox{2mm}{\colorbox{cream}{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1075
  \smath{\infer{t_1\;t_2\mapsto t_1\;t_2}{}}}}\hspace{2mm}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1076
  &
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1077
  \colorbox{cream}{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1078
  \smath{\infer{\lambda x.t\mapsto t'}{t\mapsto t'}}}\\[5mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1079
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1080
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1081
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1082
  \pause
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1083
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1084
  \item The lemma we going to prove:\smallskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1085
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1086
  Let \smath{t\mapsto t'}. If \smath{y\fresh t} then \smath{y\fresh t'}.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1087
  \end{center}\bigskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1088
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1089
  \only<3>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1090
  \item Cases 1 and 2 are trivial:\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1091
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1092
  \item If \smath{y\fresh x} then \smath{y\fresh x}.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1093
  \item If \smath{y\fresh t_1\,t_2} then \smath{y\fresh t_1\,t_2}.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1094
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1095
  }
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1096
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1097
  \only<4->{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1098
  \item Case 3:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1099
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1100
  \item We know \tikz[remember picture,baseline=(ta.base)] \node (ta) {\smath{y\fresh \lambda x.t}.}; 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1101
  We have to show \smath{y\fresh t'}.$\!\!\!\!$ 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1102
  \item The IH says: if \smath{y\fresh t} then \smath{y\fresh t'}.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1103
  \item<7,8> So we have \smath{y\fresh t}. Hence \smath{y\fresh t'} by IH. Done!
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1104
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1105
  }
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1106
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1107
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1108
  \begin{textblock}{11.3}(0.7,0.6)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1109
  \only<5-7>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1110
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1111
  \draw (0,0) node[fill=cream, text width=11.2cm, thick, draw=red, rounded corners=1mm] (nn)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1112
  {{\bf Variable Convention:}\\[2mm] 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1113
  \small
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1114
   If $M_1,\ldots,M_n$ occur in a certain mathematical context
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1115
   (e.g. definition, proof), then in these terms all bound variables 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1116
   are chosen to be different from the free variables.\smallskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1117
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1118
  \normalsize
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1119
   {\bf In our case:}\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1120
   The free variables are \smath{y} and \smath{t'}; the bound one is 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1121
   \smath{x}.\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1122
          
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1123
   By the variable convention we conclude that \smath{x\not= y}.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1124
  };
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1125
  \end{tikzpicture}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1126
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1127
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1128
  \begin{textblock}{9.2}(3.6,9)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1129
  \only<6,7>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1130
  \begin{tikzpicture}[remember picture]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1131
  \draw (0,0) node[fill=cream, text width=9cm, thick, draw=red, rounded corners=1mm] (tb)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1132
  {\small\smath{y\!\not\in\! \text{fv}(\lambda x.t) \Longleftrightarrow
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1133
          y\!\not\in\! \text{fv}(t)\!-\!\{x\}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1134
          \stackrel{x\not=y}{\Longleftrightarrow}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1135
          y\!\not\in\! \text{fv}(t)}};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1136
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1137
  \path[overlay, ->, ultra thick, red] (tb) edge[out=-120, in=75] (ta);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1138
  \end{tikzpicture}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1139
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1140
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1141
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1142
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1143
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1144
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1145
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1146
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1147
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1148
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1149
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1150
  \setbeamerfont{itemize/enumerate subbody}{size=\normalsize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1151
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1152
  \frametitle{VC-Compatibility} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1153
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1154
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1155
  \item We introduced two conditions that make the VC safe to use in rule inductions:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1156
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1157
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1158
  \item the relation needs to be \alert{\bf equivariant}, and
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1159
  \item the binder is not allowed to occur in the \alert{\bf support} of 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1160
  the conclusion (not free in the conclusion)\bigskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1161
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1162
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1163
  \item Once a relation satisfies these two conditions, then Nominal
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1164
  Isabelle derives the strong induction principle automatically.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1165
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1166
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1167
  \begin{textblock}{11.3}(0.7,6)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1168
  \only<2>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1169
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1170
  \draw (0,0) node[fill=cream, text width=11cm, thick, draw=red, rounded corners=1mm] (nn)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1171
  {A relation \smath{R} is {\bf equivariant} iff
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1172
  %
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1173
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1174
  \smath{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1175
  \begin{array}[t]{l}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1176
  \forall \pi\,t_1\ldots t_n\\[1mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1177
  \;\;\;\;R\,t_1\ldots t_n \Rightarrow R (\pi\act t_1)\ldots(\pi\act t_n)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1178
  \end{array}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1179
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1180
  %
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1181
  This means the relation has to be invariant under permutative renaming of
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1182
  variables.\smallskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1183
      
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1184
  \small
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1185
  (This property can be checked automatically if the inductive definition is composed of
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1186
  equivariant ``things''.)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1187
  };
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1188
  \end{tikzpicture}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1189
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1190
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1191
  \only<3>{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1192
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1193
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1194
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1195
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1196
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1197
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1198
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1199
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1200
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1201
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1202
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1203
  \frametitle{\mbox{Honest Toil, No Theft!}} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1204
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1205
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1206
  \item The \underline{sacred} principle of HOL:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1207
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1208
  \begin{block}{}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1209
  ``The method of `postulating' what we want has many advantages; they are
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1210
  the same as the advantages of theft over honest toil.''\\[2mm] 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1211
  \hfill{}\footnotesize B.~Russell, Introduction of Mathematical Philosophy
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1212
  \end{block}\bigskip\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1213
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1214
  \item I will show next that the \underline{weak} structural induction 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1215
  principle implies the \underline{strong} structural induction principle.\\[3mm] 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1216
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1217
  \textcolor{gray}{(I am only going to show the lambda-case.)}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1218
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1219
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1220
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1221
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1222
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1223
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1224
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1225
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1226
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1227
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1228
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1229
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1230
  \frametitle{Permutations} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1231
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1232
  A permutation \alert{\bf acts} on variable names as follows:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1233
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1234
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1235
  \begin{tabular}{rcl}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1236
    $\smath{{[]}\act a}$ & $\smath{\dn}$ & $\smath{a}$\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1237
    $\smath{(\swap{a_1}{a_2}\!::\!\pi)\act a}$ & $\smath{\dn}$ &
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1238
    $\smath{\begin{cases}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1239
      a_1 &\text{if $\pi\act a = a_2$}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1240
      a_2 &\text{if $\pi\act a = a_1$}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1241
      \pi\act a &\text{otherwise}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1242
    \end{cases}}$
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1243
   \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1244
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1245
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1246
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1247
  \item $\smath{[]}$ stands for the empty list (the identity permutation), and\smallskip  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1248
  \item $\smath{\swap{a_1}{a_2}\!::\!\pi}$ stands for the permutation $\smath{\pi}$ 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1249
  followed by the swapping $\smath{\swap{a_1}{a_2}}$.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1250
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1251
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1252
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1253
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1254
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1255
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1256
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1257
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1258
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1259
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1260
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1261
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1262
  \frametitle{\Large\mbox{Permutations on Lambda-Terms}} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1263
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1264
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1265
  \item Permutations act on lambda-terms as follows:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1266
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1267
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1268
  \begin{tabular}{rcl}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1269
  $\smath{\pi\act\,x}$ & $\smath{\dn}$ & ``action on variables''\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1270
  $\smath{\pi\act\, (t_1~t_2)}$ & $\smath{\dn}$ & $\smath{(\pi\act t_1)~(\pi\act t_2)}$\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1271
  $\smath{\pi\act(\lambda x.t)}$ & $\smath{\dn}$ & $\smath{\lambda (\pi\act x).(\pi\act t)}$\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1272
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1273
  \end{center}\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1274
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1275
  \item Alpha-equivalence can be defined as:
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1276
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1277
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1278
  \begin{tabular}{c}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1279
  \colorbox{cream}{\smath{\infer{\lambda x.t_1 = \lambda x.t_2}{t_1=t_2}}}\\[3mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1280
  \colorbox{cream}{\smath{\infer{\lambda x.t_1 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1281
                                 \tikz[baseline=-3pt,remember picture] \node (e1) {\alert<2>{$=$}}; 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1282
                                 \lambda y.t_2}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1283
                  {x\not=y & t_1 = \swap{x}{y}\act t_2 & x\fresh t_2}}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1284
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1285
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1286
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1287
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1288
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1289
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1290
  \begin{textblock}{4}(8.3,14.2)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1291
  \only<2>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1292
  \begin{tikzpicture}[remember picture]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1293
  \draw (0,0) node[fill=cream, text width=5.5cm, thick, draw=red, rounded corners=1mm] (e2)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1294
  {\small Notice, I wrote equality here!};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1295
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1296
  \path[overlay, ->, ultra thick, red] (e2) edge[out=180, in=-90] (e1);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1297
  \end{tikzpicture}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1298
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1299
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1300
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1301
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1302
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1303
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1304
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1305
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1306
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1307
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1308
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1309
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1310
  \frametitle{My Claim} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1311
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1312
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1313
  \colorbox{cream}{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1314
  \smath{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1315
  \infer{P\;t}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1316
  {\begin{array}{l}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1317
  \forall x.\;P\;x\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1318
  \forall t_1\,t_2.\;P\;t_1\wedge P\;t_2\Rightarrow P\;(t_1\;t_2)\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1319
  \forall x\,t.\;P\;t\Rightarrow P\;(\lambda x.t)\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1320
  \end{array}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1321
  }}}\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1322
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1323
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1324
  \node at (0,0) [single arrow, single arrow tip angle=140, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1325
                  shape border rotate=270, fill=red,text=white]{implies};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1326
  \end{tikzpicture}\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1327
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1328
  \colorbox{cream}{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1329
  \smath{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1330
  \infer{P c\,t}%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1331
  {\begin{array}{@ {}l@ {}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1332
  \forall x\,c.\;P c\,x\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1333
  \forall t_1\,t_2\,c.\;(\forall d.\,P d\,t_1)\wedge (\forall d.\,P d\,t_2)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1334
  \Rightarrow P c\,(t_1\,t_2)\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1335
  \forall x\,t\,c.\;
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1336
  x\fresh c \wedge (\forall d.\,P d\,t)\Rightarrow P c\,(\lambda x.t)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1337
  \end{array}}}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1338
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1339
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1340
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1341
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1342
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1343
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1344
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1345
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1346
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1347
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1348
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1349
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1350
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1351
  \frametitle{\large\mbox{Proof for the Strong Induction Principle}} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1352
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1353
  \begin{textblock}{14}(1.2,1.7)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1354
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1355
  \item<1-> We prove \alt<1>{\smath{P c\,t}}{\smath{\forall \pi\,c.\;P c\,(\pi\act t)}} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1356
  by induction on \smath{t}.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1357
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1358
  \item<3-> I.e., we have to show \alt<3>{\smath{P c\,(\pi\act(\lambda x.t))}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1359
  {\smath{P c\,\lambda(\pi\act x).(\pi\act t)}}.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1360
 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1361
  \item<5-> We have \smath{\forall \pi\,c.\;P c\,(\pi\act t)} by induction.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1362
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1363
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1364
  \item<6-> Our weaker precondition says that:\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1365
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1366
  \smath{\forall x\,t\,c.\,x\fresh c \wedge (\forall c.\,P c\,t) \Rightarrow P c\,(\lambda x.t)}  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1367
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1368
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1369
  \item<7-> We choose a fresh \smath{y} such that \smath{y\fresh (\pi\act x,\pi\act t,c)}.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1370
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1371
  \item<8-> Now we can use 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1372
  \alt<8>{\smath{\forall c.\;P c\,((\swap{y}{\,\pi\act x}\!::\!\pi)\act t)}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1373
         {\smath{\forall c.\;P c\,(\swap{y}{\,\pi\act x}\act\pi\act t)}} \only<10->{to infer}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1374
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1375
  \only<10->{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1376
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1377
  \smath{P\,c\,\lambda y.(\swap{y}{\,\pi\act x}\act\pi\act t)}  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1378
  \end{center}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1379
 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1380
  \item<11-> However 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1381
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1382
  \smath{\lambda y.(\swap{y}{\,\pi\act x}\act\pi\act t)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1383
         \textcolor{red}{\;=\;}\lambda (\pi\act x).(\pi\act t)}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1384
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1385
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1386
  \item<12> Therefore \smath{P\,c\,\lambda (\pi\act x).(\pi\act t)} and we are done.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1387
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1388
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1389
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1390
  \only<11->{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1391
  \begin{textblock}{9}(7,6)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1392
  \begin{tikzpicture}[remember picture, overlay]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1393
  \draw (0,0) node[fill=cream, text width=7cm, thick, draw=red, rounded corners=1mm] (n2)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1394
  {\centering
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1395
  \smath{\infer{\lambda y.t_1=\lambda x.t_2}{x\not=y & t_1=\swap{x}{y}\act t_2 &
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1396
              y\fresh t_2}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1397
  };
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1398
  \end{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1399
  \end{textblock}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1400
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1401
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1402
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1403
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1404
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1405
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1406
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1407
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1408
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1409
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1410
  \begin{frame}<3->[squeeze]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1411
  \frametitle{Formalisation of LF} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1412
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1413
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1414
  \begin{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1415
  \begin{tabular}{@ {\hspace{-16mm}}lc}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1416
  \mbox{}\\[-6mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1417
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1418
  \textcolor{white}{\raisebox{4mm}{1.~Solution}} &
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1419
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1420
  [node distance=25mm,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1421
   text height=1.5ex,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1422
   text depth=.25ex,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1423
   node1/.style={
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1424
     rectangle, minimum size=10mm, rounded corners=3mm, very thick, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1425
     draw=black!50, top color=white, bottom color=black!20},
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1426
  ]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1427
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1428
  \node (proof) [node1] {\large Proof};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1429
  \node (def)   [node1, left of=proof] {\large$\,\;\dn\;\,$};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1430
  \node (alg)  [node1, right of=proof] {\large\hspace{1mm}Alg.\hspace{1mm}\mbox{}};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1431
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1432
  \draw[->,black!50,line width=2mm] (proof) -- (def);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1433
  \draw[->,black!50,line width=2mm] (proof) -- (alg);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1434
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1435
  \onslide<2->{\draw[white,line width=1mm] (0.1,0.6) -- (-0.1,0.25) -- (0.1,-0.25) -- (-0.1,-0.6);} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1436
  \end{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1437
  \\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1438
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1439
  \onslide<3->{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1440
  \raisebox{4mm}{1st Solution} &
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1441
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1442
  [node distance=25mm,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1443
   text height=1.5ex,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1444
   text depth=.25ex,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1445
   node1/.style={
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1446
     rectangle, minimum size=10mm, rounded corners=3mm, very thick, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1447
     draw=black!50, top color=white, bottom color=black!20},
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1448
   node2/.style={
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1449
     rectangle, minimum size=12mm, rounded corners=3mm, very thick, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1450
     draw=red!70, top color=white, bottom color=red!50!black!20}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1451
  ]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1452
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1453
  \node (proof) [node1] {\large Proof};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1454
  \node (def)   [node2, left of=proof] {\large$\dn{}\!\!^\text{+ex}$};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1455
  \node (alg)   [node1, right of=proof] {\large\hspace{1mm}Alg.\hspace{1mm}\mbox{}};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1456
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1457
  \draw[->,black!50,line width=2mm] (proof) -- (def);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1458
  \draw[->,black!50,line width=2mm] (proof) -- (alg);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1459
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1460
  \end{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1461
  \\[2mm]}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1462
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1463
  \onslide<4->{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1464
  \raisebox{4mm}{\hspace{-1mm}2nd Solution} & 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1465
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1466
  [node distance=25mm,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1467
   text height=1.5ex,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1468
   text depth=.25ex,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1469
   node1/.style={
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1470
     rectangle, minimum size=10mm, rounded corners=3mm, very thick, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1471
     draw=black!50, top color=white, bottom color=black!20},
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1472
   node2/.style={
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1473
     rectangle, minimum size=12mm, rounded corners=3mm, very thick, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1474
     draw=red!70, top color=white, bottom color=red!50!black!20}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1475
  ]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1476
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1477
  \node (proof) [node1] {\large Proof};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1478
  \node (def)   [node1, left of=proof] {\large$\,\;\dn\;\,$};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1479
  \node (alg)   [node2, right of=proof] {\large Alg.$\!^\text{-ex}$};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1480
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1481
  \draw[->,black!50,line width=2mm] (proof) -- (def);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1482
  \draw[->,black!50,line width=2mm] (proof) -- (alg);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1483
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1484
  \end{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1485
  \\[2mm]}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1486
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1487
  \onslide<5->{%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1488
  \raisebox{4mm}{\hspace{-1mm}3rd Solution} & 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1489
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1490
  [node distance=25mm,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1491
   text height=1.5ex,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1492
   text depth=.25ex,
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1493
   node1/.style={
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1494
     rectangle, minimum size=10mm, rounded corners=3mm, very thick, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1495
     draw=black!50, top color=white, bottom color=black!20},
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1496
   node2/.style={
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1497
     rectangle, minimum size=12mm, rounded corners=3mm, very thick, 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1498
     draw=red!70, top color=white, bottom color=red!50!black!20}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1499
  ]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1500
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1501
  \node (proof) [node2] {\large Proof};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1502
  \node (def)   [node1, left of=proof] {\large$\,\;\dn\;\,$};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1503
  \node (alg)   [node1, right of=proof] {\large\hspace{1mm}Alg.\hspace{1mm}\mbox{}};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1504
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1505
  \draw[->,black!50,line width=2mm] (proof) -- (def);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1506
  \draw[->,black!50,line width=2mm] (proof) -- (alg);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1507
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1508
  \end{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1509
  \\}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1510
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1511
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1512
  \end{center}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1513
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1514
  \begin{textblock}{3}(13.2,5.1)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1515
  \onslide<3->{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1516
  \begin{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1517
  \node at (0,0) [single arrow, shape border rotate=270, fill=red,text=white]{2h};
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1518
  \end{tikzpicture}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1519
  }
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1520
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1521
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1522
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1523
  \begin{textblock}{13}(1.4,15)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1524
  \only<3->{\footnotesize (each time one needs to check $\sim$31pp~of informal paper proofs)}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1525
  \end{textblock}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1526
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1527
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1528
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1529
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1530
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1531
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1532
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1533
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1534
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1535
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1536
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1537
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1538
  \frametitle{Conclusions} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1539
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1540
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1541
  \item The Nominal Isabelle automatically derives the strong structural
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1542
  induction principle for \underline{\bf all} nominal datatypes (not just the 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1543
  lambda-calculus);
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1544
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1545
  \item also for rule inductions (though they have to satisfy the vc-condition).
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1546
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1547
  \item They are easy to use: you just have to think carefully what the variable
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1548
  convention should be.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1549
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1550
  \item We can explore the \colorbox{black}{\textcolor{white}{dark}} corners 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1551
  of the variable convention: when and where it can be used safely.
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1552
  
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1553
  \item<2> \alert{\bf Main Point:} Actually these proofs using the
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1554
  variable convention are all trivial / obvious / routine\ldots {\bf provided} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1555
  you use Nominal Isabelle. ;o)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1556
 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1557
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1558
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1559
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1560
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1561
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1562
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1563
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1564
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1565
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1566
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1567
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1568
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1569
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1570
  \frametitle{\begin{tabular}{c}Nominal Meets\\[-2mm] Automata Theory\end{tabular}} 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1571
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1572
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1573
  \item<1-> So what?\bigskip\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1574
 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1575
  \item<2-> I can give you a good argument why regular expressions
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1576
  are much, much better than automata. \textcolor{darkgray}{(over dinner?)}\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1577
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1578
  \item<3-> Nominal automata?\bigskip\bigskip\medskip
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1579
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1580
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1581
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1582
  \onslide<2->{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1583
  \footnotesize\textcolor{darkgray}{A Formalisation of the Myhill-Nerode Theorem based on
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1584
  Regular Expressions (by Wu, Zhang and Urban)}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1585
  }
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1586
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1587
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1588
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1589
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1590
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1591
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1592
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1593
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1594
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1595
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1596
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1597
  \begin{frame}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1598
  \frametitle{Quiz}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1599
  %%%\small
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1600
  \mbox{}\\[-9mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1601
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1602
  Imagine\ldots\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1603
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1604
  \begin{tabular}{@ {\hspace{1cm}}l}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1605
  \textcolor{blue}{Var\;``name''} \\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1606
  \textcolor{blue}{App\;``lam''\;''lam''}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1607
  \textcolor{blue}{Lam\;``\flqq{}name\frqq{}lam''} \\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1608
  \textcolor{red}{Foo\;``\flqq{}name\frqq{}\flqq{}name\frqq{}lam''\;``
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1609
                  \flqq{}name\frqq{}\flqq{}name\frqq{}lam''}\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1610
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1611
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1612
  That means roughly:\\[2mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1613
 
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1614
  \begin{tabular}{@ {\hspace{1cm}}l}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1615
  \alert{Foo\;($\lambda x.y.t_1$)\;($\lambda z.u.t_2$)}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1616
  \end{tabular}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1617
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1618
  \begin{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1619
  \item What does the variable convention look like for \alert{Foo}?
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1620
  \item What does the clause for capture-avoiding substitution look like?
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1621
  \end{itemize}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1622
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1623
  \footnotesize
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1624
  Answers: Download Nominal Isabelle and try it out\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1625
  \textcolor{white}{Answers:} http://isabelle.in.tum.de/nominal\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1626
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1627
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1628
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1629
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1630
text_raw {*
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1631
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1632
  \mode<presentation>{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1633
  \begin{frame}<1>[b]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1634
  \frametitle{
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1635
  \begin{tabular}{c}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1636
  \mbox{}\\[13mm]
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1637
  \alert{\LARGE Thank you very much!}\\
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1638
  \alert{\Large Questions?}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1639
  \end{tabular}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1640
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1641
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1642
  \end{frame}}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1643
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1644
*}
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1645
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1646
(*<*)
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1647
end
878de0084b62 added fs and pt for multisets
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
  1648
(*>*)