Compilation du filtrage dépendant en Coq
Hugo Herbelin
INRIA - IRIF - PPS - πr2
Localisation : Univ. Paris-Diderot, pl. Aurélie Nemours, Paris 13e
Un langage à types dépendants comme Agda [1] permet la définition de fonc-
tions à plusieurs arguments par filtrage sur des motifs arbitrairement complexes
en présence de types dépendants.
L’algorithme à l’œuvre derrière ce mécanisme de définition a été développé
par Thierry Coquand [2] puis prouvé simulable dans des théories des types telles
que celle implantée dans Coq [3] par Healfdene Goguen, Conor McBride et James
McKinna [4], via l’utilisation d’une notion d’égalité hétérogène (égalité dite de
« John Major »).
Par la suite, une autre simulation s’est mise en place, combinant diverses
idées progressivement agencées par Hugo Herbelin et Pierre Boutillier [5], condui-
sant à une implémentation partielle en Coq.
L’objectif du stage est de finaliser l’implémentation en cours ainsi que d’écrire
un article décrivant l’algorithme (l’algorithme est composé de trois briques :
restriction des clauses par l’utilisation de prédicats filtrant sur des “in-patterns”,
généralisation des dépendances, et expansion des cas insuffisamment spécialisés).
Le stagiaire se familiarisera ainsi avec les problématiques de la théorie des
types, d’un point de vue théorique mais aussi pratique, avec comme finalité à
la fois un article de recherche et une implémentation.
Optionnellement, l’étude de la force logique de l’algorithme et en particulier
de la place jouée par l’« axiome K » dans la compilation du filtrage à types
dépendants pourra être explorée, dans l’esprit de [6].
Références
[1] Agda, http ://wiki.portal.chalmers.se/agda/pmwiki.php.
[2] Thierry Coquand, Pattern Matching with Dependent Types, Proceedings
of the Workshop on Logical Frameworks, 1992.
[3] The Coq development team, Coq 8.5 Reference Manual, 2016.
[4] Healfdene Goguen, Conor McBride, and James McKinna. Eliminating
dependent pattern matching. In Kokichi Futatsugi, Jean-Pierre Jouannaud, and
José Meseguer, editors, Essays Dedicated to Joseph A. Goguen, volume 4060 of
Lecture Notes in Computer Science, pages 521–540. Springer, 2006.
[5] Pierre Boutillier, De nouveaux outils pour calculer avec des inductifs en
Coq, thèse de doctorat, 2014.
[6] Jesper Cockx, Dominique Devriese, Frank Piessens, Pattern matching
without K, ICFP 2014.
1 / 1 100%