Projet : PROTHEO

previous up next contents
Précédent : Composition de l'équipe Remonter : Contraintes, Déduction automatique et Preuves Suivant : Fondements scientifiques


   
Présentation et objectifs généraux

 

L'objectif du projet PROTHEO est la conception et la réalisation d'outils pour la spécification et la vérification de logiciels. Pour cela nous travaillons à la fois à un environnement permettant de prototyper de tels outils, à des démonstrateurs spécialisés sur les preuves par récurrence ou dans certaines théories équationnelles, et à des techniques de preuve spécifiques privilégiant l'utilisation des contraintes et des règles de réécriture.

Le projet comporte trois thèmes de recherche complémentaires dont les fondements scientifiques sont développés dans la Section  3.1 : la résolution de contraintes, la mécanisation de la déduction par règles et stratégies, et la démonstration automatique de théorèmes. La complémentarité se traduit par exemple par le fait que nous utilisons les contraintes et les techniques de réécriture pour améliorer l'efficacité des démonstrateurs et que nous formalisons les résolveurs de contraintes et les démonstrateurs à l'aide de règles contrôlées par des stratégies.

En résolution de contraintes, nous nous intéressons à différentes structures utiles pour la déduction, que ce soit des domaines de termes ou des domaines numériques comme les entiers ou les réels, ainsi qu'à la collaboration de résolveurs de contraintes se combinant sur des domaines différents ou coopérant entre eux sur un même domaine. Nous étudions les algorithmes de propagation, de consistance, d'énumération utilisés en programmation par contraintes, mais aussi les stratégies pour guider la recherche et explorer finement l'arbre de recherche des solutions.

Pour formaliser et étudier les mécanismes de déduction, nous développons un environnement permettant de prototyper des résolveurs, des démonstrateurs, des logiques diverses, en utilisant un langage de règles et de stratégies. Nous nous intéressons par exemple à l'étude de stratégies pour les problèmes de satisfaction de contraintes, ou pour la recherche d'une preuve dans un démonstrateur. Outre la conception d'un langage de stratégies pour guider des calculs non déterministes, et l'étude des propriétés de confluence, de terminaison et de modularité de la réécriture, le souci d'efficacité nous conduit à proposer des techniques de compilation de la réécriture et des stratégies. Ce même souci nous amène aussi à étudier la parallélisation des mécanismes de déduction sur des machines à mémoire distribuée.

En démonstration automatique, nous développons des techniques pour prouver certaines propriétés, telles que : le programme termine (pour certaines valeurs), il donne un résultat unique ou des résultats d'un certain type, il est bien défini pour toutes les données possibles, il vérifie une certaine assertion exprimant par exemple sa correction. La spécification et la vérification d'applications liées aux télécommunications est un domaine d'application privilégié. Nos recherches portent d'une part sur les preuves par récurrence et les preuves de propriétés observables, essentielles dans le domaine de la vérification, d'autre part sur l'intégration dans les démonstrateurs de contraintes permettant de restreindre l'espace de recherche et de procédures de décision efficaces sur des domaines interprétés comme l'arithmétique.

Les logiciels développés dans le projet nous servent à valider nos idées, à présenter nos travaux à la communauté scientifique, et à transférer nos connaissances vers des domaines d'applications.



previous up next contents
Précédent : Composition de l'équipe Remonter : Contraintes, Déduction automatique et Preuves Suivant : Fondements scientifiques