diff -r e39453c8b186 -r 5165c350ee1a Paper/Paper.thy --- a/Paper/Paper.thy Thu Apr 08 13:04:49 2010 +0200 +++ b/Paper/Paper.thy Thu Apr 08 14:18:38 2010 +0200 @@ -8,7 +8,8 @@ abs_set :: "'a \ 'b \ 'c" alpha_bn :: "'a \ 'a \ bool" abs_set2 :: "'a \ perm \ 'b \ 'c" - alpha2 :: "'a \ 'b \ 'c \ 'd \ 'e \ 'f" + Abs_dist :: "'a \ 'b \ 'c" + definition "equal \ (op =)" @@ -25,12 +26,12 @@ alpha_res ("_ \\<^raw:\raisebox{-1pt}{\makebox[0mm][l]{$\,_{\textit{res}}$}}>\<^bsup>_, _, _\<^esup> _") and abs_set ("_ \\<^raw:{$\,_{\textit{abs\_set}}$}> _") and abs_set2 ("_ \\<^raw:\raisebox{-1pt}{\makebox[0mm][l]{$\,_{\textit{list}}$}}>\<^bsup>_\<^esup> _") and - alpha2 ("_ \\<^raw:\raisebox{-1pt}{\makebox[0mm][l]{$\,_{\textit{\#{}list}}$}}>\<^bsup>_, _, _\<^esup> _") and fv ("fv'(_')" [100] 100) and equal ("=") and alpha_abs ("_ \\<^raw:{$\,_{\textit{abs\_set}}$}> _") and Abs ("[_]\<^raw:$\!$>\<^bsub>set\<^esub>._" [20, 101] 999) and Abs_lst ("[_]\<^raw:$\!$>\<^bsub>list\<^esub>._") and + Abs_dist ("[_]\<^raw:$\!$>\<^bsub>#list\<^esub>._") and Abs_res ("[_]\<^raw:$\!$>\<^bsub>res\<^esub>._") and Cons ("_::_" [78,77] 73) and supp_gen ("aux _" [1000] 10) and @@ -2072,23 +2073,16 @@ We have also not yet played with other binding modes. For example we can - imagine that there is need for a binding mode \isacommand{bind\_\#list} with an associated - alpha-equivalence definition as follows: + imagine that there is need for a binding mode \isacommand{bind\_\#list} with + an associated abstraction of the form % \begin{center} - $\begin{array}{@ {\hspace{10mm}}r@ {\hspace{2mm}}l} - \multicolumn{2}{l}{@{term "alpha2 (as, x) R fv p (bs, y)"}\hspace{2mm}@{text "\"}\hspace{30mm}}\\[1mm] - & @{term "fv(x) - (set as) = fv(y) - (set bs)"}\\ - \wedge & @{term "(fv(x) - set as) \* p"}\\ - \wedge & @{text "(p \ x) R y"}\\ - \wedge & @{term "(p \ as) = bs"}\\ - \wedge & @{term "distinct as"} - \end{array}$ + @{term "Abs_dist as x"} \end{center} \noindent - In this definition we added the requirement that all bound variables in a - list are distinct. Once we feel confident about such binding modes, our implementation + where instead of lists, we abstract lists of distinct elements. + Once we feel confident about such binding modes, our implementation can be easily extended to accommodate them. \medskip