Using Symbolic States to Infer Numerical Invariants

被引:1
|
作者
ThanhVu Nguyen [1 ]
KimHao Nguyen [2 ]
Dwyer, Matthew B. [3 ]
机构
[1] George Mason Univ, Dept Comp Sci, Fairfax, VA 22030 USA
[2] Univ Nebraska, Lincoln, NE 68588 USA
[3] Univ Virginia, Dept Comp Sci, Charlottesville, VA 22901 USA
基金
美国国家科学基金会;
关键词
Inference algorithms; Tools; Security; Performance analysis; Engines; Encoding; Benchmark testing; Program invariants; numerical invariants; dynamic analysis; symbolic execution; counterexample guided refinement; program testing and verification; PROGRAM INVARIANTS; VERIFICATION;
D O I
10.1109/TSE.2021.3106964
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Automatically inferring invariant specifications has proven valuable in enabling a wide range of software verification and validation approaches over the past two decades. Recent approaches have shifted from using observation of concrete program states to exploiting symbolic encodings of sets of concrete program states in order to improve the quality of inferred invariants. In this paper, we demonstrate that working directly with symbolic states generated by symbolic execution approaches can improve invariant inference further. Our technique uses a counterexample-based algorithm that iteratively creates concrete states from symbolic states, infers candidate invariants from both concrete and symbolic states, and then validates or refutes candidate invariants using symbolic states. The refutation process serves both to eliminate spurious invariants and to drive the inference process to produce more precise invariants. This framework can be employed to infer complex invariants that capture nonlinear polynomial relations among program variables. The open-source SymInfer tool implements these ideas to automatically generate invariants at arbitrary locations in Java or C programs. Our preliminary results show that across a collection of four benchmarks SymInfer improves on the state-of-the-art by efficiently inferring more informative invariants than prior work.
引用
收藏
页码:3877 / 3899
页数:23
相关论文
共 50 条