Author:
ZILIANI BETA,SOZEAU MATTHIEU
Abstract
AbstractUnification is a core component of every proof assistant or programming language featuring dependent types. In many cases, it must deal with higher order problems up to conversion. Since unification in such conditions is undecidable, unification algorithms may include several heuristics to solve common problems. However, when the stack of heuristics grows large, the result and complexity of the algorithm can become unpredictable. Our contributions are twofold: (1) We present a full description of a new unification algorithm for the Calculus of Inductive Constructions (the base logic of COQ), building it up from a basic calculus to the full Calculus of Inductive Constructions as it is implemented in COQ, including universe polymorphism, canonical structures (the overloading mechanism baked into COQ's unification), and a small set of useful heuristics. (2) We implemented our algorithm, and tested it on several libraries, providing evidence that the selected set of heuristics suffices for large developments.
Publisher
Cambridge University Press (CUP)
Reference42 articles.
1. Mahboubi A. & Tassi E. (2013) Canonical Structures for the working Coq user. In ITP. ed. Blazy, Sandrine, Paulin-Mohring, Christine, Pichardie, David. Springer, pp. 19–34.
2. Sozeau M. & Tabareau N. (2014) Universe polymorphism in Coq. In Proceedings of International Conference on Interactive Theorem Proving (ITP). Berlin, Heidelberg, Springer, pp. 499–514.
3. How to make ad hoc proof automation less ad hoc
4. Verifying the unification algorithm in LCF
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献