Drill and Join: A Method for Exact Inductive Program Synthesis
In this paper we propose a novel semi-supervised active machine-learning method, based on two recursive higher-order functions that can inductively synthesize a functional computer program. Based on properties formulated using abstract algebra terms, the method uses two combined strategies: to reduce the dimensionality of the Boolean algebra where a target function lies and to combine known operations belonging to the algebra, using them as a basis to build a program that emulates the target function. The method queries for data on specific points of the problem input space and build a program that exactly fits the data. Applications of this method include all sorts of systems based on bitwise operations. Any functional computer program can be emulated using this approach. Combinatorial circuit design, model acquisition from sensor data, reverse engineering of existing computer programs are all fields where the proposed method can be useful.
KeywordsBoolean Function Boolean Algebra Input Space Target Function Inductive Logic Programming
The author would like to thank Pierre-Jean Laurent from the Laboratoire de Modelisation et Calcul- LMC-IMAG at the Universite Joseph Fourier, Grenoble, France for his contributions concerning the mathematical proofs of the proposed method and Emmanuel Mazer from the Institut National De Recherche en Informatique et en Automatique- INRIA- Rhne Alpes, France for his assistance and helpful contributions to this research.
- 4.Stone, M.H.: The theory of representations of Boolean Algebras. Trans. Am. Math. Soc. 40, 37–111 (1936)Google Scholar
- 10.Smith, D.R.: The synthesis of LISP programs from examples. A survey. In: Biermann, A.W., Guiho, G., Kodratoff, Y. (eds.) Automatic Program Construction Techniques, pp. 307–324. Macmillan, New York (1984) Google Scholar
- 12.Alur, R., Bodik, R., Juniwal G. et al.: Syntax-guided synthesis, FMCAD, pp. 1–17. IEEE (2013)Google Scholar
- 15.Hara, Y., Tomiyama, H.I., Honda, S., Takada, H.: Proposal and quantitative analysis of the CHStone Benchmark program suite for practical C-based High-level synthesis. J. Inf. Process. 17, 242–254 (2009)Google Scholar
- 16.Jha, S., Gulwani, S., Seshia, S.A., Tiwari, A.: Oracle-guided Component-based Program Synthesis. In: ICSE (2010)Google Scholar
- 17.Seshia, S.A.: Sciduction: combining induction, deduction, and structure for verification and synthesis. In: DAC, pp. 356–365 (2012)Google Scholar