Template-based Program Synthesis using Stellens\"atze
Amir Kafshdar Goharshady, S. Hitarth, Fatemeh Mohammadi, Harshit J, Motwani

TL;DR
This paper introduces a novel algorithm for template-based synthesis of polynomial imperative programs that reduces the problem to quadratic programming, avoiding complex quantifier elimination and improving scalability.
Contribution
The authors present a new algorithm based on algebraic geometry theorems that efficiently reduces polynomial program synthesis to quadratic programming, bypassing traditional quantifier elimination challenges.
Findings
The algorithm is sound and semi-complete for polynomial templates.
It effectively reduces synthesis problems to quadratic programming.
The approach improves scalability over classical methods.
Abstract
Template-based synthesis, also known as sketching, is a localized approach to program synthesis in which the programmer provides not only a specification, but also a high-level ``sketch'' of the program. The sketch is basically a partial program that models the general intuition of the programmer, while leaving the low-level details as unimplemented ``holes''. The role of the synthesis engine is then to fill in these holes such that the completed program satisfies the desired specification. In this work, we focus on template-based synthesis of polynomial imperative programs with real variables, i.e.~imperative programs in which all expressions appearing in assignments, conditions and guards are polynomials over program variables. While this problem can be solved in a sound and complete manner by a reduction to the first-order theory of the reals, the resulting formulas will contain a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Logic, programming, and type systems · Embedded Systems Design Techniques
