English

NSynC: Normalised Synthesis of Computation

Programming Languages 2026-06-29 v1

Abstract

Inductive program synthesis algorithms search a space of programs to find one that meets some specification. Enumerating according to the syntax of a programming language leads to a large search space, and hence slow synthesis, due in large part to semantic duplication. A synthesiser may have to evaluate -- and reject -- multiple semantically identical but syntactically different programs, wasting resources. To avoid this duplication, we present NSynC, a synthesis-by-semantics approach. By enumerating the semantics of the target language directly, we guarantee that each candidate program is semantically unique and that each evaluation of a candidate is meaningful. Specifically, we search the space of normal forms for the simply-typed lambda calculus with sums using a top-down, type-directed synthesis algorithm. Our preliminary results show a geomean speedup of 8.93x on a synthetic benchmark suite over the unrestricted algorithm.

Cite

@article{arxiv.2606.30703,
  title  = {NSynC: Normalised Synthesis of Computation},
  author = {Zoey Shepherd and Ohad Kammar and Elizabeth Polgreen},
  journal= {arXiv preprint arXiv:2606.30703},
  year   = {2026}
}

Comments

21 pages (of which 17 in appendix), 12 figures (of which 11 in appendix). Accepted to SYNT 2026