.
RESEARCH PAPERS
.
SCIENCE CHINA
Information Sciences
doi: 10.1007/s11432-010-4150-2
c
Science China Press and Springer-Verlag Berlin Heidelberg 2010 info.scichina.com www.springerlink.com
Competent predicate abstraction in model checking
LI Li
1,2,3 ∗
, SONG XiaoYu
4
,GUMing
2,3
& LUO XiangYu
2,3
1
Department of Computer Science & Technology, Tsinghua University, Beijing 100084,China;
2
Key Laboratory for Information System Security, Ministry of Education of China, Beijing 100084,China;
3
School of Software, Tsinghua University, Beijing 100084,China;
4
Department of ECE, Portland State University, Portland, Oregon 97207,USA
Received August 26, 2009; accepted February 21, 2010
Abstract The paper presents a new approach to computing the abstract state and a maximum weight heuris-
tic method for finding the shortest counter-example in verification of imperative programs. The strategy is
incorporated in a verification system based on the counterexample-guided abstraction refinement method. The
proposed method slashes both the size of the abstract state space and the number of invokes of a decision
procedure. A number of benchmarks are employed to evaluate the effectiveness of the approach.
Keywords program, model checking, predicate abstraction, weight heuristic
Citation Li L, Song X Y, Gu M, e t al. Competent predicate abstraction in m odel checking. Sci China Inf Sci,
2010, 53: doi: 10.1007/s11432-010-4150-2
1 Introduction
Burgeoning software complexity has greatly increased the need of verification effort. Program verification
is the process of formally proving that a computer program does exactly what is stated in the program
specification [1, 2]. Formal verification is an important technique to complement traditional testing
approaches. Model checking based on iterative abstraction refinement schemes has been employed in
recent years [3]. Predicate abstraction has been considered as a promising strategy to reduce the state
space in model checking [1, 2].
An imperative program can be viewed as a control flow graph with instructions labeling the edges. In
abstraction interpretation theory [1, 2, 4], a system can be represented as an abstract model characterized
by a set of predicates, which is the over-approximation of the concrete reachable states. Thus the
verification of concrete properties is reduced to checking the least fix point of equations using strongest
post-condition transformers [1, 4]. The abstraction process provides abstract invariance properties, which
are sound on the model but not on the system. In other words, when safety properties are true in the
abstract model, they are true in the concrete one, while the inverse is not true [3, 5, 6] and often incomplete
[6].
The counter-example-guided abstraction refinement (CEGAR) framework plays a key role in applica-
tion of predicate abstraction. It has been successfully applied to a few verification projects [7–10]. In
the abstract-check-refinement iteration, each refinement is essentially an abstract domain’s completeness
∗
Corresponding author (email: l-li-05@mails.tsinghua.edu.cn)