9 |
9 |
10 (*>*) |
10 (*>*) |
11 |
11 |
12 |
12 |
13 text_raw {* |
13 text_raw {* |
|
14 %% shallow, deep, and recursive binders |
|
15 %% |
14 %%\renewcommand{\slidecaption}{Cambridge, 8.~June 2010} |
16 %%\renewcommand{\slidecaption}{Cambridge, 8.~June 2010} |
15 %%\renewcommand{\slidecaption}{Uppsala, 3.~March 2011} |
17 %%\renewcommand{\slidecaption}{Uppsala, 3.~March 2011} |
16 \renewcommand{\slidecaption}{Saarbrücken, 31.~March 2011} |
18 \renewcommand{\slidecaption}{Saarbrücken, 31.~March 2011} |
17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
18 \mode<presentation>{ |
20 \mode<presentation>{ |
19 \begin{frame}<1>[t] |
21 \begin{frame}<1>[t] |
20 \frametitle{% |
22 \frametitle{% |
21 \begin{tabular}{@ {\hspace{-3mm}}c@ {}} |
23 \begin{tabular}{@ {\hspace{-3mm}}c@ {}} |
22 \\ |
24 \\ |
23 \huge General Bindings and Alpha-Equivalence in Nominal Isabelle\\[-2mm] |
25 \LARGE General Bindings and\\ |
24 \large Or, Nominal 2\\[-5mm] |
26 \LARGE Alpha-Equivalence\\ |
|
27 \LARGE in Nominal Isabelle\\[3mm] |
|
28 \Large Or, Nominal Isabelle 2\\[-5mm] |
25 \end{tabular}} |
29 \end{tabular}} |
26 \begin{center} |
30 \begin{center} |
27 Christian Urban |
31 Christian Urban |
28 \end{center} |
32 \end{center} |
29 \begin{center} |
33 \begin{center} |
71 |
75 |
72 \end{frame}} |
76 \end{frame}} |
73 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
77 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
74 *} |
78 *} |
75 |
79 |
|
80 |
|
81 |
|
82 text_raw {* |
|
83 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
84 \mode<presentation>{ |
|
85 \begin{frame}<1-2> |
|
86 \frametitle{New Types in HOL} |
|
87 |
|
88 picture |
|
89 |
|
90 \end{frame}} |
|
91 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
92 *} |
|
93 |
|
94 |
|
95 |
76 text_raw {* |
96 text_raw {* |
77 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
97 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
78 \mode<presentation>{ |
98 \mode<presentation>{ |
79 \begin{frame}<1-4> |
99 \begin{frame}<1-4> |
80 \frametitle{\begin{tabular}{c}Binding Sets of Names\end{tabular}} |
100 \frametitle{\begin{tabular}{c}Binding Sets of Names\end{tabular}} |
209 \multicolumn{2}{l}{\isacommand{nominal\_datatype} trm $=$}\\ |
229 \multicolumn{2}{l}{\isacommand{nominal\_datatype} trm $=$}\\ |
210 \hspace{5mm}\phantom{$|$} Var name\\ |
230 \hspace{5mm}\phantom{$|$} Var name\\ |
211 \hspace{5mm}$|$ App trm trm\\ |
231 \hspace{5mm}$|$ App trm trm\\ |
212 \hspace{5mm}$|$ Lam \only<2->{x::}name \only<2->{t::}trm |
232 \hspace{5mm}$|$ Lam \only<2->{x::}name \only<2->{t::}trm |
213 & \onslide<2->{\isacommand{bind} x \isacommand{in} t}\\ |
233 & \onslide<2->{\isacommand{bind} x \isacommand{in} t}\\ |
214 \hspace{5mm}$|$ Let \only<2->{as::}assn \only<2->{t::}trm |
234 \hspace{5mm}$|$ Let \only<2->{as::}assns \only<2->{t::}trm |
215 & \onslide<2->{\isacommand{bind} bn(as) \isacommand{in} t}\\ |
235 & \onslide<2->{\isacommand{bind} bn(as) \isacommand{in} t}\\ |
216 \multicolumn{2}{l}{\isacommand{and} assn $=$}\\ |
236 \multicolumn{2}{l}{\isacommand{and} assns $=$}\\ |
217 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} ANil}\\ |
237 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} ANil}\\ |
218 \multicolumn{2}{l}{\hspace{5mm}$|$ ACons name trm assn}\\ |
238 \multicolumn{2}{l}{\hspace{5mm}$|$ ACons name trm assns}\\ |
219 \multicolumn{2}{l}{\onslide<3->{\isacommand{binder} bn \isacommand{where}}}\\ |
239 \multicolumn{2}{l}{\onslide<3->{\isacommand{binder} bn \isacommand{where}}}\\ |
220 \multicolumn{2}{l}{\onslide<3->{\hspace{5mm}\phantom{$|$} bn(ANil) $=$ []}}\\ |
240 \multicolumn{2}{l}{\onslide<3->{\hspace{5mm}\phantom{$|$} bn(ANil) $=$ []}}\\ |
221 \multicolumn{2}{l}{\onslide<3->{\hspace{5mm}$|$ bn(ACons a t as) $=$ [a] @ bn(as)}}\\ |
241 \multicolumn{2}{l}{\onslide<3->{\hspace{5mm}$|$ bn(ACons a t as) $=$ [a] @ bn(as)}}\\ |
222 \end{tabular} |
242 \end{tabular} |
223 |
243 |
716 \multicolumn{2}{l}{\isacommand{nominal\_datatype} trm $=$}\\ |
736 \multicolumn{2}{l}{\isacommand{nominal\_datatype} trm $=$}\\ |
717 \hspace{5mm}\phantom{$|$} Var name\\ |
737 \hspace{5mm}\phantom{$|$} Var name\\ |
718 \hspace{5mm}$|$ App trm trm\\ |
738 \hspace{5mm}$|$ App trm trm\\ |
719 \hspace{5mm}$|$ Lam x::name t::trm |
739 \hspace{5mm}$|$ Lam x::name t::trm |
720 & \isacommand{bind} x \isacommand{in} t\\ |
740 & \isacommand{bind} x \isacommand{in} t\\ |
721 \hspace{5mm}$|$ Let as::assn t::trm |
741 \hspace{5mm}$|$ Let as::assns t::trm |
722 & \isacommand{bind} bn(as) \isacommand{in} t\\ |
742 & \isacommand{bind} bn(as) \isacommand{in} t\\ |
723 \multicolumn{2}{l}{\isacommand{and} assn $=$}\\ |
743 \multicolumn{2}{l}{\isacommand{and} assns $=$}\\ |
724 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} ANil}\\ |
744 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} ANil}\\ |
725 \multicolumn{2}{l}{\hspace{5mm}$|$ ACons name trm assn}\\ |
745 \multicolumn{2}{l}{\hspace{5mm}$|$ ACons name trm assns}\\ |
726 \multicolumn{2}{l}{\isacommand{binder} bn \isacommand{where}}\\ |
746 \multicolumn{2}{l}{\isacommand{binder} bn \isacommand{where}}\\ |
727 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} bn(ANil) $=$ $[]$}\\ |
747 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} bn(ANil) $=$ $[]$}\\ |
728 \multicolumn{2}{l}{\hspace{5mm}$|$ bn(ACons a t as) $=$ $[$a$]$ @ bn(as)}\\ |
748 \multicolumn{2}{l}{\hspace{5mm}$|$ bn(ACons a t as) $=$ $[$a$]$ @ bn(as)}\\ |
729 \end{tabular} |
749 \end{tabular} |
730 |
750 |
743 \begin{tabular}{ll} |
763 \begin{tabular}{ll} |
744 \multicolumn{2}{l}{\isacommand{datatype} trm $=$}\\ |
764 \multicolumn{2}{l}{\isacommand{datatype} trm $=$}\\ |
745 \hspace{5mm}\phantom{$|$} Var name\\ |
765 \hspace{5mm}\phantom{$|$} Var name\\ |
746 \hspace{5mm}$|$ App trm trm\\ |
766 \hspace{5mm}$|$ App trm trm\\ |
747 \hspace{5mm}$|$ Lam name trm\\ |
767 \hspace{5mm}$|$ Lam name trm\\ |
748 \hspace{5mm}$|$ Let assn trm\\ |
768 \hspace{5mm}$|$ Let assns trm\\ |
749 \multicolumn{2}{l}{\isacommand{and} assn $=$}\\ |
769 \multicolumn{2}{l}{\isacommand{and} assns $=$}\\ |
750 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} ANil}\\ |
770 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} ANil}\\ |
751 \multicolumn{2}{l}{\hspace{5mm}$|$ ACons name trm assn}\\[5mm] |
771 \multicolumn{2}{l}{\hspace{5mm}$|$ ACons name trm assns}\\[5mm] |
752 \multicolumn{2}{l}{\isacommand{function} bn \isacommand{where}}\\ |
772 \multicolumn{2}{l}{\isacommand{function} bn \isacommand{where}}\\ |
753 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} bn(ANil) $=$ $[]$}\\ |
773 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} bn(ANil) $=$ $[]$}\\ |
754 \multicolumn{2}{l}{\hspace{5mm}$|$ bn(ACons a t as) $=$ $[$a$]$ @ bn(as)}\\ |
774 \multicolumn{2}{l}{\hspace{5mm}$|$ bn(ACons a t as) $=$ $[$a$]$ @ bn(as)}\\ |
755 \end{tabular} |
775 \end{tabular} |
756 |
776 |
1004 \multicolumn{2}{l}{\isacommand{nominal\_datatype} trm $=$}\\ |
1024 \multicolumn{2}{l}{\isacommand{nominal\_datatype} trm $=$}\\ |
1005 \hspace{5mm}\phantom{$|$} Var name\\ |
1025 \hspace{5mm}\phantom{$|$} Var name\\ |
1006 \hspace{5mm}$|$ App trm trm\\ |
1026 \hspace{5mm}$|$ App trm trm\\ |
1007 \hspace{5mm}$|$ Lam x::name t::trm |
1027 \hspace{5mm}$|$ Lam x::name t::trm |
1008 & \isacommand{bind} x \isacommand{in} t\\ |
1028 & \isacommand{bind} x \isacommand{in} t\\ |
1009 \hspace{5mm}$|$ Let as::assn t::trm |
1029 \hspace{5mm}$|$ Let as::assns t::trm |
1010 & \isacommand{bind} bn(as) \isacommand{in} t\\ |
1030 & \isacommand{bind} bn(as) \isacommand{in} t\\ |
1011 \multicolumn{2}{l}{\isacommand{and} assn $=$}\\ |
1031 \multicolumn{2}{l}{\isacommand{and} assns $=$}\\ |
1012 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} ANil}\\ |
1032 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} ANil}\\ |
1013 \multicolumn{2}{l}{\hspace{5mm}$|$ ACons name trm assn}\\ |
1033 \multicolumn{2}{l}{\hspace{5mm}$|$ ACons name trm assns}\\ |
1014 \multicolumn{2}{l}{\isacommand{binder} bn \isacommand{where}}\\ |
1034 \multicolumn{2}{l}{\isacommand{binder} bn \isacommand{where}}\\ |
1015 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} bn(ANil) $=$ $[]$}\\ |
1035 \multicolumn{2}{l}{\hspace{5mm}\phantom{$|$} bn(ANil) $=$ $[]$}\\ |
1016 \multicolumn{2}{l}{\hspace{5mm}$|$ bn(ACons a t as) $=$ $[$a$]$ @ bn(as)}\\ |
1036 \multicolumn{2}{l}{\hspace{5mm}$|$ bn(ACons a t as) $=$ $[$a$]$ @ bn(as)}\\ |
1017 \end{tabular}\bigskip\medskip |
1037 \end{tabular}\bigskip\medskip |
1018 |
1038 |
1019 we cannot quotient assn: ACons a \ldots $\not\approx_\alpha$ ACons b \ldots |
1039 we cannot quotient assns: ACons a \ldots $\not\approx_\alpha$ ACons b \ldots |
1020 |
1040 |
1021 \only<1->{ |
1041 \only<1->{ |
1022 \begin{textblock}{8}(0.2,7.3) |
1042 \begin{textblock}{8}(0.2,7.3) |
1023 \alert{\begin{tabular}{p{2.6cm}} |
1043 \alert{\begin{tabular}{p{2.6cm}} |
1024 \raggedright\footnotesize{}Should a ``naked'' assn be quotient? |
1044 \raggedright\footnotesize{}Should a ``naked'' assns be quotient? |
1025 \end{tabular}\hspace{-3mm} |
1045 \end{tabular}\hspace{-3mm} |
1026 $\begin{cases} |
1046 $\begin{cases} |
1027 \mbox{} \\ \mbox{} |
1047 \mbox{} \\ \mbox{} |
1028 \end{cases}$} |
1048 \end{cases}$} |
1029 \end{textblock}} |
1049 \end{textblock}} |