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 fonctions à 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], conduisant à 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.