MiniAgda: Integrating Sized and Dependent Types
Andreas Abel (Ludwig-Maximilians-University Munich)

TL;DR
MiniAgda is a dependently typed language that incorporates sized types to ensure termination and productivity, addressing integration challenges with dependencies and pattern matching.
Contribution
The paper introduces MiniAgda, a core language that successfully integrates sized types with dependent types and pattern matching, enabling robust termination checking.
Findings
Sized types effectively track structural descent and guardedness.
MiniAgda supports higher-order functions and polymorphism with sizes.
The integration of sized types with dependencies is sound and practical.
Abstract
Sized types are a modular and theoretically well-understood tool for checking termination of recursive and productivity of corecursive definitions. The essential idea is to track structural descent and guardedness in the type system to make termination checking robust and suitable for strong abstractions like higher-order functions and polymorphism. To study the application of sized types to proof assistants and programming languages based on dependent type theory, we have implemented a core language, MiniAgda, with explicit handling of sizes. New considerations were necessary to soundly integrate sized types with dependencies and pattern matching, which was made possible by concepts such as inaccessible patterns and parametric function spaces. This paper provides an introduction to MiniAgda by example and informal explanations of the underlying principles.
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.
