Proceedings

Counterexample-Driven Genetic Programming: Stochastic Synthesis of Provably Correct Programs

Download BibTeX Cite

Proceedings of the Twenty-Seventh International Joint Conference on Artificial Intelligence. Best Sister Conferences. Pages 5304-5308.

https://doi.org/10.24963/ijcai.2018/742

Abstract

Genetic programming is an effective technique for inductive synthesis of programs from tests, i.e. training examples of desired input-output behavior. Programs synthesized in this way are not guaranteed to generalize beyond the training set, which is unacceptable in many applications. We present Counterexample-Driven Genetic Programming (CDGP) that employs evolutionary search to synthesize provably correct programs from formal specifications. CDGP employs a Satisfiability Modulo Theories (SMT) solver to formally verify programs in the evaluation phase. A failed verification produces counterexamples that are in turn used to calculate fitness and thereby drive the search process. When compared with a range of approaches on a suite of state-of-the-art specification-based synthesis benchmarks, CDGP systematically outperforms them, typically synthesizing correct programs faster and using fewer tests.

  1. [Almeida et al., 2011] José Bacelar Almeida, Maria João Frade, Jorge Sousa Pinto, and Simão Melo de Sousa. An Overview of Formal Methods Tools and Techniques, pages 15-44. Springer London, London, 2011.
  2. [Alur et al., 2015] Rajeev Alur, Dana Fisman, Rishabh Singh, and Armando Solar-Lezama. Results and analy- sis of sygus-comp'15. In Proceedings Fourth Workshop on Synthesis, SYNT 2015, San Francisco, CA, USA, 18th July 2015., pages 3-26, 2015.
  3. [Arcuri and Yao, 2007] Andrea Arcuri and Xin Yao. Coe- volving programs and unit tests from their specification. In Proceedings of the Twenty-second IEEE/ACM Interna- tional Conference on Automated Software Engineering, ASE '07, pages 397-400, New York, NY, USA, 2007. ACM.
  4. [Barrett et al., 2015] Clark Barrett, Pascal Fontaine, and Ce- sare Tinelli. The SMT-LIB Standard: Version 2.5. Techni- cal report, Department of Computer Science, The Univer- sity of Iowa, 2015. Available at www.SMT-LIB.org. Link
  5. [Boca et al., 2009] Paul P. Boca, Jonathan P. Bowen, and Jawed I Siddiqi. Formal Methods: State of the Art and New Directions. Springer Publishing Company, Incorpo- rated, 1st edition, 2009.
  6. [Bł ądek and Krawiec, 2017] Iwo Bł ądek and Krzysztof Krawiec. Evolutionary Program Sketching, pages 3-18. Springer International Publishing, Cham, 2017.
  7. [Cohen, 1994] B Cohen. A Brief History of Formal Meth- ods. Formal Aspects of Computing, 1(3), 1994.
  8. [de Moura and Bjørner, 2008] Leonardo de Moura and Nikolaj Bjørner. Z3: An efficient SMT solver. In C. Ramakrishnan and Jakob Rehof, editors, Tools and Algorithms for the Construction and Analysis of Systems, volume 4963 of Lecture Notes in Computer Science, chapter 24, pages 337-340. Springer Berlin / Heidelberg, Berlin, Heidelberg, 2008.
  9. [Gulwani et al., 2010] Sumit Gulwani, Susmit Jha, Ashish Tiwari, and Ramarathnam Venkatesan. Component based synthesis applied to bitvector programs. Technical Report MSR-TR-2010-12, February 2010.
  10. [Helmuth et al., 2015] Thomas Helmuth, Lee Spector, and James Matheson. Solving uncompromising problems with lexicase selection. IEEE Transactions on Evolutionary Computation, 19(5):630-643, October 2015.
  11. [Hofmann, 2010] Martin Hofmann. Igor II -an analytical inductive functional programming system. In In Pro- ceedings of the 2010 ACM SIGPLAN Workshop on Par- tial Evaluation and Program Manipulation, pages 29-32, 2010.
  12. [Jha et al., 2010] Susmit Jha, Sumit Gulwani, Sanjit A. Se- shia, and Ashish Tiwari. Oracle-guided component-based program synthesis. In 29th International Conference on Software Engineering (ICSE '10), pages 215-224, May 2010.
  13. [Johnson, 2007] Colin Johnson. Genetic programming with fitness based on model checking. In Marc Ebner, Michael O'Neill, Anikó Ekárt, Leonardo Vanneschi, and Anna Is- abel Esparcia-Alcázar, editors, Proceedings of the 10th European Conference on Genetic Programming, volume 4445 of Lecture Notes in Computer Science, pages 114- 124, Valencia, Spain, 11-13 April 2007. Springer.
  14. [Katayama, 2012] Susumu Katayama. An analytical in- ductive functional programming system that avoids unin- tended programs. In Proceedings of the ACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Ma- nipulation, PEPM '12, pages 43-52, New York, NY, USA, 2012. ACM.
  15. [Katz and Peled, 2008] Gal Katz and Doron Peled. Genetic Programming and Model Checking: Synthesizing New Mutual Exclusion Algorithms, pages 33-47. Springer Berlin Heidelberg, Berlin, Heidelberg, 2008.
  16. [Katz and Peled, 2016] Gal Katz and Doron Peled. Syn- thesizing, correcting and improving code, using model checking-based genetic programming. International Jour- nal on Software Tools for Technology Transfer, pages 1- 16, 2016.
  17. [Krawiec et al., 2017] Krzysztof Krawiec, Iwo Bł ądek, and Jerry Swan. Counterexample-driven genetic program- ming. In Proceedings of the Genetic and Evolutionary Computation Conference, GECCO '17, pages 953-960, New York, NY, USA, 2017. ACM.
  18. [Krawiec, 2015] Krzysztof Krawiec. Behavioral Program Synthesis with Genetic Programming, volume 618 of Stud- ies in Computational Intelligence. Springer International Publishing, 2015.
  19. [Muggleton, 1994] Stephen Muggleton. Inductive Logic Programming: Derivations, successes and shortcomings. SIGART Bull., 5(1):5-11, January 1994.
  20. [Solar-Lezama et al., 2006] Armando Solar-Lezama, Liviu Tancau, Rastislav Bodik, Sanjit Seshia, and Vijay Saraswat. Combinatorial sketching for finite programs. SIGPLAN Not., 41(11):404-415, October 2006.
  21. [Srivastava et al., 2010] Saurabh Srivastava, Sumit Gulwani, and Jeffrey S. Foster. From program verification to pro- gram synthesis. In Proceedings of the 37th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Program- ming Languages, POPL '10, pages 313-326, New York, NY, USA, 2010. ACM.

References were extracted automatically from the PDF and may contain errors.

Welcome Future Conferences AI Journal Division IJCAI Proceedings About IJCAI IJCAI Awards