Test-based Solution Filtering for Program Synthesis
In this paper, we present Check+, an extension to Hoogle+, a Haskell program synthesizer, to filter out the uninteresting programs. Moreover, Check+ can demonstrate how candidate programs behave so that users may confirm if a synthesized solution matches their intent. Check+ tests every synthesized solution with randomly generated inputs, generating feedback to improve Hoogle+’s quality of solutions. We use QuickCheck, a property-based testing framework for Haskell, to evaluate solutions inside the Haskell interpreter Hint. Check+ generates properties that are testable for QuickCheck and then feed into Hint for evaluation results.