1. Automated Synthesis of Functional Programs with Auxiliary Functions
- Author
-
Shingo Eguchi, Takeshi Tsukada, and Naoki Kobayashi
- Subjects
Theoretical computer science ,Binary search tree ,Computer science ,020204 information systems ,0202 electrical engineering, electronic engineering, information engineering ,020207 software engineering ,02 engineering and technology ,Function (mathematics) ,Auxiliary function ,Extension (predicate logic) ,Data structure ,Program synthesis - Abstract
Polikarpova et al. have recently proposed a method for synthesizing functional programs from specifications expressed as refinement types, and implemented a program synthesis tool Synquid. Although Synquid can generate non-trivial programs on various data structures such as lists and binary search trees, it cannot automatically generate programs that require auxiliary functions, unless users provide the specifications of auxiliary functions. We propose an extension of Synquid to enable automatic synthesis of programs with auxiliary functions. The idea is to prepare a template of the target function containing unknown auxiliary functions, infer the types of auxiliary functions, and then use Synquid to synthesize the auxiliary functions. We have implemented a program synthesizer based on our method, and confirmed through experiments that our method can synthesize several programs with auxiliary functions, which Synquid is unable to automatically synthesize.
- Published
- 2018
- Full Text
- View/download PDF