System F with Coercion Constraints - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Rapport (Rapport De Recherche) Année : 2014

System F with Coercion Constraints

Résumé

We present a second-order lambda-calculus with coercion constraints that generalizes a previous extension of System F with parametric coercion abstractions by allowing multiple but simultaneous type and coercion abstractions, as well as recursive coercions and equi-recursive types. This allows to present in a uniform way several type system features that had previously been studied separately: type containment, bounded and instance-bounded polymorphism, which are already encodable with parametric coercion abstraction, and ML-style subtyping constraints. Our framework allows for a clear separation of language constructs with and without computational content. We also distinguish coherent coercions that are fully erasable from potentially incoherent coercions that suspend the evaluation---and enable the encoding of GADTs. Technically, type coercions that witness subtyping relations between types are replaced by a more expressive notion of typing coercions that witness subsumption relations between typings, e.g. pairs composed of a typing environment and a type. Our calculus is equipped with a strong notion of reduction that allows reduction under abstractions---but we also introduce a form of weak reduction as reduction cannot proceed under incoherent type abstractions. Type soundness is proved by adapting the step-indexed semantics technique to strong reduction strategies, moving indices inside terms so as to control the reduction steps internally.
Nous présentons un lambda-calcul de second ordre avec des contraintes de coercions qui généralisent une extension précédente du Système F avec des abstractions de coercions paramétriques en permettant des abstractions multiples mais simultanées sur les types et les coercions, ainsi que des coercions récursives et des types équi-récursifs. Cela permet de présenter de façon uniforme plusieurs fonctionnalités des systèmes de types auparavant tudiées séparément: le confinement de types, le polymorphisme bornée et bornée par instance, qui sont déjà codables avec l'abstraction de coercions paramétrique, et les contraintes de sous-typage à la ML. Notre cadre permet une séparation claire entre les constructions du langage avec et sans contenu calculatoire. Nous distinguons également les coercions cohérentes qui sont entièrement effaçables des coercions incohérentes qui suspendent l'évaluation, et permettent le codage des GADTs. Techniquement, les coercions de type, témoins d'une relation de sous-typage entre les types, sont remplacées par une notion plus expressive de coercions de typages, témoins d'une relation d'inclusion entre les typages, e.g. des paires composées d'un environnement de typage et d'un type. Le calcul est équipé d'une relation de réduction forte permettant la réduction sous les abstractions---mais nous introduisons également une forme de réduction faible car la réduction ne peut pas être poursuivie sous les abstractions de types incohérentes. La sûreté du typage est prouvée en adaptant une technique sémantique de types indexés aux stratégies de réduction forte, en plaçant les indices à l'intérieur des termes afin de contrôler les étapes de réduction de façon interne.
Fichier principal
Vignette du fichier
RR-8456.pdf (631.74 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-00934408 , version 1 (21-01-2014)

Identifiants

  • HAL Id : hal-00934408 , version 1

Citer

Julien Cretin, Didier Rémy. System F with Coercion Constraints. [Research Report] RR-8456, INRIA. 2014, pp.36. ⟨hal-00934408⟩
283 Consultations
341 Téléchargements

Partager

Gmail Facebook X LinkedIn More