Genetic Programming + Proof Search = Automatic Improvement

J Autom Reason. 2018;60(2):157-176. doi: 10.1007/s10817-017-9409-5. Epub 2017 Mar 7.

Abstract

Search Based Software Engineering techniques are emerging as important tools for software maintenance. Foremost among these is Genetic Improvement, which has historically applied the stochastic techniques of Genetic Programming to optimize pre-existing program code. Previous work in this area has not generally preserved program semantics and this article describes an alternative to the traditional mutation operators used, employing deterministic proof search in the sequent calculus to yield semantics-preserving transformations on algebraic data types. Two case studies are described, both of which are applicable to the recently-introduced 'grow and graft' technique of Genetic Improvement: the first extends the expressiveness of the 'grafting' phase and the second transforms the representation of a list data type to yield an asymptotic efficiency improvement.

Keywords: Genetic Programming; Program synthesis; Search Based Software Engineering; Software maintenance.