Gradual Indexed Inductive Types - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Journal Articles Proceedings of the ACM on Programming Languages Year : 2024

Gradual Indexed Inductive Types

Abstract

Indexed inductive types are essential in dependently-typed programming languages, enabling precise and expressive specifications of data structures and properties. Recognizing that programming and proving with dependent types could benefit from the smooth integration of static and dynamic checking that gradual typing offers, recent efforts have studied gradual dependent types. Gradualizing indexed inductive types however remains mostly unexplored: the standard encodings of indexed inductive types in intensional type theory, e.g., using type-level fixpoints or subset types, break in the presence of gradual features; and previous work on gradual dependent types focus on very specific instances of indexed inductive types. This paper contributes a general framework, named PUNK, specifically designed for exploring the design space of gradual indexed inductive types. PUNK is a versatile framework, enabling the exploration of the space between eager and lazy cast reduction semantics that arise from the interaction between casts and the inductive eliminator, allowing them to coexist and interoperate in a single system. Our work provides significant insights into the intersection of dependent types and gradual typing, by proposing a criteria for well-behaved gradual indexed inductive types, systematically addressing the outlined challenges of integrating these types. The contributions of this paper are a step forward in the quest for making gradual theorem proving and gradual dependently-typed programming a reality.

Dates and versions

hal-04681546 , version 1 (29-08-2024)

Licence

Identifiers

Cite

Mara Malewski, Kenji Maillard, Nicolas Tabareau, Éric Tanter. Gradual Indexed Inductive Types. Proceedings of the ACM on Programming Languages, 2024, 8 (ICFP), pp.544-572. ⟨10.1145/3674644⟩. ⟨hal-04681546⟩
0 View
0 Download

Altmetric

Share

Gmail Mastodon Facebook X LinkedIn More