Almost correct invariants: synthesizing inductive invariants by fuzzing proofs
Almost correct invariants: synthesizing inductive invariants by fuzzing proofs
复制标题
几乎正确的不变量:通过模糊证明合成归纳不变量
DOI:
--
复制
发表时间:
2022
期刊:
影响因子:
--
通讯作者:
Subhajit Roy
中科院分区:
文献类型:
--
作者:
S. Lahiri;Subhajit Roy
Real-life programs contain multiple operations whose semantics are unavailable to verification engines, like third-party library calls, inline assembly and SIMD instructions, special compiler-provided primitives, and queries to uninterpretable machine learning models. Even with the exceptional success story of program verification, synthesis of inductive invariants for such "open" programs has remained a challenge. Currently, this problem is handled by manually "closing" the program---by providing hand-written stubs that attempt to capture the behavior of the unmodelled operations; writing stubs is not only difficult and tedious, but the stubs are often incorrect---raising serious questions on the whole endeavor. In this work, we propose Almost Correct Invariants as an automated strategy for synthesizing inductive invariants for such "open" programs. We adopt an active learning strategy where a data-driven learner proposes candidate invariants. In deviation from prior work that attempt to verify invariants, we attempt to falsify the invariants: we reduce the falsification problem to a set of reachability checks on non-deterministic programs; we ride on the success of modern fuzzers to answer these reachability queries. Our tool, Achar, automatically synthesizes inductive invariants that are sufficient to prove the correctness of the target programs. We compare Achar with a state-of-the-art invariant synthesis tool that employs theorem proving on formulae built over the program source. Though Achar is without strong soundness guarantees, our experiments show that even when we provide almost no access to the program source, Achar outperforms the state-of-the-art invariant generator that has complete access to the source. We also evaluate Achar on programs that current invariant synthesis engines cannot handle---programs that invoke external library calls, inline assembly, and queries to convolution neural networks; Achar successfully infers the necessary inductive invariants within a reasonable time.
登录
查看更多内容
DOI:
10.1007/978-3-030-53291-8_9
发表时间:
2020-06-16
期刊:
Computer Aided Verification
影响因子:
--
作者:
Si X;Naik A;Dai H;Naik M;Song L
通讯作者:
Song L
DOI:
10.1109/sp40001.2021.00060
发表时间:
2021-01
期刊:
2021 IEEE Symposium on Security and Privacy (SP)
影响因子:
--
作者:
Subhajit Roy;Justin Hsu;Aws Albarghouthi
通讯作者:
Subhajit Roy;Justin Hsu;Aws Albarghouthi
DOI:
10.1145/3385412.3385967
发表时间:
2020
期刊:
ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子:
--
作者:
Miltner, Anders;Padhi, Saswat;Millstein, Todd;Walker, David
通讯作者:
Walker, David
DOI:
10.1145/3314221.3314641
发表时间:
2019
期刊:
PLDI 2019: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子:
--
作者:
Astorga, Angello;Madhusudan, P.;Saha, Shambwaditya;Wang, Shiyu;Xie, Tao
通讯作者:
Xie, Tao