Proceedings

Automated Program Analysis: Revisiting Precondition Inference through Constraint Acquisition

Video #1 Video #2 Download BibTeX Cite

Proceedings of the Thirty-First International Joint Conference on Artificial Intelligence. Main Track. Pages 1873-1879.

https://doi.org/10.24963/ijcai.2022/260

Abstract

Program annotations under the form of function pre/postconditions are crucial for many software engineering and program verification applications. Unfortunately, such annotations are rarely available and must be retrofit by hand. In this paper, we explore how Constraint Acquisition (CA), a learning framework from Constraint Programming, can be leveraged to automatically infer program preconditions in a black-box manner, from input-output observations. We propose PreCA, the first ever framework based on active constraint acquisition dedicated to infer memory-related preconditions. PreCA overpasses prior techniques based on program analysis and formal methods, offering well-identified guarantees and returning more precise results in practice.

  1. [Astorga et al., 2018] Angello Astorga, Siwakorn Srisakaokul, Xusheng Xiao, and Tao Xie. Preinfer: Automatic inference of preconditions via symbolic analysis. In DSN. IEEE, 2018.
  2. [Astorga et al., 2019] Angello Astorga, P Madhusudan, Shambwaditya Saha, Shiyu Wang, and Tao Xie. Learn- ing stateful preconditions modulo a test generator. In PLDI'19, 2019.
  3. [Beldiceanu and Simonis, 2012] Nicolas Beldiceanu and Helmut Simonis. A model seeker: Extracting global constraint models from positive examples. In CP'12, 2012.
  4. [Bessiere et al., 2013] Christian Bessiere, Remi Coletta, Emmanuel Hebrard, George Katsirelos, Nadjib Lazaar, Nina Narodytska, Claude-Guy Quimper, and Toby Walsh. Constraint acquisition via partial queries. In IJCAI, 2013. IJCAI
  5. [Bessiere et al., 2017] Christian Bessiere, Frédéric Koriche, Nadjib Lazaar, and Barry O'Sullivan. Constraint acquisi- tion. Artificial Intelligence, 2017.
  6. [Burdy et al., 2005] Lilian Burdy, Yoonsik Cheon, David R Cok, Michael D Ernst, Joseph R Kiniry, Gary T Leavens, K Rustan M Leino, and Erik Poll. An overview of jml tools and applications. STTT, 2005.
  7. [Calcagno et al., 2009] Cristiano Calcagno, Dino Distefano, Peter O'Hearn, and Hongseok Yang. Compositional shape analysis by means of bi-abduction. In POPL. ACM, 2009.
  8. [Cousot et al., 2013] Patrick Cousot, Radhia Cousot, Manuel Fähndrich, and Francesco Logozzo. Automatic inference of necessary preconditions. In VMCAI'13. Springer, 2013.
  9. [Dijkstra, 1968] Edsger W Dijkstra. A constructive approach to the problem of program correctness. BIT Numerical Mathematics, 1968.
  10. [Ernst et al., 2001] Michael D Ernst, Jake Cockrell, William G Griswold, and David Notkin. Dynamically discovering likely program invariants to support program evolution. TSE, 2001.
  11. [Floyd, 1993] Robert W Floyd. Assigning meanings to pro- grams. In Program Verification. Springer, 1993.
  12. [Garg et al., 2016] Pranav Garg, Daniel Neider, Parthasarathy Madhusudan, and Dan Roth. Learning invariants using decision trees and implication counterex- amples. ACM Sigplan Notices, 2016.
  13. [Gehr et al., 2015] Timon Gehr, Dimitar Dimitrov, and Mar- tin Vechev. Learning commutativity specifications. In CAV'15, 2015. Godefroid et al., 2011]
  14. Patrice Godefroid, Shuvendu K Lahiri, and Cindy Rubio-González. Statically validating must summaries for incremental compositional dynamic test generation. In SAS. Springer, 2011.
  15. [Gries, 2012] David Gries. The science of programming. Springer Science & Business Media, 2012.
  16. [Gulwani et al., 2008] Sumit Gulwani, Saurabh Srivastava, and Ramarathnam Venkatesan. Program analysis as con- straint solving. In PLDI, 2008.
  17. [Gulwani et al., 2017] Sumit Gulwani, Oleksandr Polozov, Rishabh Singh, et al. Program synthesis. Foundations and Trends® in Programming Languages, 2017.
  18. [Hoare, 1969] Charles Antony Richard Hoare. An axiomatic basis for computer programming. CACM, 1969.
  19. [Hutchins et al., 1994] Monica Hutchins, Herb Foster, Tarak Goradia, and Thomas Ostrand. Experiments on the effec- tiveness of dataflow-and control-flow-based test adequacy criteria. In ICSE. IEEE, 1994.
  20. [Kafle et al., 2018] Bishoksan Kafle, John P Gallagher, Graeme Gange, Peter Schachte, Harald Søndergaard, and Peter J Stuckey. An iterative approach to precondition in- ference using constrained horn clauses. Theory and Prac- tice of Logic Programming, 2018.
  21. [Kirchner et al., 2015] Florent Kirchner, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles, and Boris Yakobowski. Frama-c: A software analysis perspective. Formal Aspects of Computing, 2015.
  22. [Lallouet et al., 2010] Arnaud Lallouet, Matthieu Lopez, Li- onel Martin, and Christel Vrain. On learning constraint problems. In ICTAI. IEEE, 2010.
  23. [Meyer, 1988] Bertrand Meyer. Eiffel: A language and envi- ronment for software engineering. JSS, 1988.
  24. [Padhi et al., 2016] Saswat Padhi, Rahul Sharma, and Todd Millstein. Data-driven precondition inference with learned features. ACM SIGPLAN Notices, 2016.
  25. [Paulin et al., 2008] Mathias Paulin, Christian Bessiere, and Jean Sallantin. Automatic design of robot behaviors through constraint network acquisition. In ICTAI, 2008.
  26. [Rossi et al., 2006] Francesca Rossi, Peter Van Beek, and Toby Walsh. Handbook of constraint programming. El- sevier, 2006.
  27. [Sankaranarayanan et al., 2008] Sriram Sankaranarayanan, Swarat Chaudhuri, Franjo Ivančić, and Aarti Gupta. Dy- namic inference of likely data preconditions over predi- cates by tree learning. In ISSTA. ACM, 2008.
  28. [Seghir and Kroening, 2013] Mohamed Nassim Seghir and Daniel Kroening. Counterexample-guided precondition inference. In ESOP. Springer, 2013.
  29. [Tsouros et al., 2020] Dimosthenis C Tsouros, Kostas Ster- giou, and Christian Bessiere. Omissions in constraint ac- quisition. In CP. Springer, 2020.
  30. [Zhang et al., 2014] Lingming Zhang, Guowei Yang, Neha Rungta, Suzette Person, and Sarfraz Khurshid. Feedback- driven dynamic invariant discovery. In ISSTA. ACM, 2014.

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

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