Pearl-jv/Paper.thy
changeset 2033 74bd7bfb484b
parent 2005 233bb805a4df
child 2065 c5d28ebf9dab
--- a/Pearl-jv/Paper.thy	Mon May 03 08:52:15 2010 +0100
+++ b/Pearl-jv/Paper.thy	Tue May 04 05:36:43 2010 +0100
@@ -2,7 +2,8 @@
 theory Paper
 imports "../Nominal-General/Nominal2_Base" 
         "../Nominal-General/Nominal2_Atoms" 
-        "../Nominal-General/Nominal2_Eqvt" 
+        "../Nominal-General/Nominal2_Eqvt"
+        "../Nominal-General/Nominal2_Supp" 
         "../Nominal-General/Atoms" 
         "LaTeXsugar"
 begin
@@ -43,24 +44,22 @@
 section {* Introduction *}
 
 text {*
+  The purpose of Nominal Isabelle is to provide a proving infratructure
+  for conveninet reasoning about programming languages. At its core
+  Nominal Isabelle is based on nominal logic by Pitts at al
+  \cite{GabbayPitts02,Pitts03}.  
+ 
   Nominal Isabelle is a definitional extension of the Isabelle/HOL theorem
   prover providing a proving infrastructure for convenient reasoning about
-  programming languages. It has been used to formalise an equivalence checking
-  algorithm for LF \cite{UrbanCheneyBerghofer08}, 
-  Typed Scheme~\cite{TobinHochstadtFelleisen08}, several calculi for concurrency
-  \cite{BengtsonParrow07} and a strong normalisation result for
-  cut-elimination in classical logic \cite{UrbanZhu08}. It has also been used
-  by Pollack for formalisations in the locally-nameless approach to binding
-  \cite{SatoPollack10}.
+  programming languages. At its core Nominal Isabelle is based on the nominal
+  logic work of Pitts et al \cite{GabbayPitts02,Pitts03}.  The most basic
+  notion in this work is a sort-respecting permutation operation defined over
+  a countably infinite collection of sorted atoms. The atoms are used for
+  representing variables that might be bound. Multiple sorts are necessary for
+  being able to represent different kinds of variables. For example, in the
+  language Mini-ML there are bound term variables and bound type variables;
+  each kind needs to be represented by a different sort of atoms.
 
-  At its core Nominal Isabelle is based on the nominal logic work of Pitts et
-  al \cite{GabbayPitts02,Pitts03}.  The most basic notion in this work is a
-  sort-respecting permutation operation defined over a countably infinite
-  collection of sorted atoms. The atoms are used for representing variables
-  that might be bound. Multiple sorts are necessary for being
-  able to represent different kinds of variables. For example, in the language
-  Mini-ML there are bound term variables and bound type variables; each kind
-  needs to be represented by a different sort of atoms.
 
   Unfortunately, the type system of Isabelle/HOL is not a good fit for the way
   atoms and sorts are used in the original formulation of the nominal logic work.
@@ -858,9 +857,41 @@
   Cheney \cite{Cheney06} gives similar examples for constructions that have infinite support.
 *}
 
+section {* Support of Finite Sets *}
+
+text {*
+  Sets is one instance of a type that is not generally finitely supported. 
+  However, it can be easily derived that finite sets of atoms are finitely
+  supported, because their support can be characterised as:
+
+  \begin{lemma}\label{finatomsets}
+  If @{text S} is a finite set of atoms, then @{thm (concl) supp_finite_atom_set[no_vars]}.
+  \end{lemma}
+
+  \begin{proof}
+  finite-supp-unique
+  \end{proof}
+
+  More difficult is it to establish that finite sets of finitely 
+  supported objects are finitely supported. 
+*}
+
+
 section {* Induction Principles *}
 
+text {*
+  While the use of functions as permutation provides us with a unique
+  representation for permutations (for example @{term "(a \<rightleftharpoons> b)"} and 
+  @{term "(b \<rightleftharpoons> a)"} are equal permutations), this representation has 
+  one draw back: it does not come readily with an induction principle. 
+  Such an induction principle is handy for deriving properties like
+  
+  @{thm [display, indent=10] supp_perm_eq}
 
+  \noindent
+  However, it is not too difficult to derive an induction principle, 
+  given the fact that we allow only permutations with a finite domain. 
+*}
 
 
 section {* Concrete Atom Types *}
@@ -1167,6 +1198,12 @@
   HOL-based languages.
 *}
 
+section {* Related Work *}
+
+text {*
+  Add here comparison with old work.
+*}
+
 
 section {* Conclusion *}