Affiliation:
1. University of British Columbia, Canada
2. University of Chile, Chile
Abstract
Gradual dependent types can help with the incremental adoption of dependently typed code by providing a principled semantics for
imprecise
types and proofs, where some parts have been omitted. Current theories of gradual dependent types, though, lack a central feature of type theory: propositional equality. Lennon-Bertrand et al. show that, when the reflexive proof
refl
is the only closed value of an equality type, a gradual extension of the Calculus of Inductive Constructions (CIC) with propositional equality violates static observational equivalences. Extensionally-equal functions should be indistinguishable at run time, but they can be distinguished using a combination of equality and type imprecision.
This work presents a gradual dependently typed language that supports propositional equality. We avoid the above issues by devising an equality type of which
refl
is not the only closed inhabitant. Instead, each equality proof is accompanied by a term that is at least as precise as the equated terms, acting as a witness of their plausible equality. These witnesses track partial type information as a program runs, raising errors when that information shows that two equated terms are undeniably inconsistent. Composition of type information is internalized as a construct of the language, and is deferred for function bodies whose evaluation is blocked by variables. We thus ensure that extensionally-equal functions compose without error, thereby preventing contexts from distinguishing them. We describe the challenges of designing consistency and precision relations for this system, along with solutions to these challenges. Finally, we prove important metatheory: type safety, conservative embedding of CIC, weak canonicity, and the gradual guarantees of Siek et al., which ensure that reducing a program’s precision introduces no new static or dynamic errors.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference35 articles.
1. Observational equality, now!
2. Abstracting gradual typing moving forward: precise and space-efficient
3. Edwin Brady. 2017. Type-driven development with Idris. Manning. isbn:9781617293023 https://www.manning.com/books/type-driven-development-with-idris Edwin Brady. 2017. Type-driven development with Idris. Manning. isbn:9781617293023 https://www.manning.com/books/type-driven-development-with-idris
4. Partial type equivalences for verified dependent interoperability
5. Foundations of dependent interoperability
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Gradual Indexed Inductive Types;Proceedings of the ACM on Programming Languages;2024-08-15
2. GTP Benchmarks for Gradual Typing Performance;Proceedings of the 2023 ACM Conference on Reproducibility and Replicability;2023-06-27
3. Live Pattern Matching with Typed Holes;Proceedings of the ACM on Programming Languages;2023-04-06
4. A reasonably gradual type theory;Proceedings of the ACM on Programming Languages;2022-08-29