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.
A otro idioma
del contenido fuente
arxiv.org
Ideas clave extraídas de
by Yasmin Sarit... a las arxiv.org 04-10-2024
https://arxiv.org/pdf/2404.05951.pdfConsultas más profundas