Base des structures de recherche Inria
Gallinette : vers une nouvelle génération d'assistant à la preuve
GALLINETTE (SR0785LR) → GALLINETTE
Statut:
Décision signée
Responsable :
Nicolas Tabareau
Mots-clés de "A - Thèmes de recherche en Sciences du numérique - 2023" :
A2.1.1. Sémantique des langages de programmation
, A2.1.2. Programmation impérative
, A2.1.3. Programmation orientée objet
, A2.1.4. Programmation fonctionnelle
, A2.1.11. Langages de preuve
, A2.2.3. Gestion mémoire
, A2.4.3. Preuves
, A7.2.3. Assistants de preuve
, A7.2.4. Formalisation mécanisée des mathématiques
, A8.4. Calcul formel, calcul algébrique
Mots-clés de "B - Autres sciences et domaines d'application - 2023" :
B6.1. Industrie du logiciel
Domaine :
Algorithmique, programmation, logiciels et architectures
Thème :
Preuves et vérification
Période :
01/06/2018 ->
31/12/2024
Dates d'évaluation :
20/03/2019 ,
Etablissement(s) de rattachement :
IMT ATLANTIQUE, NANTES U.
Laboratoire(s) partenaire(s) :
LS2N (UMR6004)
CRI :
Centre Inria de l'Université de Rennes
Localisation :
Université de Nantes - LS2N
Code structure Inria :
031120-1
Numéro RNSR :
201722488Z
N° de structure Inria:
SR0841VR
L'EPI Gallinette vise à développer une nouvelle génération d'assistants à la preuve, avec la conviction que les expériences pratiques doivent aller de pair avec les investigations fondamentales:
1. Améliorer la puissance informatique et logique des assistants de preuve
La démocratisation des assistants de preuve basée sur la théorie des types souffre d'un inconvénient majeur, l'inadéquation entre la conception de l'égalité en mathématiques et l'égalité en théorie des types. En effet, certains principes de base qui sont implicitement utilisés en mathématiques - tels que le principe d'extensionalité propositionnelle de Church, qui dit que deux propositions sont égales lorsqu'elles sont logiquement équivalentes - ne peuvent pas être déduits dans la théorie des types. Plus problématiquement du point de vue informatique, le concept de base de deux fonctions égales lorsqu'elles sont égales à chaque "point" de leur domaine n'est pas non plus dérivable et doit être défini comme un axiome. Bien sûr, ces principes sont compatibles avec la théorie des types et leur ajout en tant qu'axiomes est sûr. Mais tout développement les utilisant dans une définition produira un morceau de code qui ne calcule pas, étant bloqué aux points où les axiomes ont été utilisés, parce que les axiomes sont des boîtes noires computationnelles.
Nous proposons d'étudier comment des transformations logiques expressives (comme le forcing, la faisceautisation, ...) pourraient être utilisées pour améliorer le pouvoir de calcul et de logique des assistants de preuve - avec un angle particulier vers l'intégration à l'assistant de preuve Coq. ). L'un des principaux aspects, en relation avec le projet ERC CoqHoTT, est l'intégration de nouveaux concepts autour de la théorie homotopique des types tels que l'univalence, ou des types inductifs supérieurs.
2. Effets dans la théorie des types
Nous proposons d'incorporer des effets dans la théorie des assistants de preuve. Nous remarquons que l'enjeu n'est pas seulement la certification de programmes avec des effets, mais qu'elle a aussi des implications en termes de sémantique et de logique.
La théorie des types est basée sur le lambda calcul qui est purement fonctionnel. Constatant que tout programme réaliste contient des effets (état, exceptions, entrées-sorties ...), de nombreux travaux se concentrent sur la programmation certifiée avec effets: notamment Ynot, et plus récemment F * et Idris, qui proposent différentes manières d'encapsuler les effets et de limiter la dépendance des types sur des termes efficaces. Les effets sont soit spécialisés, avec des monades avec des pré et post-conditions de style Hoare trouvées dans Ynot ou F *, ou plus généraux, avec des effets algébriques implémentés dans Idris. D'un autre côté, il y a un déficit d'investigations logiques et sémantiques.
Pourtant, une théorie des types qui intègre les effets aurait des implications logiques, algébriques et computationnelles à travers la correspondance de Curry-Howard. Par exemple, les effets tels que les opérateurs de contrôle délimités fournissent des interprétations computationnelles aux axiomes tels que A ≅ ¬¬A et ¬∀xA ≅ ∃x¬A, contrairement à la théorie des types habituelle qui considère que la logique classique est non-constructive. Toute une littérature sur le contenu constructif des preuves classiques doit être explorée et intégrée.
L'objectif est de développer une théorie des types avec des effets qui rendent compte à la fois des expériences pratiques en programmation certifiée et des indices provenant de la sémantique dénotationnelle et des phénomènes logiques, à partir du cadre unificateur du call-by-push-value (linéaire).
3. Améliorer l'interconnexion entre les assistants de preuve et les langages de programmation courants
Nous proposons d'intérioriser les concepts trouvés dans les langages de programmation courants, comme les objets, au sein des assistants de preuve, afin de fournir une meilleure intégration avec la pratique dans l'industrie. Par internalisation, nous entendons une intégration superficielle d'une partie des langages de programmation courants afin de pouvoir certifier et synthétiser des programmes écrits dans ces langages directement à l'intérieur des assistants de preuve.
Mais il existe un fossé entre le paradigme de programmation sous-jacent à la correspondance de Curry-Howard, la programmation fonctionnelle pure et le paradigme de programmation dominant pour l'écriture d'applications logicielles dans l'industrie, notamment la programmation orientée objet. L'un des principaux problèmes avec l'approche de l'internalisation est que la théorie des types est contrainte par une discipline de type stricte qui est souvent plus flexible sinon absente dans les langages courants. Pour faire face à ce problème, l'EPI Gallinette mettra tout en œuvre pour développer le typage graduelle en théorie des types afin de permettre une intégration progressive du code issu d'un monde plus permissif. Aussi, pour permettre l'interconnexion, nous prévoyons de développer l'interopérabilité entre types dépendants présents dans la théorie des types et types simples avec des propriétés présents dans les langages dominants. Plus généralement, l'internalisation fournira un cadre commun pour exprimer une série d'oppositions:
ERC Consolidator Grant Fresco (https://fresco.gitlabpages.inria.fr/)
Nomadic Labs
Inria Associate Team with UChile