## Practical higher-order pattern unification with on-the-fly raising (2005)

### Cached

### Download Links

- [www.dtc.umn.edu]
- [www-users.cs.umn.edu]
- [www.cs.umn.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | In ICLP 2005: 21st International Logic Programming Conference, volume 3668 of LNCS |

Citations: | 8 - 4 self |

### BibTeX

@INPROCEEDINGS{Nadathur05practicalhigher-order,

author = {Gopalan Nadathur and Natalie Linnell},

title = {Practical higher-order pattern unification with on-the-fly raising},

booktitle = {In ICLP 2005: 21st International Logic Programming Conference, volume 3668 of LNCS},

year = {2005},

pages = {371--386},

publisher = {Springer}

}

### OpenURL

### Abstract

Abstract. Higher-order 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 low-level 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 on-the-fly and only as needed. This algorithm also exploits an explicit substitution notation for lambda terms. 1

### Citations

718 |
Isabelle/HOL — A Proof Assistant for HigherOrder Logic
- Nipkow, Paulson, et al.
- 2002
(Show Context)
Citation Context ..., therefore, that effective use has been made of this operation in a variety of applications within metalanguages, logical frameworks and proof assistants such as λProlog [9], Twelf [16] and Isabelle =-=[13]-=-. The answer to this puzzle seems to lie in the fact that good programming practice avoids exercising the pathological cases for this form of unification. A discovery of this kind was made by Dale Mil... |

313 | System description: Twelf — a meta-logical framework for deductive systems
- Pfenning, Schürmann
- 1999
(Show Context)
Citation Context ...what of an anomaly, therefore, that effective use has been made of this operation in a variety of applications within metalanguages, logical frameworks and proof assistants such as λProlog [9], Twelf =-=[16]-=- and Isabelle [13]. The answer to this puzzle seems to lie in the fact that good programming practice avoids exercising the pathological cases for this form of unification. A discovery of this kind wa... |

287 | A logic programming language with lambda-abstraction, function variables, and simple unification
- Miller
- 1991
(Show Context)
Citation Context ...f instantiatable (existential) variables in λProlog programs usually satisfy static conditions that lead to unification computations belonging to what is known as the Lλ or higher-order pattern class =-=[6, 12]-=-. For problems in this class, unifiability is decidable and most general unifiers can be provided. Moreover, even though the syntactic restrictions may not be satisfied by all useful programs [5], the... |

175 | Logic programming in the LF logical framework
- Pfenning
- 1991
(Show Context)
Citation Context ...r determines non-unifiability or yields a most general unifier at the end of a non-branching computation [6]. The ideas underlying this procedure has been extended to dependently typed lambda calculi =-=[14, 15]-=- and higher-order rewrite systems [11]. A version of the procedure that has a time and space complexity that is linear in the size of the input terms has been developed [18] and it has also been adapt... |

124 | Unification under a mixed prefix
- Miller
- 1992
(Show Context)
Citation Context ...s has two rules—pruning and raising—that do not possess this character. Another important property of practical unification problems is that they need to be solved under a mixed prefix of quantifiers =-=[7]-=- that are created in the course of computation. Most procedures other than the original one seem to finesse this issue by assuming that existential quantifiers appear only at the top-level, embedded a... |

124 |
Higher-order critical pairs
- Nipkow
- 1991
(Show Context)
Citation Context ...most general unifier at the end of a non-branching computation [6]. The ideas underlying this procedure has been extended to dependently typed lambda calculi [14, 15] and higher-order rewrite systems =-=[11]-=-. A version of the procedure that has a time and space complexity that is linear in the size of the input terms has been developed [18] and it has also been adapted to use explicit substitutions relat... |

114 |
A unification algorithm for typed λ-calculus
- Huet
- 1975
(Show Context)
Citation Context ... between the terms in 5s(1) 〈Q((λ(n, t) = λ(n, s)) :: E), θ〉 −→ 〈Q((t = s) :: E), θ〉, provided n > 0. (2) 〈Q((λ(n, t) = λ(m, s)) :: E), θ〉 −→ 〈Q((t = λ(m − n, s)) :: E), θ〉, provided n > 0 and m > n. =-=(3)-=- 〈Q((a(t) = λ(m, s)) :: E), θ〉 −→ 〈Q(((a↑m)(t↑m) = s) :: E), θ〉, provided a is a de Bruijn index or a universal variable and m > 0. (4) 〈Q((f(t) = λ(n, g(s))) :: E), θ〉 −→ 〈Q((f(t↑n) = g(s)) :: E), θ〉... |

102 | Higher-order unification via explicit substitutions
- Dowek, Hardin, et al.
(Show Context)
Citation Context ...al or existential variable then t↑j = t and if it is a de Bruijn index then t↑j = t + j. For existential variables, this definition reflects a logical interpretation as opposed to the grafting one in =-=[1]-=-; in particular, these variables cannot be instantiated by terms containing de Bruijn indices bound by external abstractions. The lifting operation is extended to a sequence of terms: if |t| = n then ... |

99 | An Overview of λProlog
- Nadathur, Miller
- 1988
(Show Context)
Citation Context ... seems somewhat of an anomaly, therefore, that effective use has been made of this operation in a variety of applications within metalanguages, logical frameworks and proof assistants such as λProlog =-=[9]-=-, Twelf [16] and Isabelle [13]. The answer to this puzzle seems to lie in the fact that good programming practice avoids exercising the pathological cases for this form of unification. A discovery of ... |

61 |
Functional unification of higher-order patterns
- Nipkow
- 1993
(Show Context)
Citation Context ...f instantiatable (existential) variables in λProlog programs usually satisfy static conditions that lead to unification computations belonging to what is known as the Lλ or higher-order pattern class =-=[6, 12]-=-. For problems in this class, unifiability is decidable and most general unifiers can be provided. Moreover, even though the syntactic restrictions may not be satisfied by all useful programs [5], the... |

61 | Unification and anti-unification in the calculus of constructions
- Pfenning
- 1991
(Show Context)
Citation Context ...r determines non-unifiability or yields a most general unifier at the end of a non-branching computation [6]. The ideas underlying this procedure has been extended to dependently typed lambda calculi =-=[14, 15]-=- and higher-order rewrite systems [11]. A version of the procedure that has a time and space complexity that is linear in the size of the input terms has been developed [18] and it has also been adapt... |

56 | Unification via Explicit Substitutions: The Case of Higher-Order Patterns
- Dowek, Hardin, et al.
- 1996
(Show Context)
Citation Context ...t is linear in the size of the input terms has been developed [18] and it has also been adapted to use explicit substitutions relative to a special grafting interpretation of instantiatable variables =-=[2]-=-. This work is motivated by a desire to exploit higher-order pattern unification in low-level implementations; in particular, in the Teyjus implementation of λProlog [10]. While many variants of the o... |

34 |
System description: Teyjus—a compiler and abstract machine based implementation of Lambda Prolog
- Nadathur, Mitchell
- 1999
(Show Context)
Citation Context ...on of instantiatable variables [2]. This work is motivated by a desire to exploit higher-order pattern unification in low-level implementations; in particular, in the Teyjus implementation of λProlog =-=[10]-=-. While many variants of the original procedure have been described, none of them seems quite suited to this task. In such a setting, it is important that the processing be driven entirely by a recurs... |

33 | D.S.: A notation for lambda terms: A generalization of environments
- Nadathur, Wilson
- 1998
(Show Context)
Citation Context ...nsive than they need to be. This paper is intended to redress this situation. We describe in it a unification procedure that utilizes the de Bruijn notation for lambda terms and a suspension calculus =-=[10]-=- based treatment of explicit substitutions. Unification within it takes place relative to a mixed quantifier prefix. However, such prefixes are rendered implicit by tagging existential and universal v... |

28 | An empirical study of the runtime behavior of higher-order logic programs
- Michaylov, Pfenning
- 1992
(Show Context)
Citation Context ... [6, 12]. For problems in this class, unifiability is decidable and most general unifiers can be provided. Moreover, even though the syntactic restrictions may not be satisfied by all useful programs =-=[5]-=-, the unification problems that arise dynamically still usually lie within the Lλ class.sIn light of these observations, higher-order pattern unification has adopted a special practical significance. ... |

14 |
Unification of higher-order patterns in linear time and
- Qian
- 1996
(Show Context)
Citation Context ...y typed lambda calculi [14, 15] and higher-order rewrite systems [11]. A version of the procedure that has a time and space complexity that is linear in the size of the input terms has been developed =-=[18]-=- and it has also been adapted to use explicit substitutions relative to a special grafting interpretation of instantiatable variables [2]. This work is motivated by a desire to exploit higher-order pa... |

12 | Optimizing higher-order pattern unification
- Pientka, Pfennning
- 2003
(Show Context)
Citation Context ...d like to extend this approach also to the unification context. Finally, higher-order pattern unification offers promising possibilities for compilation. Some work has already been done on this topic =-=[17]-=- and we also have recently started a systematic study oriented around a redesign of the λProlog abstract machine that exploits the procedure of this paper. 9 Acknowledgements This work began while the... |

8 | Choices in representation and reduction strategies for lambda terms in intensional contexts
- Liang, Nadathur, et al.
- 2004
(Show Context)
Citation Context ...ion is that every term in fact reduces to a head normal form. A discussion of procedures for producing such a form that exploit explicit substitution notations for the lambda calculus may be found in =-=[4]-=-. 3sOur operative notion of equality also includes η-conversion. This makes it necessary to sometimes consider the η-expansion of terms. We write t ↑ j to denote the ‘lifting’ of the term t over j (ne... |

1 |
An SML implementation of higher-order pattern unification
- Nadathur, Linnell
- 2004
(Show Context)
Citation Context ...the interaction between this transformation and pruning. This procedure has actually been implemented in C and incorporated into the Teyjus system. We have also realized these ideas in an SML program =-=[8]-=- that has been used in a meta-proof system built by Alwen Tiu and Dale Miller. This work can be extended in a few different directions. First, there are similarities in the dynamics of our procedure a... |