Affiliation:
1. University of Chile, Chile
2. KU Leuven, Belgium
Abstract
Graduality and parametricity have proven to be extremely challenging notions to bring together. Intuitively, enforcing parametricity gradually requires possibly sealing values in order to detect violations of uniform behavior. Toro et al. (2019) argue that the two notions are incompatible in the context of System F, where sealing is transparently driven by potentially imprecise type information, while New et al. (2020) reconcile both properties at the cost of abandoning the syntax of System F and requiring user-provided sealing annotations that are not subject to graduality guarantees. Furthermore, all current proposals rely on a global form of dynamic sealing in order to enforce parametric behavior at runtime, which weakens parametric reasoning and breaks equivalences in the static language. Based on the observation that the tension between graduality and parametricity comes from the early commitment to seal values based on type information, we propose plausible sealing as a new intermediate language mechanism that allows postponing such decisions to runtime. We propose an intermediate language for gradual parametricity, Funky, which supports plausible sealing in a simplified setting where polymorphism is restricted to instantiations with base and variable types. We prove that Funky satisfies both parametricity and graduality, mechanizing key lemmas in Agda. Additionally, we avoid global dynamic sealing and instead propose a novel lexically-scoped form of sealing realized using a representation of evidence inspired by the category of spans. As a consequence, Funky satisfies a standard formulation of parametricity that does not break System F equivalences. In order to show the practicality of plausible sealing, we describe a translation from Funk, a source language without explicit sealing, to Funky, that takes care of inserting plausible sealing forms. We establish graduality of Funk, subject to a restriction on type applications, and explain the source-level parametric reasoning it supports. Finally, we provide an interactive prototype along with illustrative examples both novel and from the literature.
Funder
Agencia Nacional de Investigación y Desarrollo
United States Air Force Office of Scientific Research
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference32 articles.
1. Step-Indexed Syntactic Logical Relations for Recursive and Quantified Types
2. Amal Ahmed , Robert Bruce Findler , Jacob Matthews , and Philip Wadler . 2009 . Blame for All. In Workshop on Script to Program Evolution (STOP) . Genova, Italy. Amal Ahmed, Robert Bruce Findler, Jacob Matthews, and Philip Wadler. 2009. Blame for All. In Workshop on Script to Program Evolution (STOP). Genova, Italy.
3. Amal Ahmed Dustin Jamner Jeremy G. Siek and Philip Wadler. 2017. Theorems for Free for Free: Parametricity with and Without Types. 39:1–39:28. Amal Ahmed Dustin Jamner Jeremy G. Siek and Philip Wadler. 2017. Theorems for Free for Free: Parametricity with and Without Types. 39:1–39:28.
4. An indexed model of recursive types for foundational proof-carrying code
5. Abstracting Gradual Typing Moving Forward;Schwerter Felipe Bañados;Precise and Space-Efficient.,2021
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. GTP Benchmarks for Gradual Typing Performance;Proceedings of the 2023 ACM Conference on Reproducibility and Replicability;2023-06-27
2. Pragmatic Gradual Polymorphism with References;Programming Languages and Systems;2023
3. Gradual System F;Journal of the ACM;2022-10-28
4. Two Parametricities Versus Three Universal Types;ACM Transactions on Programming Languages and Systems;2022-09-21