Results 11  20
of
24
Avoiding Equivariance in AlphaProlog
, 2004
"... Prolog is a logic programming language which is wellsuited for rapid prototyping of type systems and operational semantics of typed #calculi and many other languages involving bound names. In #Prolog, the nominal unification algorithm of Urban, Pitts and Gabbay is used instead of firstorder un ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Prolog is a logic programming language which is wellsuited for rapid prototyping of type systems and operational semantics of typed #calculi and many other languages involving bound names. In #Prolog, the nominal unification algorithm of Urban, Pitts and Gabbay is used instead of firstorder unification.
AN EFFICIENT NOMINAL UNIFICATION ALGORITHM
"... Abstract. Nominal Unification is an extension of firstorder unification where terms can contain binders and unification is performed modulo αequivalence. Here we prove that the existence of nominal unifiers can be decided in quadratic time. First, we linearlyreduce nominal unification problems to ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Abstract. Nominal Unification is an extension of firstorder unification where terms can contain binders and unification is performed modulo αequivalence. Here we prove that the existence of nominal unifiers can be decided in quadratic time. First, we linearlyreduce nominal unification problems to a sequence of freshness and equalities between atoms, modulo a permutation, using ideas as Paterson and Wegman for firstorder unification. Second, we prove that solvability of these reduced problems may be checked in quadratic time. Finally, we point out how using ideas of Brown and Tarjan for unbalanced merging, we could solve these reduced problems more efficiently. 1.
Toward a General Theory of Names, Binding and Scope
, 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 3 (0 self)
 Add to MetaCart
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 #calculus; 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
A study of substitution, using nominal techniques and FraenkelMostowki sets
"... FraenkelMostowski (FM) set theory delivers a model of names and alphaequivalence. This model, now generally called the ‘nominal ’ model, delivers inductive datatypes of syntax with alphaequivalence — rather than inductive datatypes of syntax, quotiented by alphaequivalence. The treatment of name ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
FraenkelMostowski (FM) set theory delivers a model of names and alphaequivalence. This model, now generally called the ‘nominal ’ model, delivers inductive datatypes of syntax with alphaequivalence — rather than inductive datatypes of syntax, quotiented by alphaequivalence. The treatment of names and alphaequivalence extends to the entire sets universe. This has proven useful for developing ‘nominal ’ theories of reasoning and programming on syntax with alphaequivalence, because a sets universe includes elements representing functions, predicates, and behaviour. Often, we want names and alphaequivalence to model captureavoiding substitution. In this paper we show that FM set theory models captureavoiding subsitution for names in much the same way as it models alphaequivalence; as an operation valid for the entire sets universe which coincides with the usual (inductively defined) operation on inductive datatypes. In fact, more than one substitution action is possible (they all agree on sets representing
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 2 (1 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.
Nominal Unification Revisited
"... Nominal unification calculates substitutions that make terms involving binders equal modulo alphaequivalence. Although nominal unification can be seen as equivalent to Miller’s higherorder pattern unification, it has properties, such as the use of firstorder terms with names (as opposed to alphaeq ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Nominal unification calculates substitutions that make terms involving binders equal modulo alphaequivalence. Although nominal unification can be seen as equivalent to Miller’s higherorder pattern unification, it has properties, such as the use of firstorder terms with names (as opposed to alphaequivalence classes) and that no new names need to be generated during unification, which set it clearly apart from higherorder pattern unification. The purpose of this paper is to simplify a clunky proof from the original paper on nominal unification and to give an overview over some results about nominal unification. 1
Substitution for FraenkelMostowski foundations
"... Abstract. A fundamental and unanalysed logical concept is substitution. This seemingly innocuous operation — substituting a variable for a term or valuating a variable to an element of a domain — is hard to characterise other than by concrete constructions. It is widely viewed as a technicality to b ..."
Abstract
 Add to MetaCart
Abstract. A fundamental and unanalysed logical concept is substitution. This seemingly innocuous operation — substituting a variable for a term or valuating a variable to an element of a domain — is hard to characterise other than by concrete constructions. It is widely viewed as a technicality to be dispensed with on the way to studying other things. Discussions of computer science foundations, and of the philosophy of logic, have largely ignored it. We show that FraenkelMostowski set theory gives a model of variables and substitution as constructions on sets. Thus models of variables and substitution are exhibited as constructions in a foundational universe, just like models of arithmetic (the ordinals) and other mathematical entities. The door is open for classes of denotations in which variables, substitution, and evaluations are constructed directly in sets and studied independently of syntax, in ways which would previously have not been possible.
Smart test data generators via logic programming ∗
"... We present a novel counterexample generator for the interactive theorem prover Isabelle based on a compiler that synthesizes test data generators for functional programming languages (e.g. Standard ML, OCaml) from specifications in Isabelle. In contrast to naive typebased test data generators, the ..."
Abstract
 Add to MetaCart
We present a novel counterexample generator for the interactive theorem prover Isabelle based on a compiler that synthesizes test data generators for functional programming languages (e.g. Standard ML, OCaml) from specifications in Isabelle. In contrast to naive typebased test data generators, the smart generators take the preconditions into account and only generate tests that fulfill the preconditions. The smart generators are constructed by a compiler that reformulates the preconditions as logic programs and analyzes them by an enriched mode inference. From this inference, the compiler can construct the desired generators in the functional programming language. These test data generators are applied to find errors in specifications, as we show in a case study of a hotel key card system.
Dependent Types for a Nominal Logical Framework
, 2012
"... We present a logical framework based on the nominal approach to representing syntax with binders. First we extend nominal terms, which have a builtin nameabstraction operator and a firstorder notion of substitution for variables, with a captureavoiding substitution operator for names. We then bu ..."
Abstract
 Add to MetaCart
We present a logical framework based on the nominal approach to representing syntax with binders. First we extend nominal terms, which have a builtin nameabstraction operator and a firstorder notion of substitution for variables, with a captureavoiding substitution operator for names. We then build a dependent type system for this extended syntax