Polynomial Invariant Generation for Non-deterministic Recursive Programs

被引:27
|
作者
Chatterjee, Krishnendu [1 ]
Fu, Hongfei [2 ]
Goharshady, Amir Kafshdar [1 ]
Goharshady, Ehsan Kafshdar [3 ]
机构
[1] IST Austria, Klosterneuburg, Austria
[2] Shanghai Jiao Tong Univ, Shanghai, Peoples R China
[3] Ferdowsi Univ Mashhad, Mashhad, Razavi Khorasan, Iran
来源
PROCEEDINGS OF THE 41ST ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '20) | 2020年
基金
奥地利科学基金会; 中国国家自然科学基金;
关键词
Invariant generation; Positivstellensatze; Polynomial programs; PROBABILISTIC PROGRAMS; VERIFICATION; TERMINATION; RELAXATION; INFERENCE; SYSTEMS;
D O I
10.1145/3385412.3385969
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We consider the classical problem of invariant generation for programs with polynomial assignments and focus on synthesizing invariants that are a conjunction of strict polynomial inequalities. We present a sound and semi-complete method based on positivstellensatze, i.e. theorems in semi-algebraic geometry that characterize positive polynomials over a semi-algebraic set. On the theoretical side, the worst-case complexity of our approach is subexponential, whereas the worst-case complexity of the previous complete method (Kapur, ACA 2004) is doubly-exponential. Even when restricted to linear invariants, the best previous complexity for complete invariant generation is exponential (Colon et al, CAV 2003). On the practical side, we reduce the invariant generation problem to quadratic programming (QCLP), which is a classical optimization problem with many industrial solvers. We demonstrate the applicability of our approach by providing experimental results on several academic benchmarks. To the best of our knowledge, the only previous invariant generation method that provides completeness guarantees for invariants consisting of polynomial inequalities is (Kapur, ACA 2004), which relies on quantifier elimination and cannot even handle toy programs such as our running example.
引用
收藏
页码:672 / 687
页数:16
相关论文
共 50 条