Polarized subtyping

From MaRDI portal
Publication:6166799

DOI10.1007/978-3-030-99336-8_16zbMATH Open1528.68082arXiv2201.10998OpenAlexW4226343274MaRDI QIDQ6166799FDOQ6166799


Authors: Zeeshan Lakhani, Ankush Das, Henry DeYoung, Andreia Mordido, Frank Pfenning Edit this on Wikidata


Publication date: 3 August 2023

Published in: Programming Languages and Systems (Search for Journal in Brave)

Abstract: Polarization of types in call-by-push-value naturally leads to the separation of inductively defined observable values (classified by positive types), and coinductively defined computations (classified by negative types), with adjoint modalities mediating between them. Taking this separation as a starting point, we develop a semantic characterization of typing with step indexing to capture observation depth of recursive computations. This semantics justifies a rich set of subtyping rules for an equirecursive variant of call-by-push-value, including variant and lazy records. We further present a bidirectional syntactic typing system for both values and computations that elegantly and pragmatically circumvents difficulties of type inference in the presence of width and depth subtyping for variant and lazy records. We demonstrate the flexibility of our system by systematically deriving related systems of subtyping for (a) isorecursive types, (b) call-by-name, and (c) call-by-value, all using a structural rather than a nominal interpretation of types.


Full work available at URL: https://arxiv.org/abs/2201.10998




Recommendations




Cites Work


Cited In (4)





This page was built for publication: Polarized subtyping

Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q6166799)