Slides/slides01.tex
author Chengsong
Mon, 10 Jul 2023 14:32:48 +0100
changeset 663 0d1e68268d0f
parent 201 2585e2a7a7ab
permissions -rw-r--r--
more explanation for the name "closed form" and their intuition
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
     1
\documentclass[dvipsnames,14pt,t]{beamer}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     2
\usepackage{slides}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
     3
\usepackage{langs}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     4
\usepackage{graph}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
     5
\usepackage{soul}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
     6
\usepackage{data}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
     7
\usepackage{proof}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     8
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     9
% beamer stuff 
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    10
\renewcommand{\slidecaption}{Canterbury, 22.2.2016}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    11
\newcommand{\bl}[1]{\textcolor{blue}{#1}}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    12
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    13
\begin{document}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    14
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    15
\begin{frame}[t]
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    16
\frametitle{%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    17
  \begin{tabular}{@ {}c@ {}}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    18
  \\
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    19
  \Large POSIX Lexing with Derivatives\\[-1.5mm] 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    20
  \Large of Regular Expressions\\[-1mm] 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    21
  %\normalsize Or, How to Find Bugs with the\\[-5mm] 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    22
  %\normalsize Isabelle Theorem Prover
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    23
  \end{tabular}}\bigskip\bigskip\bigskip
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    24
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    25
  \normalsize
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    26
  \begin{center}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    27
  \begin{tabular}{c}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    28
  \small Christian Urban\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    29
  \small King's College London\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    30
  \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    31
  \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    32
  Joint work with Fahad Ausaf and Roy Dyckhoff
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    33
  \end{tabular}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    34
  \end{center}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    35
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    36
\end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    37
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    38
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    39
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    40
  \begin{frame}[c]
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    41
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    42
  \begin{center}
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
    43
  \includegraphics[scale=0.2]{pics/isabelle.png}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    44
  \end{center}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    45
  \mbox{}\\[-20mm]\mbox{}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    46
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    47
  \begin{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    48
  \item Isabelle interactive theorem prover; 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    49
  some proofs are automatic -- most however need help
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    50
  \item the learning curve is steep; you often have to fight the 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    51
  theorem prover\ldots no different in other ITPs
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    52
  \end{itemize}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    53
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    54
  \end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    55
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    56
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    57
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    58
\begin{frame}[c]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    59
\frametitle{Why Bother?}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    60
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    61
Surely regular expressions must have been implemented and 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    62
studied to death, no?
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    63
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    64
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    65
\begin{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    66
\begin{axis}[
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    67
    xlabel={{\tt a}s},
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    68
    ylabel={time in secs},
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    69
    enlargelimits=false,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    70
    xtick={0,5,...,30},
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    71
    xmax=30,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    72
    ymax=35,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    73
    ytick={0,5,...,30},
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    74
    scaled ticks=false,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    75
    axis lines=left,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    76
    width=8cm,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    77
    height=6cm, 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    78
    legend entries={Python,Ruby},  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    79
    legend pos=north west,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    80
    legend cell align=left  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    81
]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    82
\addplot[blue,mark=*, mark options={fill=white}] 
199
193a9fdcedd6 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 197
diff changeset
    83
  table {data/re-python.data};
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    84
\addplot[brown,mark=pentagon*, mark options={fill=white}] 
199
193a9fdcedd6 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 197
diff changeset
    85
  table {data/re-ruby.data};  
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    86
\end{axis}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    87
\end{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    88
\end{center}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    89
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    90
evil regular expressions: \bl{$({\tt a}?)^n \cdot {\tt a}^n$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    91
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    92
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    93
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    94
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    95
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    96
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    97
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
    98
\frametitle{\Large Isabelle Theorem Prover}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    99
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   100
\begin{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   101
\item started to use Isabelle after my PhD (in 2000)
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   102
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   103
\item the thesis included a rather complicated 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   104
  ``pencil-and-paper'' proof for a 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   105
  termination argument (sort of $\lambda$-calculus)\medskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   106
 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   107
\item me, my supervisor, the examiners did not find any problems\medskip 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   108
 \begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   109
  \begin{tabular}{@ {}c@ {}}
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
   110
  \includegraphics[scale=0.38]{pics/barendregt.jpg}\\[-2mm]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   111
  \footnotesize Henk Barendregt
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   112
  \end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   113
  \hspace{2mm}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   114
  \begin{tabular}{@ {}c@ {}}
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
   115
  \includegraphics[scale=0.20]{pics/andrewpitts.jpg}\\[-2mm]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   116
  \footnotesize Andrew Pitts
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   117
  \end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   118
  \end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   119
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   120
\item people were building their work on my result      
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   121
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   122
\end{itemize}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   123
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   124
\end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   125
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   126
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   127
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   128
\begin{frame}[t]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   129
\frametitle{\Large Nominal Isabelle}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   130
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   131
\begin{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   132
\item implemented a package for the Isabelle prover 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   133
in order to reason conveniently about binders 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   134
 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   135
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   136
\large\bl{$\lambda \alert{x}.\,M$} \hspace{10mm}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   137
\bl{$\forall \alert{x}.\,P\,x$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   138
\end{center}\bigskip\bigskip\bigskip\bigskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   139
\bigskip\bigskip\bigskip\pause\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   140
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   141
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   142
\item when finally being able to formalise the proof from my PhD, I found that the main result
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   143
      (termination) is correct, but a central lemma needed to
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   144
      be generalised
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   145
\end{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   146
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   147
\only<2->{
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   148
\begin{textblock}{3}(13,5)
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
   149
\includegraphics[scale=0.33]{pics/skeleton.jpg}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   150
\end{textblock}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   151
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   152
\begin{textblock}{3}(5.3,7)
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   153
\onslide<1->{
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   154
\begin{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   155
\node at (0,0) [single arrow, shape border rotate=90, fill=red,text=red]{\mbox{a}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   156
\end{tikzpicture}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   157
\end{textblock}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   158
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   159
\begin{textblock}{3}(8.7,7)
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   160
\onslide<1->{
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   161
\begin{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   162
\node at (0,0) [single arrow, shape border rotate=90, fill=red,text=red]{\mbox{a}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   163
\end{tikzpicture}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   164
\end{textblock}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   165
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   166
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   167
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   168
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   169
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   170
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   171
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   172
\frametitle{\Large Variable Convention}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   173
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   174
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   175
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   176
\begin{bubble}[10cm]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   177
  \color{gray}  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   178
  \small
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   179
  {\bf\mbox{}Variable Convention:}\\[1mm] 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   180
  If $M_1,\ldots,M_n$ occur in a certain mathematical context
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   181
  (e.g. definition, proof), then in these terms all bound variables 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   182
  are chosen to be different from the free variables.\\[2mm]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   183
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   184
  \footnotesize\hfill Barendregt in ``The Lambda-Calculus: Its Syntax and Semantics''
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   185
\end{bubble}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   186
\end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   187
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   188
\mbox{}\\[-8mm]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   189
\begin{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   190
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   191
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   192
\item instead of proving a property for \alert{\bf all} bound
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   193
variables, you prove it only for \alert{\bf some}\ldots?
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   194
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   195
\item feels like it is used in 90\% of papers in PT and FP
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   196
(9.9\% use de-Bruijn indices)
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   197
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   198
\item this is mostly OK, but in some corner-cases you can use it
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   199
to prove \alert{\bf false}\ldots we fixed this!
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   200
\end{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   201
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   202
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   203
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   204
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   205
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   206
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   207
\frametitle{}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   208
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   209
\begin{tabular}{c@ {\hspace{2mm}}c}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   210
\\[6mm]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   211
\begin{tabular}{c}
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
   212
\includegraphics[scale=0.11]{pics/harper.jpg}\\[-2mm]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   213
{\footnotesize Bob Harper}\\[-2mm]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   214
{\footnotesize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   215
\end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   216
\begin{tabular}{c}
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
   217
\includegraphics[scale=0.37]{pics/pfenning.jpg}\\[-2mm]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   218
{\footnotesize Frank Pfenning}\\[-2mm]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   219
{\footnotesize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   220
\end{tabular} &
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   221
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   222
\begin{tabular}{p{6cm}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   223
\raggedright
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   224
{published a proof in\\ {\bf ACM Transactions on Computational Logic}, 2005,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   225
$\sim$31pp}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   226
\end{tabular}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   227
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   228
\\[0mm]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   229
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   230
\begin{tabular}{c}
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
   231
\includegraphics[scale=0.36]{pics/appel.jpg}\\[-2mm] 
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   232
{\footnotesize Andrew Appel}\\[-2.5mm]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   233
{\footnotesize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   234
\end{tabular} &
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   235
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   236
\begin{tabular}{p{6cm}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   237
\raggedright
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   238
{relied on their proof in a\\ {\bf security} critical application}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   239
\end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   240
\end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   241
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   242
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   243
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   244
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   245
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   246
\begin{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   247
\frametitle{Proof-Carrying Code}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   248
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   249
\begin{textblock}{10}(2.5,2.2)
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   250
\begin{block}{Idea:}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   251
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   252
\begin{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   253
\draw[help lines,cream] (0,0.2) grid (8,4);
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   254
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   255
\draw[line width=1mm, red] (5.5,0.6) rectangle (7.5,4);
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   256
\node[anchor=base] at (6.5,2.8) 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   257
     {\small\begin{tabular}{@ {}p{1.9cm}@ {}}\centering  user: untrusted code\end{tabular}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   258
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   259
\draw[line width=1mm, red] (0.1,0.6) rectangle (2.1,4);
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   260
  \node[anchor=base] at (1.1,2.3) 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   261
     {\small\begin{tabular}{@ {}p{1.9cm}@ {}}\centering  developer ---\\ web server\end{tabular}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   262
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   263
\onslide<3->{
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   264
  \draw[line width=1mm, red, fill=red] (5.5,0.6) rectangle (7.5,1.8);
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   265
  \node[anchor=base,white] at (6.5,1.1) 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   266
     {\small\begin{tabular}{@ {}p{1.9cm}@ {}}\bf\centering proof- checker\end{tabular}};}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   267
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   268
  \node at (3.6,3.0) [single arrow, fill=red,text=white, 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   269
                      minimum height=3.4cm]{\bf code};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   270
  \onslide<2->{
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   271
  \node at (3.6,1.3) [single arrow, fill=red,text=white, 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   272
                      minimum height=3.4cm]{\bf certificate};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   273
  \node at (3.6,1.9) {\small\color{gray}{\mbox{}\hspace{-1mm}a proof in LF}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   274
}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   275
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   276
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   277
\end{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   278
\end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   279
\end{block}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   280
\end{textblock}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   281
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   282
\begin{textblock}{15}(2,12)
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   283
\small
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   284
\begin{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   285
\item<3-> Appel's checker is $\sim$2700 lines of code (1865 loc of\\ LF definitions; 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   286
803 loc in C including 2 library functions)\\[-3mm]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   287
\item<3-> 167 loc in C implement a type-checker
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   288
\end{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   289
\end{textblock}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   290
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   291
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   292
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   293
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   294
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   295
  \begin{frame}<2->[squeeze]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   296
  \frametitle{} 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   297
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   298
  \begin{columns}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   299
  \tikzstyle{every node}=[node distance=25mm,text height=1.5ex, text depth=.25ex]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   300
  \tikzstyle{node1}=[rectangle, minimum size=10mm, rounded corners=3mm, very thick, 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   301
                     draw=black!50, top color=white, bottom color=black!20]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   302
  \tikzstyle{node2}=[rectangle, minimum size=12mm, rounded corners=3mm, very thick, 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   303
                     draw=red!70, top color=white, bottom color=red!50!black!20]
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   304
  
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   305
  \begin{column}{0.8\textwidth}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   306
  \begin{textblock}{0}(1,2)
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   307
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   308
  \begin{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   309
  \matrix[ampersand replacement=\&,column sep=7mm, row sep=5mm]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   310
  { \&[-10mm] 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   311
    \node (def1)   [node1] {\large\hspace{1mm}Spec\hspace{1mm}\mbox{}}; \&
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   312
    \node (proof1) [node1] {\large Proof}; \&
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   313
    \node (alg1)   [node1] {\large\hspace{1mm}Alg\hspace{1mm}\mbox{}}; \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   314
    
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   315
    \onslide<4->{\node {\begin{tabular}{c}\small 1st\\[-2.5mm] \footnotesize solution\end{tabular}};} \&
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   316
    \onslide<4->{\node (def2)   [node2] {\large Spec$^\text{+ex}$};} \&
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   317
    \onslide<4->{\node (proof2) [node1] {\large Proof};} \&
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   318
    \onslide<4->{\node (alg2)   [node1] {\large\hspace{1mm}Alg\hspace{1mm}\mbox{}};} \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   319
     
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   320
    \onslide<5->{\node {\begin{tabular}{c}\small 2nd\\[-2.5mm] \footnotesize solution\end{tabular}};} \&
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   321
    \onslide<5->{\node (def3)   [node1] {\large\hspace{1mm}Spec\hspace{1mm}\mbox{}};} \&
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   322
    \onslide<5->{\node (proof3) [node1] {\large Proof};} \&
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   323
    \onslide<5->{\node (alg3)   [node2] {\large Alg$^\text{-ex}$};} \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   324
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   325
    \onslide<6->{\node {\begin{tabular}{c}\small 3rd\\[-2.5mm] \footnotesize solution\end{tabular}};} \&
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   326
    \onslide<6->{\node (def4)   [node1] {\large\hspace{1mm}Spec\hspace{1mm}\mbox{}};} \&
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   327
    \onslide<6->{\node (proof4) [node2] {\large\hspace{1mm}Proof\hspace{1mm}};} \&
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   328
    \onslide<6->{\node (alg4)   [node1] {\large\hspace{1mm}Alg\hspace{1mm}\mbox{}};} \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   329
  };
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   330
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   331
  \draw[->,black!50,line width=2mm] (proof1) -- (def1);
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   332
  \draw[->,black!50,line width=2mm] (proof1) -- (alg1);
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   333
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   334
  \onslide<4->{\draw[->,black!50,line width=2mm] (proof2) -- (def2);}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   335
  \onslide<4->{\draw[->,black!50,line width=2mm] (proof2) -- (alg2);}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   336
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   337
  \onslide<5->{\draw[->,black!50,line width=2mm] (proof3) -- (def3);}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   338
  \onslide<5->{\draw[->,black!50,line width=2mm] (proof3) -- (alg3);}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   339
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   340
  \onslide<6->{\draw[->,black!50,line width=2mm] (proof4) -- (def4);}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   341
  \onslide<6->{\draw[->,black!50,line width=2mm] (proof4) -- (alg4);}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   342
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   343
  \onslide<3->{\draw[white,line width=1mm] (1.1,3.2) -- (0.9,2.85) -- (1.1,2.35) -- (0.9,2.0);} 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   344
  \end{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   345
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   346
  \end{textblock}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   347
  \end{column}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   348
  \end{columns}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   349
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   350
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   351
  \begin{textblock}{3}(12,3.6)
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   352
  \onslide<4->{
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   353
  \begin{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   354
  \node at (0,0) [single arrow, shape border rotate=270, fill=red,text=white]{2h};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   355
  \end{tikzpicture}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   356
  \end{textblock}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   357
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   358
  \begin{textblock}{0}(0.4,12.8)
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   359
  \onslide<6->{
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   360
  \begin{bubble}[11cm]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   361
  \small Each time one needs to check $\sim$31pp~of 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   362
  informal paper proofs.
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   363
  You have to be able to keep definitions 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   364
  and proofs consistent.
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   365
  \end{bubble}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   366
  \end{textblock}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   367
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   368
  \end{frame}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   369
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   370
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   371
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   372
%  \begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   373
%  \frametitle{\Large Lessons Learned}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   374
%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   375
%  \begin{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   376
%  \item using a theorem prover we were able to keep a large 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   377
%  proof consistent with changes in the definitions\bigskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   378
%  \item it took us some 10 days to get to the error\ldots
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   379
%  probably the same time Harper and Pfenning needed to \LaTeX{}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   380
%  their paper\bigskip 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   381
%  \item once there, we ran circles around them
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   382
%  \end{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   383
%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   384
%  \end{frame}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   385
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   386
  
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   387
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   388
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   389
  \begin{frame}[c]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   390
  \frametitle{Real-Time Scheduling} 
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   391
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   392
  \begin{textblock}{11}(1,3)
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   393
  \begin{tabular}{@{\hspace{-10mm}}l}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   394
  \begin{tikzpicture}[scale=1.1]
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   395
  \node at (-2.5,-1.5) {\textcolor{white}{a}};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   396
  \node at (8,4) {\textcolor{white}{a}};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   397
  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   398
    
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   399
  \only<1>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   400
   \draw[fill, blue!50] (1,0) rectangle (3,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   401
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   402
  \only<2>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   403
   \draw[fill, blue!50] (1,0) rectangle (2,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   404
   \draw[fill, blue!50] (3,0) rectangle (5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   405
   \draw[fill, blue!100] (2,3) rectangle (3,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   406
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   407
  \only<3>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   408
   \draw[fill, blue!50] (1,0) rectangle (2,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   409
   \draw[fill, blue!50] (3,0) rectangle (4.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   410
   \draw[fill, blue!50] (5.5,0) rectangle (6,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   411
   \draw[fill, blue!100] (2,3) rectangle (3,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   412
   \draw[fill, blue!100] (4.5,3) rectangle (5.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   413
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   414
  \only<4>{
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   415
   \node at (2.5,0.9) {\small locks a resource};
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   416
   \draw[fill, blue!50] (1,0) rectangle (2,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   417
   \draw[blue!50, very thick] (2,0) rectangle (4,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   418
   \draw[blue!100, very thick] (2,3) rectangle (3, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   419
   \draw[red, <-, line width = 2mm] (2,-0.1) -- (2, -1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   420
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   421
  \only<5>{
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   422
   \node at (2.5,0.9) {\small locks a resource};
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   423
   \draw[fill, blue!50] (1,0) rectangle (4,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   424
   \draw[blue!100, fill] (4,3) rectangle (5, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   425
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   426
  \only<6>{
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   427
   \node at (2.5,0.9) {\small locks a resource};
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   428
   \draw[fill, blue!50] (1,0) rectangle (2,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   429
   \draw[blue!50, very thick] (2,0) rectangle (4,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   430
   \draw[blue!100, very thick] (2,3) rectangle (3, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   431
   \draw[red, <-, line width = 2mm] (2,-0.1) -- (2, -1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   432
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   433
  \only<7>{
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   434
   \node at (2.5,0.9) {\small locks a resource};
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   435
   \draw[fill, blue!50] (1,0) rectangle (2.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   436
   \draw[blue!50, very thick] (2.5,0) rectangle (4,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   437
   \draw[blue!100, very thick] (2.5,3) rectangle (3.5, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   438
   \draw[red, <-, line width = 2mm] (2.5,-0.1) -- (2.5, -1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   439
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   440
  \only<8>{
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   441
   \node at (2.5,0.9) {\small locks a resource}; 
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   442
   \draw[fill, blue!50] (1,0) rectangle (2.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   443
   \draw[blue!50, very thick] (2.5,0) rectangle (4,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   444
   \draw[blue!100, very thick] (2.5,3) rectangle (3.5, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   445
   \draw[blue!100, very thick] (2.5,3) rectangle (3.5, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   446
   \draw[red, fill] (2.5,1.5) rectangle (3.5,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   447
   \draw[red, <-, line width = 2mm] (2.5,-0.1) -- (2.5, -1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   448
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   449
  \only<9>{
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   450
   \node at (2.5,0.9) {\small locks a resource}; 
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   451
   \draw[fill, blue!50] (1,0) rectangle (2.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   452
   \draw[blue!50, very thick] (3.5,0) rectangle (5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   453
   \draw[blue!100, very thick] (3.5,3) rectangle (4.5, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   454
   \draw[red, fill] (2.5,1.5) rectangle (3.5,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   455
   \draw[red, <-, line width = 2mm] (3.5,-0.1) -- (3.5, -1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   456
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   457
  \only<10>{
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   458
   \node at (2.5,0.9) {\small locks a resource}; 
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   459
   \draw[fill, blue!50] (1,0) rectangle (2.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   460
   \draw[blue!50, very thick] (3.5,0) rectangle (5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   461
   \draw[blue!100, very thick] (3.5,3) rectangle (4.5, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   462
   \draw[red, fill] (2.5,1.5) rectangle (3.5,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   463
   \draw[red, fill] (3.55,1.5) rectangle (4.5,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   464
   \draw[red, <-, line width = 2mm] (3.5,-0.1) -- (3.5, -1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   465
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   466
  \only<11>{
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   467
   \node at (2.5,0.9) {\small locks a resource};
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   468
   \draw[fill, blue!50] (1,0) rectangle (2.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   469
   \draw[blue!50, very thick] (4.5,0) rectangle (6,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   470
   \draw[blue!100, very thick] (4.5,3) rectangle (5.5, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   471
   \draw[red, fill] (2.5,1.5) rectangle (3.5,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   472
   \draw[red, fill] (3.55,1.5) rectangle (4.5,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   473
   \draw[red, <-, line width = 2mm] (4.5,-0.1) -- (4.5, -1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   474
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   475
  \only<12>{
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   476
   \node at (2.5,0.9) {\small locks a resource}; 
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   477
   \draw[fill, blue!50] (1,0) rectangle (2.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   478
   \draw[blue!50, very thick] (5.5,0) rectangle (7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   479
   \draw[blue!100, very thick] (5.5,3) rectangle (6.5, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   480
   \draw[red, fill] (2.5,1.5) rectangle (3.5,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   481
   \draw[red, fill] (3.55,1.5) rectangle (4.5,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   482
   \draw[red, fill] (4.55,1.5) rectangle (5.5,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   483
   \draw[red, <-, line width = 2mm] (5.5,-0.1) -- (5.5, -1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   484
   \node [anchor=base] at (6.3, 1.8) {\Large\ldots};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   485
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   486
  \only<13>{
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   487
   \node at (2.5,0.9) {\small locks a resource}; 
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   488
   \draw[fill, blue!50] (1,0) rectangle (2,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   489
   \draw[blue!50, very thick] (2,0) rectangle (4,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   490
   \draw[blue!100, very thick] (2,3) rectangle (3, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   491
   \draw[red, <-, line width = 2mm] (2,-0.1) -- (2, -1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   492
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   493
  \only<14>{
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   494
   \node at (2.5,3.9) {\small locks a resource}; 
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   495
   \draw[fill, blue!50] (1,0) rectangle (2,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   496
   \draw[blue!50, fill] (2,3) rectangle (4,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   497
   \draw[blue!100, very thick] (4,3) rectangle (5, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   498
   \draw[blue!50, ->, line width = 2mm] (2,1) -- (2, 2.5);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   499
   \draw[red, <-, line width = 2mm] (2,-0.1) -- (2, -1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   500
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   501
  \only<15>{
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   502
   \node at (2.5,3.9) {\small locks a resource};  
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   503
   \draw[fill, blue!50] (1,0) rectangle (2,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   504
   \draw[blue!50, fill] (2,3) rectangle (4,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   505
   \draw[blue!100, very thick] (4,3) rectangle (5, 3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   506
   \draw[red, <-, line width = 2mm] (2.5,-0.1) -- (2.5, -1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   507
   \draw[red, very thick] (2.5,1.5) rectangle (3.5,2.1); 
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   508
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   509
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   510
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   511
  \draw[very thick,->](0,0) -- (8,0);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   512
  \node [anchor=base] at (8, -0.3) {\scriptsize time};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   513
  \node [anchor=base] at (0, -0.3) {\scriptsize 0};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   514
  \node [anchor=base] at (-1.2, 0.2) {\small low priority};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   515
  \only<2->{\node [anchor=base] at (-1.2, 3.2) {\small high priority};}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   516
  \only<8->{\node [anchor=base] at (-1.5, 1.7) {\small medium pr.};}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   517
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   518
  \end{tikzpicture}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   519
  \end{tabular}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   520
  \end{textblock}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   521
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   522
  \begin{textblock}{0}(2.5,13)%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   523
  \small
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   524
  \onslide<3->{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   525
  \begin{bubble}[8cm]%
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   526
  RT-Scheduling: You want to avoid that a 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   527
  high-priority process is starved indefinitely.
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   528
  \end{bubble}}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   529
  \end{textblock}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   530
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   531
  \end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   532
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   533
  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   534
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   535
  \begin{frame}[c]
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   536
  \frametitle{\Large Priority Inheritance Scheduling}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   537
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   538
  \begin{itemize}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   539
  \item Let a low priority process \bl{$L$} temporarily inherit 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   540
    the high priority of \bl{$H$} until \bl{$L$} leaves the critical 
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   541
    section unlocking the resource.\bigskip
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   542
  \item Once the resource is unlocked, \bl{$L$} ``returns to its original 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   543
    priority level.''\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   544
    \mbox{}\hfill\footnotesize
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   545
    \begin{tabular}{p{6cm}@{}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   546
    L.~Sha, R.~Rajkumar, and J.~P.~Lehoczky. 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   547
    {\it Priority Inheritance Protocols: An Approach to 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   548
    Real-Time Synchronization}. IEEE Transactions on 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   549
    Computers, 39(9):1175–1185, 1990
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   550
    \end{tabular}\bigskip\normalsize\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   551
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   552
  \item Proved correct, reviewed in a respectable journal....what could possibly be wrong?
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   553
    
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   554
  \end{itemize}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   555
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   556
  \end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   557
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   558
  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   559
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   560
  \begin{frame}[c]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   561
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   562
  \begin{textblock}{11}(1,3)
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   563
  \begin{tabular}{@{\hspace{-10mm}}l}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   564
  \begin{tikzpicture}[scale=1.1]
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   565
  \node at (-2.5,-1.5) {\textcolor{white}{a}};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   566
  \node at (8,4) {\textcolor{white}{a}};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   567
  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   568
  \only<1>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   569
    \draw[fill, blue!50] (1,0) rectangle (6,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   570
    \node at (1.5,0.9) {\small $A_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   571
    \node at (2.0,0.9) {\small $B_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   572
    \node at (3.5,0.9) {\small $A_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   573
    \node at (5.7,0.9) {\small $B_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   574
    \draw[very thick,blue!100] (1.5,0) -- (1.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   575
    \draw[very thick,blue!100] (2.0,0) -- (2.0,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   576
    \draw[very thick,blue!100] (3.5,0) -- (3.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   577
    \draw[very thick,blue!100] (5.7,0) -- (5.7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   578
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   579
  \only<2>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   580
    \draw[fill, blue!50] (1,0) rectangle (3,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   581
    \draw[very thick, blue!50] (3,0) rectangle (6,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   582
    \node at (1.5,0.9) {\small $A_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   583
    \node at (2.0,0.9) {\small $B_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   584
    \node at (3.5,0.9) {\small $A_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   585
    \node at (5.7,0.9) {\small $B_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   586
    \draw[very thick,blue!100] (1.5,0) -- (1.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   587
    \draw[very thick,blue!100] (2.0,0) -- (2.0,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   588
    \draw[very thick,blue!100] (3.5,0) -- (3.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   589
    \draw[very thick,blue!100] (5.7,0) -- (5.7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   590
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   591
  \only<3>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   592
    \draw[fill, blue!50] (1,0) rectangle (3,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   593
    \draw[very thick, blue!50] (3,0) rectangle (6,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   594
    \node at (1.5,0.9) {\small $A_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   595
    \node at (2.0,0.9) {\small $B_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   596
    \node at (3.5,0.9) {\small $A_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   597
    \node at (5.7,0.9) {\small $B_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   598
    \draw[very thick,blue!100] (1.5,0) -- (1.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   599
    \draw[very thick,blue!100] (2.0,0) -- (2.0,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   600
    \draw[very thick,blue!100] (3.5,0) -- (3.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   601
    \draw[very thick,blue!100] (5.7,0) -- (5.7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   602
    \draw[very thick,blue!100] (3,3) rectangle (4,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   603
    \node at (3.5,3.3) {\small $A$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   604
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   605
  \only<4>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   606
    \draw[fill, blue!50] (1,0) rectangle (3,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   607
    \draw[very thick, blue!50] (3,0) rectangle (6,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   608
    \node at (1.5,0.9) {\small $A_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   609
    \node at (2.0,0.9) {\small $B_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   610
    \node at (3.5,0.9) {\small $A_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   611
    \node at (5.7,0.9) {\small $B_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   612
    \draw[very thick,blue!100] (1.5,0) -- (1.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   613
    \draw[very thick,blue!100] (2.0,0) -- (2.0,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   614
    \draw[very thick,blue!100] (3.5,0) -- (3.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   615
    \draw[very thick,blue!100] (5.7,0) -- (5.7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   616
    \draw[very thick,blue!100] (3,3) rectangle (4,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   617
    \node at (3.5,3.3) {\small $A$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   618
    \draw[very thick,blue!100] (4,3) rectangle (5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   619
    \node at (4.5,3.3) {\small $B$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   620
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   621
  \only<5>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   622
    \draw[fill, blue!50] (1,0) rectangle (3,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   623
    \draw[very thick, blue!50] (3,3) rectangle (6,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   624
    \node at (1.5,0.9) {\small $A_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   625
    \node at (2.0,0.9) {\small $B_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   626
    \node at (3.5,3.9) {\small $A_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   627
    \node at (5.7,3.9) {\small $B_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   628
    \draw[very thick,blue!100] (1.5,0) -- (1.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   629
    \draw[very thick,blue!100] (2.0,0) -- (2.0,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   630
    \draw[very thick,blue!100] (3.5,3) -- (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   631
    \draw[very thick,blue!100] (5.7,3) -- (5.7,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   632
    \draw[very thick,blue!100] (6,3) rectangle (7,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   633
    \node at (6.5,3.3) {\small $A$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   634
    \draw[very thick,blue!100] (7,3) rectangle (8,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   635
    \node at (7.5,3.3) {\small $B$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   636
    \draw[blue!50, ->, line width = 2mm] (3,1) -- (3, 2.5);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   637
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   638
  \only<6>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   639
    \draw[fill, blue!50] (1,0) rectangle (3,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   640
    \draw[fill, blue!50] (3,3) rectangle (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   641
    \draw[very thick, blue!50] (3.5,3) rectangle (6,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   642
    \node at (1.5,0.9) {\small $A_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   643
    \node at (2.0,0.9) {\small $B_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   644
    \node at (3.5,3.9) {\small $A_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   645
    \node at (5.7,3.9) {\small $B_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   646
    \draw[very thick,blue!100] (1.5,0) -- (1.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   647
    \draw[very thick,blue!100] (2.0,0) -- (2.0,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   648
    \draw[very thick,blue!100] (3.5,3) -- (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   649
    \draw[very thick,blue!100] (5.7,3) -- (5.7,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   650
    \draw[very thick,blue!100] (6,3) rectangle (7,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   651
    \node at (6.5,3.3) {\small $A$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   652
    \draw[very thick,blue!100] (7,3) rectangle (8,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   653
    \node at (7.5,3.3) {\small $B$}; 
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   654
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   655
  \only<7>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   656
   \draw[fill, blue!50] (1,0) rectangle (3,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   657
    \draw[fill, blue!50] (3,3) rectangle (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   658
    \draw[very thick, blue!50] (3.5,0) rectangle (6,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   659
    \node at (1.5,0.9) {\small $A_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   660
    \node at (2.0,0.9) {\small $B_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   661
    \node at (3.5,3.9) {\small $A_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   662
    \node at (5.7,0.9) {\small $B_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   663
    \draw[very thick,blue!100] (1.5,0) -- (1.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   664
    \draw[very thick,blue!100] (2.0,0) -- (2.0,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   665
    \draw[very thick,blue!100] (3.5,3) -- (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   666
    \draw[very thick,blue!100] (5.7,0) -- (5.7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   667
    \draw[very thick,blue!100] (6,3) rectangle (7,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   668
    \node at (6.5,3.3) {\small $A$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   669
    \draw[very thick,blue!100] (7,3) rectangle (8,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   670
    \node at (7.5,3.3) {\small $B$};  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   671
    \draw[blue!50, <-, line width = 2mm] (3.5,1) -- (3.5, 2.5);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   672
    \draw[blue!50, <-, line width = 2mm] (4,3.3) -- (5.5,3.3);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   673
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   674
  \only<8>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   675
    \draw[fill, blue!50] (1,0) rectangle (3,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   676
    \draw[fill, blue!50] (3,3) rectangle (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   677
    \draw[very thick, blue!50] (4.5,0) rectangle (7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   678
    \node at (1.5,0.9) {\small $A_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   679
    \node at (2.0,0.9) {\small $B_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   680
    \node at (3.5,3.9) {\small $A_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   681
    \node at (6.7,0.9) {\small $B_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   682
    \draw[very thick,blue!100] (1.5,0) -- (1.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   683
    \draw[very thick,blue!100] (2.0,0) -- (2.0,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   684
    \draw[very thick,blue!100] (3.5,3) -- (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   685
    \draw[very thick,blue!100] (6.7,0) -- (6.7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   686
    \draw[fill,blue!100] (3.5,3) rectangle (4.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   687
    \node at (4,3.3) {\small $A$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   688
    \draw[very thick,blue!100] (7,3) rectangle (8,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   689
    \node at (7.5,3.3) {\small $B$};  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   690
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   691
  \only<9>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   692
    \draw[fill, blue!50] (1,0) rectangle (3,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   693
    \draw[fill, blue!50] (3,3) rectangle (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   694
    \draw[fill, blue!50] (4.5,0) rectangle (5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   695
    \draw[very thick, blue!50] (5,0) rectangle (7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   696
    \node at (1.5,0.9) {\small $A_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   697
    \node at (2.0,0.9) {\small $B_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   698
    \node at (3.5,3.9) {\small $A_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   699
    \node at (6.7,0.9) {\small $B_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   700
    \draw[very thick,blue!100] (1.5,0) -- (1.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   701
    \draw[very thick,blue!100] (2.0,0) -- (2.0,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   702
    \draw[very thick,blue!100] (3.5,3) -- (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   703
    \draw[very thick,blue!100] (6.7,0) -- (6.7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   704
    \draw[fill,blue!100] (3.5,3) rectangle (4.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   705
    \node at (4,3.3) {\small $A$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   706
    \draw[very thick,blue!100] (7,3) rectangle (8,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   707
    \node at (7.5,3.3) {\small $B$};  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   708
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   709
  \only<10>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   710
    \draw[fill, blue!50] (1,0) rectangle (3,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   711
    \draw[fill, blue!50] (3,3) rectangle (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   712
    \draw[fill, blue!50] (4.5,0) rectangle (5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   713
    \draw[very thick, blue!50] (5,0) rectangle (7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   714
    \node at (1.5,0.9) {\small $A_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   715
    \node at (2.0,0.9) {\small $B_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   716
    \node at (3.5,3.9) {\small $A_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   717
    \node at (6.7,0.9) {\small $B_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   718
    \draw[very thick,blue!100] (1.5,0) -- (1.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   719
    \draw[very thick,blue!100] (2.0,0) -- (2.0,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   720
    \draw[very thick,blue!100] (3.5,3) -- (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   721
    \draw[very thick,blue!100] (6.7,0) -- (6.7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   722
    \draw[fill,blue!100] (3.5,3) rectangle (4.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   723
    \node at (4,3.3) {\small $A$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   724
    \draw[very thick,blue!100] (7,3) rectangle (8,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   725
    \node at (7.5,3.3) {\small $B$};  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   726
    \draw[red, fill] (5,1.5) rectangle (6,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   727
    \draw[red, fill] (6.05,1.5) rectangle (7,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   728
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   729
  \only<11>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   730
   \draw[fill, blue!50] (1,0) rectangle (3,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   731
    \draw[fill, blue!50] (3,3) rectangle (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   732
    \draw[fill, blue!50] (4.5,0) rectangle (5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   733
    \draw[very thick, blue!50] (5,0) rectangle (7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   734
    \node at (1.5,0.9) {\small $A_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   735
    \node at (2.0,0.9) {\small $B_L$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   736
    \node at (3.5,3.9) {\small $A_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   737
    \node at (6.7,0.9) {\small $B_R$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   738
    \draw[very thick,blue!100] (1.5,0) -- (1.5,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   739
    \draw[very thick,blue!100] (2.0,0) -- (2.0,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   740
    \draw[very thick,blue!100] (3.5,3) -- (3.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   741
    \draw[very thick,blue!100] (6.7,0) -- (6.7,0.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   742
    \draw[fill,blue!100] (3.5,3) rectangle (4.5,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   743
    \node at (4,3.3) {\small $A$};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   744
    \draw[very thick,blue!100] (7,3) rectangle (8,3.6);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   745
    \node at (7.5,3.3) {\small $B$};  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   746
    \draw[red, fill] (5,1.5) rectangle (6,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   747
    \draw[red, fill] (6.05,1.5) rectangle (7,2.1);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   748
    \draw[blue!50, ->, line width = 2mm] (7.1,0.4) -- (8, 0.4);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   749
    \draw[blue!50, ->, line width = 2mm] (7.1,4) -- (8,4);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   750
  }
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   751
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   752
  \draw[very thick,->](0,0) -- (8,0);
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   753
  \node [anchor=base] at (8, -0.3) {\scriptsize time};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   754
  \node [anchor=base] at (0, -0.3) {\scriptsize 0};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   755
  \node [anchor=base] at (-1.2, 0.2) {\small low priority};
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   756
  \only<2->{\node [anchor=base] at (-1.2, 3.2) {\small high priority};}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   757
  \only<10->{\node [anchor=base] at (-1.5, 1.7) {\small medium pr.};}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   758
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   759
  \end{tikzpicture}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   760
  \end{tabular}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   761
  \end{textblock}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   762
  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   763
  \begin{textblock}{0}(2.5,13)%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   764
  \small
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   765
  \onslide<11>{
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   766
  \begin{bubble}[8cm]%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   767
  Scheduling: You want to avoid that a high 
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   768
  priority process is starved indefinitely.
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   769
  \end{bubble}}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   770
  \end{textblock}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   771
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   772
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   773
  \end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   774
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   775
  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   776
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   777
  \begin{frame}[c]
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   778
  \frametitle{\Large Priority Inheritance Scheduling}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   779
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   780
  \begin{itemize}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   781
  \item Let a low priority process \bl{$L$} temporarily inherit 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   782
    the high priority of \bl{$H$} until \bl{$L$} leaves the critical 
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   783
    section unlocking the resource.\bigskip
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   784
  \item Once the resource is unlocked, \bl{$L$} returns to its original 
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   785
    priority level. \alert{\bf BOGUS}\pause\bigskip
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   786
  \item \ldots \bl{$L$} needs to switch to the highest 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   787
    \alert{\bf remaining} priority of the threads that it blocks.
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   788
  \end{itemize}\bigskip
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   789
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   790
  \small this error is already known since around 1999
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   791
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   792
  \end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   793
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   794
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   795
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   796
  \begin{frame}[c]
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   797
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   798
  \begin{center}
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
   799
  \includegraphics[scale=0.25]{pics/p3.jpg}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   800
  \end{center}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   801
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   802
   \begin{itemize}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   803
  \item by Rajkumar, 1991
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   804
  \item \it ``it resumes the priority it had at the point of entry into the critical 
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   805
  section''
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   806
  \end{itemize}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   807
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   808
  \end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   809
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   810
     
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   811
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   812
  \begin{frame}[c]
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   813
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   814
  \begin{center}
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
   815
  \includegraphics[scale=0.25]{pics/p2.jpg}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   816
  \end{center}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   817
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   818
   \begin{itemize}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   819
  \item by Jane Liu, 2000
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   820
  \item {\it ``The job $J_l$ executes at its inherited 
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   821
    priority until it releases $R$; at that time, the 
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   822
    priority of $J_l$ returns to its priority 
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   823
    at the time when it acquires the resource $R$.''}\medskip
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   824
  \item \small gives pseudo code and totally bogus data structures  
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   825
  \item \small interesting part is ``{\it left as an exercise}''
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   826
  \end{itemize}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   827
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   828
  \end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   829
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   830
     
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   831
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   832
  \begin{frame}[c]
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   833
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   834
  \begin{center}
200
10c096d59218 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 199
diff changeset
   835
  \includegraphics[scale=0.15]{pics/p1.jpg}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   836
  \end{center}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   837
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   838
  \begin{itemize}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   839
  \item by Laplante and Ovaska, 2011 (\$113.76)
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   840
  \item \it ``when $[$the task$]$ exits the critical section that
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   841
        caused the block, it reverts to the priority it had
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   842
        when it entered that section'' 
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   843
  \end{itemize}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   844
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   845
  \end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   846
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   847
  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   848
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   849
  \begin{frame}[c]
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   850
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   851
  \begin{center}
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
   852
  \includegraphics[scale=0.22]{pics/p5.jpg}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   853
  \end{center}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   854
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   855
  \begin{itemize}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   856
  \item by Silberschatz, Galvin and Gagne (9th edition, 2013)
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   857
  \item \it ``Upon releasing the
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   858
  lock, the $[$low-priority$]$ thread will revert to its original
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   859
  priority.''
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   860
  \end{itemize}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   861
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   862
  \end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   863
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   864
    
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   865
  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   866
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   867
  \begin{frame}[c]
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   868
  \frametitle{Priority Scheduling}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   869
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   870
  \begin{itemize}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   871
  \item a scheduling algorithm that is widely used in real-time operating systems
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   872
  \item has been ``proved'' correct by hand in a paper in 1990
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   873
  \item but this algorithm turned out to be incorrect, despite its ``proof''\bigskip\pause
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   874
  
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   875
  \item we (generalised) the algorithm and then {\bf really} proved that it is correct	
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   876
  \item we implemented this algorithm in a small OS called PINTOS (used for teaching at Stanford)
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   877
  \item our implementation was faster than their reference implementation
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   878
  \end{itemize}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   879
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   880
  \end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   881
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   882
   
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   883
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   884
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   885
  \begin{frame}[c]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   886
  \frametitle{Lessons Learned}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   887
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   888
  \begin{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   889
  \item our proof-technique is adapted from security 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   890
  protocols\bigskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   891
 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   892
  \item do not venture outside your field of expertise 
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
   893
  \includegraphics[scale=0.03]{pics/smiley.jpg}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   894
  \bigskip
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   895
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   896
  \item we solved the single-processor case; the multi-processor 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   897
  case: no idea!
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   898
  \end{itemize}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   899
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   900
  \end{frame}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   901
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   902
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   903
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   904
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   905
\frametitle{Regular Expressions}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   906
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   907
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   908
\begin{textblock}{6}(2,5)
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   909
  \begin{tabular}{rrl@ {\hspace{13mm}}l}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   910
  \bl{$r$} & \bl{$::=$}  & \bl{$\varnothing$}   & null\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   911
           & \bl{$\mid$} & \bl{$\epsilon$}      & empty string\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   912
           & \bl{$\mid$} & \bl{$c$}             & character\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   913
           & \bl{$\mid$} & \bl{$r_1 \cdot r_2$} & sequence\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   914
           & \bl{$\mid$} & \bl{$r_1 + r_2$}     & alternative / choice\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   915
           & \bl{$\mid$} & \bl{$r^*$}           & star (zero or more)\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   916
  \end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   917
  \end{textblock}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   918
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   919
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   920
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   921
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   922
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   923
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   924
\frametitle{\begin{tabular}{c}The Derivative of a Rexp\end{tabular}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   925
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   926
\large
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   927
If \bl{$r$} matches the string \bl{$c\!::\!s$}, what is a regular 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   928
expression that matches just \bl{$s$}?\bigskip\bigskip\bigskip\bigskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   929
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   930
\small
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   931
\bl{$der\,c\,r$} gives the answer, Brzozowski (1964), Owens (2005)
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   932
``\ldots have been lost in the sands of time\ldots''
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   933
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   934
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   935
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   936
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   937
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   938
\frametitle{}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   939
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   940
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   941
\ldots{}whether a regular expression can match the empty string:
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   942
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   943
\begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   944
\bl{$nullable(\varnothing)$}      & \bl{$\dn$} & \bl{$false$}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   945
\bl{$nullable(\epsilon)$}           & \bl{$\dn$} &  \bl{$true$}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   946
\bl{$nullable (c)$}                    & \bl{$\dn$} &  \bl{$false$}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   947
\bl{$nullable (r_1 + r_2)$}       & \bl{$\dn$} &  \bl{$nullable(r_1) \vee nullable(r_2)$} \\ 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   948
\bl{$nullable (r_1 \cdot r_2)$} & \bl{$\dn$} &  \bl{$nullable(r_1) \wedge nullable(r_2)$} \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   949
\bl{$nullable (r^*)$}                 & \bl{$\dn$} & \bl{$true$} \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   950
\end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   951
\end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   952
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   953
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   954
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   955
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   956
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   957
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   958
\frametitle{\begin{tabular}{c}The Derivative of a Rexp\end{tabular}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   959
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   960
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   961
\begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {\hspace{-10mm}}l@ {}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   962
  \bl{$der\, c\, (\varnothing)$}      & \bl{$\dn$} & \bl{$\varnothing$} & \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   963
  \bl{$der\, c\, (\epsilon)$}           & \bl{$\dn$} & \bl{$\varnothing$} & \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   964
  \bl{$der\, c\, (d)$}                     & \bl{$\dn$} & \bl{if $c = d$ then $\epsilon$ else $\varnothing$} & \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   965
  \bl{$der\, c\, (r_1 + r_2)$}        & \bl{$\dn$} & \bl{$der\, c\, r_1 + der\, c\, r_2$} & \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   966
  \bl{$der\, c\, (r_1 \cdot r_2)$}  & \bl{$\dn$}  & \bl{if $nullable (r_1)$}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   967
  & & \bl{then $(der\,c\,r_1) \cdot r_2 + der\, c\, r_2$}\\ 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   968
  & & \bl{else $(der\, c\, r_1) \cdot r_2$}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   969
  \bl{$der\, c\, (r^*)$}          & \bl{$\dn$} & \bl{$(der\,c\,r) \cdot (r^*)$} &\medskip\\\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   970
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   971
  \bl{$\textit{ders}\, []\, r$}     & \bl{$\dn$} & \bl{$r$} & \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   972
  \bl{$\textit{ders}\, (c\!::\!s)\, r$} & \bl{$\dn$} & \bl{$\textit{ders}\,s\,(der\,c\,r)$} & \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   973
  \end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   974
\end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   975
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   976
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   977
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   978
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   979
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   980
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   981
\frametitle{\begin{tabular}{c}\bl{$({\tt a}?)^n \cdot {\tt a}^n$}\end{tabular}}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   982
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   983
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   984
\begin{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   985
\begin{axis}[
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   986
    xlabel={\pcode{a}s},
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   987
    ylabel={time in secs},
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   988
    enlargelimits=false,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   989
    xtick={0,200,...,1000},
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   990
    xmax=1000,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   991
    ytick={0,5,...,30},
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   992
    scaled ticks=false,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   993
    axis lines=left,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   994
    width=9.5cm,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   995
    height=7cm, 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   996
    legend entries={Python,Ruby,Scala V1,Scala V2},  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   997
    legend pos=north west,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   998
    legend cell align=left  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
   999
]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1000
\addplot[blue,mark=*, mark options={fill=white}] 
199
193a9fdcedd6 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 197
diff changeset
  1001
  table {data/re-python.data};
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1002
\addplot[brown,mark=pentagon*, mark options={fill=white}] 
199
193a9fdcedd6 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 197
diff changeset
  1003
  table {data/re-ruby.data};  
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1004
\addplot[red,mark=triangle*,mark options={fill=white}] 
199
193a9fdcedd6 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 197
diff changeset
  1005
  table {data/re1.data};  
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1006
\addplot[green,mark=square*,mark options={fill=white}] 
199
193a9fdcedd6 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 197
diff changeset
  1007
  table {data/re2b.data};
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1008
\end{axis}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1009
\end{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1010
\end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1011
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1012
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1013
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1014
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1015
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1016
\begin{frame}[t]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1017
\frametitle{\begin{tabular}{c}\bl{$({\tt a}?)^n \cdot {\tt a}^n$}\end{tabular}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1018
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1019
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1020
\begin{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1021
\begin{axis}[
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1022
    xlabel={\pcode{a}s},
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1023
    ylabel={time in secs},
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1024
    enlargelimits=false,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1025
    xtick={0,3000,...,12000},
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1026
    xmax=12000,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1027
    ymax=35,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1028
    ytick={0,5,...,30},
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1029
    scaled ticks=false,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1030
    axis lines=left,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1031
    width=9cm,
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1032
    height=7cm
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1033
]
199
193a9fdcedd6 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 197
diff changeset
  1034
\addplot[green,mark=square*,mark options={fill=white}] table {data/re2b.data};
193a9fdcedd6 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 197
diff changeset
  1035
\addplot[black,mark=square*,mark options={fill=white}] table {data/re3.data};
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1036
\end{axis}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1037
\end{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1038
\end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1039
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1040
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1041
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1042
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1043
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1044
\begin{frame}[c]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1045
\frametitle{Correctness}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1046
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1047
It is a relative easy exercise in a theorem prover:
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1048
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1049
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1050
\bl{$matches(r, s)$}  if and only if  \bl{$s \in L(r)$} 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1051
\end{center}\bigskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1052
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1053
\small
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1054
\bl{$matches(r, s) \dn nullable(ders(r, s))$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1055
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1056
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1057
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1058
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1059
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1060
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1061
\frametitle{POSIX Regex Matching}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1062
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1063
Two rules:
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1064
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1065
\begin{itemize}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1066
\item Longest match rule (``maximal munch rule''): The 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1067
longest initial substring matched by any regular expression 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1068
is taken as the next token.
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1069
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1070
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1071
\bl{$\texttt{\Grid{iffoo\VS bla}}$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1072
\end{center}\medskip
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1073
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1074
\item Rule priority:
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1075
For a particular longest initial substring, the first regular
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1076
expression that can match determines the token.
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1077
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1078
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1079
\bl{$\texttt{\Grid{if\VS bla}}$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1080
\end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1081
\end{itemize}\bigskip\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1082
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1083
\small
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1084
\hfill Kuklewicz: most POSIX matchers are buggy\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1085
\footnotesize
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1086
\hfill \url{http://www.haskell.org/haskellwiki/Regex_Posix}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1087
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1088
\end{frame}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1089
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1090
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1091
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1092
\begin{frame}[c]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1093
\frametitle{POSIX Regex Matching}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1094
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1095
\begin{itemize}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1096
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1097
\item Sulzmann \& Lu came up with a beautiful
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1098
idea for how to extend the simple regular expression 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1099
matcher to POSIX matching/lexing (FLOPS 2014)\bigskip\bigskip\bigskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1100
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1101
\begin{tabular}{@{\hspace{4cm}}c@{}}
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1102
  \includegraphics[scale=0.14]{pics/sulzmann.jpg}\\[-2mm]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1103
  \hspace{0cm}\footnotesize Martin Sulzmann
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1104
\end{tabular}\bigskip\bigskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1105
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1106
\item the idea: define an inverse operation to the derivatives
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1107
\end{itemize}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1108
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1109
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1110
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1111
\end{frame}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1112
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1113
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1114
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1115
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1116
\begin{frame}[c]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1117
\frametitle{Regexes and Values}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1118
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1119
Regular expressions and their corresponding values:
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1120
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1121
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1122
\begin{columns}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1123
\begin{column}{3cm}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1124
\begin{tabular}{@{}rrl@{}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1125
  \bl{$r$} & \bl{$::=$}  & \bl{$\varnothing$}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1126
           & \bl{$\mid$} & \bl{$\epsilon$}   \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1127
           & \bl{$\mid$} & \bl{$c$}          \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1128
           & \bl{$\mid$} & \bl{$r_1 \cdot r_2$}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1129
           & \bl{$\mid$} & \bl{$r_1 + r_2$}   \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1130
  \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1131
           & \bl{$\mid$} & \bl{$r^*$}         \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1132
  \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1133
  \end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1134
\end{column}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1135
\begin{column}{3cm}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1136
\begin{tabular}{@{\hspace{-7mm}}rrl@{}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1137
  \bl{$v$} & \bl{$::=$}  & \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1138
           &             & \bl{$Empty$}   \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1139
           & \bl{$\mid$} & \bl{$Char(c)$}          \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1140
           & \bl{$\mid$} & \bl{$Seq(v_1,v_2)$}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1141
           & \bl{$\mid$} & \bl{$Left(v)$}   \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1142
           & \bl{$\mid$} & \bl{$Right(v)$}  \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1143
           & \bl{$\mid$} & \bl{$[]$}      \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1144
           & \bl{$\mid$} & \bl{$[v_1,\ldots\,v_n]$} \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1145
  \end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1146
\end{column}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1147
\end{columns}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1148
\end{center}\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1149
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1150
There is also a notion of a string behind a value: \bl{$|v|$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1151
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1152
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1153
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1154
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1155
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1156
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1157
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1158
\frametitle{Sulzmann \& Lu Matcher}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1159
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1160
We want to match the string \bl{$abc$} using \bl{$r_1$}:
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1161
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1162
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1163
\begin{tikzpicture}[scale=2,node distance=1.3cm,every node/.style={minimum size=8mm}]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1164
\node (r1)  {\bl{$r_1$}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1165
\node (r2) [right=of r1] {\bl{$r_2$}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1166
\draw[->,line width=1mm]  (r1) -- (r2) node[above,midway] {\bl{$der\,a$}};\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1167
\node (r3) [right=of r2] {\bl{$r_3$}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1168
\draw[->,line width=1mm]  (r2) -- (r3) node[above,midway] {\bl{$der\,b$}};\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1169
\node (r4) [right=of r3] {\bl{$r_4$}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1170
\draw[->,line width=1mm]  (r3) -- (r4) node[above,midway] {\bl{$der\,c$}};\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1171
\draw (r4) node[anchor=west] {\;\raisebox{3mm}{\bl{$\;\;nullable?$}}};\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1172
\node (v4) [below=of r4] {\bl{$v_4$}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1173
\draw[->,line width=1mm]  (r4) -- (v4);\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1174
\node (v3) [left=of v4] {\bl{$v_3$}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1175
\draw[->,line width=1mm]  (v4) -- (v3) node[below,midway] {\bl{$inj\,c$}};\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1176
\node (v2) [left=of v3] {\bl{$v_2$}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1177
\draw[->,line width=1mm]  (v3) -- (v2) node[below,midway] {\bl{$inj\,b$}};\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1178
\node (v1) [left=of v2] {\bl{$v_1$}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1179
\draw[->,line width=1mm]  (v2) -- (v1) node[below,midway] {\bl{$inj\,a$}};\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1180
\draw[->,line width=0.5mm]  (r3) -- (v3);
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1181
\draw[->,line width=0.5mm]  (r2) -- (v2);
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1182
\draw[->,line width=0.5mm]  (r1) -- (v1);
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1183
\draw (r4) node[anchor=north west] {\;\raisebox{-8mm}{\bl{$mkeps$}}};
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1184
\end{tikzpicture}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1185
\end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1186
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1187
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1188
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1189
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1190
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1191
\begin{frame}[t,squeeze]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1192
\frametitle{Sulzmann \& Lu Paper}
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1193
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1194
\begin{itemize}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1195
\item I have no doubt the algorithm is correct --- 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1196
  the problem, I do not believe their proof.
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1197
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1198
  \begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1199
  \begin{bubble}[10cm]\small
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1200
  ``How could I miss this? Well, I was rather careless when 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1201
  stating this Lemma :)\smallskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1202
 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1203
  Great example how formal machine checked proofs (and 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1204
  proof assistants) can help to spot flawed reasoning steps.''
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1205
  \end{bubble}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1206
  \end{center}\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1207
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1208
  \begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1209
  \begin{bubble}[10cm]\small
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1210
  ``Well, I don't think there's any flaw. The issue is how to 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1211
  come up with a mechanical proof. In my world mathematical 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1212
  proof $=$ mechanical proof doesn't necessarily hold.''
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1213
  \end{bubble}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1214
  \end{center}\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1215
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1216
\end{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1217
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1218
  \only<3>{%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1219
  \begin{textblock}{11}(1,4.4)
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1220
  \begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1221
  \begin{bubble}[10.9cm]\small\centering
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1222
  \includegraphics[scale=0.37]{pics/msbug.png}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1223
  \end{bubble}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1224
  \end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1225
  \end{textblock}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1226
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1227
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1228
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1229
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1230
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1231
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1232
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1233
\frametitle{\begin{tabular}{c}The Proof Idea\\[-1mm] by Sulzmann \& Lu
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1234
\end{tabular}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1235
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1236
\begin{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1237
\item introduce an inductively defined ordering relation 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1238
\bl{$v \succ_r v'$} which captures the idea of POSIX matching
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1239
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1240
\item the algorithm returns the maximum of all possible
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1241
 values that are possible for a regular expression.\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1242
 \bigskip\small
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1243
 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1244
\item the idea is from a paper by Cardelli \& Frisch about 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1245
greedy matching (greedy $=$ preferring instant gratification to delayed
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1246
repletion):
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1247
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1248
\item e.g.~given \bl{$(a + (b + ab))^*$} and string \bl{$ab$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1249
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1250
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1251
\begin{tabular}{ll}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1252
greedy: & \bl{$[Left(a), Right(Left(b)]$}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1253
POSIX:  & \bl{$[Right(Right(a, b)))]$}  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1254
\end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1255
\end{center} 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1256
\end{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1257
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1258
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1259
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1260
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1261
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1262
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1263
\frametitle{}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1264
\centering
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1265
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1266
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1267
\bl{\infer{\vdash Empty : \epsilon}{}}\hspace{15mm}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1268
\bl{\infer{\vdash Char(c): c}{}}\bigskip
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1269
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1270
\bl{\infer{\vdash Seq(v_1, v_2) : r_1\cdot r_2}{\vdash v_1 : r_1 \quad \vdash v_2 : r_2}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1271
\bigskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1272
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1273
\bl{\infer{\vdash Left(v) : r_1 + r_2}{\vdash v : r_1}}\hspace{15mm}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1274
\bl{\infer{\vdash Right(v): r_1 + r_2}{\vdash v : r_2}}\bigskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1275
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1276
\bl{\infer{\vdash [] : r^*}{}}\hspace{15mm}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1277
\bl{\infer{\vdash [v_1,\ldots, v_n] : r^*}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1278
          {\vdash v_1 : r \quad\ldots\quad \vdash v_n : r}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1279
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1280
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1281
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1282
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1283
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1284
\begin{frame}<1>[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1285
\frametitle{}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1286
\small
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1287
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1288
%\begin{tabular}{@{}lll@{}}
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1289
%\bl{$POSIX(v, r)$} & \bl{$\dn$} & \bl{$\vdash v : r$}\\ 
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1290
% & &   \bl{$\wedge \;\;(\forall v'.\;\; \vdash v' : r \,\wedge\, |v'| = |v| 
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1291
%     \Rightarrow v \succ_{\alert<2>{r}} v')$}
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1292
%\end{tabular}\bigskip\bigskip\bigskip
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1293
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1294
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1295
\centering
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1296
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1297
%\bl{\infer{Seq(v_1, v_2) \succ_{\alert<2>{r_1\cdot r_2}} Seq(v'_1, v'_2)}
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1298
%   {v_1 = v'_1 \quad v_2 \succ_{\alert<2>{r_2}} v'_2}}\hspace{3mm}
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1299
%\bl{\infer{Seq(v_1, v_2) \succ_{\alert<2>{r_1\cdot r_2}} Seq(v'_1, v'_2)}
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1300
%   {v_1 \not= v'_1 \quad v_1 \succ_{\alert<2>{r_1}} v'_1}}
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1301
%\bigskip
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1302
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1303
%\bl{\infer{Left(v) \succ_{\alert<2>{r_1 + r_2}} Left(v')}
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1304
%          {v \succ_{\alert<2>{r_1}} v'}}\hspace{15mm}
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1305
%\bl{\infer{Right(v) \succ_{\alert<2>{r_1 + r_2}} Right(v')}
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1306
%          {v \succ_{\alert<2>{r_2}} v'}}\bigskip\medskip
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1307
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1308
%\bl{\infer{Left(v) \succ_{\alert<2>{r_1 + r_2}} Right(v')}
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1309
%          {length |v|  \ge length |v'|}}\hspace{15mm}
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1310
%\bl{\infer{Right(v) \succ_{\alert<2>{r_1 + r_2}} Left(v')}
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1311
%          {length |v| >  length |v'|}}\bigskip
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1312
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1313
%\bl{$\big\ldots$}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1314
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1315
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1316
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1317
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1318
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1319
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1320
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1321
\frametitle{Problems}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1322
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1323
\begin{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1324
\item Sulzmann: \ldots Let's assume \bl{$v$} is not 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1325
    a $POSIX$ value, then there must be another one
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1326
    \ldots contradiction.\bigskip\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1327
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1328
\item Exists?
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1329
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1330
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1331
\bl{$L(r) \not= \varnothing \;\Rightarrow\; POSIX(v, r)$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1332
\end{center}\bigskip\bigskip\pause
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1333
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1334
\item in the sequence case, the induction hypotheses require
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1335
\bl{$|v_1| = |v'_1|$} and \bl{$|v_2| = |v'_2|$}, 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1336
but you only know
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1337
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1338
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1339
\bl{$|v_1| \;@\; |v_2| = |v'_1| \;@\; |v'_2|$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1340
\end{center}\pause\small
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1341
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1342
\item although one begins with the assumption that the two 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1343
values have the same flattening, this cannot be maintained 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1344
as one descends into the induction (alternative, sequence)
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1345
\end{itemize}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1346
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1347
\end{frame}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1348
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1349
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1350
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1351
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1352
\frametitle{Our Solution}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1353
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1354
\begin{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1355
\item direct definition of what a POSIX value is, using
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1356
\bl{$s \in r \to v$}:
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1357
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1358
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1359
\bl{\infer{[] \in \epsilon \to Empty}{}}\hspace{15mm}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1360
\bl{\infer{c \in c \to Char(c)}{}}\bigskip\medskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1361
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1362
\bl{\infer{s \in r_1 + r_2 \to Left(v)}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1363
          {s \in r_1 \to v}}\hspace{10mm}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1364
\bl{\infer{s \in r_1 + r_2 \to Right(v)}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1365
          {s \in r_2 \to v & s \not\in L(r_1)}}\bigskip\medskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1366
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1367
\bl{\infer{s_1 @ s_2 \in r_1 \cdot r_2 \to Seq(v_1, v_2)}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1368
          {\small\begin{array}{l}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1369
           s_1 \in r_1 \to v_1 \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1370
           s_2 \in r_2 \to v_2 \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1371
           \neg(\exists s_3\,s_4.\; s_3 \not= []
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1372
           \wedge s_3 @ s_4 = s_2 \wedge
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1373
           s_1 @ s_3 \in L(r_1) \wedge
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1374
           s_4 \in L(r_2))
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1375
           \end{array}}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1376
           
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1377
\bl{\ldots}           
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1378
\end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1379
\end{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1380
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1381
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1382
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1383
\begin{frame}[t]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1384
  \frametitle{\Large\begin{tabular}{@{}c@{}}Pencil-and-Paper Proofs\\[-1mm] 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1385
  in CS are normally incorrect\end{tabular}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1386
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1387
\begin{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1388
\item case in point, in one of Roy's proofs he made the 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1389
incorrect inference
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1390
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1391
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1392
if \bl{$\forall s.\; |v_2| \alert{\not}\in L(der\,c\,r_1) \cdot s$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1393
then \bl{$\forall s.\; c\,|v_2| \alert{\not}\in L(r_1) \cdot s$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1394
\end{center}\bigskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1395
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1396
while 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1397
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1398
\begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1399
if \bl{$\forall s.\; |v_2| \in L(der\,c\,r_1) \cdot s$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1400
then \bl{$\forall s.\; c\,|v_2| \in L(r_1) \cdot s$}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1401
\end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1402
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1403
is correct
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1404
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1405
\end{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1406
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1407
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1408
\begin{textblock}{11}(12,11)
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1409
\includegraphics[scale=0.15]{pics/roy.jpg}
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1410
\end{textblock}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1411
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1412
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1413
  \begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1414
  \frametitle{Proofs in Math~vs.~in CS}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1415
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1416
  \alert{\bf My theory on why CS-proofs are often buggy}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1417
  \\[-10mm]\mbox{}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1418
  
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1419
  \begin{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1420
  \begin{tabular}{@{}cc@{}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1421
  \begin{tabular}{@{}p{5.6cm}} 
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1422
  \includegraphics[scale=0.43]{pics/icosahedron.png}\\[2mm] 
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1423
  {\bf Math}: \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1424
  \raggedright\small
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1425
  in math, ``objects'' can be ``looked'' at from all 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1426
  ``angles'';\\\smallskip 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1427
  non-trivial proofs, but it seems
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1428
  difficult to make mistakes
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1429
  \end{tabular} &
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1430
  \begin{tabular}{p{5cm}} 
197
a35041d5707c updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 157
diff changeset
  1431
  \includegraphics[scale=0.2]{pics/sel4callgraph.jpg}\\[3mm]
157
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1432
  \raggedright
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1433
  {\bf Code in CS}: \\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1434
  \raggedright\small
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1435
  the call-graph of the seL4 microkernel OS;\\\smallskip 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1436
  easy to make mistakes\\ \mbox{}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1437
  \end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1438
  \end{tabular}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1439
  \end{center}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1440
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1441
  \end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1442
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1443
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1444
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1445
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1446
\begin{frame}[c]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1447
\frametitle{Conclusion}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1448
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1449
\begin{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1450
\item we strengthened the POSIX definition of Sulzmann \& Lu
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1451
  in order to get the inductions through, his proof
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1452
  contained small gaps but had also fundamental flaws\bigskip
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1453
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1454
\item its a nice exercise for theorem proving
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1455
\item some optimisations need to be aplied to the
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1456
 algorithm in order to become fast enough
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1457
\item can be used for lexing, small little functional 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1458
 program
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1459
\end{itemize}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1460
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1461
\end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1462
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1463
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1464
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1465
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1466
  \begin{frame}[b]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1467
  \frametitle{
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1468
  \begin{tabular}{c}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1469
  \mbox{}\\[13mm]
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1470
  \alert{\Large Thank you very much again}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1471
  \alert{\Large for the invitation!}\\
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1472
  \alert{\Large Questions?}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1473
  \end{tabular}}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1474
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1475
  \end{frame}
1fe44fb6d0a4 cleaned up scala code
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 103
diff changeset
  1476
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
103
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1477
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1478
\end{document}
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1479
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1480
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1481
%%% Local Variables:  
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1482
%%% mode: latex
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1483
%%% TeX-master: t
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1484
%%% End: 
ffe5d850df62 added some slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1485