Results 1  10
of
14
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 53 (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.
Proof Terms for Simply Typed Higher Order Logic
 IN THEOREM PROVING IN HIGHER ORDER LOGICS, 13TH INTERNATIONAL CONFERENCE, VOLUME 1869 OF LNCS
, 2000
"... This paper presents proof terms for simply typed, intuitionistic higher order logic, a popular logical framework. Unificationbased algorithms for the compression and reconstruction of proof terms are described and have been implemented in the theorem prover Isabelle. Experimental results confir ..."
Abstract

Cited by 34 (8 self)
 Add to MetaCart
This paper presents proof terms for simply typed, intuitionistic higher order logic, a popular logical framework. Unificationbased algorithms for the compression and reconstruction of proof terms are described and have been implemented in the theorem prover Isabelle. Experimental results confirm the effectiveness of the compression scheme.
MiddleOut Reasoning for Logic Program Synthesis
 IN 10TH INTERNATIONAL CONFERENCE ON LOGIC PROGRAMMING (ICLP93
, 1993
"... We propose a novel approach to automating the synthesis of logic programs: Logic programs are synthesized as a byproduct of the planning of a verification proof. The approach is a twolevel one: At the object level, we prove program verification conjectures in a sorted, firstorder theory. The c ..."
Abstract

Cited by 31 (8 self)
 Add to MetaCart
We propose a novel approach to automating the synthesis of logic programs: Logic programs are synthesized as a byproduct of the planning of a verification proof. The approach is a twolevel one: At the object level, we prove program verification conjectures in a sorted, firstorder theory. The conjectures are of the form 8args \Gamma\Gamma\Gamma\Gamma! : prog(args \Gamma\Gamma\Gamma\Gamma! ) $ spec(args \Gamma\Gamma\Gamma\Gamma! ). At the metalevel, we plan the objectlevel verification with an unspecified program definition. The definition is represented with a (secondorder) metalevel variable, which becomes instantiated in the course of the planning.
HigherOrder Rewriting
 12th Int. Conf. on Rewriting Techniques and Applications, LNCS 2051
, 1999
"... This paper will appear in the proceedings of the 10th international conference on rewriting techniques and applications (RTA'99). c flSpringer Verlag. ..."
Abstract

Cited by 20 (1 self)
 Add to MetaCart
This paper will appear in the proceedings of the 10th international conference on rewriting techniques and applications (RTA'99). c flSpringer Verlag.
Practical higherorder pattern unification with onthefly raising
 In ICLP 2005: 21st International Logic Programming Conference, volume 3668 of LNCS
, 2005
"... Abstract. Higherorder pattern unification problems arise often in computations carried out within systems such as Twelf, λProlog and Isabelle. An important characteristic of such problems is that they are given by equations appearing under a prefix of alternating universal and existential quantifie ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
Abstract. Higherorder pattern unification problems arise often in computations carried out within systems such as Twelf, λProlog and Isabelle. An important characteristic of such problems is that they are given by equations appearing under a prefix of alternating universal and existential quantifiers. Existing algorithms for solving these problems assume that such prefixes are simplified to a ∀∃ ∀ form by an a priori application of a transformation known as raising. There are drawbacks to this approach. Mixed quantifier prefixes typically manifest themselves in the course of computation, thereby requiring a dynamic form of preprocessing that is difficult to support in lowlevel implementations. Moreover, raising may be redundant in many cases and its effect may have to be undone by a subsequent pruning transformation. We propose a method to overcome these difficulties. In particular, a unification algorithm is described that proceeds by recursively descending through the structures of terms, performing raising and other transformations onthefly and only as needed. This algorithm also exploits an explicit substitution notation for lambda terms. 1
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 6 (2 self)
 Add to MetaCart
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
Structural Polymorphism
 Informal Proceedings Workshop on Generic Programming, WGP'98, Marstrand
, 1998
"... This paper describes structural polymorphism, a new form of type polymorphism appropriate to functional languages featuring userdefined algebraic data types (e.g., Standard ML, Haskell and Miranda 1 ). The approach extends the familiar notion of parametric polymorphism by allowing the definition of ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
This paper describes structural polymorphism, a new form of type polymorphism appropriate to functional languages featuring userdefined algebraic data types (e.g., Standard ML, Haskell and Miranda 1 ). The approach extends the familiar notion of parametric polymorphism by allowing the definition of functions which are generic with respect to data structures as well as to individual types. For example, structural polymorphism accommodates generalizations of the usual length and map functions which may be applied not only to lists, but also to trees, binary trees or similar algebraic structures. Under traditional polymorphic type systems, these functions may be defined for arbitrary component types, but must be (laboriously) redefined for every distinct data structure. In this sense, our approach also extends the spirit of parametric polymorphism, in that it provides the programmer relief from the burden of unnecessary repetitive effort. The mechanism we will use to realize this form of polymorphism is inspired by a feature familiar to functional programmers, namely the pattern abstraction. Pattern abstractions generalize the usual lambda abstraction (x.e) in that they are comprised of multiple pattern/expression clauses, rather than just a single boundvariable/expression pair. By analogy with pattern abstractions, we generalize polymorphic type abstractions (Òå.e) to typepattern abstractions, which are comprised of multiple typepattern/expression pairs. The types given to typepattern abstractions are universally quantified, just as for traditional type abstractions, but the universal quantifiers are now justified by a recursive analysis of the forms of all possible type instantiations, rather than by parametric independence with respect to a type variable. (x:+.e) ...
Implementing nominal unification
 In 3rd Int. Workshop on Term Graph Rewriting (TERMGRAPH’06), Vienna, Electronic
"... Nominal matching and unification underly the dynamics of nominal rewriting. Urban, Pitts and Gabbay gave a nominal unification algorithm which finds the most general solution to a nominal matching or unification problem, if one exists. Later the algorithm was extended by Fernández and Gabbay to deal ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
Nominal matching and unification underly the dynamics of nominal rewriting. Urban, Pitts and Gabbay gave a nominal unification algorithm which finds the most general solution to a nominal matching or unification problem, if one exists. Later the algorithm was extended by Fernández and Gabbay to deal with name generation and locality. In this paper we describe first a direct implementation of the nominal unification algorithm, including the extensions, in Maude. This implementation is not efficient (it is exponential in time), but we will show that we can obtain a feasible implementation by using termgraphs.
HIGHERORDER MATCHING MODULO (SUPER)DEVELOPMENTS APPLICATIONS TO SECONDORDER MATCHING
, 2009
"... To perform higherorder matching, we need to decide the βηequivalence on λterms. The first way to do it is to use simply typed λcalculus and this is the usual framework where higherorder matching is performed. Another approach consists in deciding a restricted equivalence. This restricted equiv ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
To perform higherorder matching, we need to decide the βηequivalence on λterms. The first way to do it is to use simply typed λcalculus and this is the usual framework where higherorder matching is performed. Another approach consists in deciding a restricted equivalence. This restricted equivalence can be based on finite developments or more interestingly on finite superdevelopments. We consider higherorder matching modulo (super)developments over untyped λterms for which we propose terminating, sound and complete matching algorithms. This is in particular of interest since all secondorder βmatches are matches modulo superdevelopments. We further propose a restriction to secondorder matching that gives exactly all secondorder matches. We finally apply these results in the context of higherorder rewriting.
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.