The content discusses a novel framework called Syndicate for efficient termination analysis of complex programs. The key insights are:
Existing techniques either synthesize invariants and ranking functions independently or combine them into a single query, both of which are inefficient. Syndicate proposes a synergistic approach where the search for ranking functions and invariants guide each other.
For a single loop, Syndicate maintains an under-approximation of the reachable states (set 𝑟) and an over-approximation of the reachable states (invariant I). It iteratively generates a candidate ranking function, checks its validity using the invariant, and refines the invariant or the set of reachable states based on the counter-examples.
For programs with nested loops, Syndicate maintains an under-approximation of the transition relation (set 𝑡) and over-approximations of the reachable states for each loop (invariants I𝑜, I𝑖). The search for ranking functions and invariants are synergistically guided across the nested loops.
Syndicate is parameterized by a set of possible invariants I and a set of possible ranking functions F. Under computability assumptions and assumptions on the structure of I and F, Syndicate is guaranteed to be relatively complete: if there exists a termination proof using the invariants in I and ranking functions in F, then Syndicate will find it.
Syndicate outperforms state-of-the-art termination analysis tools both in the number of benchmarks proved and in the average time taken. It can also prove some benchmarks that none of the existing tools can.
Sang ngôn ngữ khác
từ nội dung nguồn
arxiv.org
Thông tin chi tiết chính được chắt lọc từ
by Yasmin Sarit... lúc arxiv.org 04-10-2024
https://arxiv.org/pdf/2404.05951.pdfYêu cầu sâu hơn