skip to main content
research-article
Open Access

Termination analysis for evolving programs: an incremental approach by reusing certified modules

Published:13 November 2020Publication History
Skip Abstract Section

Abstract

Research on program termination has a long tradition. However, most of the existing techniques target a single program only. We propose in this paper an incremental termination analysis approach by reusing certified modules across different program versions. A transformation-based procedure is further developed to increase the reusability of certified modules. The proposed approach has wide applicability, applicable to various program changes. The proposed technique, to the best of our knowledge, represents a novel attempt to the termination analysis of evolving programs. We implemented the approach on top of Ultimate Automizer. Experimental results show dramatic improvement of our approach over the state-of-the-art tool.

Skip Supplemental Material Section

Supplemental Material

Auxiliary Presentation Video

Presentation video

References

  1. Leonardo Alt, Sepideh Asadi, Hana Chockler, Karine Even Mendoza, Grigory Fedyukovich, Antti E. J. Hyvärinen, and Natasha Sharygina. 2017. HiFrog: SMT-based Function Summarization for Software Verification. In Tools and Algorithms for the Construction and Analysis of Systems, Axel Legay and Tiziana Margaria (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 207-213. https://doi.org/10.1007/978-3-662-54580-5_12 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Andrea Aquino, Francesco A. Bianchi, Meixian Chen, Giovanni Denaro, and Mauro Pezzè. 2015. Reusing Constraint Proofs in Program Analysis. In Proceedings of the 2015 International Symposium on Software Testing and Analysis (Baltimore, MD, USA) ( ISSTA 2015 ). Association for Computing Machinery, New York, NY, USA, 305-315. https: //doi.org/10.1145/2771783.2771802 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. John Backes, Suzette Person, Neha Rungta, and Oksana Tkachuk. 2013. Regression Verification Using Impact Summaries. In Model Checking Software, Ezio Bartocci and C. R. Ramakrishnan (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 99-116. https://doi.org/10.1007/978-3-642-39176-7_7 Google ScholarGoogle ScholarCross RefCross Ref
  4. Roberto Bagnara, Fred Mesnard, Andrea Pescetti, and Enea Zafanella. 2012. A new look at the automatic synthesis of linear ranking functions. Information and Computation 215 ( 2012 ), 47-67. https://doi.org/10.1016/j.ic. 2012. 03.003 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Alexey Bakhirkin and Nir Piterman. 2016. Finding Recurrent Sets with Backward Analysis and Trace Partitioning. In Tools and Algorithms for the Construction and Analysis of Systems, Marsha Chechik and Jean-François Raskin (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 17-35. https://doi.org/10.1007/978-3-662-49674-9_2 Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Amir M. Ben-Amram and Samir Genaim. 2013. On the Linear Ranking Problem for Integer Linear-Constraint Loops. In Proceedings of the 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Rome, Italy) (POPL '13). Association for Computing Machinery, New York, NY, USA, 51-62. https://doi.org/10.1145/2429069.2429078 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Amir M. Ben-Amram and Samir Genaim. 2014. Ranking Functions for Linear-Constraint Loops. J. ACM 61, 4, Article 26 ( July 2014 ), 55 pages. https://doi.org/10.1145/2629488 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Amir M. Ben-Amram and Samir Genaim. 2015. Complexity of Bradley-Manna-Sipma Lexicographic Ranking Functions. In Computer Aided Verification, Daniel Kroening and Corina S. Păsăreanu (Eds.). Springer International Publishing, Cham, 304-321. https://doi.org/10.1007/978-3-319-21668-3_18 Google ScholarGoogle ScholarCross RefCross Ref
  9. Amir M. Ben-Amram and Samir Genaim. 2017. On Multiphase-Linear Ranking Functions. In Computer Aided Verification, Rupak Majumdar and Viktor Kunčak (Eds.). Springer International Publishing, Cham, 601-620. https://doi.org/10.1007/ 978-3-319-63390-9_32 Google ScholarGoogle ScholarCross RefCross Ref
  10. Dirk Beyer, Thomas A Henzinger, M Erkan Keremoglu, and Philipp Wendler. 2012. Conditional model checking: a technique to pass information between verifiers. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (Austin, TX, USA). ACM, 57.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Dirk Beyer, Stefan Löwe, Evgeny Novikov, Andreas Stahlbauer, and Philipp Wendler. 2013. Precision Reuse for Eficient Regression Verification. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering (Saint Petersburg, Russia) (ESEC/FSE 2013 ). Association for Computing Machinery, New York, NY, USA, 389-399. https: //doi.org/10.1145/2491411.2491429 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Marcel Böhme, Bruno C d S Oliveira, and Abhik Roychoudhury. 2013. Partition-based regression verification. In Proceedings of the 2013 International Conference on Software Engineering (San Francisco, CA, USA). IEEE Press, 302-311. https: //doi.org/10.1109/ICSE. 2013.6606576 Google ScholarGoogle ScholarCross RefCross Ref
  13. Cristina Borralleras, Marc Brockschmidt, Daniel Larraz, Albert Oliveras, Enric Rodríguez-Carbonell, and Albert Rubio. 2017. Proving Termination Through Conditional Termination. In Tools and Algorithms for the Construction and Analysis of Systems, Axel Legay and Tiziana Margaria (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 99-117. https: //doi.org/10.1007/978-3-662-54577-5_6 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Aaron R Bradley and Zohar Manna. 2007. The calculus of computation: decision procedures with applications to verification. Springer Science & Business Media.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. 2005a. Linear Ranking with Reachability. In Computer Aided Verification, Kousha Etessami and Sriram K. Rajamani (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 491-504. https://doi.org/10.1007/11513988_48 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. 2005b. Termination Analysis of Integer Linear Loops. In CONCUR 2005-Concurrency Theory, Martín Abadi and Luca de Alfaro (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 488-502. https://doi.org/10.1007/11539452_37 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Marc Brockschmidt, Byron Cook, and Carsten Fuhs. 2013. Better Termination Proving through Cooperation. In Computer Aided Verification, Natasha Sharygina and Helmut Veith (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 413-429. https://doi.org/10.1007/978-3-642-39799-8_28 Google ScholarGoogle ScholarCross RefCross Ref
  18. Marc Brockschmidt, Thomas Ströder, Carsten Otto, and Jürgen Giesl. 2012. Automated Detection of Non-termination and NullPointerExceptions for Java Bytecode. In Formal Verification of Object-Oriented Software, Bernhard Beckert, Ferruccio Damiani, and Dilian Gurov (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 123-141. https://doi.org/10.1007/978-3-642-31762-0_9 Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Sagar Chaki, Arie Gurfinkel, and Ofer Strichman. 2012. Regression Verification for Multi-threaded Programs. In Verification, Model Checking, and Abstract Interpretation, Viktor Kuncak and Andrey Rybalchenko (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 119-135. https://doi.org/10.1007/978-3-642-27940-9_9 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Hong-Yi Chen, Byron Cook, Carsten Fuhs, Kaustubh Nimkar, and Peter O'Hearn. 2014. Proving Nontermination via Safety. In Tools and Algorithms for the Construction and Analysis of Systems, Erika Ábrahám and Klaus Havelund (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 156-171. https://doi.org/10.1007/978-3-642-54862-8_11 Google ScholarGoogle ScholarCross RefCross Ref
  21. Michael A. Colóon and Henny B. Sipma. 2001. Synthesis of Linear Ranking Functions. In Tools and Algorithms for the Construction and Analysis of Systems, Tiziana Margaria and Wang Yi (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 67-81. https://doi.org/10.1007/3-540-45319-9_6 Google ScholarGoogle ScholarCross RefCross Ref
  22. Christopher L. Conway, Kedar S. Namjoshi, Dennis Dams, and Stephen A. Edwards. 2005. Incremental Algorithms for Inter-procedural Analysis of Safety Properties. In Computer Aided Verification, Kousha Etessami and Sriram K. Rajamani (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 449-461. https://doi.org/10.1007/11513988_45 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Byron Cook, Carsten Fuhs, Kaustubh Nimkar, and Peter O'Hearn. 2014. Disproving termination with overapproximation. In 2014 Formal Methods in Computer-Aided Design (FMCAD). IEEE, 67-74. https://doi.org/10.1109/FMCAD. 2014.6987597 Google ScholarGoogle ScholarCross RefCross Ref
  24. Byron Cook, Daniel Kroening, Philipp Rümmer, and Christoph M. Wintersteiger. 2010. Ranking Function Synthesis for Bit-Vector Relations. In Tools and Algorithms for the Construction and Analysis of Systems, Javier Esparza and Rupak Majumdar (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 236-250. https://doi.org/10.1007/978-3-642-12002-2_19 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Byron Cook, Andreas Podelski, and Andrey Rybalchenko. 2006a. Termination Proofs for Systems Code. In Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation (Ottawa, Ontario, Canada) ( PLDI '06). Association for Computing Machinery, New York, NY, USA, 415-426. https://doi.org/10.1145/1133981.1134029 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Byron Cook, Andreas Podelski, and Andrey Rybalchenko. 2006b. Terminator: Beyond Safety. In Computer Aided Verification, Thomas Ball and Robert B. Jones (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 415-418. https://doi.org/10. 1007/11817963_37 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Byron Cook, Abigail See, and Florian Zuleger. 2013. Ramsey vs. Lexicographic Termination Proving. In Tools and Algorithms for the Construction and Analysis of Systems, Nir Piterman and Scott A. Smolka (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 47-61. https://doi.org/10.1007/978-3-642-36742-7_4 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Pascal Cuoq, Florent Kirchner, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles, and Boris Yakobowski. 2012. Frama-C. In Software Engineering and Formal Methods, George Eleftherakis, Mike Hinchey, and Mike Holcombe (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 233-247. https://doi.org/10.1007/978-3-642-33826-7_16 Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Grigory Fedyukovich, Arie Gurfinkel, and Natasha Sharygina. 2016. Property Directed Equivalence via Abstract Simulation. In Computer Aided Verification, Swarat Chaudhuri and Azadeh Farzan (Eds.). Springer International Publishing, Cham, 433-453. https://doi.org/10.1007/978-3-319-41540-6_24 Google ScholarGoogle ScholarCross RefCross Ref
  30. Grigory Fedyukovich, Ondrej Sery, and Natasha Sharygina. 2013. eVolCheck: Incremental Upgrade Checker for C. In Tools and Algorithms for the Construction and Analysis of Systems, Nir Piterman and Scott A. Smolka (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 292-307. https://doi.org/10.1007/978-3-642-36742-7_21 Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Dennis Felsing, Sarah Grebing, Vladimir Klebanov, Philipp Rümmer, and Mattias Ulbrich. 2014. Automating Regression Verification. In Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering (Vasteras, Sweden) (ASE '14). Association for Computing Machinery, New York, NY, USA, 349-360. https://doi.org/10.1145/2642937. 2642987 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Benny Godlin and Ofer Strichman. 2009. Regression Verification. In Proceedings of the 46th Annual Design Automation Conference (San Francisco, California) ( DAC '09). Association for Computing Machinery, New York, NY, USA, 466-471. https://doi.org/10.1145/1629911.1630034 Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Sumit Gulwani, Krishna K. Mehra, and Trishul Chilimbi. 2009. SPEED: Precise and Eficient Static Estimation of Program Computational Complexity. In Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Savannah, GA, USA) ( POPL '09). Association for Computing Machinery, New York, NY, USA, 127-139. https://doi.org/10.1145/1480881.1480898 Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Sumit Gulwani, Saurabh Srivastava, and Ramarathnam Venkatesan. 2008. Program Analysis as Constraint Solving. In Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation (Tucson, AZ, USA) ( PLDI '08). Association for Computing Machinery, New York, NY, USA, 281-292. https://doi.org/10.1145/1375581.1375616 Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Ashutosh Gupta, Thomas A. Henzinger, Rupak Majumdar, Andrey Rybalchenko, and Ru-Gang Xu. 2008. Proving NonTermination. In Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (San Francisco, California, USA) ( POPL '08). Association for Computing Machinery, New York, NY, USA, 147-158. https://doi.org/10.1145/1328438.1328459 Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. William R. Harris, Akash Lal, Aditya V. Nori, and Sriram K. Rajamani. 2010. Alternation for Termination. In Static Analysis, Radhia Cousot and Matthieu Martel (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 304-319. https: //doi.org/10.1007/978-3-642-15769-1_19 Google ScholarGoogle ScholarCross RefCross Ref
  37. Fei He, Shu Mao, and Bow-Yaw Wang. 2016. Learning-Based Assume-Guarantee Regression Verification. In Computer Aided Verification, Swarat Chaudhuri and Azadeh Farzan (Eds.). Springer International Publishing, Cham, 310-328. https://doi.org/10.1007/978-3-319-41528-4_17 Google ScholarGoogle ScholarCross RefCross Ref
  38. Matthias Heizmann, Jochen Hoenicke, Jan Leike, and Andreas Podelski. 2013b. Linear Ranking for Linear Lasso Programs. In Automated Technology for Verification and Analysis, Dang Van Hung and Mizuhito Ogawa (Eds.). Springer International Publishing, Cham, 365-380. https://doi.org/10.1007/978-3-319-02444-8_26 Google ScholarGoogle ScholarCross RefCross Ref
  39. Matthias Heizmann, Jochen Hoenicke, and Andreas Podelski. 2013a. Software Model Checking for People Who Love Automata. In Computer Aided Verification, Natasha Sharygina and Helmut Veith (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 36-52. https://doi.org/10.1007/978-3-642-39799-8_2 Google ScholarGoogle ScholarCross RefCross Ref
  40. Matthias Heizmann, Jochen Hoenicke, and Andreas Podelski. 2014. Termination Analysis by Learning Terminating Programs. In Computer Aided Verification, Armin Biere and Roderick Bloem (Eds.). Springer International Publishing, Cham, 797-813. https://doi.org/10.1007/978-3-319-08867-9_53 Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar, and Marco A. A. Sanvido. 2003. Extreme Model Checking. Springer Berlin Heidelberg, Berlin, Heidelberg, 332-358. https://doi.org/10.1007/978-3-540-39910-0_16 Google ScholarGoogle ScholarCross RefCross Ref
  42. Xiangyang Jia, Carlo Ghezzi, and Shi Ying. 2015. Enhancing Reuse of Constraint Solutions to Improve Symbolic Execution. In Proceedings of the 2015 International Symposium on Software Testing and Analysis (Baltimore, MD, USA) ( ISSTA 2015 ). Association for Computing Machinery, New York, NY, USA, 177-187. https://doi.org/10.1145/2771783.2771806 Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Daniel Kroening, Natasha Sharygina, Stefano Tonetta, Aliaksei Tsitovich, and Christoph M. Wintersteiger. 2008. Loop Summarization Using Abstract Transformers. In Automated Technology for Verification and Analysis, Sungdeok (Steve) Cha, Jin-Young Choi, Moonzoo Kim, Insup Lee, and Mahesh Viswanathan (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 111-125. https://doi.org/10.1007/978-3-540-88387-6_10 Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Daniel Kroening, Natasha Sharygina, Aliaksei Tsitovich, and Christoph M. Wintersteiger. 2010. Termination Analysis with Compositional Transition Invariants. In Computer Aided Verification, Tayssir Touili, Byron Cook, and Paul Jackson (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 89-103. https://doi.org/10.1007/978-3-642-14295-6_9 Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. D. Larraz, A. Oliveras, E. Rodríguez-Carbonell, and A. Rubio. 2013. Proving termination of imperative programs using Max-SMT. In 2013 Formal Methods in Computer-Aided Design (Portland, OR, USA). IEEE, 218-225. https://doi.org/10. 1109/FMCAD. 2013.6679413 Google ScholarGoogle ScholarCross RefCross Ref
  46. Steven Lauterburg, Ahmed Sobeih, Darko Marinov, and Mahesh Viswanathan. 2008. Incremental state-space exploration for programs with dynamically allocated data. In Proceedings of the 30th international conference on Software engineering (Leipzig, Germany). ACM, 291-300. https://doi.org/10.1145/1368088.1368128 Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Ton Chanh Le, Shengchao Qin, and Wei-Ngan Chin. 2015. Termination and Non-Termination Specification Inference. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (Portland, OR, USA) ( PLDI '15). Association for Computing Machinery, New York, NY, USA, 489-498. https://doi.org/10.1145/2737924. 2737993 Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Jan Leike and Matthias Heizmann. 2014. Ranking Templates for Linear Loops. In Tools and Algorithms for the Construction and Analysis of Systems, Erika Ábrahám and Klaus Havelund (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 172-186. https://doi.org/10.1007/978-3-642-54862-8_12 Google ScholarGoogle ScholarCross RefCross Ref
  49. Jan Leike and Matthias Heizmann. 2018. Geometric Nontermination Arguments. In Tools and Algorithms for the Construction and Analysis of Systems, Dirk Beyer and Marieke Huisman (Eds.). Springer International Publishing, Cham, 266-283. https://doi.org/10.1007/978-3-319-89963-3_16 Google ScholarGoogle ScholarCross RefCross Ref
  50. Federico Mora, Yi Li, Julia Rubin, and Marsha Chechik. 2018. Client-specific equivalence checking. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (Montpellier, France, France). ACM, 441-451. https://doi.org/10.1145/3238147.3238178 Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Aditya V. Nori and Rahul Sharma. 2013. Termination Proofs from Tests. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering (Saint Petersburg, Russia) (ESEC/FSE 2013 ). Association for Computing Machinery, New York, NY, USA, 246-256. https://doi.org/10.1145/2491411.2491413 Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Fabrizio Pastore, Leonardo Mariani, Antti E. J. Hyvärinen, Grigory Fedyukovich, Natasha Sharygina, Stephan Sehestedt, and Ali Muhammad. 2014. Verification-Aided Regression Testing. In Proceedings of the 2014 International Symposium on Software Testing and Analysis (San Jose, CA, USA) ( ISSTA 2014 ). Association for Computing Machinery, New York, NY, USA, 37-48. https://doi.org/10.1145/2610384.2610387 Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Andreas Podelski and Andrey Rybalchenko. 2004. A Complete Method for the Synthesis of Linear Ranking Functions. In Verification, Model Checking, and Abstract Interpretation, Bernhard Stefen and Giorgio Levi (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 239-251. https://doi.org/10.1007/978-3-540-24622-0_20 Google ScholarGoogle Scholar
  54. A. Podelski and A. Rybalchenko. 2004. Transition invariants. In Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science, 2004. (Turku, Finland, Finland). IEEE, 32-41. https://doi.org/10.1109/LICS. 2004.1319598 Google ScholarGoogle ScholarCross RefCross Ref
  55. Andreas Podelski and Andrey Rybalchenko. 2005. Transition Predicate Abstraction and Fair Termination. In Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Long Beach, California, USA) ( POPL '05). Association for Computing Machinery, New York, NY, USA, 132-144. https://doi.org/10.1145/1040305.1040317 Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Andreas Podelski and Andrey Rybalchenko. 2011. Transition Invariants and Transition Predicate Abstraction for Program Termination. In Tools and Algorithms for the Construction and Analysis of Systems, Parosh Aziz Abdulla and K. Rustan M. Leino (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 3-10. https://doi.org/10.1007/978-3-642-19835-9_2 Google ScholarGoogle ScholarCross RefCross Ref
  57. Bat-Chen Rothenberg, Daniel Dietsch, and Matthias Heizmann. 2018. Incremental Verification Using Trace Abstraction. In Static Analysis, Andreas Podelski (Ed.). Springer International Publishing, Cham, 364-382. https://doi.org/10.1007/978-3-319-99725-4_22 Google ScholarGoogle ScholarCross RefCross Ref
  58. Neha Rungta, Suzette Person, and Joshua Branchaud. 2012. A change impact analysis to characterize evolving program behaviors. In 2012 28th IEEE International Conference on Software Maintenance ( ICSM) (Trento, Italy). IEEE, 109-118. https://doi.org/10.1109/ICSM. 2012.6405261 Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Ondrej Sery, Grigory Fedyukovich, and Natasha Sharygina. 2012. Incremental upgrade checking by means of interpolationbased function summaries. In Formal Methods in Computer-Aided Design (FMCAD), 2012 (Cambridge, UK). IEEE, 114-121.Google ScholarGoogle Scholar
  60. Thomas Ströder, Jürgen Giesl, Marc Brockschmidt, Florian Frohn, Carsten Fuhs, Jera Hensel, Peter Schneider-Kamp, and Cornelius Aschermann. 2017. Automatically proving termination and memory safety for programs with pointer arithmetic. Journal of Automated Reasoning 58, 1 ( 2017 ), 33-65. https://doi.org/10.1007/s10817-016-9389-x Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Anna Trostanetski, Orna Grumberg, and Daniel Kroening. 2017. Modular Demand-Driven Analysis of Semantic Diference for Program Versions. In Static Analysis, Francesco Ranzato (Ed.). Springer International Publishing, Cham, 405-427. https://doi.org/10.1007/978-3-319-66706-5_20 Google ScholarGoogle ScholarCross RefCross Ref
  62. Caterina Urban, Arie Gurfinkel, and Temesghen Kahsai. 2016. Synthesizing Ranking Functions from Bits and Pieces. In Tools and Algorithms for the Construction and Analysis of Systems, Marsha Chechik and Jean-François Raskin (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 54-70. https://doi.org/10.1007/978-3-662-49674-9_4 Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Helga Velroyen and Philipp Rümmer. 2008. Non-termination Checking for Imperative Programs. In Tests and Proofs, Bernhard Beckert and Reiner Hähnle (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 154-170. https://doi.org/10.1007/978-3-540-79124-9_11 Google ScholarGoogle ScholarCross RefCross Ref
  64. Willem Visser, Jaco Geldenhuys, and Matthew B. Dwyer. 2012. Green: Reducing, Reusing and Recycling Constraints in Program Analysis. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (Cary, North Carolina) (FSE '12). Association for Computing Machinery, New York, NY, USA, Article 58, 11 pages. https://doi.org/10.1145/2393596.2393665 Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Guowei Yang, Matthew B Dwyer, and Gregg Rothermel. 2009. Regression model checking. In Software Maintenance, 2009. ICSM 2009. IEEE International Conference on (Edmonton, AB, Canada). IEEE, 115-124. https://doi.org/10.1109/ICSM. 2009. 5306334 Google ScholarGoogle ScholarCross RefCross Ref
  66. Guowei Yang, Sarfraz Khurshid, Suzette Person, and Neha Rungta. 2014. Property Diferencing for Incremental Checking. In Proceedings of the 36th International Conference on Software Engineering (Hyderabad, India) (ICSE 2014 ). Association for Computing Machinery, New York, NY, USA, 1059-1070. https://doi.org/10.1145/2568225.2568319 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Termination analysis for evolving programs: an incremental approach by reusing certified modules

      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)73
        • Downloads (Last 6 weeks)8

        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!