author | Christian Urban <urbanc@in.tum.de> |
Thu, 27 May 2010 18:37:52 +0200 | |
changeset 2302 | c6db12ddb60c |
parent 2300 | 9fb315392493 |
child 2304 | 8a98171ba1fc |
permissions | -rw-r--r-- |
2299 | 1 |
(*<*) |
2 |
theory Slides1 |
|
3 |
imports "LaTeXsugar" "Nominal" |
|
4 |
begin |
|
5 |
||
6 |
notation (latex output) |
|
7 |
set ("_") and |
|
8 |
Cons ("_::/_" [66,65] 65) |
|
9 |
||
10 |
(*>*) |
|
11 |
||
12 |
||
13 |
text_raw {* |
|
14 |
\renewcommand{\slidecaption}{TU Munich, 28.~May 2010} |
|
15 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
16 |
\mode<presentation>{ |
|
17 |
\begin{frame}<1>[t] |
|
18 |
\frametitle{% |
|
19 |
\begin{tabular}{@ {\hspace{-3mm}}c@ {}} |
|
20 |
\\ |
|
21 |
\huge Nominal 2\\[-2mm] |
|
22 |
\large Or, How to Reason Conveniently with\\[-5mm] |
|
23 |
\large General Bindings\\[15mm] |
|
24 |
\end{tabular}} |
|
25 |
\begin{center} |
|
2300
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
26 |
joint work with {\bf Cezary} and Brian Huf\!fman\\[0mm] |
2299 | 27 |
\end{center} |
28 |
\end{frame}} |
|
29 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
30 |
||
31 |
*} |
|
32 |
||
33 |
text_raw {* |
|
34 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
35 |
\mode<presentation>{ |
|
2300
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
36 |
\begin{frame}<1-2> |
2299 | 37 |
\frametitle{\begin{tabular}{c}Part I: Nominal Theory\end{tabular}} |
38 |
\mbox{}\\[-3mm] |
|
39 |
||
2300
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
40 |
\begin{itemize} |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
41 |
\item sorted atoms and sort-respecting permutations\medskip |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
42 |
|
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
43 |
\onslide<2->{ |
2302 | 44 |
\item[] in old Nominal: atoms have \underline{dif\!ferent} type\medskip |
2300
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
45 |
|
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
46 |
\begin{center} |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
47 |
\begin{tabular}{c@ {\hspace{7mm}}c} |
2302 | 48 |
$[]\;\act\;c \dn c$ & |
49 |
$(a\;b)\!::\!\pi\;\act\;c \dn$ |
|
2300
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
50 |
$\begin{cases} |
2302 | 51 |
b & \text{if}\; \pi \act c = a\\ |
52 |
a & \text{if}\; \pi \act c = b\\ |
|
53 |
\pi \act c & \text{otherwise} |
|
2300
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
54 |
\end{cases}$ |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
55 |
\end{tabular} |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
56 |
\end{center}} |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
57 |
\end{itemize} |
2299 | 58 |
|
59 |
\end{frame}} |
|
60 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
61 |
*} |
|
62 |
||
63 |
text_raw {* |
|
64 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
65 |
\mode<presentation>{ |
|
2300
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
66 |
\begin{frame}<1> |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
67 |
\frametitle{\begin{tabular}{c}Problems\end{tabular}} |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
68 |
\mbox{}\\[-3mm] |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
69 |
|
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
70 |
\begin{itemize} |
2302 | 71 |
\item @{text "_ \<bullet> _ :: \<alpha> perm \<Rightarrow> \<beta> \<Rightarrow> \<beta>"}\bigskip |
2300
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
72 |
|
2302 | 73 |
\item @{text "supp _ :: \<beta> \<Rightarrow> \<alpha> set"} |
2300
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
74 |
|
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
75 |
\begin{center} |
2302 | 76 |
$\text{finite} (\text{supp}\;x)_{\,\alpha_1\,\text{set}}$ \ldots |
77 |
$\text{finite} (\text{supp}\;x)_{\,\alpha_n\,\text{set}}$ |
|
78 |
\end{center}\bigskip |
|
2300
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
79 |
|
2302 | 80 |
\item $\forall \pi_{\alpha_1} \ldots \pi_{\alpha_n}\;.\; P$\bigskip |
81 |
||
82 |
\item type-classes |
|
83 |
\end{itemize} |
|
84 |
||
85 |
\end{frame}} |
|
86 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
87 |
*} |
|
88 |
||
89 |
text_raw {* |
|
90 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
91 |
\mode<presentation>{ |
|
92 |
\begin{frame}<1-4> |
|
93 |
\frametitle{\begin{tabular}{c}Our New Solution\end{tabular}} |
|
94 |
\mbox{}\\[-3mm] |
|
95 |
*} |
|
96 |
datatype atom = Atom string nat |
|
97 |
||
98 |
text_raw {* |
|
99 |
\mbox{}\bigskip |
|
100 |
\begin{itemize} |
|
101 |
\item<2-> permutations are (restricted) bijective functions from @{text "atom \<Rightarrow> atom"} |
|
102 |
||
103 |
\begin{itemize} |
|
104 |
\item sort-respecting \hspace{5mm}($\forall a.\;\text{sort}(f a) = \text{sort}(a)$) |
|
105 |
\item finite domain \hspace{5mm}($\text{finite} \{a.\;f a \not= a\}$) |
|
106 |
\end{itemize}\medskip |
|
107 |
||
108 |
\item<3-> swappings: |
|
109 |
\small |
|
110 |
\[ |
|
111 |
\begin{array}{l@ {\hspace{1mm}}l} |
|
112 |
(a\;b) \dn & \text{if}\;\text{sort}(a) = \text{sort}(b)\\ |
|
113 |
& \text{then}\;\lambda c. \text{if}\;a = c\;\text{then}\;b\;\text{else}\; |
|
114 |
\text{if}\;b = c\;\text{then}\;a\;\text{else}\;c\\ |
|
115 |
& \text{else}\;\only<3>{\mbox{\textcolor{red}{\bf ?}}}\only<4->{\text{id}} |
|
116 |
\end{array} |
|
117 |
\] |
|
118 |
\end{itemize} |
|
119 |
||
120 |
\end{frame}} |
|
121 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
122 |
*} |
|
123 |
||
124 |
text_raw {* |
|
125 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
126 |
\mode<presentation>{ |
|
127 |
\begin{frame}<1-4> |
|
128 |
\frametitle{\begin{tabular}{c}\LARGE{}A Smoother Nominal Theory\end{tabular}} |
|
129 |
\mbox{}\\[-3mm] |
|
130 |
||
131 |
\begin{itemize} |
|
132 |
\item<1-> $(a\;b) = (b\;a)$\bigskip |
|
133 |
||
134 |
\item<2-> permutations are an instance of group\_add\\ $0$, $\pi_1 + \pi_2$, $- \pi$\bigskip |
|
135 |
||
136 |
\item<3-> $\_\;\act\;\_ :: \text{perm} \Rightarrow \alpha \Rightarrow \alpha$\medskip |
|
137 |
||
138 |
\begin{itemize} |
|
139 |
\item $0\;\act\;x = x$\\ |
|
140 |
\item $(\pi_1 + \pi_2)\;\act\;x = \pi_1\;\act\;(\pi_2\;\act\;x)$ |
|
141 |
\end{itemize} |
|
142 |
||
143 |
\small |
|
144 |
\onslide<4->{$\text{finite}(\text{supp}\;x)$, $\forall \pi. P$} |
|
2300
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
145 |
\end{itemize} |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
146 |
|
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
147 |
\end{frame}} |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
148 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
149 |
*} |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
150 |
|
2302 | 151 |
text_raw {* |
152 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
153 |
\mode<presentation>{ |
|
154 |
\begin{frame}<1-3> |
|
155 |
\frametitle{\begin{tabular}{c}Very Few Snatches\end{tabular}} |
|
156 |
\mbox{}\\[-3mm] |
|
157 |
||
158 |
\begin{itemize} |
|
159 |
\item \underline{concrete} atoms: |
|
160 |
\end{itemize} |
|
161 |
*} |
|
162 |
(*<*) |
|
163 |
consts sort :: "atom \<Rightarrow> string" |
|
164 |
(*>*) |
|
165 |
||
166 |
typedef name = "{a :: atom. sort a = ''name''}" |
|
167 |
(*<*)sorry(*>*) |
|
168 |
||
169 |
text_raw {* |
|
170 |
\mbox{}\bigskip\bigskip |
|
171 |
\begin{itemize} |
|
172 |
\item<2-> there is a function \underline{atom}, which injects concrete atoms into generic atoms\medskip |
|
173 |
\begin{center} |
|
174 |
\begin{tabular}{l} |
|
175 |
$\text{atom}(a) \fresh x$\\ |
|
176 |
$(a \leftrightarrow b) \dn (\text{atom}(a)\;\;\text{atom}(b))$ |
|
177 |
\end{tabular} |
|
178 |
\end{center}\bigskip\medskip |
|
179 |
||
180 |
\onslide<3-> |
|
181 |
{I would like to have $a \fresh x$, $(a\; b)$, \ldots} |
|
182 |
||
183 |
\end{itemize} |
|
184 |
||
185 |
\end{frame}} |
|
186 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
187 |
*} |
|
2300
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
188 |
|
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
189 |
text_raw {* |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
190 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
9fb315392493
added FSet to the correct paper
Christian Urban <urbanc@in.tum.de>
parents:
2299
diff
changeset
|
191 |
\mode<presentation>{ |
2302 | 192 |
\begin{frame}<1-2>[c] |
193 |
\frametitle{\begin{tabular}{c}\LARGE{}End of Part I\end{tabular}} |
|
2299 | 194 |
\mbox{}\\[-3mm] |
195 |
||
2302 | 196 |
\begin{itemize} |
197 |
\item the formalised version of the nominal theory is much nicer to |
|
198 |
work with (no assumptions, just two type classes; sorts are occasionally |
|
199 |
explicit)\bigskip |
|
200 |
||
201 |
\item permutations: ``be as abstract as you can'' (group\_add is a slight oddity)\bigskip |
|
202 |
||
203 |
\item allow sort-disrespecting swappings\onslide<2->{: just define them as the identity} |
|
204 |
\end{itemize} |
|
205 |
||
206 |
||
207 |
\end{frame}} |
|
208 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
209 |
*} |
|
210 |
||
211 |
text_raw {* |
|
212 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
213 |
\mode<presentation>{ |
|
214 |
\begin{frame}<1-2> |
|
215 |
\frametitle{\begin{tabular}{c}\LARGE{}Part II: General Bindings\end{tabular}} |
|
216 |
\mbox{}\\[-3mm] |
|
217 |
||
218 |
\begin{itemize} |
|
219 |
\item old Nominal provided single binders |
|
220 |
\begin{center} |
|
221 |
Lam [a].(Var a) |
|
222 |
\end{center}\bigskip |
|
223 |
||
224 |
\item<2-> representing |
|
225 |
\begin{center} |
|
226 |
$\forall\{a_1,\ldots,a_n\}.\; T$ |
|
227 |
\end{center} |
|
228 |
is a major pain, take my word for it |
|
229 |
\end{itemize} |
|
2299 | 230 |
|
231 |
\end{frame}} |
|
232 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
233 |
*} |
|
234 |
||
235 |
||
236 |
||
237 |
(*<*) |
|
238 |
end |
|
239 |
(*>*) |