Abstract
Invariant generation is a classical problem to automatically generate invariants to aid the formal analysis of programs. In this work, we consider the problem of generating tight linear-invariants over affine programs (i.e., programs with affine guards and updates) without a prescribed goal property. In the literature, the only known sound and complete characterization to solve this problem is via Farkas’ Lemma (FL), and has been implemented through either quantifier elimination or reasonable heuristics. Although FL-based approaches can generate highly accurate linear invariants from the completeness of FL, the main bottleneck to applying these approaches is the scalability issue caused by either non-linear constraints or combinatorial explosion. We base our approach on the only practical FL-based approach [Sankaranarayanan et al., SAS 2004] that applies FL with reasonable heuristics, and develop two novel and independent improvements to leverage the scalability. The first improvement is the novel idea to generate invariants at one program location in a single invariant-generation process, so that the invariants for each location are generated separately rather than together in a single computation. This idea naturally leads to a parallel processing that divides the invariant-generation task for all program locations by assigning the locations separately to multiple processors. Moreover, the idea enables us to develop detailed technical improvements to further reduce the combinatorial explosion in the original work [Sankaranarayanan et al., SAS 2004]. The second improvement is a segmented subsumption testing in the CNF-to-DNF expansion that allows discovering more local subsumptions in advance. We formally prove that our approach has the same accuracy as the original work and thus does not incur accuracy loss on the generated invariants. Moreover, experimental results on representative benchmarks involving non-trivial linear invariants demonstrate that our approach improves the runtime of the original work by several orders of magnitude, even in the non-parallel scenario that sums up the execution time for all program locations. Hence, our approach constitutes the first significant improvement in FL-based approaches for linear invariant generation after almost two decades.
- Assalé Adjé, Pierre-Loïc Garoche, and Victor Magron. 2015. Property-based Polynomial Invariant Generation Using Sums-of-Squares Optimization. In SAS (LNCS, Vol. 9291). Springer, 235–251.
Google Scholar
Cross Ref
- Assalé Adjé, Stéphane Gaubert, and Eric Goubault. 2012. Coupling policy iteration with semi-definite relaxation to compute accurate numerical invariants in static analysis. Log. Methods Comput. Sci., 8, 1 (2012), https://doi.org/10.2168/LMCS-8(1:1)2012
Google Scholar
Cross Ref
- Aws Albarghouthi, Yi Li, Arie Gurfinkel, and Marsha Chechik. 2012. Ufo: A Framework for Abstraction- and Interpolation-Based Software Verification. In CAV (LNCS, Vol. 7358). Springer, 672–678. https://doi.org/10.1007/978-3-642-31424-7_48
Google Scholar
Digital Library
- Christophe Alias, Alain Darte, Paul Feautrier, and Laure Gonnord. 2010. Multi-dimensional Rankings, Program Termination, and Complexity Bounds of Flowchart Programs. In SAS (LNCS, Vol. 6337). Springer, 117–133. https://doi.org/10.1007/978-3-642-15769-1_8
Google Scholar
Cross Ref
- 2021. Arduino: An open-source electronics platform based on easy-to-use hardware and software. https://github.com/arkhipenko/TaskScheduler
Google Scholar
- Dennis S. Arnon, George E. Collins, and Scott McCallum. 1984. Cylindrical Algebraic Decomposition I: The Basic Algorithm. SIAM J. Comput., 13, 4 (1984), 865–877. https://doi.org/10.1137/0213054
Google Scholar
Digital Library
- Ali Asadi, Krishnendu Chatterjee, Hongfei Fu, Amir Kafshdar Goharshady, and Mohammad Mahdavi. 2021. Polynomial reachability witnesses via Stellensätze. In PLDI. ACM, 772–787. https://doi.org/10.1145/3453483.3454076
Google Scholar
Digital Library
- Roberto Bagnara, Patricia M. Hill, Elisa Ricci, and Enea Zaffanella. 2003. Precise Widening Operators for Convex Polyhedra. In Static Analysis, 10th International Symposium, SAS 2003, San Diego, CA, USA, June 11-13, 2003, Proceedings, Radhia Cousot (Ed.) (Lecture Notes in Computer Science, Vol. 2694). Springer, 337–354. https://doi.org/10.1007/3-540-44898-5_19
Google Scholar
Cross Ref
- Roberto Bagnara, Elisa Ricci, Enea Zaffanella, and Patricia M. Hill. 2002. Possibly Not Closed Convex Polyhedra and the Parma Polyhedra Library. In SAS (Lecture Notes in Computer Science, Vol. 2477). Springer, 213–229. https://doi.org/10.1007/3-540-45789-5_17
Google Scholar
Cross Ref
- Roberto Bagnara, Enric Rodríguez-Carbonell, and Enea Zaffanella. 2005. Generation of Basic Semi-algebraic Invariants Using Convex Polyhedra. In SAS (LNCS, Vol. 3672). Springer, 19–34. https://doi.org/10.1007/11547662_4
Google Scholar
Digital Library
- Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. 2005. Linear Ranking with Reachability. In CAV (LNCS, Vol. 3576). Springer, 491–504. https://doi.org/10.1007/11513988_48
Google Scholar
Digital Library
- Jason Breck, John Cyphert, Zachary Kincaid, and Thomas W. Reps. 2020. Templates and recurrences: better together. In PLDI. ACM, 688–702. https://doi.org/10.1145/3385412.3386035
Google Scholar
Digital Library
- Christopher W. Brown and James H. Davenport. 2007. The complexity of quantifier elimination and cylindrical algebraic decomposition. In Symbolic and Algebraic Computation, International Symposium, ISSAC 2007, Waterloo, Ontario, Canada, July 28 - August 1, 2007, Proceedings, Dongming Wang (Ed.). ACM, 54–60. https://doi.org/10.1145/1277548.1277557
Google Scholar
Digital Library
- Aleksandar Chakarov and Sriram Sankaranarayanan. 2014. Expectation Invariants for Probabilistic Program Loops as Fixed Points. In SAS, Markus Müller-Olm and Helmut Seidl (Eds.) (LNCS, Vol. 8723). Springer, 85–100. https://doi.org/10.1007/978-3-319-10936-7_6
Google Scholar
Cross Ref
- Krishnendu Chatterjee, Hongfei Fu, and Amir Kafshdar Goharshady. 2019. Non-polynomial Worst-Case Analysis of Recursive Programs. ACM Trans. Program. Lang. Syst., 41, 4 (2019), 20:1–20:52. https://doi.org/10.1145/3339984
Google Scholar
Digital Library
- Krishnendu Chatterjee, Hongfei Fu, Amir Kafshdar Goharshady, and Ehsan Kafshdar Goharshady. 2020. Polynomial invariant generation for non-deterministic recursive programs. In PLDI. ACM, 672–687. https://doi.org/10.1145/3385412.3385969
Google Scholar
Digital Library
- Krishnendu Chatterjee, Petr Novotný, and Dorde Zikelic. 2017. Stochastic invariants for probabilistic termination. In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017, Paris, France, January 18-20, 2017. ACM, 145–160. https://doi.org/10.1145/3009837.3009873
Google Scholar
Digital Library
- Yu-Fang Chen, Chih-Duo Hong, Bow-Yaw Wang, and Lijun Zhang. 2015. Counterexample-Guided Polynomial Loop Invariant Generation by Lagrange Interpolation. In CAV (LNCS, Vol. 9206). Springer, 658–674. https://doi.org/10.1007/978-3-319-21690-4_44
Google Scholar
Cross Ref
- Yinghua Chen, Bican Xia, Lu Yang, Naijun Zhan, and Chaochen Zhou. 2007. Discovering Non-linear Ranking Functions by Solving Semi-algebraic Systems. In ICTAC (LNCS, Vol. 4711). Springer, 34–49. https://doi.org/10.1007/978-3-540-75292-9_3
Google Scholar
Cross Ref
- Michael Colón, Sriram Sankaranarayanan, and Henny Sipma. 2003. Linear Invariant Generation Using Non-linear Constraint Solving. In CAV (LNCS, Vol. 2725). Springer, 420–432. https://doi.org/10.1007/978-3-540-45069-6_39
Google Scholar
Cross Ref
- Michael Colón and Henny Sipma. 2001. Synthesis of Linear Ranking Functions. In TACAS (LNCS, Vol. 2031). Springer, 67–81. https://doi.org/10.1007/3-540-45319-9_6
Google Scholar
Cross Ref
- Patrick Cousot. 2005. Proving Program Invariance and Termination by Parametric Abstraction, Lagrangian Relaxation and Semidefinite Programming. In VMCAI (LNCS, Vol. 3385). Springer, 1–24. https://doi.org/10.1007/978-3-540-30579-8_1
Google Scholar
Digital Library
- Patrick Cousot and Radhia Cousot. 1977. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In POPL. ACM, 238–252. https://doi.org/10.1145/512950.512973
Google Scholar
Digital Library
- Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, and Xavier Rival. 2005. The ASTREÉ Analyzer. In ESOP (LNCS, Vol. 3444). Springer, 21–30. https://doi.org/10.1007/978-3-540-31987-0_3
Google Scholar
Digital Library
- Patrick Cousot and Nicolas Halbwachs. 1978. Automatic Discovery of Linear Restraints Among Variables of a Program. In POPL. ACM Press, 84–96. https://doi.org/10.1145/512760.512770
Google Scholar
Digital Library
- 2022. CPAchecker: The Configurable Software-Verification Platform. https://cpachecker.sosy-lab.org
Google Scholar
- Christoph Csallner, Nikolai Tillmann, and Yannis Smaragdakis. 2008. DySy: dynamic symbolic execution for invariant inference. In ICSE. ACM, 281–290. https://doi.org/10.1145/1368088.1368127
Google Scholar
Digital Library
- James H. Davenport and Joos Heintz. 1988. Real Quantifier Elimination is Doubly Exponential. J. Symb. Comput., 5, 1/2 (1988), 29–35. https://doi.org/10.1016/S0747-7171(88)80004-X
Google Scholar
Digital Library
- Cristina David, Pascal Kesseli, Daniel Kroening, and Matt Lewis. 2016. Danger Invariants. In FM (LNCS, Vol. 9995). 182–198. https://doi.org/10.1007/978-3-319-48989-6_12
Google Scholar
Cross Ref
- Steven de Oliveira, Saddek Bensalem, and Virgile Prevosto. 2016. Polynomial Invariants by Linear Algebra. In ATVA (LNCS, Vol. 9938). 479–494. https://doi.org/10.1007/978-3-319-46520-3_30
Google Scholar
Cross Ref
- Steven de Oliveira, Saddek Bensalem, and Virgile Prevosto. 2017. Synthesizing Invariants by Solving Solvable Loops. In ATVA (LNCS, Vol. 10482). Springer, 327–343. https://doi.org/10.1007/978-3-319-68167-2_22
Google Scholar
Cross Ref
- Isil Dillig, Thomas Dillig, Boyang Li, and Kenneth L. McMillan. 2013. Inductive invariant generation via abductive inference. In OOPSLA. ACM, 443–456. https://doi.org/10.1145/2509136.2509511
Google Scholar
Digital Library
- J. Farkas. 1894. A Fourier-féle mechanikai elv alkalmazásai (Hungarian). Mathematikaiés Természettudományi Értesitö, 12 (1894), 457–472.
Google Scholar
- Azadeh Farzan and Zachary Kincaid. 2015. Compositional Recurrence Analysis. In FMCAD. IEEE, 57–64.
Google Scholar
- Grigory Fedyukovich, Sumanth Prabhu, Kumar Madhukar, and Aarti Gupta. 2018. Solving Constrained Horn Clauses Using Syntax and Data. In 2018 Formal Methods in Computer Aided Design, FMCAD 2018, Austin, TX, USA, October 30 - November 2, 2018, Nikolaj Bjørner and Arie Gurfinkel (Eds.). IEEE, 1–9. https://doi.org/10.23919/FMCAD.2018.8603011
Google Scholar
Cross Ref
- Grigory Fedyukovich, Sumanth Prabhu, Kumar Madhukar, and Aarti Gupta. 2019. Quantified Invariants via Syntax-Guided Synthesis. In Computer Aided Verification - 31st International Conference, CAV 2019, New York City, NY, USA, July 15-18, 2019, Proceedings, Part I, Isil Dillig and Serdar Tasiran (Eds.) (Lecture Notes in Computer Science, Vol. 11561). Springer, 259–277. https://doi.org/10.1007/978-3-030-25540-4_14
Google Scholar
Cross Ref
- Yijun Feng, Lijun Zhang, David N. Jansen, Naijun Zhan, and Bican Xia. 2017. Finding Polynomial Loop Invariants for Probabilistic Programs. In ATVA (LNCS, Vol. 10482). Springer, 400–416. https://doi.org/10.1007/978-3-319-68167-2_26
Google Scholar
Cross Ref
- Ting Gan, Bican Xia, Bai Xue, Naijun Zhan, and Liyun Dai. 2020. Nonlinear Craig Interpolant Generation. In CAV (LNCS, Vol. 12224). Springer, 415–438. https://doi.org/10.1007/978-3-030-53288-8_20
Google Scholar
Digital Library
- Pranav Garg, Christof Löding, P. Madhusudan, and Daniel Neider. 2014. ICE: A Robust Framework for Learning Invariants. In CAV (LNCS, Vol. 8559). Springer, 69–87. https://doi.org/10.1007/978-3-319-08867-9_5
Google Scholar
Digital Library
- Pranav Garg, Daniel Neider, P. Madhusudan, and Dan Roth. 2016. Learning invariants using decision trees and implication counterexamples. In POPL. ACM, 499–512. https://doi.org/10.1145/2837614.2837664
Google Scholar
Digital Library
- Roberto Giacobazzi and Francesco Ranzato. 1997. Completeness in Abstract Interpretation: A Domain Perspective. In AMAST (LNCS, Vol. 1349). Springer, 231–245. https://doi.org/10.1007/BFb0000474
Google Scholar
Cross Ref
- Sumit Gulwani, Saurabh Srivastava, and Ramarathnam Venkatesan. 2008. Program analysis as constraint solving. In PLDI. ACM, 281–292. https://doi.org/10.1145/1375581.1375616
Google Scholar
Digital Library
- Sumit Gulwani, Saurabh Srivastava, and Ramarathnam Venkatesan. 2009. Constraint-Based Invariant Inference over Predicate Abstraction. In VMCAI (LNCS, Vol. 5403). Springer, 120–135. https://doi.org/10.1007/978-3-540-93900-9_13
Google Scholar
Digital Library
- Ashutosh Gupta and Andrey Rybalchenko. 2009. InvGen: An Efficient Invariant Generator. In CAV (LNCS, Vol. 5643). Springer, 634–640. https://doi.org/10.1007/978-3-642-02658-4_48
Google Scholar
Digital Library
- Nicolas Halbwachs, Yann-Erick Proy, and Patrick Roumanoff. 1997. Verification of Real-Time Systems using Linear Relation Analysis. Formal Methods Syst. Des., 11, 2 (1997), 157–185. https://doi.org/10.1023/A:1008678014487
Google Scholar
Digital Library
- Jingxuan He, Gagandeep Singh, Markus Püschel, and Martin T. Vechev. 2020. Learning fast and precise numerical analysis. In PLDI. ACM, 1112–1127. https://doi.org/10.1145/3385412.3386016
Google Scholar
Digital Library
- Thomas A Henzinger and Pei-Hsin Ho. 1994. Model checking strategies for linear hybrid systems. Cornell University.
Google Scholar
- Jacob M. Howe and Andy King. 2012. Polyhedral Analysis Using Parametric Objectives. In Static Analysis - 19th International Symposium, SAS 2012, Deauville, France, September 11-13, 2012. Proceedings, Antoine Miné and David Schmidt (Eds.) (Lecture Notes in Computer Science, Vol. 7460). Springer, 41–57. https://doi.org/10.1007/978-3-642-33125-1_6
Google Scholar
Digital Library
- Ehud Hrushovski, Joël Ouaknine, Amaury Pouly, and James Worrell. 2018. Polynomial Invariants for Affine Programs. In LICS. ACM, 530–539. https://doi.org/10.1145/3209108.3209142
Google Scholar
Digital Library
- Andreas Humenberger, Maximilian Jaroschek, and Laura Kovács. 2017. Automated Generation of Non-Linear Loop Invariants Utilizing Hypergeometric Sequences. In ISSAC. ACM, 221–228. https://doi.org/10.1145/3087604.3087623
Google Scholar
Digital Library
- Andreas Humenberger and Laura Kovács. 2021. Algebra-Based Synthesis of Loops and Their Invariants (Invited Paper). In VMCAI (LNCS, Vol. 12597). Springer, 17–28. https://doi.org/10.1007/978-3-030-67067-2_2
Google Scholar
Digital Library
- Yucheng Ji, Hongfei Fu, Bin Fang, and Haibo Chen. 2022. Affine Loop Invariant Generation via Matrix Algebra. In Computer Aided Verification - 34th International Conference, CAV 2022, Haifa, Israel, August 7-10, 2022, Proceedings, Part I, Sharon Shoham and Yakir Vizel (Eds.) (Lecture Notes in Computer Science, Vol. 13371). Springer, 257–281. https://doi.org/10.1007/978-3-031-13185-1_13
Google Scholar
Digital Library
- Deepak Kapur. 2005. Automatically Generating Loop Invariants Using Quantifier Elimination. In Deduction and Applications (Dagstuhl Seminar Proceedings, Vol. 05431). Internationales Begegnungs- und Forschungszentrum für Informatik (IBFI), Schloss Dagstuhl, Germany. http://drops.dagstuhl.de/opus/volltexte/2006/511
Google Scholar
- Joost-Pieter Katoen, Annabelle McIver, Larissa Meinicke, and Carroll C. Morgan. 2010. Linear-Invariant Generation for Probabilistic Programs: - Automated Support for Proof-Based Methods. In SAS (LNCS, Vol. 6337). Springer, 390–406. https://doi.org/10.1007/978-3-642-15769-1_24
Google Scholar
Cross Ref
- Zachary Kincaid, Jason Breck, Ashkan Forouhi Boroujeni, and Thomas W. Reps. 2017. Compositional recurrence analysis revisited. In PLDI. ACM, 248–262. https://doi.org/10.1145/3062341.3062373
Google Scholar
Digital Library
- Zachary Kincaid, John Cyphert, Jason Breck, and Thomas W. Reps. 2018. Non-linear reasoning for invariant synthesis. Proc. ACM Program. Lang., 2, POPL (2018), 54:1–54:33. https://doi.org/10.1145/3158142
Google Scholar
Digital Library
- Leslie Lamport. 1987. A Fast Mutual Exclusion Algorithm. ACM Trans. Comput. Syst., 5, 1 (1987), 1–11. https://doi.org/10.1145/7351.7352
Google Scholar
Digital Library
- Wang Lin, Min Wu, Zhengfeng Yang, and Zhenbing Zeng. 2014. Proving total correctness and generating preconditions for loop programs via symbolic-numeric computation methods. Frontiers Comput. Sci., 8, 2 (2014), 192–202.
Google Scholar
Cross Ref
- Hongming Liu, Hongfei Fu, Zhiyong Yu, Jiaxin Song, and Guoqiang Li. 2022. Scalable Linear Invariant Generation with Farkas’ Lemma. March, https://hal.archives-ouvertes.fr/hal-03463338 working paper or preprint
Google Scholar
- Zohar Manna and Amir Pnueli. 1995. Temporal verification of reactive systems - safety. Springer. isbn:978-0-387-94459-3
Google Scholar
- Kenneth L. McMillan. 2008. Quantified Invariant Generation Using an Interpolating Saturation Prover. In TACAS, C. R. Ramakrishnan and Jakob Rehof (Eds.) (LNCS, Vol. 4963). Springer, 413–427. https://doi.org/10.1007/978-3-540-78800-3_31
Google Scholar
Cross Ref
- Markus Müller-Olm and Helmut Seidl. 2004. Computing polynomial program invariants. Inf. Process. Lett., 91, 5 (2004), 233–244. https://doi.org/10.1016/j.ipl.2004.05.004
Google Scholar
Digital Library
- ThanhVu Nguyen, Deepak Kapur, Westley Weimer, and Stephanie Forrest. 2012. Using dynamic analysis to discover polynomial and array invariants. In ICSE. IEEE Computer Society, 683–693. https://doi.org/10.1109/ICSE.2012.6227149
Google Scholar
Cross Ref
- 2022. OCRS: Operational calculus recurrence solver. https://github.com/cyphertjohn/OCRS
Google Scholar
- Saswat Padhi, Rahul Sharma, and Todd D. Millstein. 2016. Data-Driven Precondition Inference with Learned Features. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2016, Santa Barbara, CA, USA, June 13-17, 2016. 42–56. https://doi.org/10.1145/2908080.2908099
Google Scholar
Digital Library
- Oded Padon, Kenneth L. McMillan, Aurojit Panda, Mooly Sagiv, and Sharon Shoham. 2016. Ivy: safety verification by interactive generalization. In PLDI. ACM, 614–630. https://doi.org/10.1145/2908080.2908118
Google Scholar
Digital Library
- Andreas Podelski and Andrey Rybalchenko. 2004. A Complete Method for the Synthesis of Linear Ranking Functions. In VMCAI (LNCS, Vol. 2937). Springer, 239–251. https://doi.org/10.1007/978-3-540-24622-0_20
Google Scholar
Cross Ref
- 2021. Parma Polyhedra Library, PPL 1.2. https://www.bugseng.com/parma-polyhedra-library.
Google Scholar
- Enric Rodríguez-Carbonell and Deepak Kapur. 2004. An Abstract Interpretation Approach for Automatic Generation of Polynomial Invariants. In SAS (LNCS, Vol. 3148). Springer, 280–295. https://doi.org/10.1007/978-3-540-27864-1_21
Google Scholar
Cross Ref
- Enric Rodríguez-Carbonell and Deepak Kapur. 2004. Automatic Generation of Polynomial Loop Invariants: Algebraic Foundations. In ISSAC. ACM, 266–273. https://doi.org/10.1145/1005285.1005324
Google Scholar
Digital Library
- Enric Rodríguez-Carbonell and Deepak Kapur. 2007. Automatic generation of polynomial invariants of bounded degree using abstract interpretation. Sci. Comput. Program., 64, 1 (2007), 54–75. https://doi.org/10.1016/j.scico.2006.03.003
Google Scholar
Digital Library
- Sriram Sankaranarayanan, Henny Sipma, and Zohar Manna. 2004. Non-linear loop invariant generation using Gröbner bases. In POPL. ACM, 318–329. https://doi.org/10.1145/964001.964028
Google Scholar
Digital Library
- Sriram Sankaranarayanan, Henny B. Sipma, and Zohar Manna. 2004. Constraint-Based Linear-Relations Analysis. In SAS (LNCS, Vol. 3148). Springer, 53–68. https://doi.org/10.1007/978-3-540-27864-1_7
Google Scholar
Cross Ref
- Alexander Schrijver. 1999. Theory of linear and integer programming. Wiley. isbn:978-0-471-98232-6
Google Scholar
Digital Library
- 2015. SeaHorn: A fully automated analysis framework for LLVM-based languages. http://seahorn.github.io
Google Scholar
- Rahul Sharma and Alex Aiken. 2016. From invariant checking to invariant inference using randomized search. Formal Methods Syst. Des., 48, 3 (2016), 235–256. https://doi.org/10.1007/s10703-016-0248-5
Google Scholar
Digital Library
- Rahul Sharma, Isil Dillig, Thomas Dillig, and Alex Aiken. 2011. Simplifying Loop Invariant Generation Using Splitter Predicates. In Computer Aided Verification - 23rd International Conference, CAV 2011, Snowbird, UT, USA, July 14-20, 2011. Proceedings, Ganesh Gopalakrishnan and Shaz Qadeer (Eds.) (Lecture Notes in Computer Science, Vol. 6806). Springer, 703–719. https://doi.org/10.1007/978-3-642-22110-1_57
Google Scholar
Cross Ref
- Rahul Sharma, Saurabh Gupta, Bharath Hariharan, Alex Aiken, Percy Liang, and Aditya V. Nori. 2013. A Data Driven Approach for Algebraic Loop Invariants. In ESOP (LNCS, Vol. 7792). Springer, 574–592. https://doi.org/10.1007/978-3-642-37036-6_31
Google Scholar
Digital Library
- Gagandeep Singh, Markus Püschel, and Martin T. Vechev. 2017. Fast polyhedra abstract domain. In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017, Paris, France, January 18-20, 2017, Giuseppe Castagna and Andrew D. Gordon (Eds.). ACM, 46–59.
Google Scholar
- 2021. Sparse: C language semantic parser. https://lwn.net/Articles/689907/
Google Scholar
- 2006. StInG: Stanford Invariant Generator. http://theory.stanford.edu/ srirams/Software/sting.html
Google Scholar
- Jun Sun, Yang Liu, Jin Song Dong, and Xian Zhang. 2009. Verifying Stateful Timed CSP Using Implicit Clocks and Zone Abstraction. In Formal Methods and Software Engineering, 11th International Conference on Formal Engineering Methods, ICFEM 2009, Rio de Janeiro, Brazil, December 9-12, 2009. Proceedings, Karin K. Breitman and Ana Cavalcanti (Eds.) (Lecture Notes in Computer Science, Vol. 5885). Springer, 581–600. https://doi.org/10.1007/978-3-642-10373-5_30
Google Scholar
Digital Library
- 2022. Software Verification Competition. https://sv-comp.sosy-lab.org
Google Scholar
- Delaram Talaashrafi. 2018. Complexity Results for Fourier-Motzkin Elimination (Thesis format: Monograph). Ph. D. Dissertation. The University of Western Ontario London.
Google Scholar
- 2021. UltimateAutomizer: A Software Model Checker. https://monteverdi.informatik.uni-freiburg.de/tomcat/Website/?ui=tool&tool=automizer
Google Scholar
- Rongchen Xu, Fei He, and Bow-Yaw Wang. 2020. Interval counterexamples for loop invariant learning. In ESEC/FSE. ACM, 111–122. https://doi.org/10.1145/3368089.3409752
Google Scholar
Digital Library
- Lu Yang, Chaochen Zhou, Naijun Zhan, and Bican Xia. 2010. Recent advances in program verification through computer algebra. Frontiers Comput. Sci. China, 4, 1 (2010), 1–16. https://doi.org/10.1007/s11704-009-0074-7
Google Scholar
Cross Ref
- Jianan Yao, Gabriel Ryan, Justin Wong, Suman Jana, and Ronghui Gu. 2020. Learning nonlinear loop invariants with gated continuous logic networks. In PLDI. ACM, 106–120. https://doi.org/10.1145/3385412.3385986
Google Scholar
Digital Library
- Hengjun Zhao, Naijun Zhan, Deepak Kapur, and Kim G. Larsen. 2012. A "Hybrid" Approach for Synthesizing Optimal Controllers of Hybrid Systems: A Case Study of the Oil Pump Industrial Example. In FM 2012: Formal Methods - 18th International Symposium, Paris, France, August 27-31, 2012. Proceedings, Dimitra Giannakopoulou and Dominique Méry (Eds.) (Lecture Notes in Computer Science, Vol. 7436). Springer, 471–485.
Google Scholar
Index Terms
Scalable linear invariant generation with Farkas’ lemma
Recommendations
Property-directed incremental invariant generation
AbstractA fundamental method of analyzing a system such as a program or a circuit is invariance analysis, in which one proves that an assertion holds on all reachable states. Typically, the proof is performed via induction; however, an assertion, while ...
Non-linear loop invariant generation using Gröbner bases
POPL '04: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languagesWe present a new technique for the generation of non-linear (algebraic) invariants of a program. Our technique uses the theory of ideals over polynomial rings to reduce the non-linear invariant generation problem to a numerical constraint solving ...
Inductive invariant generation via abductive inference
OOPSLA '13This paper presents a new method for generating inductive loop invariants that are expressible as boolean combinations of linear integer constraints. The key idea underlying our technique is to perform a backtracking search that combines Hoare-style ...






Comments