Approximate Normalization for Gradual Dependent Types
Joseph Eremondi, \'Eric Tanter, Ronald Garcia

TL;DR
This paper introduces GDTL, a pragmatic gradual dependently-typed language that balances type safety, flexibility, and soundness by combining approximate normalization with runtime checks and supporting smooth transitions between typed and untyped code.
Contribution
GDTL is the first language to fully embed untyped and dependently-typed code, allowing gradual typing with runtime checks and a novel normalization gradual guarantee.
Findings
GDTL ensures decidable typechecking.
It satisfies static and dynamic gradual guarantees.
It introduces a normalization gradual guarantee for approximate normalization.
Abstract
Dependent types help programmers write highly reliable code. However, this reliability comes at a cost: it can be challenging to write new prototypes in (or migrate old code to) dependently-typed programming languages. Gradual typing makes static type disciplines more flexible, so an appropriate notion of gradual dependent types could fruitfully lower this cost. However, dependent types raise unique challenges for gradual typing. Dependent typechecking involves the execution of program code, but gradually-typed code can signal runtime type errors or diverge. These runtime errors threaten the soundness guarantees that make dependent types so attractive, while divergence spoils the type-driven programming experience. This paper presents GDTL, a gradual dependently-typed language that emphasizes pragmatic dependently-typed programming. GDTL fully embeds both an untyped and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
