TL;DR
This paper introduces a unifier-friendly, level polymorphic framework for n-ary functions in Agda, enabling generic manipulation and automatic type reconstruction with minimal user input.
Contribution
It presents a novel representation of n-ary functions that improves unification and allows for generic, fully polymorphic combinators in Agda.
Findings
Enables automatic type reconstruction for n-ary functions.
Provides generic congruence and substitution combinators.
Improves unification handling for n-ary functions in Agda.
Abstract
Agda's standard library struggles in various places with n-ary functions and relations. It introduces congruence and substitution operators for functions of arities one and two, and provides users with convenient combinators for manipulating indexed families of arity exactly one. After a careful analysis of the kinds of problems the unifier can easily solve, we design a unifier-friendly representation of n-ary functions. This allows us to write generic programs acting on n-ary functions which automatically reconstruct the representation of their inputs' types by unification. In particular, we can define fully level polymorphic n-ary versions of congruence, substitution and the combinators for indexed families, all requiring minimal user input.
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
