# HG changeset patch # User Christian Urban # Date 1300306070 -3600 # Node ID 6aa98a113e6c8558a5dcec26986f5c0dbb2cfd27 # Parent 34df2cffe25922b2571bcc99d4b9ae67ddb42e86 a lit bit more on the pearl-jv paper diff -r 34df2cffe259 -r 6aa98a113e6c Pearl-jv/Paper.thy --- a/Pearl-jv/Paper.thy Wed Mar 16 20:42:14 2011 +0100 +++ b/Pearl-jv/Paper.thy Wed Mar 16 21:07:50 2011 +0100 @@ -67,12 +67,17 @@ At its core Nominal Isabelle is based on the nominal logic work by Pitts at al \cite{GabbayPitts02,Pitts03}, whose most basic notion is a sort-respecting permutation operation defined over a countably infinite - collection of sorted atoms. The atoms are used for representing variable names - that might be bound or free. 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 in lambda abstractions and bound type variables in - type schemes. In order to be able to separate them, each kind of variables needs to be - represented by a different sort of atoms. + collection of sorted atoms. The aim of this paper is to describe how to + adapt this work so that it can be implemented in a theorem prover based + on Higher-Order Logic (HOL). For this we present the definition we made + in the implementation and also review many proofs. There are a two main + design choices to be made. One is + how to represent sorted atoms. We opt here for a single unified atom type to + represent atoms of different sorts. The other is how to present sort-respecting + permutations. For them we use the standard technique of + HOL-formalisations of introducing an appropriate substype of functions from + atoms to atoms. + The nominal logic work has been the starting point for a number of proving infrastructures, most notable by Norrish \cite{norrish04} in HOL4, by @@ -151,6 +156,8 @@ Two binders + + A preliminary version *} section {* Sorted Atoms and Sort-Respecting Permutations *} @@ -158,6 +165,13 @@ text {* The two most basic notions in the nominal logic work are a countably infinite collection of sorted atoms and sort-respecting permutations of atoms. + The atoms are used for representing variable names + that might be bound or free. 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 in lambda abstractions and bound type variables in + type schemes. In order to be able to separate them, each kind of variables needs to be + represented by a different sort of atoms. + The existing nominal logic work usually leaves implicit the sorting information for atoms and as far as we know leaves out a description of how sorts are represented. In our formalisation, we