Results 1  10
of
11
Nominal Unification
 Theoretical Computer Science
, 2003
"... We present a generalisation of firstorder unification to the practically important case of equations between terms involving binding operations. A substitution of terms for variables solves such an equation if it makes the equated terms #equivalent, i.e. equal up to renaming bound names. For the a ..."
Abstract

Cited by 68 (28 self)
 Add to MetaCart
(Show Context)
We present a generalisation of firstorder unification to the practically important case of equations between terms involving binding operations. A substitution of terms for variables solves such an equation if it makes the equated terms #equivalent, i.e. equal up to renaming bound names. For the applications we have in mind, we must consider the simple, textual form of substitution in which names occurring in terms may be captured within the scope of binders upon substitution. We are able to take a `nominal' approach to binding in which bound entities are explicitly named (rather than using nameless, de Bruijnstyle representations) and yet get a version of this form of substitution that respects #equivalence and possesses good algorithmic properties. We achieve this by adapting an existing idea and introducing a key new idea. The existing idea is terms involving explicit substitutions of names for names, except that here we only use explicit permutations (bijective substitutions). The key new idea is that the unification algorithm should solve not only equational problems, but also problems about the freshness of names for terms. There is a simple generalisation of the classical firstorder unification algorithm to this setting which retains the latter's pleasant properties: unification problems involving #equivalence and freshness are decidable; and solvable problems possess most general solutions.
A LambdaCalculus for Dynamic Binding
 Theoretical Computer Science
, 1997
"... This paper proposes N , a compact extension of the calculus to model dynamic binding, where variables are labelled by names, and where arguments are passed to functions along named channels. The resulting formalism preserves familiar properties of the calculus, has a Currystyle type inference sys ..."
Abstract

Cited by 35 (2 self)
 Add to MetaCart
(Show Context)
This paper proposes N , a compact extension of the calculus to model dynamic binding, where variables are labelled by names, and where arguments are passed to functions along named channels. The resulting formalism preserves familiar properties of the calculus, has a Currystyle type inference system, and has a formal notion of compatibility for reasoning about extensible environments. It can encode record and record extensions, as well as firstclass contexts with contextfilling operations, and therefore provides a basic framework for expressing a wide range of namebased coordination mechanisms. An experimental functional language based on N illustrates the exploitation of dynamic binding in programming language design. 1 Introduction Computer systems are required to be increasingly "open"  able to dynamically interact with other, possibly unknown or weakly specified systems, and able to coordinate together a global computation. In order to follow this evolution, computational models pay ever increasing attention to notions such as concurrency and distribution. However, open systems also often depend on another concept, more or less orthogonal to the previous ones, and which seems to have been less investigated in theoretical studies: dynamic binding.
A Simply Typed Context Calculus with FirstClass Environments
, 2002
"... . We introduce a simply typed calculus " which has both contexts and environments as firstclass values. In ", holes in contexts are represented by ordinary variables of appropriate types and hole filling is represented by the functional application together with a new abstraction mechani ..."
Abstract

Cited by 17 (1 self)
 Add to MetaCart
(Show Context)
. We introduce a simply typed calculus " which has both contexts and environments as firstclass values. In ", holes in contexts are represented by ordinary variables of appropriate types and hole filling is represented by the functional application together with a new abstraction mechanism which takes care of packing and unpacking of the term which is used to fill in the holes of the context. " is a conservative extension of the simply typed ficalculus, enjoys subject reduction property, is confluent and strongly normalizing. The traditional method of defining substitution does not work for our calculus. So, we also introduce a new method of defining substitution. Although we introduce the new definition of substitution out of necessity, the new definition turns out to be conceptually simpler than the traditional definition of substitution. 1 Introduction Informally speaking, a context (in calculus) is a term with some holes in it. For example, writing [ ] for a hole, y: [ ] is a...
Free Σmonoids: A higherorder syntax with metavariables
 In Proc. of APLAS’04, LNCS 3302
, 2004
"... Abstract. The notion of Σmonoids is proposed by Fiore, Plotkin and Turi, to give abstract algebraic model of languages with variable binding and substitutions. In this paper, we give a free construction of Σmonoids. The free Σmonoid over a given presheaf serves a wellstructured term language inv ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
Abstract. The notion of Σmonoids is proposed by Fiore, Plotkin and Turi, to give abstract algebraic model of languages with variable binding and substitutions. In this paper, we give a free construction of Σmonoids. The free Σmonoid over a given presheaf serves a wellstructured term language involving binding and substitutions. Moreover, the free Σmonoid naturally contains interesting syntactic objects which can be viewed as “metavariables ” and “environments”. We analyse the term language of the free Σmonoid by relating it with several concrete systems, especially the λcalculus extended with contexts. 1
Dynamic rebinding for marshalling and update, via redextime and destructtime reduction
, 2008
"... ..."
Observations on a Linear PCF
, 1997
"... This paper considers some theoretical and practical issues concerning the use of linear logic as a logical foundation of functional programming languages such as Haskell and SML. First I give an operational theory for a linear PCF: the (typed) linear  calculus extended with booleans, conditional a ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
This paper considers some theoretical and practical issues concerning the use of linear logic as a logical foundation of functional programming languages such as Haskell and SML. First I give an operational theory for a linear PCF: the (typed) linear  calculus extended with booleans, conditional and nontermination. An operational semantics is given which corresponds in a precise way to the process of fireduction which originates from proof theory. Using this operational semantics I define notions of observational equivalence (sometimes called contextual equivalence). Surprisingly, the linearity of the language forces a reworking of the traditional notion of a context (the details are given in an appendix). A coinductively defined notion, applicative bisimularity, is developed and compared with observational equivalence using a variant of Howe's method. Interestingly the equivalence of these two notions is greatly complicated by the linearity of the language. These equivalences ar...
Amalgams: Names and Name Capture in a Declarative Framework
, 1998
"... this paper, we address the problem of names and name capture on its own by designing, through the use of three operators, a complete and consistent mechanism of name capture for a declarative framework. We perceive expressions with free names as incomplete expressions which will be dynamically compl ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
(Show Context)
this paper, we address the problem of names and name capture on its own by designing, through the use of three operators, a complete and consistent mechanism of name capture for a declarative framework. We perceive expressions with free names as incomplete expressions which will be dynamically completed by a name capture mechanism. The formalism allows the denition of rstclass environments (which can be the result of a computation). We apply this mechanism to model distributed incremental program construction and to dene an object oriented programming style in a declarative language
Dynamic Rebinding for Distributed Programming
, 2002
"... Most programming languages adopt static binding, but for distributed programming an exclusive reliance on static binding is too restrictive: dynamic binding is required in various guises. Typically it is provided only by adhoc mechanisms that lack clean semantics. ..."
Abstract
 Add to MetaCart
Most programming languages adopt static binding, but for distributed programming an exclusive reliance on static binding is too restrictive: dynamic binding is required in various guises. Typically it is provided only by adhoc mechanisms that lack clean semantics.
Transformational reasoning with incomplete information
"... Abstract. Starting a proof without having complete information about the proof term can be beneficial. While the proof is carried out newly introduced constraints can make the information more precise. Window inference, a proof paradigm based on hierarchical term rewriting, is very well suited for g ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. Starting a proof without having complete information about the proof term can be beneficial. While the proof is carried out newly introduced constraints can make the information more precise. Window inference, a proof paradigm based on hierarchical term rewriting, is very well suited for general transformational reasoning and especially for reasoning about programs. The HOL implementation of window inference does not support proofs with uninstantiated terms since the HOL system does not have a formalized metalogic. We show how, without having to redo proofs, higher order variables (metavariables) can be used to perform proofs with uninstantiated terms in HOL window inference. We illustrate the uses of metavariables with a few examples related to program reasoning. 1
unknown title
"... The intuitionistic modal logic of necessity is based on the judgmental notion of categorical truth. In this paper we investigate the consequences of relativizing these concepts to explicitly specified contexts. We obtain contextual modal logic and its typetheoretic analogue. Contextual modal type t ..."
Abstract
 Add to MetaCart
(Show Context)
The intuitionistic modal logic of necessity is based on the judgmental notion of categorical truth. In this paper we investigate the consequences of relativizing these concepts to explicitly specified contexts. We obtain contextual modal logic and its typetheoretic analogue. Contextual modal type theory provides an elegant, uniform foundation for understanding metavariables and explicit substitutions. We sketch some applications in functional programming and logical frameworks.