Précédent : Calcul de module au-dessus des Remonter
: Étude et extensions du Calcul Suivant :
Types
inductifs
Participant : Eduardo Giménez
Dans les programmes séquentiels, le but est de calculer une donnée de sortie à partir de certaines données d'entrée. Pour cela, la terminaison du calcul joue un rôle crucial. En revanche, pour des programmes dont le but est de contrôler ou maintenir une certaine interaction avec leur environnement (par exemple contrôler un certain processus physique externe à l'ordinateur) la terminaison n'est plus essentielle. Dans ce type de programmes (dits programmes réactifs), la considération de boucles d'interaction infinie nous amène très vite à considérer également des types de structures infinies (listes de données infinies, espaces d'états infinis, etc.). Cette constatation motive l'idée que la vérification de programmes réactifs nécessite un cadre logique dans lequel on est capable de décrire et de raisonner sur des objets infinis.
Une extension du Calcul des Constructions Inductives avec des types qui contiennent des éléments potentiellement infinis (dits types co-inductifs) avait déjà été implantée dans la version V5.10 du système par Eduardo Giménez. Cette implantation avait été testée par la vérification d'un interpréteur interactif de processus et un protocole de communication des données. Ces expériences ont permis de détecter certains point faibles dans l'implantation actuelle des types co-inductifs: par exemple, des mauvaises interactions entre la tactique pour construire des preuves infinies et les tactiques automatiques, ou l'impossibilité de combiner des définitions par récursion bien fondée et par co-récursion dans le même bloc de déclarations récursives.
L'utilisation d'une condition syntaxique de garde pour assurer la correction des définitions récursives semble être à la base d'une bonne partie de ces faiblesses. Sur le plan théorique, cette condition syntaxique, externe aux règles de typage, rend difficile l'étude des propriétés du calcul implanté. Eduardo Giménez a étudié une nouvelle extension du Calcul de Constructions avec des types inductifs et co-inductifs, où cette condition est mieux intégrée aux règles du calcul par des annotations dans le jugement de typage. Il a aussi étudié différentes propriétés métathéoriques de ce système, telles que la préservation du typage par réduction, la confluence, et la normalisation forte. Le calcul développé pourrait permettre une implantation plus souple et expressive des types (co)inductifs dans Coq.