322 \frametitle{\begin{tabular}{c}New Design\end{tabular}} |
323 \frametitle{\begin{tabular}{c}New Design\end{tabular}} |
323 \mbox{}\\[4mm] |
324 \mbox{}\\[4mm] |
324 |
325 |
325 \begin{center} |
326 \begin{center} |
326 \begin{tikzpicture} |
327 \begin{tikzpicture} |
|
328 {\draw (0,0) node[inner sep=3mm, ultra thick, draw=fg, rounded corners=2mm] |
|
329 (A) {\begin{minipage}{1.1cm}bind.\\spec.\end{minipage}};} |
|
330 |
|
331 {\draw (3,0) node[inner sep=3mm, ultra thick, draw=fg, rounded corners=2mm] |
|
332 (B) {\begin{minipage}{1.1cm}raw\\terms\end{minipage}};} |
|
333 |
327 \alt<2> |
334 \alt<2> |
328 {\draw (0,0) node[inner sep=3mm, ultra thick, draw=red, rounded corners=2mm] |
|
329 (A) {\textcolor{red}{\begin{minipage}{1.1cm}bind.\\spec.\end{minipage}}};} |
|
330 {\draw (0,0) node[inner sep=3mm, ultra thick, draw=white, rounded corners=2mm] |
|
331 (A) {\begin{minipage}{1.1cm}bind.\\spec.\end{minipage}};} |
|
332 |
|
333 \alt<3> |
|
334 {\draw (3,0) node[inner sep=3mm, ultra thick, draw=red, rounded corners=2mm] |
|
335 (B) {\textcolor{red}{\begin{minipage}{1.1cm}raw\\terms\end{minipage}}};} |
|
336 {\draw (3,0) node[inner sep=3mm, ultra thick, draw=white, rounded corners=2mm] |
|
337 (B) {\begin{minipage}{1.1cm}raw\\terms\end{minipage}};} |
|
338 |
|
339 \alt<4> |
|
340 {\draw (6,0) node[inner sep=3mm, ultra thick, draw=red, rounded corners=2mm] |
335 {\draw (6,0) node[inner sep=3mm, ultra thick, draw=red, rounded corners=2mm] |
341 (C) {\textcolor{red}{\begin{minipage}{1.1cm}$\alpha$-\\equiv.\end{minipage}}};} |
336 (C) {\textcolor{red}{\begin{minipage}{1.1cm}$\alpha$-\\equiv.\end{minipage}}};} |
342 {\draw (6,0) node[inner sep=3mm, ultra thick, draw=white, rounded corners=2mm] |
337 {\draw (6,0) node[inner sep=3mm, ultra thick, draw=fg, rounded corners=2mm] |
343 (C) {\begin{minipage}{1.1cm}$\alpha$-\\equiv.\end{minipage}};} |
338 (C) {\begin{minipage}{1.1cm}$\alpha$-\\equiv.\end{minipage}};} |
344 |
339 |
345 \alt<5> |
340 {\draw (0,-3) node[inner sep=3mm, ultra thick, draw=fg, rounded corners=2mm] |
346 {\draw (0,-3) node[inner sep=3mm, ultra thick, draw=red, rounded corners=2mm] |
|
347 (D) {\textcolor{red}{\begin{minipage}{1.1cm}quot.\\type\end{minipage}}};} |
|
348 {\draw (0,-3) node[inner sep=3mm, ultra thick, draw=white, rounded corners=2mm] |
|
349 (D) {\begin{minipage}{1.1cm}quot.\\type\end{minipage}};} |
341 (D) {\begin{minipage}{1.1cm}quot.\\type\end{minipage}};} |
350 |
342 |
351 \alt<6> |
343 {\draw (3,-3) node[inner sep=3mm, ultra thick, draw=fg, rounded corners=2mm] |
352 {\draw (3,-3) node[inner sep=3mm, ultra thick, draw=red, rounded corners=2mm] |
|
353 (E) {\textcolor{red}{\begin{minipage}{1.1cm}lift\\thms\end{minipage}}};} |
|
354 {\draw (3,-3) node[inner sep=3mm, ultra thick, draw=white, rounded corners=2mm] |
|
355 (E) {\begin{minipage}{1.1cm}lift\\thms\end{minipage}};} |
344 (E) {\begin{minipage}{1.1cm}lift\\thms\end{minipage}};} |
356 |
345 |
357 \alt<7> |
346 {\draw (6,-3) node[inner sep=3mm, ultra thick, draw=fg, rounded corners=2mm] |
358 {\draw (6,-3) node[inner sep=3mm, ultra thick, draw=red, rounded corners=2mm] |
|
359 (F) {\textcolor{red}{\begin{minipage}{1.1cm}add.\\thms\end{minipage}}};} |
|
360 {\draw (6,-3) node[inner sep=3mm, ultra thick, draw=white, rounded corners=2mm] |
|
361 (F) {\begin{minipage}{1.1cm}add.\\thms\end{minipage}};} |
347 (F) {\begin{minipage}{1.1cm}add.\\thms\end{minipage}};} |
362 |
348 |
363 \draw[->,white!50,line width=1mm] (A) -- (B); |
349 \draw[->,fg!50,line width=1mm] (A) -- (B); |
364 \draw[->,white!50,line width=1mm] (B) -- (C); |
350 \draw[->,fg!50,line width=1mm] (B) -- (C); |
365 \draw[->,white!50,line width=1mm, line join=round, rounded corners=2mm] |
351 \draw[->,fg!50,line width=1mm, line join=round, rounded corners=2mm] |
366 (C) -- (8,0) -- (8,-1.5) -- (-2,-1.5) -- (-2,-3) -- (D); |
352 (C) -- (8,0) -- (8,-1.5) -- (-2,-1.5) -- (-2,-3) -- (D); |
367 \draw[->,white!50,line width=1mm] (D) -- (E); |
353 \draw[->,fg!50,line width=1mm] (D) -- (E); |
368 \draw[->,white!50,line width=1mm] (E) -- (F); |
354 \draw[->,fg!50,line width=1mm] (E) -- (F); |
369 \end{tikzpicture} |
355 \end{tikzpicture} |
370 \end{center} |
356 \end{center} |
371 |
357 |
372 \end{frame}} |
358 \end{frame}} |
373 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
359 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
374 *} |
360 *} |
375 |
361 |
376 |
362 |
377 |
363 |
378 text_raw {* |
364 text_raw {* |
379 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
365 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
380 \mode<presentation>{ |
366 \mode<presentation>{ |
381 \begin{frame}<1-9> |
367 \begin{frame}<1-8> |
382 \frametitle{\begin{tabular}{c}Alpha-Equivalence\end{tabular}} |
368 \frametitle{\begin{tabular}{c}Alpha-Equivalence\end{tabular}} |
383 \mbox{}\\[-3mm] |
369 \mbox{}\\[-3mm] |
384 |
370 |
385 \begin{itemize} |
371 \begin{itemize} |
386 \item lets first look at pairs\bigskip\medskip |
372 \item lets first look at pairs\bigskip\medskip |
387 |
373 |
388 \begin{tabular}{@ {\hspace{1cm}}l} |
374 \begin{tabular}{@ {\hspace{1cm}}l} |
389 $(as, x) \onslide<2->{\approx\!}\makebox[0mm][l]{\only<2-7>{${}_{\text{set}}$}% |
375 $(as, x) \onslide<2->{\approx\!}\makebox[0mm][l]{\only<2-6>{${}_{\text{set}}$}% |
390 \only<8>{${}_{\text{\alert{list}}}$}% |
376 \only<7>{${}_{\text{\alert{list}}}$}% |
391 \only<9>{${}_{\text{\alert{res}}}$}}% |
377 \only<8>{${}_{\text{\alert{res}}}$}}% |
392 \onslide<3->{^{R,\text{fv}}}\,\onslide<2->{(bs,y)}$ |
378 \onslide<3->{^{R,\text{fv}}}\,\onslide<2->{(bs,y)}$ |
393 \end{tabular}\bigskip |
379 \end{tabular}\bigskip |
394 \end{itemize} |
380 \end{itemize} |
395 |
381 |
396 \only<1>{ |
382 \only<1>{ |
397 \begin{textblock}{8}(3,8.5) |
383 \begin{textblock}{8}(3,8.5) |
398 \begin{tabular}{l@ {\hspace{2mm}}p{8cm}} |
384 \begin{tabular}{l@ {\hspace{2mm}}p{8cm}} |
399 \pgfuseshading{smallspherered} & $as$ is a set of names\ldots the binders\\ |
385 \pgfuseshading{smallspherered} & $as$ is a set of names\ldots the binders\\ |
400 \pgfuseshading{smallspherered} & $x$ is the body\\ |
386 \pgfuseshading{smallspherered} & $x$ is the body (might be a tuple)\\ |
401 \pgfuseshading{smallspherered} & $\approx_{\text{set}}$ is where the cardinality |
387 \pgfuseshading{smallspherered} & $\approx_{\text{set}}$ is where the cardinality |
402 of the binders has to be the same\\ |
388 of the binders has to be the same\\ |
403 \end{tabular} |
389 \end{tabular} |
404 \end{textblock}} |
390 \end{textblock}} |
405 |
391 |
406 \only<4->{ |
392 \only<4->{ |
407 \begin{textblock}{12}(5,8) |
393 \begin{textblock}{12}(5,8) |
408 \begin{tabular}{ll@ {\hspace{1mm}}l} |
394 \begin{tabular}{ll@ {\hspace{1mm}}l} |
409 $\dn$ & \onslide<5->{$\exists \pi.\,$} & $\text{fv}(x) - as = \text{fv}(y) - bs$\\[1mm] |
395 $\dn$ & \onslide<5->{$\exists \pi.\,$} & $\text{fv}(x) - as = \text{fv}(y) - bs$\\[1mm] |
410 & \onslide<5->{$\;\;\;\wedge$} & \onslide<5->{$\text{fv}(x) - as \fresh^* \pi$}\\[1mm] |
396 & \onslide<5->{$\;\;\;\wedge$} & \onslide<5->{$\text{fv}(x) - as \fresh^* \pi$}\\[1mm] |
411 & \onslide<6->{$\;\;\;\wedge$} & \onslide<6->{$(\pi \act x)\;R\;y$}\\[1mm] |
397 & \onslide<5->{$\;\;\;\wedge$} & \onslide<5->{$(\pi \act x)\;R\;y$}\\[1mm] |
412 & \onslide<7-8>{$\;\;\;\wedge$} & \onslide<7-8>{$\pi \act as = bs$}\\ |
398 & \onslide<6-7>{$\;\;\;\wedge$} & \onslide<6-7>{$\pi \act as = bs$}\\ |
413 \end{tabular} |
399 \end{tabular} |
414 \end{textblock}} |
400 \end{textblock}} |
415 |
401 |
416 \only<8>{ |
402 \only<7>{ |
417 \begin{textblock}{8}(3,13.8) |
403 \begin{textblock}{7}(3,13.8) |
418 \footnotesize $^*$ $as$ and $bs$ are \alert{lists} of names |
404 \footnotesize $^*$ $as$ and $bs$ are \alert{lists} of names |
419 \end{textblock}} |
405 \end{textblock}} |
420 \end{frame}} |
406 \end{frame}} |
421 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
407 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
422 *} |
408 *} |
963 \mbox{}\\[-7mm]\mbox{} |
949 \mbox{}\\[-7mm]\mbox{} |
964 |
950 |
965 \footnotesize |
951 \footnotesize |
966 \begin{center} |
952 \begin{center} |
967 \begin{tikzpicture} |
953 \begin{tikzpicture} |
968 \draw (0,0) node[inner sep=2mm, ultra thick, draw=white, rounded corners=2mm] |
954 \draw (0,0) node[inner sep=2mm, ultra thick, draw=fg, rounded corners=2mm] |
969 (A) {\begin{minipage}{0.8cm}bind.\\spec.\end{minipage}}; |
955 (A) {\begin{minipage}{0.8cm}bind.\\spec.\end{minipage}}; |
970 |
956 |
971 \draw (2,0) node[inner sep=2mm, ultra thick, draw=white, rounded corners=2mm] |
957 \draw (2,0) node[inner sep=2mm, ultra thick, draw=fg, rounded corners=2mm] |
972 (B) {\begin{minipage}{0.8cm}raw\\terms\end{minipage}}; |
958 (B) {\begin{minipage}{0.8cm}raw\\terms\end{minipage}}; |
973 |
959 |
974 \draw (4,0) node[inner sep=2mm, ultra thick, draw=white, rounded corners=2mm] |
960 \draw (4,0) node[inner sep=2mm, ultra thick, draw=fg, rounded corners=2mm] |
975 (C) {\begin{minipage}{0.8cm}$\alpha$-\\equiv.\end{minipage}}; |
961 (C) {\begin{minipage}{0.8cm}$\alpha$-\\equiv.\end{minipage}}; |
976 |
962 |
977 \draw (0,-2) node[inner sep=2mm, ultra thick, draw=white, rounded corners=2mm] |
963 \draw (0,-2) node[inner sep=2mm, ultra thick, draw=fg, rounded corners=2mm] |
978 (D) {\begin{minipage}{0.8cm}quot.\\type\end{minipage}}; |
964 (D) {\begin{minipage}{0.8cm}quot.\\type\end{minipage}}; |
979 |
965 |
980 \draw (2,-2) node[inner sep=2mm, ultra thick, draw=white, rounded corners=2mm] |
966 \draw (2,-2) node[inner sep=2mm, ultra thick, draw=fg, rounded corners=2mm] |
981 (E) {\begin{minipage}{0.8cm}lift\\thms\end{minipage}}; |
967 (E) {\begin{minipage}{0.8cm}lift\\thms\end{minipage}}; |
982 |
968 |
983 \draw (4,-2) node[inner sep=2mm, ultra thick, draw=white, rounded corners=2mm] |
969 \draw (4,-2) node[inner sep=2mm, ultra thick, draw=fg, rounded corners=2mm] |
984 (F) {\begin{minipage}{0.8cm}add.\\thms\end{minipage}}; |
970 (F) {\begin{minipage}{0.8cm}add.\\thms\end{minipage}}; |
985 |
971 |
986 \draw[->,white!50,line width=1mm] (A) -- (B); |
972 \draw[->,fg!50,line width=1mm] (A) -- (B); |
987 \draw[->,white!50,line width=1mm] (B) -- (C); |
973 \draw[->,fg!50,line width=1mm] (B) -- (C); |
988 \draw[->,white!50,line width=1mm, line join=round, rounded corners=2mm] |
974 \draw[->,fg!50,line width=1mm, line join=round, rounded corners=2mm] |
989 (C) -- (5,0) -- (5,-1) -- (-1,-1) -- (-1,-2) -- (D); |
975 (C) -- (5,0) -- (5,-1) -- (-1,-1) -- (-1,-2) -- (D); |
990 \draw[->,white!50,line width=1mm] (D) -- (E); |
976 \draw[->,fg!50,line width=1mm] (D) -- (E); |
991 \draw[->,white!50,line width=1mm] (E) -- (F); |
977 \draw[->,fg!50,line width=1mm] (E) -- (F); |
992 \end{tikzpicture} |
978 \end{tikzpicture} |
993 \end{center} |
979 \end{center} |
994 |
980 |
995 \begin{itemize} |
981 \begin{itemize} |
996 \item Core Haskell: 11 types, 49 term-constructors, 7 binding functions |
982 \item Core Haskell: 11 types, 49 term-constructors, 7 binding functions |