Syndicate: Synergistic Synthesis of Ranking Function and Invariants for Termination Analysis (2404.05951v1)
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.
- 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.
- 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.
- Linear Ranking with Reachability. In Computer Aided Verification, Kousha Etessami and Sriram K. Rajamani (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 491–504.
- Termination of Polynomial Programs. In Verification, Model Checking, and Abstract Interpretation, Radhia Cousot (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 113–129.
- 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.
- Counterexample-Guided Abstraction Refinement. In Computer Aided Verification, E. Allen Emerson and Aravinda Prasad Sistla (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 154–169.
- 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
- 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.
- 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
- 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
- ICE: A Robust Framework for Learning Invariants. In Computer Aided Verification, Armin Biere and Roderick Bloem (Eds.). Springer International Publishing, Cham, 69–87.
- 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
- 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
- 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.
- Synthesis of Ranking Functions Using Extremal Counterexamples. SIGPLAN Not. 50, 6 (jun 2015), 608–618. https://doi.org/10.1145/2813885.2737976
- 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
- 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
- Termination Analysis by Learning Terminating Programs. https://doi.org/10.1007/978-3-319-08867-9_53
- 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
- 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
- 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
- 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
- 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
- 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.
- 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.
- Sketching Concurrent Data Structures. SIGPLAN Not. 43, 6 (jun 2008), 136–148. https://doi.org/10.1145/1379022.1375599
- 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
- Constraint-Based Relational Verification. In Computer Aided Verification, Alexandra Silva and K. Rustan M. Leino (Eds.). Springer International Publishing, Cham, 742–766.
- 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.
- 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.
- 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
- 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
- Yasmin Sarita (2 papers)
- Avaljot Singh (4 papers)
- Shaurya Gomber (1 paper)
- Gagandeep Singh (94 papers)
- Mahesh Vishwanathan (1 paper)