SELOMay 18, 2015

Synthesising Interprocedural Bit-Precise Termination Proofs (extended version)

arXiv:1505.04581v124 citations
Originality Incremental advance
AI Analysis

This addresses the need for scalable termination proofs to prevent issues like hanging programs and denial-of-service attacks, representing an incremental advance in a largely unexplored area.

The paper tackles the problem of proving program termination for large systems by developing an interprocedural termination analysis for C programs, showing that their tool 2LS outperforms state-of-the-art alternatives in efficiency while maintaining comparable precision.

Proving program termination is key to guaranteeing absence of undesirable behaviour, such as hanging programs and even security vulnerabilities such as denial-of-service attacks. To make termination checks scale to large systems, interprocedural termination analysis seems essential, which is a largely unexplored area of research in termination analysis, where most effort has focussed on difficult single-procedure problems. We present a modular termination analysis for C programs using template-based interprocedural summarisation. Our analysis combines a context-sensitive, over-approximating forward analysis with the inference of under-approximating preconditions for termination. Bit-precise termination arguments are synthesised over lexicographic linear ranking function templates. Our experimental results show that our tool 2LS outperforms state-of-the-art alternatives, and demonstrate the clear advantage of interprocedural reasoning over monolithic analysis in terms of efficiency, while retaining comparable precision.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes