{"type":"ScholarlyArticle","title":"Automated Program Analysis: Revisiting Precondition Inference through Constraint Acquisition","authors":[{"name":"Grégoire Menguy","slug":"gregoire-menguy","given":"Grégoire","family":"Menguy","affiliation":"Université Paris-Saclay , CEA , List , Palaiseau , France"},{"name":"Sébastien Bardin","slug":"sebastien-bardin","given":"Sébastien","family":"Bardin","affiliation":"Université Paris-Saclay , CEA , List , Palaiseau , France"},{"name":"Nadjib Lazaar","slug":"nadjib-lazaar","given":"Nadjib","family":"Lazaar","affiliation":"LIRMM , University of Montpellier , CNRS , Montpellier , France"},{"name":"Arnaud Gotlieb","slug":"arnaud-gotlieb","given":"Arnaud","family":"Gotlieb","affiliation":"Simula Research Laboratory , Oslo , Norway"}],"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\tprogram 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.","doi":"10.24963/ijcai.2022/260","url":"https://ijcai.org/proceedings/2022/260","pdf":"https://ijcai.org/proceedings/2022/0260.pdf","markdown":"https://ijcai.org/proceedings/2022/260.md","bibtex":"https://ijcai.org/proceedings/2022/bibtex/260","volume":{"slug":"2022","title":"Proceedings of the Thirty-First International Joint Conference on Artificial Intelligence","short_title":"IJCAI 2022","url":"https://ijcai.org/proceedings/2022/","year":2022,"location":"Vienna","dates":"23-29 July 2022","editors":"Luc De Raedt","isbn":"978-1-956792-00-3","publisher":"International Joint Conferences on Artificial Intelligence Organization","doi_prefix":"10.24963/ijcai.2022"},"section":"Constraint Satisfaction and Optimization","track":"Main Track","number":260,"pages":{"first":1873,"last":1879},"keywords":["Constraint Satisfaction and Optimization: Constraints and Machine Learning","Machine Learning: Active Learning","Multidisciplinary Topics and Applications: Validation and Verification","Multidisciplinary Topics and Applications: Software Engineering"],"videos":[{"label":"Video #1","url":"https://slideslive.com/38986986","length_sec":89,"provider":"slideslive"},{"label":"Video #2","url":"https://slideslive.com/38985129","length_sec":656,"provider":"slideslive"}],"references":[{"position":1,"raw":"[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.","title":"Preinfer: Automatic inference of preconditions via symbolic analysis","authors":"Astorga","year":"2018","venue":"DSN. IEEE","doi":null,"url":null,"internal_url":null},{"position":2,"raw":"[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.","title":"Learning stateful preconditions modulo a test generator","authors":"Angello Astorga, Shambwaditya Madhusudan, Shiyu Saha, Tao Wang, Xie","year":"2019","venue":"PLDI'19","doi":null,"url":null,"internal_url":null},{"position":3,"raw":"[Beldiceanu and Simonis, 2012] Nicolas Beldiceanu and Helmut Simonis. A model seeker: Extracting global constraint models from positive examples. In CP'12, 2012.","title":"A model seeker: Extracting global constraint models from positive examples","authors":"Simonis Beldiceanu, Nicolas Beldiceanu, Helmut Simonis","year":"2012","venue":"CP'12","doi":null,"url":null,"internal_url":null},{"position":4,"raw":"[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.","title":"Constraint acquisition via partial queries","authors":"Bessiere","year":"2013","venue":"IJCAI","doi":null,"url":null,"internal_url":"/proceedings/2013/78"},{"position":5,"raw":"[Bessiere et al., 2017] Christian Bessiere, Frédéric Koriche, Nadjib Lazaar, and Barry O'Sullivan. Constraint acquisi- tion. Artificial Intelligence, 2017.","title":"Christian Bessiere","authors":"Bessiere","year":"2017","venue":"Constraint acquisition","doi":null,"url":null,"internal_url":null},{"position":6,"raw":"[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.","title":"An overview of jml tools and applications","authors":"Lilian Burdy, Yoonsik Cheon, David R Cok, D Michael, Joseph R Ernst, Kiniry, K Gary T Leavens, M Rustan, Erik Leino, Poll","year":"2005","venue":"STTT","doi":null,"url":null,"internal_url":null},{"position":7,"raw":"[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.","title":"Compositional shape analysis by means of bi-abduction","authors":"Cristiano Calcagno, Dino Distefano, O' Peter, Hongseok Hearn, Yang","year":"2009","venue":"POPL. ACM","doi":null,"url":null,"internal_url":null},{"position":8,"raw":"[Cousot et al., 2013] Patrick Cousot, Radhia Cousot, Manuel Fähndrich, and Francesco Logozzo. Automatic inference of necessary preconditions. In VMCAI'13. Springer, 2013.","title":"Automatic inference of necessary preconditions","authors":"Patrick Cousot, Radhia Cousot, Manuel Fähndrich, Francesco Logozzo","year":"2013","venue":"VMCAI'13","doi":null,"url":null,"internal_url":null},{"position":9,"raw":"[Dijkstra, 1968] Edsger W Dijkstra. A constructive approach to the problem of program correctness. BIT Numerical Mathematics, 1968.","title":"A constructive approach to the problem of program correctness","authors":"W Edsger, Dijkstra","year":"1968","venue":"BIT Numerical Mathematics","doi":null,"url":null,"internal_url":null},{"position":10,"raw":"[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.","title":"Dynamically discovering likely program invariants to support program evolution","authors":"Jake Michael D Ernst, William G Cockrell, David Griswold, Notkin","year":"2001","venue":null,"doi":null,"url":null,"internal_url":null},{"position":11,"raw":"[Floyd, 1993] Robert W Floyd. Assigning meanings to pro- grams. In Program Verification. Springer, 1993.","title":"Assigning meanings to programs","authors":"Floyd Robert","year":"1993","venue":"Program Verification","doi":null,"url":null,"internal_url":null},{"position":12,"raw":"[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.","title":"Learning invariants using decision trees and implication counterexamples","authors":"Pranav Garg, Daniel Neider, Parthasarathy Madhusudan, Dan Roth","year":"2016","venue":"ACM Sigplan Notices","doi":null,"url":null,"internal_url":null},{"position":13,"raw":"[Gehr et al., 2015] Timon Gehr, Dimitar Dimitrov, and Mar- tin Vechev. Learning commutativity specifications. In CAV'15, 2015. Godefroid et al., 2011]","title":"Timon Gehr, Dimitar Dimitrov, and Martin Vechev. Learning commutativity specifications","authors":"Gehr","year":"2011","venue":"CAV'15","doi":null,"url":null,"internal_url":null},{"position":14,"raw":"Patrice Godefroid, Shuvendu K Lahiri, and Cindy Rubio-González. Statically validating must summaries for incremental compositional dynamic test generation. In SAS. Springer, 2011.","title":"Statically validating must summaries for incremental compositional dynamic test generation","authors":"Patrice Godefroid, K Shuvendu, Cindy Lahiri, Rubio-González","year":"2011","venue":null,"doi":null,"url":null,"internal_url":null},{"position":15,"raw":"[Gries, 2012] David Gries. The science of programming. Springer Science & Business Media, 2012.","title":"The science of programming","authors":"David Gries","year":"2012","venue":null,"doi":null,"url":null,"internal_url":null},{"position":16,"raw":"[Gulwani et al., 2008] Sumit Gulwani, Saurabh Srivastava, and Ramarathnam Venkatesan. Program analysis as con- straint solving. In PLDI, 2008.","title":"Program analysis as constraint solving","authors":"Sumit Gulwani, Saurabh Srivastava, Ramarathnam Venkatesan","year":"2008","venue":"PLDI","doi":null,"url":null,"internal_url":null},{"position":17,"raw":"[Gulwani et al., 2017] Sumit Gulwani, Oleksandr Polozov, Rishabh Singh, et al. Program synthesis. Foundations and Trends® in Programming Languages, 2017.","title":"Program synthesis","authors":"Sumit Gulwani, Oleksandr Polozov, Rishabh Singh","year":"2017","venue":"Foundations and Trends® in Programming Languages","doi":null,"url":null,"internal_url":null},{"position":18,"raw":"[Hoare, 1969] Charles Antony Richard Hoare. An axiomatic basis for computer programming. CACM, 1969.","title":"An axiomatic basis for computer programming","authors":"Charles Antony, Richard Hoare","year":"1969","venue":"CACM","doi":null,"url":null,"internal_url":null},{"position":19,"raw":"[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.","title":"Experiments on the effectiveness of dataflow-and control-flow-based test adequacy criteria","authors":"Monica Hutchins, Herb Foster, Tarak Goradia, Thomas Ostrand","year":"1994","venue":"ICSE. IEEE","doi":null,"url":null,"internal_url":null},{"position":20,"raw":"[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.","title":"An iterative approach to precondition inference using constrained horn clauses","authors":"Kafle","year":"2018","venue":"Theory and Practice of Logic Programming","doi":null,"url":null,"internal_url":null},{"position":21,"raw":"[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.","title":"Frama-c: A software analysis perspective","authors":"Florent Kirchner, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles, Boris Yakobowski","year":"2015","venue":"Formal Aspects of Computing","doi":null,"url":null,"internal_url":null},{"position":22,"raw":"[Lallouet et al., 2010] Arnaud Lallouet, Matthieu Lopez, Li- onel Martin, and Christel Vrain. On learning constraint problems. In ICTAI. IEEE, 2010.","title":"On learning constraint problems","authors":"Arnaud Lallouet, Matthieu Lopez, Lionel Martin, Christel Vrain","year":"2010","venue":"ICTAI. IEEE","doi":null,"url":null,"internal_url":null},{"position":23,"raw":"[Meyer, 1988] Bertrand Meyer. Eiffel: A language and envi- ronment for software engineering. JSS, 1988.","title":"Eiffel: A language and environment for software engineering","authors":"Bertrand Meyer","year":"1988","venue":"JSS","doi":null,"url":null,"internal_url":null},{"position":24,"raw":"[Padhi et al., 2016] Saswat Padhi, Rahul Sharma, and Todd Millstein. Data-driven precondition inference with learned features. ACM SIGPLAN Notices, 2016.","title":"Data-driven precondition inference with learned features","authors":"Saswat Padhi, Rahul Sharma, Todd Millstein","year":"2016","venue":"ACM SIGPLAN Notices","doi":null,"url":null,"internal_url":null},{"position":25,"raw":"[Paulin et al., 2008] Mathias Paulin, Christian Bessiere, and Jean Sallantin. Automatic design of robot behaviors through constraint network acquisition. In ICTAI, 2008.","title":"Automatic design of robot behaviors through constraint network acquisition","authors":"Mathias Paulin, Christian Bessiere, Jean Sallantin","year":"2008","venue":"ICTAI","doi":null,"url":null,"internal_url":null},{"position":26,"raw":"[Rossi et al., 2006] Francesca Rossi, Peter Van Beek, and Toby Walsh. Handbook of constraint programming. El- sevier, 2006.","title":"Handbook of constraint programming","authors":"Francesca Rossi, Peter Van Beek, Toby Walsh","year":"2006","venue":null,"doi":null,"url":null,"internal_url":null},{"position":27,"raw":"[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.","title":"Dynamic inference of likely data preconditions over predicates by tree learning","authors":"Swarat Sriram Sankaranarayanan, Franjo Chaudhuri, Aarti Ivančić, Gupta","year":"2008","venue":"ISSTA","doi":null,"url":null,"internal_url":null},{"position":28,"raw":"[Seghir and Kroening, 2013] Mohamed Nassim Seghir and Daniel Kroening. Counterexample-guided precondition inference. In ESOP. Springer, 2013.","title":"Counterexample-guided precondition inference","authors":"Mohamed Nassim, Seghir, Daniel Kroening","year":"2013","venue":"ESOP","doi":null,"url":null,"internal_url":null},{"position":29,"raw":"[Tsouros et al., 2020] Dimosthenis C Tsouros, Kostas Ster- giou, and Christian Bessiere. Omissions in constraint ac- quisition. In CP. Springer, 2020.","title":"Omissions in constraint acquisition","authors":"Kostas Dimosthenis C Tsouros, Christian Stergiou, Bessiere","year":"2020","venue":null,"doi":null,"url":null,"internal_url":null},{"position":30,"raw":"[Zhang et al., 2014] Lingming Zhang, Guowei Yang, Neha Rungta, Suzette Person, and Sarfraz Khurshid. Feedback- driven dynamic invariant discovery. In ISSTA. ACM, 2014.","title":"Feedbackdriven dynamic invariant discovery","authors":"Zhang","year":"2014","venue":"ISSTA","doi":null,"url":null,"internal_url":null}],"license_note":"Copyright International Joint Conferences on Artificial Intelligence."}