Program Synthesis Using Example Propagation

Publication date

2023-01-08

Authors

Mulleners, NiekORCID 0000-0002-7934-6834ISNI 0000000524246328
Jeuring, J.T.ISNI 0000000110063265
Heeren, BastiaanISNI 0000000396075391

Editors

Hanus, Michael
Inclezan, Daniela

Advisors

Supervisors

Document Type

Part of book
Open Access logo

License

taverne

Abstract

We present Scrybe, an example-based synthesis tool for a statically-typed functional programming language, which combines top-down deductive reasoning in the style of $$\lambda ^2$$ with Smyth-style live bidirectional evaluation. During synthesis, example constraints are propagated through sketches to prune and guide the search. This enables Scrybe to make more effective use of functions provided in the context. To evaluate our tool, it is run on the combined, largely disjoint, benchmarks of $$\lambda ^2$$ and Myth. Scrybe is able to synthesize most of the combined benchmark tasks.

Keywords

Program synthesis, Constraint propagation, Input-Output examples, Functional programming, Taverne

Citation

Mulleners, N, Jeuring, J & Heeren, B 2023, Program Synthesis Using Example Propagation. in M Hanus & D Inclezan (eds), Practical Aspects of Declarative Languages - 25th International Symposium, PADL 2023, Proceedings : 25th International Symposium, PADL 2023, Boston, MA, USA, January 16–17, 2023, Proceedings. 1 edn, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 13880 LNCS, Springer, Cham, pp. 20-36. https://doi.org/10.1007/978-3-031-24841-2_2