Jeux de parité et types (co)inductifs
Luigi Santocanale
Proposition de stage 2003-2004
- Titre du stage:
-
Jeux de parité et types (co)inductifs
- Mots-clés:
-
Types inductifs et coinductifs, calcul interactif, jeux de parité,
sémantique des langages de programmation.
- Encadrant:
-
Santocanale Luigi et Roberto Amadio (30%, Professeur).
- Fonction:
-
Maître de Conférences à l'Université de Provence.
- Laboratoire:
-
Laboratoire d'Informatique Fondamentale de Marseille (LIF), Centre de Mathématiques et
Informatique, 39, rue Joliot-Curie - F-13453 Marseille Cedex 13
- Téléphone:
-
+33 (0)4 91 11 35 74
- Télécopie:
-
+33 (0)4 72 91 11 36 02
- Mél:
-
Luigi.Santocanale@cmi.univ-mrs.fr.
Objectifs
Le calcul des preuves circulaires est un petit langage pour décrire
des canaux de communication asynchrones qui s'appuie sur la théorie
des types inductifs et coinductifs et sur la théorie des jeux de
parité. Nous proposons que le stagiaire implémente ce calcul et
l'algorithme de traduction vers un langage fonctionnel arbitraire
supportant les types coinductifs.
Description détaillée du travail
Tous les langages de programmation fonctionnels supportent les types
inductifs. Ces types, comme par exemple les nombres naturels et les
listes, nous donnent la possibilité d'écrire des programmes par
induction structurale; comme résultat, ces langages offrent une bonne
correspondance entre pratique mathématique (aspect déclarative) et
programmation. Un point faible des langages fonctionnels est la
gestion des calculs interactifs, un exemple étant la gestion des
interactions avec l'utilisateur (entrées/sorties sur la console); une
caractéristique des calculs interactifs est leurs nature possiblement
infinie. La théorie des types coinductifs -- qui étudie d'un point
de vue logique certaines collections d'objets infinis -- offre des
possibles solutions: par exemple, une suite infinie de caractères est
mieux traitée par un ordinateur comme un flot, plutôt que
comme un objet abstrait tel qu'une fonction dont les arguments sont
des nombres naturels. Afin de rendre le traitement des calculs
interactifs plus cohérent d'un point de vue théorique, on peut
étendre un langage fonctionnel avec le support des types coinductifs.
Le calcul des preuves circulaires [2] a son origine dans la
théorie mathématique des types inductifs et coinductifs et dans la
théorie des jeux de parité, [1, §4] et [3]. On peut
considérer ce calcul comme un petit langage de programmation dont le
but est décrire des stratégies de communication sur deux jeux de
parité; en particulier on peut s'en servir pour décrire des stratégies
gagnantes. Une stratégie de communication sert à faire jouer entre
eux deux joueurs localisés sur des tableaux éloignés. Si l'on
considère un jeu à deux joueurs comme un canal de communication
synchrone, alors le calcul des preuves circulaires devient un outil
pour programmer des canaux de communication asynchrones à partir de la
description de deux canaux de communication synchrones. Étant donnée
la nature des situations qu'on veut programmer, le caractère de ce
petit langage de programmation est impératif. Dans notre travail cité
nos avons montré une traduction de ce langage vers un langage
fonctionnel quelconque supportant les produits, les sommes, le types
inductifs et coinductifs. Cette traduction a été montrée correcte par
rapport à la sémantique usuelle de ces types.
Nous proposons que le stagiaire :
-
se familiarise avec la théorie des types inductifs et
coinductifs, sans lequel on ne peut pas comprendre le travail
d'implémentation proposé.
- implémente le calcul des preuves circulaires à l'aide
d'un langage de programmation tel que C ou C++. L'utilisation
d'autres langages n'est pas exclue.
- implémente l'algorithme de traduction vers un langage de
programmation fonctionnel supportant les types inductifs et
coinductifs. À ce fin, nous proposons le langage de programmation
Charity, voir
http://www.cpsc.ucalgary.ca/Research/charity/home.html. Une
autre possibilité est d'implémenter cette traduction vers
l'assistant de preuves Coq, voir
http://pauillac.inria.fr/coq/, qui supporte les types
coinductifs. La possibilité d'une traduction vers Haskell peut être
mise à l'étude.
References
- [1]
-
A. Arnold and D. Niwinski.
Rudiments of µ-calculus, volume 146 of Studies in
Logic and the Foundations of Mathematics.
North-Holland Publishing Co., Amsterdam, 2001.
- [2]
-
Luigi Santocanale.
A calculus of circular proofs and its categorical semantics.
In Foundations of software science and computation structures
(Grenoble, 2002), volume 2303 of Lecture Notes in Comput. Sci., pages
357--371. Springer, Berlin, 2002.
- [3]
-
Luigi Santocanale.
µ-bicomplete categories and parity games.
Theor. Inform. Appl., 36(2):195--227, 2002.
Fixed points in computer science (Florence, 2001).
Commentaires
Aucun pré-requis spécial. Perspectives de continuation en thèse.
This document was translated from LATEX by
HEVEA.