2004
DOI: 10.1023/b:form.0000040025.89719.f3
|View full text |Cite
|
Sign up to set email alerts
|

Predicate Abstraction of ANSI-C Programs Using SAT

Abstract: Predicate abstraction is a major method for verification of software. However, the generation of the abstract Boolean program from the set of predicates and the original program suffers from an exponential number of theorem prover calls as well as from soundness issues. This paper presents a novel technique that uses an efficient SAT solver for generating the abstract transition relations of ANSI-C programs. The SAT-based approach computes a more precise and safe abstraction compared to existing predicate abst… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
118
0

Year Published

2005
2005
2010
2010

Publication Types

Select...
8

Relationship

4
4

Authors

Journals

citations
Cited by 139 publications
(118 citation statements)
references
References 35 publications
(42 reference statements)
0
118
0
Order By: Relevance
“…The resulting finite-state abstraction can be analyzed efficiently using Boolean techniques. Predicate abstraction has been applied successfully in various verification tools to analyze software [BMMR01,HJMS02,CCG + 03,FQ02], hardware [CKSY04] and high-level protocols [DDP99,LBC03].…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…The resulting finite-state abstraction can be analyzed efficiently using Boolean techniques. Predicate abstraction has been applied successfully in various verification tools to analyze software [BMMR01,HJMS02,CCG + 03,FQ02], hardware [CKSY04] and high-level protocols [DDP99,LBC03].…”
Section: Introductionmentioning
confidence: 99%
“…For example, Clarke et al [CKSY04], and Lahiri and Bryant [LBC03,LB04] perform predicate abstraction by Boolean quantifier elimination using SAT solvers for propositional and first-order logic respectively. The idea of using SMT solvers for predicate abstraction has also been explored repeatedly [DDP99,SS99,FQ02,BCLZ04], but differently from what we do here, in particular, concerning incrementality.…”
Section: Introductionmentioning
confidence: 99%
“…Our implementation uses SATABS as the reachability checker [13], which implements SAT-based predicate abstraction. Our benchmarks are device drivers from the Windows Driver Development Kit (WDK).…”
Section: Large-scale Benchmarksmentioning
confidence: 99%
“…A system Ax ≤ b is called integral if the polyhedron {x ∈ Q n | Ax ≤ b} coincides with its integral hull (the convex hull of the integer points contained in it). 13 Lemma 6 (Integral version of Farkas' lemma). Suppose A ∈ Q n×k is a matrix, b ∈ Q n a vector such that the system Ax ≤ b of inequalities is satisfiable and integral, c ∈ Q k is a (row) vector, and δ ∈ Q is a rational.…”
Section: Ranking Functions For Disjunctive Integer Transition Relatmentioning
confidence: 99%
“…This section provides a short overview of the algorithm. For more information on the algorithm, we refer the reader to [46,45].…”
Section: Existential Abstraction Of Transition Systems With Eventsmentioning
confidence: 99%