skip to main content
research-article
Open Access

DynamiTe: dynamic termination and non-termination proofs

Published:13 November 2020Publication History
Skip Abstract Section

Abstract

There is growing interest in termination reasoning for nonlinear programs and, meanwhile, recent dynamic strategies have shown they are able to infer invariants for such challenging programs. These advances led us to hypothesize that perhaps such dynamic strategies for nonlinear invariants could be adapted to learn recurrent sets (for non-termination) and/or ranking functions (for termination).

In this paper, we exploit dynamic analysis and draw termination and non-termination as well as static and dynamic strategies closer together in order to tackle nonlinear programs. For termination, our algorithm infers ranking functions from concrete transitive closures, and, for non-termination, the algorithm iteratively collects executions and dynamically learns conditions to refine recurrent sets. Finally, we describe an integrated algorithm that allows these algorithms to mutually inform each other, taking counterexamples from a failed validation in one endeavor and crossing both the static/dynamic and termination/non-termination lines, to create new execution samples for the other one.

We have implemented these algorithms in a new tool called DynamiTe. For nonlinear programs, there are currently no SV-COMP termination benchmarks so we created new sets of 38 terminating and 39 non-terminating programs. Our empirical evaluation shows that we can effectively guess (and sometimes even validate) ranking functions and recurrent sets for programs with nonlinear behaviors. Furthermore, we show that counterexamples from one failed validation can be used to generate executions for a dynamic analysis of the opposite property. Although we are focused on nonlinear programs, as a point of comparison, we compare DynamiTe's performance on linear programs with that of the state-of-the-art tool, Ultimate. Although DynamiTe is an order of magnitude slower it is nonetheless somewhat competitive and sometimes finds ranking functions where Ultimate was unable to. Ultimate cannot, however, handle the nonlinear programs in our new benchmark suite.

Skip Supplemental Material Section

Supplemental Material

Auxiliary Presentation Video

This is a presentation video of my talk at OOPSLA 2020 on our paper "DynamiTe: Dynamic Termination and Non-termination Proofs" accepted in the research track. In this paper, we exploit dynamic analysis and draw termination and non-termination as well as static and dynamic strategies closer together in order to tackle nonlinear programs. We show that termination proof and non-termination proof can be learned from runtime data of programs. In addition, when source code is available, dynamic strategies can be incorporated with static validation into an overall refinement framework for better proving termination and non-termination of complex programs.

References

  1. AProVE. 2020. AProVE: Automated Program Verification Environment. http://aprove.informatik.rwth-aachen.de/.Google ScholarGoogle Scholar
  2. Domagoj Babić, Alan J. Hu, Zvonimir Rakamaric, and Byron Cook. 2007. Proving Termination by Divergence. In Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007 ), 10-14 September 2007, London, England, UK. IEEE Computer Society, 93-102. https://doi.org/10.1109/SEFM. 2007.32 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Clark Barrett, Christopher L. Conway, Morgan Deters, Liana Hadarean, Dejan Jovanovi'c, Tim King, Andrew Reynolds, and Cesare Tinelli. 2011. CVC4. In Proceedings of the 23rd International Conference on Computer Aided Verification (CAV '11) (Lecture Notes in Computer Science), Ganesh Gopalakrishnan and Shaz Qadeer (Eds.), Vol. 6806. Springer, 171-177. Snowbird, Utah.Google ScholarGoogle ScholarCross RefCross Ref
  4. Dirk Beyer. 2020. Advances in Automatic Software Verification: SV-COMP 2020. In Tools and Algorithms for the Construction and Analysis of Systems-26th International Conference, TACAS 2020, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020, Dublin, Ireland, April 25-30, 2020, Proceedings, Part II (Lecture Notes in Computer Science), Armin Biere and David Parker (Eds.), Vol. 12079. Springer, 347-367. https://doi.org/10.1007/978-3-030-45237-7_21 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dirk Beyer and M Erkan Keremoglu. 2011. CPAchecker: A tool for configurable software verification. In International Conference on Computer Aided Verification. Springer, 184-190.Google ScholarGoogle ScholarCross RefCross Ref
  6. Bruno Blanchet, Patrick Cousot, Radhia Cousot, Jérome Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, and Xavier Rival. 2003. A static analyzer for large safety-critical software. In Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation. 196-207.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Aaron R Bradley, Zohar Manna, and Henny B Sipma. 2005a. Linear ranking with reachability. In International Conference on Computer Aided Verification. Springer, 491-504.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. 2005b. The Polyranking Principle. In Automata, Languages and Programming, 32nd International Colloquium, ICALP 2005, Lisbon, Portugal, July 11-15, 2005, Proceedings (Lecture Notes in Computer Science), Luís Caires, Giuseppe F. Italiano, Luís Monteiro, Catuscia Palamidessi, and Moti Yung (Eds.), Vol. 3580. Springer, 1349-1361. https://doi.org/10.1007/11523468_109 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. 2005c. Termination of Polynomial Programs. In Verification, Model Checking, and Abstract Interpretation, 6th International Conference, VMCAI 2005, Paris, France, January 17-19, 2005, Proceedings (Lecture Notes in Computer Science), Radhia Cousot (Ed.), Vol. 3385. Springer, 113-129. https://doi.org/10. 1007/978-3-540-30579-8_8 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Marc Brockschmidt. 2020. T2: TEMPORAL LOGIC PROVER. https://github.com/mmjb/T2.Google ScholarGoogle Scholar
  11. Jacob Burnim, Sudeep Juvekar, and Koushik Sen. 2009. WISE: Automated test generation for worst-case complexity. In 2009 IEEE 31st International Conference on Software Engineering. IEEE, 463-473.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Hong Yi Chen, Byron Cook, Carsten Fuhs, Kaustubh Nimkar, and Peter W. O'Hearn. 2014. Proving Nontermination via Safety. In Tools and Algorithms for the Construction and Analysis of Systems-20th International Conference, TACAS 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Grenoble, France, April 5-13, 2014. Proceedings (Lecture Notes in Computer Science), Erika Ábrahám and Klaus Havelund (Eds.), Vol. 8413. Springer, 156-171. https://doi.org/10.1007/978-3-642-54862-8_11 Google ScholarGoogle ScholarCross RefCross Ref
  13. Byron Cook, Carsten Fuhs, Kaustubh Nimkar, and Peter W. O'Hearn. 2014. Disproving termination with overapproximation. In Formal Methods in Computer-Aided Design, FMCAD 2014, Lausanne, Switzerland, October 21-24, 2014. IEEE, 67-74. https://doi.org/10.1109/FMCAD. 2014.6987597 Google ScholarGoogle ScholarCross RefCross Ref
  14. Byron Cook, Sumit Gulwani, Tal Lev-Ami, Andrey Rybalchenko, and Mooly Sagiv. 2008. Proving Conditional Termination. In Computer Aided Verification, 20th International Conference, CAV 2008, Princeton, NJ, USA, July 7-14, 2008, Proceedings (Lecture Notes in Computer Science), Aarti Gupta and Sharad Malik (Eds.), Vol. 5123. Springer, 328-340. https://doi.org/10. 1007/978-3-540-70545-1_32 Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Byron Cook, Andreas Podelski, and Andrey Rybalchenko. 2006. Termination proofs for systems code. In Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation, Ottawa, Ontario, Canada, June 11-14, 2006, Michael I. Schwartzbach and Thomas Ball (Eds.). ACM, 415-426. https://doi.org/10.1145/1133981.1134029 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Byron Cook, Andreas Podelski, and Andrey Rybalchenko. 2011. Proving program termination. Commun. ACM 54, 5 ( 2011 ), 88-98. https://doi.org/10.1145/1941487.1941509 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Patrick Cousot and Radhia Cousot. 2012. An abstract interpretation framework for termination. In Proceedings of the 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2012, Philadelphia, Pennsylvania, USA, January 22-28, 2012, John Field and Michael Hicks (Eds.). ACM, 245-258. https://doi.org/10.1145/2103656.2103687 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. CPAChecker. 2020. CPAchecker: The Configurable Software-Verification Platform. https://cpachecker.sosy-lab.org/.Google ScholarGoogle Scholar
  19. Leonardo Mendonça de Moura and Nikolaj Bjørner. 2008. Z3: An Eficient SMT Solver. In Tools and Algorithms for the Construction and Analysis of Systems, 14th International Conference, TACAS 2008, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2008, Budapest, Hungary, March 29-April 6, 2008. Proceedings (Lecture Notes in Computer Science), C. R. Ramakrishnan and Jakob Rehof (Eds.), Vol. 4963. Springer, 337-340. https: //doi.org/10.1007/978-3-540-78800-3_24 Google ScholarGoogle ScholarCross RefCross Ref
  20. Daniel Dietsch, Matthias Heizmann, Vincent Langenfeld, and Andreas Podelski. 2015. Fairness Modulo Theory: A New Approach to LTL Software Model Checking. In Computer Aided Verification-27th International Conference, CAV 2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings, Part I (Lecture Notes in Computer Science), Daniel Kroening and Corina S. Pasareanu (Eds.), Vol. 9206. Springer, 49-66. https://doi.org/10.1007/978-3-319-21690-4_4 Google ScholarGoogle ScholarCross RefCross Ref
  21. DynamiTe. 2020. Supplemental Materials. https://github.com/letonchanh/dynamite.Google ScholarGoogle Scholar
  22. Michael D Ernst, Jake Cockrell, William G Griswold, and David Notkin. 2001. Dynamically discovering likely program invariants to support program evolution. IEEE Transactions on Software Engineering 27, 2 ( 2001 ), 99-123.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Michael D Ernst, Jef H Perkins, Philip J Guo, Stephen McCamant, Carlos Pacheco, Matthew S Tschantz, and Chen Xiao. 2007. The Daikon system for dynamic detection of likely invariants. Science of computer programming 69, 1-3 ( 2007 ), 35-45.Google ScholarGoogle Scholar
  24. Jérôme Feret. 2004. Static analysis of digital filters. In European Symposium on Programming. Springer, 33-48.Google ScholarGoogle ScholarCross RefCross Ref
  25. Florian Frohn and Jürgen Giesl. 2019. Proving Non-Termination via Loop Acceleration. In 2019 Formal Methods in Computer Aided Design, FMCAD 2019, San Jose, CA, USA, October 22-25, 2019, Clark W. Barrett and Jin Yang (Eds.). IEEE, 221-230. https://doi.org/10.23919/FMCAD. 2019.8894271 Google ScholarGoogle ScholarCross RefCross Ref
  26. FuncTion. 2020. FuncTion: An Abstract Domain Functor for Termination. https://www.di.ens.fr/~urban/FuncTion.html.Google ScholarGoogle Scholar
  27. Pranav Garg, Christof Löding, P Madhusudan, and Daniel Neider. 2014. ICE: A robust framework for learning invariants. In International Conference on Computer Aided Verification. Springer, 69-87.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Jürgen Giesl, Marc Brockschmidt, Fabian Emmes, Florian Frohn, Carsten Fuhs, Carsten Otto, Martin Plücker, Peter SchneiderKamp, Thomas Ströder, Stephanie Swiderski, et al. 2014. Proving termination of programs automatically with AProVE. In International Joint Conference on Automated Reasoning. Springer, 184-191.Google ScholarGoogle ScholarCross RefCross Ref
  29. Jürgen Giesl, René Thiemann, Peter Schneider-Kamp, and Stephan Falke. 2004. Automated Termination Proofs with AProVE. In Rewriting Techniques and Applications, 15th International Conference, RTA 2004, Aachen, Germany, June 3-5, 2004, Proceedings (Lecture Notes in Computer Science), Vincent van Oostrom (Ed.), Vol. 3091. Springer, 210-220. https://doi.org/10.1007/978-3-540-25979-4_15 Google ScholarGoogle ScholarCross RefCross Ref
  30. Bhargav S Gulavani and Sumit Gulwani. 2008. A numerical abstract domain based on expression abstraction and max operator with application in timing analysis. In International Conference on Computer Aided Verification. Springer, 370-384.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Sumit Gulwani. 2009. Speed: Symbolic complexity bound analysis. In International Conference on Computer Aided Verification. Springer, 51-62.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Sumit Gulwani, Krishna K Mehra, and Trishul Chilimbi. 2009. Speed: precise and eficient static estimation of program computational complexity. ACM Sigplan Notices 44, 1 ( 2009 ), 127-139.Google ScholarGoogle Scholar
  33. Ashutosh Gupta, Thomas A. Henzinger, Rupak Majumdar, Andrey Rybalchenko, and Ru-Gang Xu. 2008. Proving nontermination. In Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2008, San Francisco, California, USA, January 7-12, 2008, George C. Necula and Philip Wadler (Eds.). ACM, 147-158. https://doi.org/10.1145/1328438.1328459 Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Arie Gurfinkel, Temesghen Kahsai, Anvesh Komuravelli, and Jorge A Navas. 2015. The SeaHorn verification framework. In International Conference on Computer Aided Verification. Springer, 343-361.Google ScholarGoogle ScholarCross RefCross Ref
  35. William R. Harris, Akash Lal, Aditya V. Nori, and Sriram K. Rajamani. 2010. Alternation for Termination. In Static Analysis-17th International Symposium, SAS 2010, Perpignan, France, September 14-16, 2010. Proceedings (Lecture Notes in Computer Science), Radhia Cousot and Matthieu Martel (Eds.), Vol. 6337. Springer, 304-319. https://doi.org/10.1007/978-3-642-15769-1_19 Google ScholarGoogle ScholarCross RefCross Ref
  36. Jan Hofmann, Klaus Aehlig, and Martin Hofmann. 2011. Multivariate amortized resource analysis. In Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2011, Austin, TX, USA, January 26-28, 2011, Thomas Ball and Mooly Sagiv (Eds.). ACM, 357-370. https://doi.org/10.1145/1926385.1926427 Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Jan Hofmann and Martin Hofmann. 2010a. Amortized Resource Analysis with Polymorphic Recursion and Partial Big-Step Operational Semantics. In Programming Languages and Systems-8th Asian Symposium, APLAS 2010, Shanghai, China, November 28-December 1, 2010. Proceedings (Lecture Notes in Computer Science), Kazunori Ueda (Ed.), Vol. 6461. Springer, 172-187. https://doi.org/10.1007/978-3-642-17164-2_13 Google ScholarGoogle ScholarCross RefCross Ref
  38. Jan Hofmann and Martin Hofmann. 2010b. Amortized Resource Analysis with Polynomial Potential. In Programming Languages and Systems, 19th European Symposium on Programming, ESOP 2010, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2010, Paphos, Cyprus, March 20-28, 2010. Proceedings (Lecture Notes in Computer Science), Andrew D. Gordon (Ed.), Vol. 6012. Springer, 287-306. https://doi.org/10.1007/978-3-642-11957-6_16 Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Ton Chanh Le, Timos Antonopoulos, Parisa Fathololumi, Eric Koskinen, and ThanhVu Nguyen. 2020. DynamiTe: Dynamic Termination and Non-termination Proofs. arXiv: 2010. 05747 [cs.PL]Google ScholarGoogle Scholar
  40. Ton Chanh Le, Cristian Gherghina, Aquinas Hobor, and Wei-Ngan Chin. 2014. A Resource-Based Logic for Termination and Non-termination Proofs. In Formal Methods and Software Engineering-16th International Conference on Formal Engineering Methods, ICFEM 2014, Luxembourg, Luxembourg, November 3-5, 2014. Proceedings (Lecture Notes in Computer Science), Stephan Merz and Jun Pang (Eds.), Vol. 8829. Springer, 267-283. https://doi.org/10.1007/978-3-319-11737-9_18 Google ScholarGoogle ScholarCross RefCross Ref
  41. 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, June 15-17, 2015, David Grove and Steve Blackburn (Eds.). ACM, 489-498. https://doi.org/10.1145/2737924.2737993 Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Ton Chanh Le, Guolong Zheng, and ThanhVu Nguyen. 2019. SLING: using dynamic analysis to infer program invariants in separation logic. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2019, Phoenix, AZ, USA, June 22-26, 2019, Kathryn S. McKinley and Kathleen Fisher (Eds.). ACM, 788-801. https: //doi.org/10.1145/3314221.3314634 Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Chin Soon Lee, Neil D. Jones, and Amir M. Ben-Amram. 2001. The size-change principle for program termination. In Conference Record of POPL 2001: The 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, London, UK, January 17-19, 2001, Chris Hankin and Dave Schmidt (Eds.). ACM, 81-92. https://doi.org/10.1145/360204. 360210 Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. George C Necula, Scott McPeak, Shree P Rahul, and Westley Weimer. 2002. CIL: Intermediate language and tools for analysis and transformation of C programs. In International Conference on Compiler Construction. Springer, 213-228.Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Phuc C. Nguyen, Thomas Gilray, Sam Tobin-Hochstadt, and David Van Horn. 2019. Size-change termination as a contract: dynamically and statically enforcing termination for higher-order programs. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2019, Phoenix, AZ, USA, June 22-26, 2019, Kathryn S. McKinley and Kathleen Fisher (Eds.). ACM, 845-859. https://doi.org/10.1145/3314221.3314643 Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. ThanhVu Nguyen, Timos Antonopoulos, Andrew Ruef, and Michael Hicks. 2017a. Counterexample-guided approach to finding numerical invariants. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering. 605-615.Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. ThanhVu Nguyen, Matthew B Dwyer, and Willem Visser. 2017b. Symlnfer: Inferring program invariants using symbolic states. In 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE, 804-814.Google ScholarGoogle ScholarCross RefCross Ref
  48. ThanhVu Nguyen, Matthew B Dwyer, and Willem Visser. 2017c. Symlnfer: Inferring program invariants using symbolic states. In 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE, 804-814.Google ScholarGoogle ScholarCross RefCross Ref
  49. ThanhVu Nguyen, Deepak Kapur, Westley Weimer, and Stephanie Forrest. 2012. Using dynamic analysis to discover polynomial and array invariants. In 2012 34th International Conference on Software Engineering (ICSE). IEEE, 683-693.Google ScholarGoogle ScholarCross RefCross Ref
  50. ThanhVu Nguyen, Deepak Kapur, Westley Weimer, and Stephanie Forrest. 2014a. DIG: A Dynamic Invariant Generator for Polynomial and Array Invariants. ACM Transactions on Software Engineering and Methodology, to appear ( 2014 ).Google ScholarGoogle Scholar
  51. ThanhVu Nguyen, Deepak Kapur, Westley Weimer, and Stephanie Forrest. 2014b. Using dynamic analysis to generate disjunctive invariants. In Proceedings of the 36th International Conference on Software Engineering. 608-619.Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Aditya V Nori and Rahul Sharma. 2013. Termination proofs from tests. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering. 246-256.Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Peter W. O'Hearn. 2020. Incorrectness logic. Proc. ACM Program. Lang. 4, POPL ( 2020 ), 10 : 1-10 : 32. https://doi.org/10.1145/ 3371078 Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Saswat Padhi, Rahul Sharma, and Todd Millstein. 2016. Data-driven precondition inference with learned features. ACM SIGPLAN Notices 51, 6 ( 2016 ), 42-56.Google ScholarGoogle Scholar
  55. Andreas Podelski and Andrey Rybalchenko. 2004a. A Complete Method for the Synthesis of Linear Ranking Functions. In Verification, Model Checking, and Abstract Interpretation, 5th International Conference, VMCAI 2004, Venice, Italy, January 11-13, 2004, Proceedings (Lecture Notes in Computer Science), Bernhard Stefen and Giorgio Levi (Eds.), Vol. 2937. Springer, 239-251. https://doi.org/10.1007/978-3-540-24622-0_20 Google ScholarGoogle ScholarCross RefCross Ref
  56. Andreas Podelski and Andrey Rybalchenko. 2004b. Transition Invariants. In 19th IEEE Symposium on Logic in Computer Science (LICS 2004 ), 14-17 July 2004, Turku, Finland, Proceedings. IEEE Computer Society, 32-41. https://doi.org/10.1109/ LICS. 2004.1319598 Google ScholarGoogle ScholarCross RefCross Ref
  57. Enric Rodríguez-Carbonell and Deepak Kapur. 2007a. Automatic generation of polynomial invariants of bounded degree using abstract interpretation. Science of Computer Programming 64, 1 ( 2007 ), 54-75.Google ScholarGoogle Scholar
  58. Enric Rodríguez-Carbonell and Deepak Kapur. 2007b. Generating all polynomial invariants in simple loops. Journal of Symbolic Computation 42, 4 ( 2007 ), 443-476.Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Rahul Sharma, Saurabh Gupta, Bharath Hariharan, Alex Aiken, Percy Liang, and Aditya V Nori. 2013. A data driven approach for algebraic loop invariants. In European Symposium on Programming. Springer, 574-592.Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Stephen F. Siegel, Manchun Zheng, Ziqing Luo, Timothy K. Zirkel, Andre V. Marianiello, John G. Edenhofner, Matthew B. Dwyer, and Michael S. Rogers. 2015. CIVL: the concurrency intermediate verification language. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2015, Austin, TX, USA, November 15-20, 2015, Jackie Kern and Jefrey S. Vetter (Eds.). ACM, 61 : 1-61 : 12. https://doi.org/10.1145/2807591.2807635 Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. SV-COMP benchmark nla-digbench. 2020. SV-COMP benchmark nla-digbench. https://github.com/sosy-lab/svbenchmarks/tree/master/c/nla-digbench.Google ScholarGoogle Scholar
  62. Ultimate. 2020. Ultimate Automizer. https://monteverdi.informatik.uni-freiburg.de/tomcat/Website/?ui=tool&tool=ltl_automizer.Google ScholarGoogle Scholar
  63. Caterina Urban. 2013. Piecewise-Defined Ranking Functions. In 13th International Workshop on Termination (WST 2013 ). 69.Google ScholarGoogle Scholar
  64. Caterina Urban. 2015. FuncTion: an abstract domain functor for termination. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 464-466.Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Caterina Urban and Antoine Miné. 2014. An abstract domain to infer ordinal-valued ranking functions. In European Symposium on Programming Languages and Systems. Springer, 412-431.Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Peng Wang, Di Wang, and Adam Chlipala. 2017. TiML: a functional language for practical complexity analysis with invariants. Proceedings of the ACM on Programming Languages 1, OOPSLA ( 2017 ), 1-26.Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Jianan Yao, Gabriel Ryan, Justin Wong, Suman Jana, and Ronghui Gu. 2020. Learning nonlinear loop invariants with gated continuous logic networks. In Proceedings of the 41st ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2020, London, UK, June 15-20, 2020, Alastair F. Donaldson and Emina Torlak (Eds.). ACM, 106-120. https://doi.org/10.1145/3385412.3385986 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. DynamiTe: dynamic termination and non-termination proofs

            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

            • Published in

              cover image Proceedings of the ACM on Programming Languages
              Proceedings of the ACM on Programming Languages  Volume 4, Issue OOPSLA
              November 2020
              3108 pages
              EISSN:2475-1421
              DOI:10.1145/3436718
              Issue’s Table of Contents

              Copyright © 2020 Owner/Author

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 13 November 2020
              Published in pacmpl Volume 4, Issue OOPSLA

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

            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!