Results 1  10
of
30
Fresh Logic
 Journal of Applied Logic
, 2007
"... Abstract. The practice of firstorder logic is replete with metalevel concepts. Most notably there are metavariables ranging over formulae, variables, and terms, and properties of syntax such as alphaequivalence, captureavoiding substitution and assumptions about freshness of variables with resp ..."
Abstract

Cited by 219 (28 self)
 Add to MetaCart
(Show Context)
Abstract. The practice of firstorder logic is replete with metalevel concepts. Most notably there are metavariables ranging over formulae, variables, and terms, and properties of syntax such as alphaequivalence, captureavoiding substitution and assumptions about freshness of variables with respect to metavariables. We present oneandahalfthorder logic, in which these concepts are made explicit. We exhibit both sequent and algebraic specifications of oneandahalfthorder logic derivability, show them equivalent, show that the derivations satisfy cutelimination, and prove correctness of an interpretation of firstorder logic within it. We discuss the technicalities in a wider context as a casestudy for nominal algebra, as a logic in its own right, as an algebraisation of logic, as an example of how other systems might be treated, and also as a theoretical foundation
Nominal logic programming
, 2006
"... Nominal logic is an extension of firstorder logic which provides a simple foundation for formalizing and reasoning about abstract syntax modulo consistent renaming of bound names (that is, αequivalence). This article investigates logic programming based on nominal logic. This technique is especial ..."
Abstract

Cited by 40 (9 self)
 Add to MetaCart
Nominal logic is an extension of firstorder logic which provides a simple foundation for formalizing and reasoning about abstract syntax modulo consistent renaming of bound names (that is, αequivalence). This article investigates logic programming based on nominal logic. This technique is especially wellsuited for prototyping type systems, proof theories, operational semantics rules, and other formal systems in which bound names are present. In many cases, nominal logic programs are essentially literal translations of “paper” specifications. As such, nominal logic programming provides an executable specification language for prototyping, communicating, and experimenting with formal systems. We describe some typical nominal logic programs, and develop the modeltheoretic, prooftheoretic, and operational semantics of such programs. Besides being of interest for ensuring the correct behavior of implementations, these results provide a rigorous foundation for techniques for analysis and reasoning about nominal logic programs, as we illustrate via two examples.
A Definitional TwoLevel Approach to Reasoning with HigherOrder Abstract Syntax
 Journal of Automated Reasoning
, 2010
"... Abstract. Combining higherorder abstract syntax and (co)induction in a logical framework is well known to be problematic. Previous work [ACM02] described the implementation of a tool called Hybrid, within Isabelle HOL, syntax, and reasoned about using tactical theorem proving and principles of (co ..."
Abstract

Cited by 24 (4 self)
 Add to MetaCart
Abstract. Combining higherorder abstract syntax and (co)induction in a logical framework is well known to be problematic. Previous work [ACM02] described the implementation of a tool called Hybrid, within Isabelle HOL, syntax, and reasoned about using tactical theorem proving and principles of (co)induction. Moreover, it is definitional, which guarantees consistency within a classical type theory. The idea is to have a de Bruijn representation of syntax, while offering tools for reasoning about them at the higher level. In this paper we describe how to use it in a multilevel reasoning fashion, similar in spirit to other metalogics such as Linc and Twelf. By explicitly referencing provability in a middle layer called a specification logic, we solve the problem of reasoning by (co)induction in the presence of nonstratifiable hypothetical judgments, which allow very elegant and succinct specifications of object logic inference rules. We first demonstrate the method on a simple example, formally proving type soundness (subject reduction) for a fragment of a pure functional language, using a minimal intuitionistic logic as the specification logic. We then prove an analogous result for a continuationmachine presentation of the operational semantics of the same language, encoded this time in an ordered linear logic that serves as the specification layer. This example demonstrates the ease with which we can incorporate new specification logics, and also illustrates a significantly
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.
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
(Show Context)
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
A unifying model of variables and names
 Foundations of Software Science and Computational Structures, vol. 3441, Lect. Notes in Comp. Sci
, 2005
"... Abstract. We investigate a category theoretic model where both “variables” and “names”, usually viewed as separate notions, are particular cases of the more general notion of distinction. The key aspect of this model is to consider functors over the category of irreflexive, symmetric finite relation ..."
Abstract

Cited by 13 (3 self)
 Add to MetaCart
(Show Context)
Abstract. We investigate a category theoretic model where both “variables” and “names”, usually viewed as separate notions, are particular cases of the more general notion of distinction. The key aspect of this model is to consider functors over the category of irreflexive, symmetric finite relations. The models previously proposed for the notions of “variables ” and “names ” embed faithfully in the new one, and initial algebra/final coalgebra constructions can be transferred from the formers to the latter. Moreover, the new model admits a definition of distinctionaware simultaneous substitutions. As a substantial application example, we give the first semantic interpretation of MillerTiu’s FOλ ∇ logic. 1
Nominal algebra
, 2006
"... Nominal terms are a termlanguage used to accurately and expressively represent systems with binding. We present Nominal Algebra (NA), a theory of algebraic equality on nominal terms. Builtin support for binding in the presence of metavariables allows NA to closely mirror informal mathematical us ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
Nominal terms are a termlanguage used to accurately and expressively represent systems with binding. We present Nominal Algebra (NA), a theory of algebraic equality on nominal terms. Builtin support for binding in the presence of metavariables allows NA to closely mirror informal mathematical usage and notation, where expressions such as λa.t or ∀a.φ are common, in which metavariables t and φ explicitly occur in the scope of a variable a. We describe the syntax and semantics of NA, and provide a sound and complete proof system for it. We also give some examples of axioms; other work has considered sets of axioms of particular interest in some detail.
Toward a general theory of names: binding and scope
 In MERLIN ’05: Proceedings of the 3rd ACM SIGPLAN workshop on Mechanized
, 2005
"... Highlevel formalisms for reasoning about names and binding such as de Bruijn indices, various flavors of higherorder abstract syntax, the Theory of Contexts, and nominal abstract syntax address only one relatively restrictive form of scoping: namely, unary lexical scoping, in which the scope of a ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
(Show Context)
Highlevel formalisms for reasoning about names and binding such as de Bruijn indices, various flavors of higherorder abstract syntax, the Theory of Contexts, and nominal abstract syntax address only one relatively restrictive form of scoping: namely, unary lexical scoping, in which the scope of a (single) bound name is a subtree of the abstract syntax tree (possibly with other subtrees removed due to shadowing). Many languages exhibit binding or renaming structure that does not fit this mold. Examples include binding transitions in the picalculus; unique identifiers in contexts, memory heaps, and XML documents; declaration scoping in modules and namespaces; anonymous identifiers in automata, type schemes, and Horn clauses; and pattern matching and mutual recursion constructs in functional languages. In these cases, it appears necessary to either rearrange the abstract syntax so that lexical scoping can be used, or revert to firstorder techniques. The purpose of this paper is to catalogue these “exotic ” binding, renaming, and structural congruence situations; to argue that lexical scopingbased syntax techniques are sometimes either inappropriate or incapable of assisting in such situations; and to outline techniques for formalizing and proving properties of languages with more general forms of renaming and other structural congruences.
Relating nominal and higherorder abstract syntax specifications
 in: Proceedings of the 2010 Symposium on Principles and Practice of Declarative Programming, ACM
"... Nominal abstract syntax and higherorder abstract syntax provide a means for describing binding structure which is higherlevel than traditional techniques. These approaches have spawned two different communities which have developed along similar lines but with subtle differences that make them dif ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
Nominal abstract syntax and higherorder abstract syntax provide a means for describing binding structure which is higherlevel than traditional techniques. These approaches have spawned two different communities which have developed along similar lines but with subtle differences that make them difficult to relate. The nominal abstract syntax community has devices like names, freshness, nameabstractions with variable capture, and thequantifier, whereas the higherorder abstract syntax community has devices like λbinders, λconversion, raising, and the ∇quantifier. This paper aims to unify these communities and provide a concrete correspondence between their different devices. In particular, we develop a semanticspreserving translation from αProlog, a nominal abstract syntax based logic programming language, to G − , a higherorder abstract syntax based logic programming language. We also discuss higherorder judgments, a common and powerful tool for specifications with higherorder abstract syntax, and we show how these can be incorporated into G −. This establishes G − as a language with the power of higherorder abstract syntax, the finegrained variable control of nominal specifications, and the desirable properties of higherorder judgments.