[Paper Review] Learning to Represent Programs with Property Signatures
This paper introduces property signatures—a machine learning-friendly representation of programs and specifications based on evaluating a set of boolean-valued properties over input-output pairs. By learning to predict property signatures for composed functions, the method enables a synthesizer to find correct programs twice as fast and with significantly higher success rate than a baseline, demonstrating dramatic improvements on a diverse set of functional programming problems.
We introduce the notion of property signatures, a representation for programs and program specifications meant for consumption by machine learning algorithms. Given a function with input type $τ_{in}$ and output type $τ_{out}$, a property is a function of type: $(τ_{in}, τ_{out}) ightarrow exttt{Bool}$ that (informally) describes some simple property of the function under consideration. For instance, if $τ_{in}$ and $τ_{out}$ are both lists of the same type, one property might ask `is the input list the same length as the output list?'. If we have a list of such properties, we can evaluate them all for our function to get a list of outputs that we will call the property signature. Crucially, we can `guess' the property signature for a function given only a set of input/output pairs meant to specify that function. We discuss several potential applications of property signatures and show experimentally that they can be used to improve over a baseline synthesizer so that it emits twice as many programs in less than one-tenth of the time.
Motivation & Objective
- To develop a general-purpose representation for programs and specifications that supports machine learning.
- To improve program synthesis performance by leveraging property signatures as inductive biases.
- To enable automated discovery of useful program properties through learning, rather than manual design.
- To demonstrate that property signatures can drastically accelerate synthesis on complex, human-authored programming problems.
Proposed method
- The paper defines a property as a boolean function that checks simple invariants on input-output pairs of a target function.
- A property signature is formed by evaluating a fixed set of such properties on a function’s input-output examples, producing a binary vector.
- The method learns a composition predictor model that infers the property signature of a component function from the signature of its composition.
- The synthesizer uses property signatures to guide search, filtering candidate programs based on predicted property matches.
- The approach is evaluated in a custom, Turing-complete functional language called Searcho, designed for fast program execution during synthesis.
- The system is open-sourced, including the language, runtime, search infrastructure, and training data, to support future research in ML-guided synthesis.
Experimental results
Research questions
- RQ1Can property signatures serve as an effective inductive bias for program synthesis?
- RQ2Can a learned model predict property signatures of component functions from their compositions, improving synthesis efficiency?
- RQ3Can property signatures enable synthesis of programs that a baseline synthesizer fails to find?
- RQ4How does the performance of a property signature-augmented synthesizer compare to a baseline on complex, human-authored programming problems?
Key findings
- The property signature method synthesized over twice as many programs as the baseline synthesizer on a test set of 185 functional programming problems.
- The method achieved this performance gain in less than one-tenth of the time required by the baseline.
- More than half of the programs synthesized using property signatures were not found by the baseline even after a day of search.
- The composition predictor model successfully inferred intermediate property signatures, enabling effective premise selection during synthesis.
- The approach successfully synthesized a complex program—removing consecutive duplicates from a list—that the baseline could not find.
- The open-sourced system provides a foundation for future research in machine learning–guided program synthesis.
Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.