Responsable : Pierre Courtieu
Les membres de l’équipe qui contribuent dans cet axe sont pour la plupart des utilisateurs avancés, des experts, voire des développeurs de Coq. Nous comptons mettre à profit cette expertise en continuant à développer certaines thématiques comme la formalisation de protocoles distribués pour robots autonomes, ou la sémantique formelle de SPARK Ada:
Formalisation et preuves de protocoles distribués pour robots autonomes. Les essaims de robots effectuant une tâche de manière autonome et collaborative font l'objet d'une attention grandissante. Ce paradigme est particulièrement adapté aux situations dans lesquelles l'envoi d'agents humains est difficile voire exclu (environnement dangereux, catastrophe). Les robots agissant sans intervention humaine, les protocoles nécessitent des garanties très fortes quant à leur comportement et sont donc une cible privilégiée pour la preuve formelle. Cet axe de recherche vise à fournir les outils théoriques et pratiques (s'appuyant sur l'assistant Coq) et des études de cas pour la preuve formelles de ces protocoles, y compris en présence de fautes byzantines (agents malveillants).
Sémantique et compilation certifiée de programme impératifs. SPARK est une plateforme de vérification de programmes impératifs, dont le but est de concevoir des algorithmes à haut degré de confiance (aéronautique, défense, etc). Le langage SPARK est un sous-ensemble de Ada conçu spécifiquement pour permettre des analyses fines et obtenir des garantie fortes. Cet axe de recherche vise d'une part à écrire la sémantique formelle de certaines constructions avancées de SPARK, comme les procédures imbriquées, et d'autre part à proposer un prototype de compilateur certifié pour SPARK via le compilateur certifié CompCert. Cette sémantique formelle a déjà permis la conception d'un certificateur de vérifications à l’exécution, prouvé correct en Coq, permettant d'exclure un certain type d'erreurs de compilation. Elle fournit aussi le cadre théorique permettant de valider une technique de génération automatique d’invariants de boucles basée sur la détection de « motifs » dans les boucles.
Nous développons aussi des thématiques nouvelles dans l’équipe et Coq sera utilisé pour développer la meta-théorie de ces méthodes (en s’appuyant sur les travaux récents de la communauté) :
1. Une thématique portant sur des méthodes de preuve de correction de programmes synchrones qui prennent en compte les contraintes temps-réels.
2. Une thématique portant sur les méthodes permettant d'obtenir des programmes Scala concorrects par construction, par exemple par traduction de programmes fonctionnels prouvé corrects dans Coq.
Collaboration avec l’équipe MIM, les équipes Whisper, NPA et APR du LIP6, l’équipe Drim du LIRIS (Université Claude Bernard Lyon 1), le CIMTI (Université Saint Joseph, Liban).