skip to main content
research-article
Open Access
Artifacts Available / v1.1

Scalable linear invariant generation with Farkas’ lemma

Published:31 October 2022Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarCross RefCross Ref
  2. 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 ScholarGoogle ScholarCross RefCross Ref
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarCross RefCross Ref
  5. 2021. Arduino: An open-source electronics platform based on easy-to-use hardware and software. https://github.com/arkhipenko/TaskScheduler Google ScholarGoogle Scholar
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarCross RefCross Ref
  9. 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 ScholarGoogle ScholarCross RefCross Ref
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarCross RefCross Ref
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. 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 ScholarGoogle ScholarCross RefCross Ref
  20. 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 ScholarGoogle ScholarCross RefCross Ref
  21. 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 ScholarGoogle ScholarCross RefCross Ref
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 2022. CPAchecker: The Configurable Software-Verification Platform. https://cpachecker.sosy-lab.org Google ScholarGoogle Scholar
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarCross RefCross Ref
  30. 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 ScholarGoogle ScholarCross RefCross Ref
  31. 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 ScholarGoogle ScholarCross RefCross Ref
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. J. Farkas. 1894. A Fourier-féle mechanikai elv alkalmazásai (Hungarian). Mathematikaiés Természettudományi Értesitö, 12 (1894), 457–472. Google ScholarGoogle Scholar
  34. Azadeh Farzan and Zachary Kincaid. 2015. Compositional Recurrence Analysis. In FMCAD. IEEE, 57–64. Google ScholarGoogle Scholar
  35. 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 ScholarGoogle ScholarCross RefCross Ref
  36. 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 ScholarGoogle ScholarCross RefCross Ref
  37. 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 ScholarGoogle ScholarCross RefCross Ref
  38. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  39. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  40. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  41. 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 ScholarGoogle ScholarCross RefCross Ref
  42. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  43. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  44. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  45. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  46. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  47. Thomas A Henzinger and Pei-Hsin Ho. 1994. Model checking strategies for linear hybrid systems. Cornell University. Google ScholarGoogle Scholar
  48. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  49. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  50. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  51. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  52. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  53. 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 ScholarGoogle Scholar
  54. 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 ScholarGoogle ScholarCross RefCross Ref
  55. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  56. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  57. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  58. 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 ScholarGoogle ScholarCross RefCross Ref
  59. 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 ScholarGoogle Scholar
  60. Zohar Manna and Amir Pnueli. 1995. Temporal verification of reactive systems - safety. Springer. isbn:978-0-387-94459-3 Google ScholarGoogle Scholar
  61. 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 ScholarGoogle ScholarCross RefCross Ref
  62. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  63. 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 ScholarGoogle ScholarCross RefCross Ref
  64. 2022. OCRS: Operational calculus recurrence solver. https://github.com/cyphertjohn/OCRS Google ScholarGoogle Scholar
  65. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  66. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  67. 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 ScholarGoogle ScholarCross RefCross Ref
  68. 2021. Parma Polyhedra Library, PPL 1.2. https://www.bugseng.com/parma-polyhedra-library. Google ScholarGoogle Scholar
  69. 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 ScholarGoogle ScholarCross RefCross Ref
  70. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  71. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  72. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  73. 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 ScholarGoogle ScholarCross RefCross Ref
  74. Alexander Schrijver. 1999. Theory of linear and integer programming. Wiley. isbn:978-0-471-98232-6 Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. 2015. SeaHorn: A fully automated analysis framework for LLVM-based languages. http://seahorn.github.io Google ScholarGoogle Scholar
  76. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  77. 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 ScholarGoogle ScholarCross RefCross Ref
  78. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  79. 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 ScholarGoogle Scholar
  80. 2021. Sparse: C language semantic parser. https://lwn.net/Articles/689907/ Google ScholarGoogle Scholar
  81. 2006. StInG: Stanford Invariant Generator. http://theory.stanford.edu/ srirams/Software/sting.html Google ScholarGoogle Scholar
  82. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  83. 2022. Software Verification Competition. https://sv-comp.sosy-lab.org Google ScholarGoogle Scholar
  84. Delaram Talaashrafi. 2018. Complexity Results for Fourier-Motzkin Elimination (Thesis format: Monograph). Ph. D. Dissertation. The University of Western Ontario London. Google ScholarGoogle Scholar
  85. 2021. UltimateAutomizer: A Software Model Checker. https://monteverdi.informatik.uni-freiburg.de/tomcat/Website/?ui=tool&tool=automizer Google ScholarGoogle Scholar
  86. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  87. 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 ScholarGoogle ScholarCross RefCross Ref
  88. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  89. 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 ScholarGoogle Scholar

Index Terms

  1. Scalable linear invariant generation with Farkas’ lemma

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Article Metrics

      • Downloads (Last 12 months)184
      • Downloads (Last 6 weeks)20

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!