AProVE: Modular Termination Analysis of Memory-Manipulating C Programs
Frank Emrich, Jera Hensel, J\"urgen Giesl

TL;DR
AProVE is a modular symbolic execution tool for analyzing termination of complex, memory-manipulating C programs, now capable of handling recursion and large-scale code efficiently.
Contribution
This work adapts AProVE's symbolic execution approach to modular analysis, enabling it to analyze recursive C programs and improve scalability.
Findings
Successfully analyzed recursive C programs.
Achieved performance improvements for large codebases.
Extended AProVE's applicability to more complex programs.
Abstract
Termination analysis of C programs is a challenging task. On the one hand, the analysis needs to be precise enough to draw meaningful conclusions. On the other hand, relevant programs in practice are large and require substantial abstraction. It is this inherent trade-off that is the crux of the problem. In this work, we present AProVE, a tool that uses symbolic execution to analyze termination of memory-manipulating C programs. While traditionally, AProVE's focus was on the preciseness of the analysis, we describe how we adapted our approach towards a modular analysis. Due to this adaption, our approach can now also handle recursive programs. Moreover, we present further performance improvements which we developed to make AProVE scale to large programs.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Software Testing and Debugging Techniques · Security and Verification in Computing
