Efficient software model checking of data structure properties
This paper presents novel language and analysis techniques that significantly speed up software model checking of data structure properties. Consider checking a red-black tree implementation. Traditional software model checkers systematically generate all red-black tree states (within some given bou...
Gespeichert in:
Veröffentlicht in: | SIGPLAN notices 2006-10, Vol.41 (10), p.363-382 |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | eng |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | This paper presents novel language and analysis techniques that significantly speed up software model checking of data structure properties. Consider checking a red-black tree implementation. Traditional software model checkers systematically generate all red-black tree states (within some given bounds) and check every red-black tree operation (such as insert, delete, or lookup) on every red-black tree state. Our key idea is as follows. As our checker checks a red-black tree operation
o
on a red-black tree state
s
, it uses program analysis techniques to identify other red-black tree states
s'
1
,
s'
2
, ...,
s'
k
on which the operation
o
behaves similarly. Our analyses guarantee that if
o
executes correctly on
s
, then
o
will execute correctly on every
s'
i
. Our checker therefore does not need to check
o
on any
s'
i
once it checks
o
on
s
. It thus safely prunes those state transitions from its search space, while still achieving complete test coverage within the bounded domain. Our preliminary results show
orders of magnitude improvement
over previous approaches. We believe our techniques can make model checking significantly faster, and thus enable checking of much larger programs and complex program properties than currently possible. |
---|---|
ISSN: | 0362-1340 1558-1160 |
DOI: | 10.1145/1167515.1167504 |