Skip to main content

Hoare logic-based genetic programming


Almost all existing genetic programming systems deal with fitness evaluation solely by testing. In this paper, by contrast, we present an original approach that combines genetic programming with Hoare logic with the aid of model checking and finite state automata, henceby proposing a brand new verification-focused formal genetic programming system that makes it possible to evolve reliable programs with mathematicallyverified properties.

This is a preview of subscription content, access via your institution.


  1. 1

    Rich C, Waters R C. Automatic programming: myths and prospects. Computer, 1988, 21: 40–51

    Article  Google Scholar 

  2. 2

    Koza J R. Genetic Programming: On the Programming of Computers by Means of Natural Selection. Cambridge, MA: The MIT Press, 1992

    MATH  Google Scholar 

  3. 3

    Holland J H. Adaptation in Natural and Artificial Systems. Michigan: The University of Michigan Press, 1975

    Google Scholar 

  4. 4

    Mitchell M. An Introduction to Genetic Algorithms. Cambridge: MIT Press, 1996

    Google Scholar 

  5. 5

    Oltean M, Grosan C. A comparison of several linear genetic programming techniques. Complex Syst, 2004, 14: 1–29

    MathSciNet  Google Scholar 

  6. 6

    Abraham A, Nedjah N, de Macedo M L. Evolutionary computation: from genetic algorithms to genetic programming. In: Nedjah N, et al., eds. Studies in Computational Intelligence. Berlin: Springer-Verlag, 2006. 1–20

    Google Scholar 

  7. 7

    Koza J R. Human-competitive machine intelligence by means of genetic algorithms. In: Booker L, Forrest S, Mitchell M, et al., eds. Perspectives on Adaptation in Natural and Artificial System. Oxford: Oxford University Press, 2005. 33–55

    Google Scholar 

  8. 8

    Koza J R, Bennett F H III, Andre D, et al. Four problems for which a computer program evolved by genetic programming is competitive with human performance. In: Proceedings of IEEE International Confer. on Evolutionary Computation, Nagoya, Japan, 1996. 1–10

  9. 9

    Koza J R, Keane M A, Yu J, et al. Automatic creation of human-competitive programs and controllers by means of genetic programming. Genet Program Evolv Mach, 2000, 1: 121–164

    MATH  Article  Google Scholar 

  10. 10

    Binard F, Felty A. An abstraction-based genetic programming system. In: GECCO’ 2007, London, UK, 2007. 2415–2422

  11. 11

    Frias-Martinez E, Gobet F. Automatic generation of cognitive theories using genetic programming. Minds Mach, 2007, 17: 287–309

    Article  Google Scholar 

  12. 12

    O’Neill M, Ryan C. Grammatical evolution. IEEE Trans Evol Comput, 2001, 5: 349–358

    Article  Google Scholar 

  13. 13

    Sette S, Boullart L. Genetic programming: principles and applications. Eng Appl Artif Intell, 2001, 14: 727–736

    Article  Google Scholar 

  14. 14

    Montana D J. Strongly typed genetic programming. Evol Comput, 1995, 3: 199–230

    Article  Google Scholar 

  15. 15

    Koza J R. Genetic Programming II: Automatic Discovery of Reusable Programs. Cambridge, MA: MIT Press, 1994

    MATH  Google Scholar 

  16. 16

    Wang M L, Leung K S. Data Mining Using Grammar Based Genetic Programming and Applications. Dordrecht: Kluwer Academic Publishers, 2002. 27–99

    Google Scholar 

  17. 17

    Johnson C G. Genetic programming with fitness based on model checking. In: Ebner M, et al. eds. EuroGP 2007. Genetic Programming, LNCS 4445. Berlin: Springer-Verlag, 2007. 114–124

    Chapter  Google Scholar 

  18. 18

    He P, Kang L S, Fu M. Formality based genetic programming. In: Proc. of IEEE Congress on Evolutionary Computation. Hong Kong. 2008. 4081–4088

  19. 19

    Katz G, Peled D. Model checking-based genetic programming with an application to mutual exclusion. In: Ramakrishnan C R, Rehof J, eds. TACAS2008, LNCS 4963, Budapest, Hungary, 2008. 141–156

  20. 20

    Chen H W, Wang J, Dong W. High confidence software engineering technologies (in Chinese). Acta Electr Sin, 2003, 31: 1933–1938

    Google Scholar 

  21. 21

    Dijkstra E W. A Discipline of Programming. Englewood Cliffs, NJ: Prentice-Hall, 1976

    MATH  Google Scholar 

  22. 22

    Brinksma E. Verification is experimentation. Int J STTT, 2001, 3: 107–111

    MATH  Google Scholar 

  23. 23

    Kneuper R. Limits of formal methods. Form Aspects Comput, 1997, 9: 379–394

    Article  Google Scholar 

  24. 24

    Clarke E M, Wing J M, et al. Formal methods: state of the art and future directions. ACM Comput Surv, 1996, 28: 626–643

    Article  Google Scholar 

  25. 25

    Huth M, Ryan M. Logic in Computer Science: Modelling and Reasoning about System. Cambridge: Cambridge University Press, 2004

    MATH  Google Scholar 

  26. 26

    Lin H M, Zhang W H. Model checking: theories, techniques, and applications (in Chinese). Acta Electr Sin, 2002, 30: 1907–1912

    Google Scholar 

  27. 27

    Visser W, Havelund K, Brat G, et al. Model checking programs. Automat Softw Eng, 2003, 10: 203–232

    Article  Google Scholar 

  28. 28

    Hoare C A R. An axiomatic basis for computer programming. CACM, 1969, 12: 576–583

    MATH  Google Scholar 

  29. 29

    Manna Z. Mathematical theory of partial correctness. J Comput Syst Sci, 1971, 5: 239–253

    MathSciNet  MATH  Article  Google Scholar 

  30. 30

    Singh A K, Ghanekar U, Bandyopadhyay A K. Specifying mobile network using a WP-like formal approach. Revista Colomb Comput, 2005, 6: 59–77

    Google Scholar 

  31. 31

    Winskel G. The Formal Semantics of Programming Language: An Introduction. Cambridge, Massachusetts: The Mit Press, 1993

    MATH  Google Scholar 

  32. 32

    Yang F Q, Wang Q X, Mei H, et al. Reuse-based software production technology. Sci China Ser F-Inf Sci, 2001, 44: 8–19

    Article  Google Scholar 

  33. 33

    Xiong H M, Ying S, Yu L, et al. A composite reuse of architectural connectors using reflection (in Chinese). J Softw, 2006, 17: 1298–1306

    MATH  Article  Google Scholar 

  34. 34

    Hopcroft J E, Motwani R, Ullman J D. Introduction to Automata Theory, Languages, and Computation. 3rd ed. Upper Saddle River, NJ: Pearson Education Inc., 2007. 1–170

    Google Scholar 

  35. 35

    Aho A V, Lam M S, Sethi R, et al. Compilers: Principles, Techniques, and Tools. 2nd ed. Boston, MA: Addison Wesley, 2007

    Google Scholar 

  36. 36

    Garey M, Johnson D S. Computers and Intractability-A Guide to the Theory of NP-completeness. San Francisco: Freeman, 1979. 213

    MATH  Google Scholar 

  37. 37

    Kaner C, Falk J, Nguyen H Q. Testing Computer Software. 2nd ed. New York: John Wiley and Sons, Inc., 1999. 480

    Google Scholar 

Download references

Author information



Corresponding author

Correspondence to Pei He.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

He, P., Kang, L., Johnson, C.G. et al. Hoare logic-based genetic programming. Sci. China Inf. Sci. 54, 623–637 (2011).

Download citation


  • genetic programming
  • program verification
  • Hoare logic
  • model checking
  • finite state automata