Paper/Paper.thy
changeset 1517 62d6f7acc110
parent 1506 7c607df46a0a
child 1520 6ac75fd979d4
equal deleted inserted replaced
1516:e3a82a3529ce 1517:62d6f7acc110
    49   %\rput[c](1.7,1.5){$\lama$}
    49   %\rput[c](1.7,1.5){$\lama$}
    50   %\rput(3.7,1.75){isomorphism}
    50   %\rput(3.7,1.75){isomorphism}
    51   %\end{pspicture}
    51   %\end{pspicture}
    52   %\end{center}
    52   %\end{center}
    53 
    53 
    54 
    54   quotient package \cite{Homeier05}
    55 *}
    55 *}
    56 
    56 
    57 section {* A Short Review of the Nominal Logic Work *}
    57 section {* A Short Review of the Nominal Logic Work *}
    58 
    58 
    59 text {*
    59 text {*
    60   At its core, Nominal Isabelle is based on the nominal logic work by Pitts
    60   At its core, Nominal Isabelle is based on the nominal logic work by Pitts
    61   \cite{Pitts03}. Two central notions in this work are sorted atoms and
    61   \cite{Pitts03}. The implementation of this work are described in
    62   permutations of atoms. The sorted atoms represent different
    62   \cite{HuffmanUrban10}, which we review here briefly to aid the description
    63   kinds of variables, such as term- and type-variables in Core-Haskell, and it
    63   of what follows in the next sections. Two central notions in the nominal
    64   is assumed that there is an infinite supply of atoms for each sort. 
    64   logic work are sorted atoms and permutations of atoms. The sorted atoms
    65   However, in order to simplify the description of our work, we shall
    65   represent different kinds of variables, such as term- and type-variables in
    66   assume in this paper that there is only a single sort of atoms.
    66   Core-Haskell, and it is assumed that there is an infinite supply of atoms
       
    67   for each sort. However, in order to simplify the description of our work, we
       
    68   shall assume in this paper that there is only a single sort of atoms.
    67 
    69 
    68   Permutations are bijective functions from atoms to atoms that are 
    70   Permutations are bijective functions from atoms to atoms that are 
    69   the identity everywhere except on a finite number of atoms. There is a 
    71   the identity everywhere except on a finite number of atoms. There is a 
    70   two-place permutation operation written
    72   two-place permutation operation written
    71 
    73 
    94   for an @{text x}, defined as
    96   for an @{text x}, defined as
    95   
    97   
    96   @{thm[display,indent=5] fresh_def[no_vars]}
    98   @{thm[display,indent=5] fresh_def[no_vars]}
    97 
    99 
    98   \noindent
   100   \noindent
    99   We also use for sets of atoms the abbreviation @{thm fresh_star_def[no_vars]}.
   101   We also use for sets of atoms the abbreviation 
       
   102   @{thm (lhs) fresh_star_def[no_vars]} defined as 
       
   103   @{thm (rhs) fresh_star_def[no_vars]}.
   100   A striking consequence of these definitions is that we can prove
   104   A striking consequence of these definitions is that we can prove
   101   without knowing anything about the structure of @{term x} that
   105   without knowing anything about the structure of @{term x} that
   102   swapping two fresh atoms, say @{text a} and @{text b}, leave 
   106   swapping two fresh atoms, say @{text a} and @{text b}, leave 
   103   @{text x} unchanged. 
   107   @{text x} unchanged. 
   104 
   108 
   105   \begin{Property}
   109   \begin{property}
   106   @{thm[mode=IfThen] swap_fresh_fresh[no_vars]}
   110   @{thm[mode=IfThen] swap_fresh_fresh[no_vars]}
   107   \end{Property}
   111   \end{property}
   108 
   112 
   109   \begin{Property}
   113   \noindent
       
   114   For a proof see \cite{HuffmanUrban10}.
       
   115 
       
   116   \begin{property}
   110   @{thm[mode=IfThen] at_set_avoiding[no_vars]}
   117   @{thm[mode=IfThen] at_set_avoiding[no_vars]}
   111   \end{Property}
   118   \end{property}
   112 
   119 
   113 *}
   120 *}
   114 
   121 
   115 
   122 
   116 section {* Abstractions *}
   123 section {* Abstractions *}
   117 
   124 
       
   125 text {*
       
   126   General notion of alpha-equivalence (depends on a free-variable
       
   127   function and a relation).
       
   128 *}
       
   129 
   118 section {* Alpha-Equivalence and Free Variables *}
   130 section {* Alpha-Equivalence and Free Variables *}
   119 
   131 
   120 section {* Examples *}
   132 section {* Examples *}
       
   133 
       
   134 section {* Adequacy *}
       
   135 
       
   136 section {* Related Work *}
   121 
   137 
   122 section {* Conclusion *}
   138 section {* Conclusion *}
   123 
   139 
   124 text {*
   140 text {*
   125 
   141 
       
   142   TODO: function definitions:
       
   143   \medskip
       
   144 
   126   \noindent
   145   \noindent
   127   {\bf Acknowledgements:} We are very grateful to Andrew Pitts for the 
   146   {\bf Acknowledgements:} We are very grateful to Andrew Pitts for the 
   128   many discussions about Nominal Isabelle. We thank Peter Sewell for 
   147   many discussions about Nominal Isabelle. We thank Peter Sewell for 
   129   making the informal notes \cite{SewellBestiary} available to us and 
   148   making the informal notes \cite{SewellBestiary} available to us and 
   130   also explaining some of the finer points of the OTT-tool.
   149   also for explaining some of the finer points of the OTT-tool.
   131 
   150 
   132 
   151 
   133 *}
   152 *}
   134 
   153 
   135 
   154