A gentle introduction to template games and linear logic
By Paul-André Melliès
By Cyril Cohen
Appears in collection : Workshop Schlumberger : Types dépendants et Formalisation des mathématiques
Libraries of machine checked code are, nowadays, organized around hierarchies of algebraic structures. Unfortunately the language of Type Theory and the features provided by modern proof assistants make the construction of a hierarchy hard even for expert users. The difficulty begins with the non-orthogonal choices, between storing information as record fields or parameters, and between different inference mechanisms. To this, one may add the concerns about performance and about the usability, by a non expert, of the final hierarchy. Hierarchy Builder (HB), as implemented inside the Coq proof assistant, gives library designers a language to describe the building blocks of algebraic structures and to assemble them into a hierarchy. Similarly it provides the final user tools to build instances of structures and to inform the system how to take advantage of this knowledge during type inference. Finally HB lets library designers improve the usability of their library by providing alternative interfaces to the primitive ones, a feature that is also useful to accommodate changes to the hierarchy without breaking user code. This is a joint work with Kazuhiko Sakaguchi and Enrico Tassi