Results

**1 - 3**of**3**### Inductive Program Synthesis: From Theory to Application

"... Abstract. We present an approach to folding of finite program terms based on the detection of recurrence relations in a single given term which is considered as the kth unfolding of an unknown recursive program. Our approach goes beyond Summers ’ classical approach of inductive program synthesis in ..."

Abstract
- Add to MetaCart

Abstract. We present an approach to folding of finite program terms based on the detection of recurrence relations in a single given term which is considered as the kth unfolding of an unknown recursive program. Our approach goes beyond Summers ’ classical approach of inductive program synthesis in several aspects and allows to deal with a larger class of programming problems. We show how inductive synthesis of recursive programs can be applied to control-rule learning and enduser programming: finite program terms are generated using domain-specific techniques and then presented as input to our folding algorithm. In the case of control-rule learning, the finite terms are obtained from a state-based planner and the resulting recursive functions represent knowledge how to guide plan construction. In the case of enduser programming, the user presents examples of the desired input/output relation, and a finite program, which transforms exactly the given IO pairs, is constructed by generate-and-test. The folded recursive program generalizes over the input domain and therefore can be applied to a larger class of problems.

### Chapter 3 Systematic Synthesis of Functions

"... Abstract: In this paper we introduce a new technique to synthesize functions matching a given set of input-output pairs. Using techniques similar to defunctionalisation the abstract syntax tree of the candidate functions is specified at a high level of abstraction. We use a recursive data type to re ..."

Abstract
- Add to MetaCart

(Show Context)
Abstract: In this paper we introduce a new technique to synthesize functions matching a given set of input-output pairs. Using techniques similar to defunctionalisation the abstract syntax tree of the candidate functions is specified at a high level of abstraction. We use a recursive data type to represent the syntax tree of the candidate functions. The test system G∀ST is used for the systematic synthesis of candidate functions and the selection of functions matching the given condition. The representation of candidate functions as data structures gives us full control over them and the transformation of the syntax tree to the actual function is straight forward. Instances of the syntax tree are generated by a generic algorithm that can be tailored easily to specific needs. This yields a very flexible system to synthesize clear (recursive) function definitions efficiently. At TFP’05 Susumu Katayama [7] presented an intriguing system that was able to synthesize a general function that fits a number of argument result pairs. For instance, if we state f 2 = 2, f 4 = 24, and f 6 = 720, we expect a factorial function