# HG changeset patch # User Christian Urban # Date 1273868314 -3600 # Node ID dff8bd92281281c6b4ce57f4dcc017089f98b758 # Parent 2e514a0aca632ae364e68163d487945bc09da689 tuned a bit the paper diff -r 2e514a0aca63 -r dff8bd922812 Paper/Paper.thy --- a/Paper/Paper.thy Fri May 14 18:12:07 2010 +0100 +++ b/Paper/Paper.thy Fri May 14 21:18:34 2010 +0100 @@ -937,12 +937,11 @@ \emph{one} binding clause of a term constructor. For binders we distinguish between \emph{shallow} and \emph{deep} binders. - Shallow binders are of the form \isacommand{bind}\; {\it labels}\; - \isacommand{in}\; {\it labels'} (similar for the other two modes). The - restrictions we impose on shallow binders are that in case of - \isacommand{bind\_set} and \isacommand{bind\_res} the {\it labels} must + Shallow binders are just labels. The + restrictions we need to impose on them are that in case of + \isacommand{bind\_set} and \isacommand{bind\_res} the labels must either refer to atom types or to sets of atom types; in case of - \isacommand{bind} we allow labels to refer to atom types or lists of atom types. + \isacommand{bind} the labels must refer to atom types or lists of atom types. Two examples for the use of shallow binders are the specification of lambda-terms, where a single name is bound, and type-schemes, where a finite set of names is bound: @@ -1020,10 +1019,10 @@ \begin{center} \begin{tabular}{ll} - @{text "Foo\<^isub>1 p::pat q::pat t::trm"} & - \isacommand{bind} @{text "bn(p) bn(q)"} \isacommand{in} @{text t}\\ + @{text "Foo\<^isub>1 p::pat t::trm"} & + \isacommand{bind} @{text "bn\<^isub>1(p) bn\<^isub>2(p)"} \isacommand{in} @{text t}\\ @{text "Foo\<^isub>2 x::name p::pat t::trm"} & - \isacommand{bind} @{text "x bn(p)"} \isacommand{in} @{text t}\\ + \isacommand{bind} @{text "bn(p)"} \isacommand{in} @{text t}, ***\\ \end{tabular} \end{center}