Inducing Constructor Systems from Example-Terms by Detecting Syntactical Regularities

We present a technique for inducing functional programs from few, well chosen input/output-examples (I/O-examples). Potential applications for automatic program or algorithm induction are to enable end users to create their own simple programs, to assist professional programmers, or to automatically invent completely new and efficient algorithms. In our approach, functional programs are represented as constructor term rewriting systems (CSs) containing recursive rules. I/O-examples for a target function to be implemented are a set of pairs of terms (F(i"i),o"i) meaning that F(i"i)-denoting application of function F to input i"i-is rewritten to o"i by a CS implementing the function F. Induction is based on detecting syntactic regularities between example terms. In this paper we present theoretical results and describe an algorithm for inducing CSs over arbitrary signatures/data types which consist of one function defined by an arbitrary number of rules with an arbitrary number of non-nested recursive calls in each rule. Moreover, we present empirical results based on a prototypical implementation.

[1]  Alan W. Biermann,et al.  Automatic Program Construction Techniques , 1984 .

[2]  Phillip D. Summers,et al.  A Methodology for LISP Program Construction from Examples , 1977, J. ACM.

[3]  Ute Schmid,et al.  Inductive Synthesis of Functional Programs: An Explanation Based Generalization Approach , 2006, J. Mach. Learn. Res..

[4]  Serap Yilmaz,et al.  INDUCTIVE SYNTHESIS OF RECURSIVE LOGIC PROGRAMS , 1997 .

[5]  Alexander K. Petrenko,et al.  Electronic Notes in Theoretical Computer Science , 2009 .

[6]  Pierre Flener,et al.  Inductive Synthesis of Recursive Logic Programs: Achievements and Prospects , 1999, J. Log. Program..

[7]  Roland Olsson,et al.  Inductive Functional Programming Using Incremental Program Transformation , 1995, Artif. Intell..

[8]  Ute Schmid Automatic Synthesis of XSL-Transformations from Example Documents , .

[9]  Yves Kodratoff,et al.  A sane Algorithme for the Synthesis of LISP Functions from Example Problems: The "Boyer and Moore Algorithm" , 1978, AISB/GI.

[10]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[11]  Jean-Pierre Jouannaud,et al.  Characterization of a Class of Functions Synthesized from Examples by a SUMMERS Like Method Using a "B.M.W." Matching Technique , 1979, IJCAI.

[12]  M. K. Rao Learning Recursive Prolog Programs with Local Variables from Examples , 2005, AAIP.

[13]  Narciso Martí-Oliet,et al.  The Maude 2.0 System , 2003, RTA.

[14]  Guillaume Le Blanc,et al.  BMWk Revisited - Generalization and Formalization of an Algorithm for Detecting Recursive Relations in Term Sequences , 1994, ECML.

[15]  Thomas G. Dietterich What is machine learning? , 2020, Archives of Disease in Childhood.