
TL;DR
This paper introduces the exp-log normal form of types, a systematic way to decide type isomorphism and simplify the beta-eta equality problem in lambda calculus with sums, leveraging high-school identities and type information.
Contribution
It presents the exp-log normal form of types, enabling a heuristic for type isomorphism and reducing the beta-eta equality problem while maintaining completeness, with an implementation in Coq.
Findings
Type isomorphism can be decided using the exp-log normal form.
The normal form reduces the beta-eta equality problem while preserving correctness.
An implemented converter in Coq facilitates practical application of the normal form.
Abstract
Lambda calculi with algebraic data types lie at the core of functional programming languages and proof assistants, but conceal at least two fundamental theoretical problems already in the presence of the simplest non-trivial data type, the sum type. First, we do not know of an explicit and implemented algorithm for deciding the beta-eta-equality of terms---and this in spite of the first decidability results proven two decades ago. Second, it is not clear how to decide when two types are essentially the same, i.e. isomorphic, in spite of the meta-theoretic results on decidability of the isomorphism. In this paper, we present the exp-log normal form of types---derived from the representation of exponential polynomials via the unary exponential and logarithmic functions---that any type built from arrows, products, and sums, can be isomorphically mapped to. The type normal form can be…
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.
