Speeding up program synthesis using specification discovery

Master Thesis (2023)
Author(s)

J. de Jong (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

Sebastijan Dumancic – Mentor (TU Delft - Algorithmics)

J.G.H. Cockx – Mentor (TU Delft - Programming Languages)

T.R. Hinnerichs – Mentor (TU Delft - Algorithmics)

M. T.J. Spaan – Graduation committee member (TU Delft - Algorithmics)

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2023 Jaap de Jong
More Info
expand_more
Publication Year
2023
Language
English
Copyright
© 2023 Jaap de Jong
Graduation Date
04-07-2023
Awarding Institution
Delft University of Technology
Programme
['Computer Science']
Faculty
Electrical Engineering, Mathematics and Computer Science
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

How convenient would it be to have an AI that relieves us programmers from the burden of coding? Program synthesis is a technique that achieves exactly that: it automatically generates simple programs that meet a given set of examples or adhere to a provided specification. This is often done by enumerating all programs in the search space and returning the first program that satisfies the requirements. However, these algorithms frequently enumerate redundant programs because of symmetries in the search space. We propose a new constraint discovery system that is able to detect these symmetries in a language and systematically generate symmetry-breaking constraints for them. To test these constraints, we implemented a novel, re-usable framework for program synthesis called Herb.jl. The generated constraints are shown to cut down search spaces to less than 25% of the original size and reduce the enumeration time by a factor of 3. Furthermore, this approach is extended to automatically discover semantic specifications without needing an expert. The effectiveness of these specifications is evaluated with an existing specification-based synthesizer, which shows that adding these specifications is an effective way to cut the synthesis time in half for domains where expert-defined specifications are not available. Together, these approaches demonstrate the effectiveness of extracting additional information from a language and applying it during enumeration.

Files

MScThesisJaapdeJong.pdf
(pdf | 0.796 Mb)
License info not available