Hostname: page-component-7b7567c8c-2n9c9 Total loading time: 0 Render date: 2026-11-14T03:49:21.263Z Has data issue: false hasContentIssue false

A comprehensible guide to a new unifier for CIC including universe polymorphism and overloading*

Published online by Cambridge University Press:  07 February 2017

BETA ZILIANI
Affiliation:
FAMAF, Universidad Nacional de Córdoba, Argentina, and CONICET, Córdoba, Argentina (e-mail: bziliani@famaf.unc.edu.ar)
MATTHIEU SOZEAU
Affiliation:
Inria & PPS, France, and Université Paris Diderot, Paris, France (e-mail: matthieu.sozeau@inria.fr)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Unification 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.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 2017 
Submit a response

Discussions

No Discussions have been published for this article.