Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
110 tokens/sec
GPT-4o
56 tokens/sec
Gemini 2.5 Pro Pro
44 tokens/sec
o3 Pro
6 tokens/sec
GPT-4.1 Pro
47 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Syndicate: Synergistic Synthesis of Ranking Function and Invariants for Termination Analysis (2404.05951v1)

Published 9 Apr 2024 in cs.LO

Abstract: Several techniques have been developed to prove the termination of programs. Finding ranking functions is one of the common approaches to do so. A ranking function must be bounded and must reduce at every iteration for all the reachable program states. Since the set of reachable states is often unknown, invariants serve as an over-approximation. Further, in the case of nested loops, the initial set of program states for the nested loop can be determined by the invariant of the outer loop. So, invariants play an important role in proving the validity of a ranking function in the absence of the exact reachable states. However, in the existing techniques, either the invariants are synthesized independently, or combined with ranking function synthesis into a single query, both of which are inefficient. We observe that a guided search for invariants and ranking functions can have benefits in terms of the number of programs that can be proved to terminate and the time needed to identify a proof of termination. So, in this work, we develop Syndicate, a novel framework that synergistically guides the search for both the ranking function and an invariant that together constitute a proof of termination. Owing to our synergistic approach, Syndicate can not only prove the termination of more benchmarks but also achieves a reduction ranging from 17% to 70% in the average runtime as compared to existing state-of-the-art termination analysis tools. We also prove that Syndicate is relatively complete, i.e., if there exists a ranking function and an invariant in their respective templates that can be used to prove the termination of a program, then Syndicate will always find it if there exist complete procedures for the template-specific functions in our framework.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (32)
  1. Dirk Beyer. 2020. Advances in Automatic Software Verification: SV-COMP 2020. In Tools and Algorithms for the Construction and Analysis of Systems, Armin Biere and David Parker (Eds.). Springer International Publishing, Cham, 347–367.
  2. Aaron R. Bradley. 2011. SAT-Based Model Checking without Unrolling. In Verification, Model Checking, and Abstract Interpretation, Ranjit Jhala and David Schmidt (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 70–87.
  3. Linear Ranking with Reachability. In Computer Aided Verification, Kousha Etessami and Sriram K. Rajamani (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 491–504.
  4. Termination of Polynomial Programs. In Verification, Model Checking, and Abstract Interpretation, Radhia Cousot (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 113–129.
  5. 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.
  6. Counterexample-Guided Abstraction Refinement. In Computer Aided Verification, E. Allen Emerson and Aravinda Prasad Sistla (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 154–169.
  7. 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
  8. Leonardo Mendonça de Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In TACAS (Lecture Notes in Computer Science, Vol. 4963). Springer, 337–340.
  9. Carlo Alberto Furia and Bertrand Meyer. 2010. Inferring Loop Invariants Using Postconditions. Springer Berlin Heidelberg, Berlin, Heidelberg, 277–300. https://doi.org/10.1007/978-3-642-15025-8_15
  10. Inferring Loop Invariants by Mutation, Dynamic Analysis, and Static Checking. IEEE Transactions on Software Engineering 41, 10 (2015), 1019–1037. https://doi.org/10.1109/TSE.2015.2431688
  11. ICE: A Robust Framework for Learning Invariants. In Computer Aided Verification, Armin Biere and Roderick Bloem (Eds.). Springer International Publishing, Cham, 69–87.
  12. Neural Termination Analysis. In Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (Singapore, Singapore) (ESEC/FSE 2022). Association for Computing Machinery, New York, NY, USA, 633–645. https://doi.org/10.1145/3540250.3549120
  13. Analyzing Program Termination and Complexity Automatically with AProVE. J. Autom. Reason. 58, 1 (jan 2017), 3–31. https://doi.org/10.1007/s10817-016-9388-y
  14. The Termination and Complexity Competition. In Tools and Algorithms for the Construction and Analysis of Systems, Dirk Beyer, Marieke Huisman, Fabrice Kordon, and Bernhard Steffen (Eds.). Springer International Publishing, Cham, 156–166.
  15. Synthesis of Ranking Functions Using Extremal Counterexamples. SIGPLAN Not. 50, 6 (jun 2015), 608–618. https://doi.org/10.1145/2813885.2737976
  16. Counterexample-Guided Correlation Algorithm for Translation Validation. Proc. ACM Program. Lang. 4, OOPSLA, Article 221 (nov 2020), 29 pages. https://doi.org/10.1145/3428289
  17. Zhilei Han and Fei He. 2023. Data-driven Recurrent Set Learning For Non-termination Analysis. In 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE). 1303–1315. https://doi.org/10.1109/ICSE48619.2023.00115
  18. Termination Analysis by Learning Terminating Programs. https://doi.org/10.1007/978-3-319-08867-9_53
  19. DynamiTe: Dynamic Termination and Non-Termination Proofs. Proc. ACM Program. Lang. 4, OOPSLA, Article 189 (nov 2020), 30 pages. https://doi.org/10.1145/3428257
  20. Data-Driven Inference of Representation Invariants. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (London, UK) (PLDI 2020). Association for Computing Machinery, New York, NY, USA, 1–15. https://doi.org/10.1145/3385412.3385967
  21. DIG: A Dynamic Invariant Generator for Polynomial and Array Invariants. ACM Trans. Softw. Eng. Methodol. 23, 4, Article 30 (sep 2014), 30 pages. https://doi.org/10.1145/2556782
  22. SymInfer: Inferring Numerical Invariants using Symbolic States. In 2022 IEEE/ACM 44th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion). 197–201. https://doi.org/10.1145/3510454.3516833
  23. Induction Duality: Primal-Dual Search for Invariants. Proc. ACM Program. Lang. 6, POPL, Article 50 (jan 2022), 29 pages. https://doi.org/10.1145/3498712
  24. Andreas Podelski and Andrey Rybalchenko. 2004. A Complete Method for the Synthesis of Linear Ranking Functions. In Verification, Model Checking, and Abstract Interpretation, Bernhard Steffen and Giorgio Levi (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 239–251.
  25. Counterexample-Guided Model Synthesis. In Tools and Algorithms for the Construction and Analysis of Systems, Axel Legay and Tiziana Margaria (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 264–280.
  26. Sketching Concurrent Data Structures. SIGPLAN Not. 43, 6 (jun 2008), 136–148. https://doi.org/10.1145/1379022.1375599
  27. Modular Primal-Dual Fixpoint Logic Solving for Temporal Verification. Proc. ACM Program. Lang. 7, POPL, Article 72 (jan 2023), 30 pages. https://doi.org/10.1145/3571265
  28. Constraint-Based Relational Verification. In Computer Aided Verification, Alexandra Silva and K. Rustan M. Leino (Eds.). Springer International Publishing, Cham, 742–766.
  29. 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.
  30. 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.
  31. Tobias Welp and Andreas Kuehlmann. 2014. Property directed invariant refinement for program verification. In 2014 Design, Automation & Test in Europe Conference & Exhibition (DATE). 1–6. https://doi.org/10.7873/DATE.2014.127
  32. Loopster: Static Loop Termination Analysis. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (Paderborn, Germany) (ESEC/FSE 2017). Association for Computing Machinery, New York, NY, USA, 84–94. https://doi.org/10.1145/3106237.3106260
User Edit Pencil Streamline Icon: https://streamlinehq.com
Authors (5)
  1. Yasmin Sarita (2 papers)
  2. Avaljot Singh (4 papers)
  3. Shaurya Gomber (1 paper)
  4. Gagandeep Singh (94 papers)
  5. Mahesh Vishwanathan (1 paper)

Summary

We haven't generated a summary for this paper yet.

X Twitter Logo Streamline Icon: https://streamlinehq.com