Higher-order unification with dependent function types
RTA-89 Proceedings of the 3rd international conference on Rewriting Techniques and Applications
A framework for defining logics
Journal of the ACM (JACM)
Extensions and applications of higher-order unification
Extensions and applications of higher-order unification
Programming inductive proofs: a new approach based on contextual types
Verification, induction termination analysis
Programming inductive proofs: a new approach based on contextual types
Verification, induction termination analysis
Higher-order dynamic pattern unification for dependent types and records
TLCA'11 Proceedings of the 10th international conference on Typed lambda calculi and applications
Hi-index | 0.00 |
Higher-order unification is undecidable, but has fragments which admit practical algorithms, which are used extensively in logical frameworks. For example, it is decidable whether unification problems in the pattern fragment are solvable, and they enjoy unique most general unifiers when they are. Often we wish to treat more general problems which are nonetheless solvable by incrementally reasoning about the parts of them that fall in the pattern fragment after more progress has been made --- to this end constraint simplification algorithms have been proposed, which work on the so-called dynamic pattern fragment. However, their theory turns out to be surprisingly subtle. The constraint simplification algorithm implemented in Twelf, for instance, is not terminating, despite the sketch of a proof of its termination in the literature. We describe and prove correct a new, terminating constraint simplification algorithm for a dynamic pattern fragment of higher-order unification in a dependent type system, and discuss its implementation.