Results 11  20
of
68
Scrap your Nameplate  Functional Pearl
"... Recent research has shown how boilerplate code, or repetitive code for traversing datatypes, can be eliminated using generic programming techniques already available within some implementations of Haskell. One particularly intractable kind of boilerplate is nameplate, or code having to do with names ..."
Abstract

Cited by 20 (6 self)
 Add to MetaCart
Recent research has shown how boilerplate code, or repetitive code for traversing datatypes, can be eliminated using generic programming techniques already available within some implementations of Haskell. One particularly intractable kind of boilerplate is nameplate, or code having to do with names, namebinding, and fresh name generation. One reason for the difficulty is that operations on data structures involving names, as usually implemented, are not regular instances of standard map, fold , or zip operations. However, in nominal abstract syntax, an alternative treatment of names and binding based on swapping, operations such as #equivalence, captureavoiding substitution, and free variable set functions are much betterbehaved.
A Dependent Type Theory with Names and Binding
 In Proceedings of the 2004 Computer Science Logic Conference, number 3210 in Lecture notes in Computer Science
, 2004
"... We consider the problem of providing formal support for working with abstract syntax involving variable binders. Gabbay and Pitts have shown in their work on FraenkelMostowski (FM) set theory how to address this through firstclass names: in this paper we present a dependent type theory for prog ..."
Abstract

Cited by 18 (1 self)
 Add to MetaCart
We consider the problem of providing formal support for working with abstract syntax involving variable binders. Gabbay and Pitts have shown in their work on FraenkelMostowski (FM) set theory how to address this through firstclass names: in this paper we present a dependent type theory for programming and reasoning with such names. Our development is based on a categorical axiomatisation of names, with freshness as its central notion. An associated adjunction captures constructions known from FM theory: the freshness quantifier N , namebinding, and unique choice of fresh names. The Schanuel topos  the category underlying FM set theory  is an instance of this axiomatisation.
A Framework for Specifying, Prototyping, and Reasoning about Computational Systems
, 2009
"... In this thesis we are interested in a framework for specifying, prototyping, and reasoning about systems that describe computations over formal objects such as formulas, proofs, and programs. The computations of interest include those like evaluation and typing in a programming language, provability ..."
Abstract

Cited by 17 (4 self)
 Add to MetaCart
In this thesis we are interested in a framework for specifying, prototyping, and reasoning about systems that describe computations over formal objects such as formulas, proofs, and programs. The computations of interest include those like evaluation and typing in a programming language, provability in a logic, and behavior in a concurrency system. The development of these computational systems is often an iterative
2011): Nominal terms and nominal logics: from foundations to metamathematics
 In: Handbook of Philosophical Logic
"... ABSTRACT: Nominal techniques concern the study of names using mathematical semantics. Whereas in much previous work names in abstract syntax were studied, here we will study them in metamathematics. More specifically, we survey the application of nominal techniques to languages for unification, rew ..."
Abstract

Cited by 15 (9 self)
 Add to MetaCart
ABSTRACT: Nominal techniques concern the study of names using mathematical semantics. Whereas in much previous work names in abstract syntax were studied, here we will study them in metamathematics. More specifically, we survey the application of nominal techniques to languages for unification, rewriting, algebra, and firstorder logic. What characterises the languages of this chapter is that they are firstorder in character, and yet they can specify and reason on names. In the languages we develop, it will be fairly straightforward to give firstorder ‘nominal ’ axiomatisations of namerelated things like alphaequivalence, captureavoiding substitution, beta and etaequivalence, firstorder logic with its quantifiers—and as we shall see, also arithmetic. The formal axiomatisations we arrive at will closely resemble ‘natural behaviour’; the specifications we see typically written out in normal mathematical usage. This is possible because of a novel namecarrying semantics in nominal sets, through which our languages will have namepermutations and termformers that can bind as primitive builtin features.
Numbering matters: Firstorder canonical forms for secondorder recursive types
 In Proceedings of the 2004 ACM SIGPLAN International Conference on Functional Programming (ICFP’04
, 2004
"... We study a type system equipped with universal types and equirecursive types, which we refer to as Fµ. We show that type equality may be decided in time O(n log n), an improvement over the previous known bound of O(n 2). In fact, we show that two more general problems, namely entailment of type equa ..."
Abstract

Cited by 15 (2 self)
 Add to MetaCart
(Show Context)
We study a type system equipped with universal types and equirecursive types, which we refer to as Fµ. We show that type equality may be decided in time O(n log n), an improvement over the previous known bound of O(n 2). In fact, we show that two more general problems, namely entailment of type equations and type unification, may be decided in time O(n log n), a new result. To achieve this bound, we associate, with every Fµ type, a firstorder canonical form, which may be computed in time O(n log n). By exploiting this notion, we reduce all three problems to equality and unification of firstorder recursive terms, for which efficient algorithms are known. 1
Structural Recursion with Locally Scoped Names
"... This paper introduces a new recursion principle for inductively defined data modulo αequivalence of bound names that makes use of Oderskystyle local names when recursing over bound names. It is formulated in simply typed λcalculus extended with names that can be restricted to a lexical scope, tes ..."
Abstract

Cited by 15 (2 self)
 Add to MetaCart
This paper introduces a new recursion principle for inductively defined data modulo αequivalence of bound names that makes use of Oderskystyle local names when recursing over bound names. It is formulated in simply typed λcalculus extended with names that can be restricted to a lexical scope, tested for equality, explicitly swapped and abstracted. The new recursion principle is motivated by the nominal sets notion of “αstructural recursion”, whose use of names and associated freshness sideconditions in recursive definitions formalizes common practice with binders. The new calculus has a simple interpretation in nominal sets equipped with name restriction operations. It is shown to adequately represent αstructural recursion while avoiding the need to verify freshness sideconditions in definitions and computations. The paper is a revised and expanded version of (Pitts, 2010). 1
Simple nominal type theory
"... Abstract. Nominal logic is an extension of firstorder logic with features useful for reasoning about abstract syntax with bound names. For computational applications such as programming and formal reasoning, it is desirable to develop constructive type theories for nominal logic which extend standa ..."
Abstract

Cited by 14 (2 self)
 Add to MetaCart
Abstract. Nominal logic is an extension of firstorder logic with features useful for reasoning about abstract syntax with bound names. For computational applications such as programming and formal reasoning, it is desirable to develop constructive type theories for nominal logic which extend standard type theories for propositional, first or higherorder logic. This has proven difficult, largely because of complex interactions between nominal logic’s nameabstraction operation and ordinary functional abstraction. This difficulty already arises in the case of propositional logic and simple type theory. In this paper we show how this difficulty can be overcome, and present a simple nominal type theory which enjoys properties such as type soundness and strong normalization, and which can be soundly interpreted using existing nominal set models of nominal logic. We also sketch how recursion combinators for languages with binding structure can be provided. This is an important first step towards understanding the constructive content of nominal logic and incorporating it into existing logics and type theories. 1
Nominal System T
, 2010
"... This paper introduces a new recursion principle for inductive data modulo ..."
Abstract

Cited by 13 (1 self)
 Add to MetaCart
This paper introduces a new recursion principle for inductive data modulo
Nominal unification from a higherorder perspective
 In Proceedings of RTA’08
"... Abstract. Nominal Logic is an extension of firstorder logic with equality, namebinding, nameswapping, and freshness of names. Contrarily to higherorder logic, bound variables are treated as atoms, and only free variables are proper unknowns in nominal unification. This allows “variable capture”, ..."
Abstract

Cited by 12 (3 self)
 Add to MetaCart
(Show Context)
Abstract. Nominal Logic is an extension of firstorder logic with equality, namebinding, nameswapping, and freshness of names. Contrarily to higherorder logic, bound variables are treated as atoms, and only free variables are proper unknowns in nominal unification. This allows “variable capture”, breaking a fundamental principle of lambdacalculus. Despite this difference, nominal unification can be seen from a higherorder perspective. From this view, we show that nominal unification can be reduced to a particular fragment of higherorder unification problems: higherorder patterns unification. This reduction proves that nominal unification can be decided in quadratic deterministic time. 1
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 8 (4 self)
 Add to MetaCart
(Show Context)
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