Which types have a unique inhabitant?: Focusing on pure program equivalence

Résumé : Certaines constructions des langages de programmation permettent à un ordinateur de “deviner” des parties du programe que le programmeur humain aurait écrit. Pour mieux comprendre les fondements théoriques de cette opération, nous étudions le cas où la solution à cette devinette est unique, c'est-à-dire où tous les réponses possibles donnent des programmes équivalents. Quels types ont un habitant unique ? Pour étudier cette question, nous avons décidé de partir des travaux de théorie des preuves sur des représentations plus canoniques des termes de preuve. En utilisant la correspondance preuve-programme, nous pouvons adapter la technique logiuqe de “concentration“ (focusing) pour obtenir des représentations plus canoniques des programmes. Cela nécessite de porter une attention particulière à la façon dont cette technique préserve l'équivalence de programmes. Dans le cadre du lambda-calcul simplement typé avec des sommes et le type vide, muni de la βη-équivalence forte, nous montrons que la question de l'unicité est décidable. Nous présentons une logique concentrée saturée qui introduit des coupures irréductibles sur les types positifs “dès que possible”. La recherche en arrière dans cette logique donne un algorithme effectif qui fournit zéro, un ou deux habitants distincts pour tout type fourni en entrée.
Type de document :
Thèse
Programming Languages [cs.PL]. Université Paris-Diderot, 2016. English
Liste complète des métadonnées

https://hal.inria.fr/tel-01309712
Contributeur : Scherer Gabriel <>
Soumis le : mardi 27 décembre 2016 - 04:03:45
Dernière modification le : mercredi 28 décembre 2016 - 01:03:18
Document(s) archivé(s) le : mardi 21 mars 2017 - 00:32:40

Licence


Distributed under a Creative Commons Paternité - Partage selon les Conditions Initiales 4.0 International License

Identifiants

  • HAL Id : tel-01309712, version 2

Collections

Citation

Gabriel Scherer. Which types have a unique inhabitant?: Focusing on pure program equivalence. Programming Languages [cs.PL]. Université Paris-Diderot, 2016. English. <tel-01309712v2>

Partager

Métriques

Consultations de
la notice

173

Téléchargements du document

37