TL;DR
This paper explores how container morphisms can be used to automate reasoning about the realizability of polymorphic programs, leveraging parametricity and input-output examples to improve program synthesis.
Contribution
It introduces a translation to container setting that simplifies reasoning about realizability of polymorphic programs with examples.
Findings
Container morphisms effectively capture parametricity for reasoning.
Automated reasoning about realizability is feasible through translation to container setting.
The approach aids in program synthesis by pruning unrealizable specifications.
Abstract
Parametricity states that polymorphic functions behave the same regardless of how they are instantiated. When developing polymorphic programs, Wadler's free theorems can serve as free specifications, which can turn otherwise partial specifications into total ones, and can make otherwise realizable specifications unrealizable. This is of particular interest to the field of program synthesis, where the unrealizability of a specification can be used to prune the search space. In this paper, we focus on the interaction between parametricity, input-output examples, and sketches. Unfortunately, free theorems introduce universally quantified functions that make automated reasoning difficult. Container morphisms provide an alternative representation for polymorphic functions that captures parametricity in a more manageable way. By using a translation to the container setting, we show how…
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.
