System F with Coercion Constraints
Résumé
We present a second-order λ-calculus with coercion constraints that generalizes a previous extension of System F with paramet-ric coercion abstractions by allowing multiple but simultaneous type and coercion abstractions, as well as recursive coercions and equi-recursive types. This enables a uniform presentation of 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 compu-tational 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 be-tween types are replaced by a more expressive notion of typing co-ercions that witness subsumption relations between typings, e.g. pairs composed of a typing environment and a type. Our calcu-lus is equipped with full 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 tech-nique to full reduction, moving indices inside terms so as to control the reduction steps internally—but this is only detailed in the ex-tended version.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...