Litcius/Paper detail

Cyclic program synthesis

Shachar Itzhaky, Hila Peleg, Nadia Polikarpova, Reuben N. S. Rowe, Ilya Sergey

202126 citationsDOIOpen Access PDF

Abstract

We describe the first approach to automatically synthesizing heap-manipulating programs with auxiliary recursive procedures. Such procedures occur routinely in data structure transformations (e.g., flattening a tree into a list) or traversals of composite structures (e.g., n-ary trees). Our approach, dubbed cyclic program synthesis, enhances deductive program synthesis with a novel application of cyclic proofs. Specifically, we observe that the machinery used to form cycles in cyclic proofs can be reused to systematically and efficiently abduce recursive auxiliary procedures.

Topics & Concepts

Mathematical proofComputer scienceProgram synthesisHeap (data structure)Programming languageData structureTree (set theory)Theoretical computer scienceProgram transformationAlgorithmGeneric programmingMathematicsCombinatoricsGeometryLogic, programming, and type systemsFormal Methods in VerificationSoftware Testing and Debugging Techniques