Results 1  10
of
42
Nominal Logic: A First Order Theory of Names and Binding
 Information and Computation
, 2001
"... This paper formalises within firstorder logic some common practices in computer science to do with representing and reasoning about syntactical structures involving named bound variables (as opposed to nameless terms, explicit substitutions, or higher order abstract syntax). It introduces Nominal L ..."
Abstract

Cited by 161 (15 self)
 Add to MetaCart
This paper formalises within firstorder logic some common practices in computer science to do with representing and reasoning about syntactical structures involving named bound variables (as opposed to nameless terms, explicit substitutions, or higher order abstract syntax). It introduces Nominal Logic, a version of firstorder manysorted logic with equality containing primitives for renaming via nameswapping and for freshness of names, from which a notion of binding can be derived. Its axioms express...
FreshML: Programming with Binders Made Simple
, 2003
"... FreshML extends ML with elegant and practical constructs for declaring and manipulating syntactical data involving binding operations. Userdeclared FreshML datatypes involving binders are concrete, in the sense that values of these types can be deconstructed by matching against patterns naming boun ..."
Abstract

Cited by 78 (23 self)
 Add to MetaCart
FreshML extends ML with elegant and practical constructs for declaring and manipulating syntactical data involving binding operations. Userdeclared FreshML datatypes involving binders are concrete, in the sense that values of these types can be deconstructed by matching against patterns naming bound variables explicitly. Such matching may have a computational effect in which bound names get swapped with freshly generated names. Previous work on FreshML used a complicated static type system inferring information about the `freshness' of names for expressions in order to tame such effects. The main contribution of this paper is to show (perhaps surprisingly) that a much simpler type system without freshness inference, coupled with name swapping and a conventional treatment of fresh name generation, suffices for FreshML's crucial correctness propertynamely that values of datatypes involving binders are operationally equivalent if and only if they represent #equivalent pieces of objectlevel syntax. This correctness result is established via a novel denotational semantics. FreshML without static freshness inference is no more impure than ML and our experiences programming in it show that it supports a programming style pleasingly close to informal practice when it comes to dealing with syntax modulo #equivalence.
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 52 (20 self)
 Add to MetaCart
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 symmetric modal lambda calculus for distributed computing
 IN PROCEEDINGS OF THE 19TH IEEE SYMPOSIUM ON LOGIC IN COMPUTER SCIENCE (LICS
, 2004
"... We present a foundational language for distributed programming, called Lambda 5, that addresses both mobilityof code and locality of resources. In order to construct our system, we appeal to the powerful propositionsastypes interpretation of logic. Specifically, we take the possible worlds of the ..."
Abstract

Cited by 50 (12 self)
 Add to MetaCart
We present a foundational language for distributed programming, called Lambda 5, that addresses both mobilityof code and locality of resources. In order to construct our system, we appeal to the powerful propositionsastypes interpretation of logic. Specifically, we take the possible worlds of the intuitionistic modal logic IS5 to be nodes ona network, and the connectives 2 and 3 to reflect mobility and locality, respectively. We formulate a novel systemof natural deduction for IS5, decomposing the introduction and elimination rules for 2 and 3, thereby allowing thecorresponding programs to be more direct. We then give an operational semantics to our calculus that is typesafe, logically faithful, and computationally realistic.
The decidability of model checking mobile ambients
 In Proceedings of the 15th Annual Conference of the European Association for Computer Science Logic, volume 2142 of LNCS
, 2001
"... We settle the complexity bounds of the model checking problem for the ambient calculus with public names against the ambient logic. We show that if either the calculus contains replication or the logic contains the guarantee operator, the problem is undecidable. In the case of the replicationfree c ..."
Abstract

Cited by 36 (6 self)
 Add to MetaCart
We settle the complexity bounds of the model checking problem for the ambient calculus with public names against the ambient logic. We show that if either the calculus contains replication or the logic contains the guarantee operator, the problem is undecidable. In the case of the replicationfree calculus and guaranteefree logic we prove that the problem is PSPACEcomplete. For the complexity upperbound, we devise a new representation of processes that remains of polynomial size during process execution; this allows us to keep the model checking procedure in polynomial space. Moreover, we prove PSPACEhardness of the problem for several quite simple fragments of the calculus and the logic; this suggests that there are no interesting fragments with polynomialtime model checking algorithms.
A Sequent Calculus for Nominal Logic
 In Proc. LICS’04
, 2004
"... Nominal logic is a theory of names and binding based on the primitive concepts of freshness and swapping, with a selfdual N  (or "new")quantifier, originally presented as a Hilbertstyle axiom system extending firstorder logic. We present a sequent calculus for nominal logic called Fresh Logic, ..."
Abstract

Cited by 22 (10 self)
 Add to MetaCart
Nominal logic is a theory of names and binding based on the primitive concepts of freshness and swapping, with a selfdual N  (or "new")quantifier, originally presented as a Hilbertstyle axiom system extending firstorder logic. We present a sequent calculus for nominal logic called Fresh Logic, or FL, admitting cutelimination. We use FL to provide a prooftheoretic foundation for nominal logic programming and show how to interpret $FOL^{\Delta abla}$, another logic with a selfdual quantifier, within FL.
Modal logic as a basis for distributed computation
, 2003
"... Trustless Software Dissemination.” In this report, we give a computational interpretation of modal logic in which the modalities necessity (�A) and possibility (♦A) describe locality in a distributed computation. This interpretation is quite natural, given the usual “possible worlds ” semantics unde ..."
Abstract

Cited by 21 (3 self)
 Add to MetaCart
Trustless Software Dissemination.” In this report, we give a computational interpretation of modal logic in which the modalities necessity (�A) and possibility (♦A) describe locality in a distributed computation. This interpretation is quite natural, given the usual “possible worlds ” semantics underlying modal logic. In our case, the worlds we consider are processes in a spatially distributed configuration. Necessity describes a term that is welltyped anywhere and possibility a term that is welltyped somewhere. Thus typing determines the permissible degree of mobility for terms, in some cases allowing us to create new processes or move terms between existing processes, and in others forbidding mobility. In addition to the purely logical motivations, we present some examples demonstrating how the calculus of modal logic proof terms can be used to write distributed, concurrent programs while preserving safe access to and manipulation of localized resources.
Modal Types for Mobile Code
, 2008
"... In this dissertation I argue that modal type systems provide an elegant and practical means for controlling local resources in spatially distributed computer programs. A distributed program is one that executes in multiple physical or logical places. It usually does so because those places have loca ..."
Abstract

Cited by 19 (0 self)
 Add to MetaCart
In this dissertation I argue that modal type systems provide an elegant and practical means for controlling local resources in spatially distributed computer programs. A distributed program is one that executes in multiple physical or logical places. It usually does so because those places have local resources that can only be used in those locations. Such resources can include processing power, proximity to data, hardware, or the physical presence of a user. Programmers that write distributed applications therefore need to be able to reason about the places in which their programs will execute. This work provides an elegant and practical way to think about such programs in the form of a type system derived from modal logic. Modal logic allows for reasoning about truth from multiple simultaneous perspectives. These perspectives, called "worlds," are identified with the locations in the distributed program. This enables the programming language to be simultaneously aware of the various hosts involved in a program, their
From separation logic to firstorder logic
 In FoSSaCs’05
, 2005
"... Abstract. Separation logic is a spatial logic for reasoning locally about heap structures. A decidable fragment of its assertion language was presented in [3], based on a bounded model property. We exploit this property to give an encoding of this fragment into a firstorder logic containing only th ..."
Abstract

Cited by 14 (0 self)
 Add to MetaCart
Abstract. Separation logic is a spatial logic for reasoning locally about heap structures. A decidable fragment of its assertion language was presented in [3], based on a bounded model property. We exploit this property to give an encoding of this fragment into a firstorder logic containing only the propositional connectives, quantification over the natural numbers and equality. This result is the first translation from Separation Logic into a logic which does not depend on the heap, and provides a direct decision procedure based on wellstudied algorithms for firstorder logic. Moreover, our translation is compositional in the structure of formulae, whilst previous results involved enumerating either heaps or formulae arising from the bounded model property. 1
Bisimulation by unification
 Proc. AMAST 2002, LNCS 2422
, 2002
"... Abstract. We propose a methodology for the analysis of open systems based on process calculi and bisimilarity. Open systems are seen as coordinators (i.e. terms with placeholders), that evolve when suitable components (i.e. closed terms) fill in their placeholders. The distinguishing feature of ou ..."
Abstract

Cited by 13 (7 self)
 Add to MetaCart
Abstract. We propose a methodology for the analysis of open systems based on process calculi and bisimilarity. Open systems are seen as coordinators (i.e. terms with placeholders), that evolve when suitable components (i.e. closed terms) fill in their placeholders. The distinguishing feature of our approach is the definition of a symbolic operational semantics for coordinators that exploits spatial/modal formulae as labels of transitions and avoids the universal closure of coordinators w.r.t. all components. Two kinds of bisimilarities are then defined, called strict and large, which differ in the way formulae are compared. Strict bisimilarity implies large bisimilarity which, in turn, implies the one based on universal closure. Moreover, for process calculi in suitable formats, we show how the symbolic semantics can be defined constructively, using unification. Our approach is illustrated on a toy process calculus with ccslike communication within ambients. 1