Program Attribute Predictor for Inductive Synthesis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Inductive program synthesis faces challenges in efficiently searching the vast space of syntactically correct programs to infer a consistent program from incomplete specifications, such as input-output examples, due to the combinatorial size and discrete nature of the search space, and existing solvers like SAT and SMT do not learn from experience or favor more natural programs that generalize well.
Innovation Solution
A computer program predictor is developed with a processor accessing a program attribute predictor trained on pairs of input and output data, using machine learning to guide a search component in finding a program that computes the output from the input, learning from past experiences to improve efficiency and generalization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If exhaustive search of program space is performed, then complete program synthesis is achieved, but search time and computational resources increase exponentially
Solution Approach 1:
The patent applies preliminary action by performing static analysis and generating program summaries before the actual search process. The system pre-computes function signatures, data flow information, and control flow graphs, creating a structured representation that guides the subsequent search. This preliminary preparation reduces the effective search space by eliminating obviously incorrect paths early in the process.
Solution Approach 2:
The patent segments the program search space by decomposing programs into function-level components and using program summaries as intermediate representations. Instead of searching through all possible complete programs, the system divides the search into smaller units (function summaries, basic blocks) that can be independently analyzed and recombined, significantly reducing the combinatorial explosion of the search space.
2Productivity
If program search space is reduced for efficiency, then search speed improves, but solution completeness may be compromised
Solution Approach 1:
The patent implements feedback mechanisms where program summaries are continuously refined based on search results and validation outcomes. The system uses feedback from input-output example matching to guide further search directions, adjusting the search strategy based on what has been learned. This feedback loop ensures that the search remains comprehensive while maintaining efficiency through informed pruning of unlikely candidates.
Solution Approach 2:
The patent applies dynamics by making the search strategy adaptive rather than static. The search process dynamically adjusts its focus based on feedback from preliminary analysis and intermediate results. The system can shift between exhaustive and heuristic approaches depending on the problem state, ensuring both completeness and efficiency are maintained through flexible strategy selection.
3Reliability
If traditional SAT/SMT solvers are used, then formal verification is achieved, but the solvers cannot learn from experience or favor natural programs
Solution Approach 1:
The patent introduces program summaries as an intermediary layer between the input-output examples and the final program synthesis. These summaries act as a mediator that captures essential program characteristics in a compressed form, allowing the system to leverage both formal verification methods and learning-based approaches. The intermediary representation enables the integration of traditional solver rigor with adaptive search strategies.
Data Source
AI summary
A computer program predictor is described which has a processor configured to access a program attribute predictor; and a memory storing a search component configured to search a space of possible programs, to find a program which, given an input data instance and an output data instance, will compute the output data instance from the input data instance, the search being guided by attributes predicted by the attribute predictor given the input data instance and the output data instance.


