Paper/Paper.thy
changeset 1528 d6ee4a1b34ce
parent 1524 926245dd5b53
child 1535 a37c65fe10de
--- a/Paper/Paper.thy	Thu Mar 18 23:38:01 2010 +0100
+++ b/Paper/Paper.thy	Thu Mar 18 23:39:26 2010 +0100
@@ -23,6 +23,7 @@
   \end{center}
 
   \noindent
+  where bound variables have a name.
   For such terms it derives automatically a reasoning
   infrastructure, which has been used in formalisations of an equivalence
   checking algorithm for LF \cite{UrbanCheneyBerghofer08}, Typed
@@ -148,19 +149,79 @@
   \end{center}
 
   \noindent
-  where the $[\_\!\_].\_\!\_$ indicates that a list of variables becomes bound
-  in $s$. In this representation we need additional predicates to ensure 
+  where the $[\_\!\_].\_\!\_$ indicates that a list of variables becomes 
+  bound in $s$. In this representation we need additional predicates to ensure 
   that the two lists are of equal length. This can result into very 
   unintelligible reasoning (see for example~\cite{BengtsonParow09}). 
+  To avoid this, we will allow for example specifications of $\mathtt{let}$s 
+  as follows
+
+  \begin{center}
+  \begin{tabular}{r@ {\hspace{2mm}}r@ {\hspace{2mm}}l}
+  $trm$ & $::=$  & \ldots\\ 
+        & $\mid$ & $\mathtt{let}\;a\!::\!assn\;\;t\!::\!trm\quad\mathtt{bind}\;bn\,(a) \IN t$\\[1mm]
+  $assn$ & $::=$  & $\mathtt{anil}$\\
+         & $\mid$ & $\mathtt{acons}\;\;name\;\;trm\;\;assn$
+  \end{tabular}
+  \end{center}
+
+  \noindent
+  where $assn$ is an auxiliary type representing a list of assignments
+  and $bn$ an auxilary function identifying the variables to be bound by 
+  the $\mathtt{let}$, given by 
+
+  \begin{center}
+  $bn\,(\mathtt{anil}) = \varnothing \qquad bn\,(\mathtt{acons}\;x\;t\;as) = \{x\} \cup bn\,(as)$ 
+  \end{center}
   
+  \noindent
+  This style of specifications for term-calculi with multiple binders is heavily 
+  inspired by the Ott-tool \cite{ott-jfp}.
+
+  We will not be able to deal with all specifications that are allowed by
+  Ott. One reason is that we establish the reasoning infrastructure for
+  alpha-\emph{equated} terms. In contrast, Ott produces for a subset of its
+  specifiactions a reasoning infrastructure involving concrete,
+  \emph{non}-alpha-equated terms. To see the difference, note that working
+  with alpha-equated terms means that the two type-schemes with $x$, $y$ and
+  $z$ being distinct
+
+  \begin{center}
+  $\forall \{x\}. x \rightarrow y  \;=\; \forall \{x, z\}. x \rightarrow y$ 
+  \end{center}
+  
+  \noindent
+  are not just alpha-equal, but actually equal---we are working with 
+  alpha-equivalence classes, but still have that bound variables 
+  carry a name.
+  Our insistence on reasoning with alpha-equated terms comes from the
+  wealth of experience we gained with the older version of Nominal 
+  Isabelle: for non-trivial properties,
+  reasoning about alpha-equated terms is much easier than reasoning 
+  with concrete terms. The fundamental reason is that the HOL-logic 
+  underlying Nominal Isabelle allows us to replace ``equals-by-equals''. 
+  Replacing ``alpha-equals-by-alpha-equals'' requires a lot of work.
+  
+  Although a reasoning infrastructure for alpha-equated terms with names 
+  is in informal reasoning nearly always taken for granted, establishing 
+  it automatically in a theorem prover is a rather non-trivial task. 
+  For every specification we will construct a type that contains 
+  exactly the corresponding alpha-equated terms. For this we use the 
+  standard HOL-technique of defining a new type that has been 
+  identified as a non-empty subset of an existing type. In our 
+  context we take as the starting point the type of sets of concrete
+  terms (the latter being defined as datatypes). Then quotient these
+  sets according to our alpha-equivalence relation and then identifying
+  the new type as these alpha-equivalence classes.  The construction we 
+  can perform in HOL is illustrated by the following picture:
+
   
 
-  
-  
   Contributions:  We provide definitions for when terms
   involving general bindings are alpha-equivelent.
 
-  %\begin{center}
+  \begin{center}
+  figure
   %\begin{pspicture}(0.5,0.0)(8,2.5)
   %%\showgrid
   %\psframe[linewidth=0.4mm,framearc=0.2](5,0.0)(7.7,2.5)
@@ -180,9 +241,24 @@
   %\rput[c](1.7,1.5){$\lama$}
   %\rput(3.7,1.75){isomorphism}
   %\end{pspicture}
-  %\end{center}
+  \end{center}
+
+  \noindent
+  To ``lift'' the reasoning from the underlying type to the new type
+  is usually a tricky task. To ease this task we reimplemented in Isabelle/HOL
+  the quotient package described by Homeier in \cite{Homeier05}. This
+  re-implementation will automate the proofs we require for our
+  reasoning infrastructure over alpha-equated terms.\medskip
 
-  quotient package \cite{Homeier05}
+  \noindent
+  {\bf Contributions:}  We provide new definitions for when terms
+  involving multiple binders are alpha-equivalent. These definitions are
+  inspired by earlier work of Pitts \cite{}. By means of automatic
+  proofs, we establish a reasoning infrastructure for alpha-equated
+  terms, including properties about support, freshness and equality
+  conditions for alpha-equated terms. We will also derive for these
+  terms a strong induction principle that has the variable convention
+  already built in.
 *}
 
 section {* A Short Review of the Nominal Logic Work *}
@@ -291,10 +367,11 @@
   \medskip
 
   \noindent
-  {\bf Acknowledgements:} We are very grateful to Andrew Pitts for the 
+  {\bf Acknowledgements:} We are very grateful to Andrew Pitts for  
   many discussions about Nominal Isabelle. We thank Peter Sewell for 
   making the informal notes \cite{SewellBestiary} available to us and 
-  also for explaining some of the finer points of the OTT-tool.
+  also for explaining some of the finer points about the abstract 
+  definitions and about the implmentation of the Ott-tool.
 
 
 *}