2013
DOI: 10.1007/978-3-642-39799-8_9
|View full text |Cite
|
Sign up to set email alerts
|

Partial Orders for Efficient Bounded Model Checking of Concurrent Software

Abstract: Abstract. The number of interleavings of a concurrent program makes automatic analysis of such software very hard. Modern multiprocessors' execution models make this problem even harder. Modelling program executions with partial orders rather than interleavings addresses both issues: we obtain an efficient encoding into integer difference logic for bounded model checking that enables first-time formal verification of deployed concurrent systems code. We implemented the encoding in the CBMC tool and present exp… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

3
199
0

Year Published

2013
2013
2019
2019

Publication Types

Select...
6
2
1

Relationship

1
8

Authors

Journals

citations
Cited by 135 publications
(202 citation statements)
references
References 74 publications
(155 reference statements)
3
199
0
Order By: Relevance
“…We used CBMC [4] (v5.4) 9 both as sequential backend (for UL-CSeq and LazyCSeq) and stand-alone bug-finding tool. It is a mature SAT-based bounded software model checker that uses a partial-order approach [1] to handle concurrent programs. We further used Lazy-CSeq [12] (v1.0), 10 a lazy sequentialization for bounded programs; CIVL [28] (v1.5), 11 a framework that uses a combination of explicit model checking and symbolic execution for verification; and SMACK [24] (v1.5.2), 12 a bounded software model checker that verifies programs up to a given bound on loop iterations and recursion depth.…”
Section: Ul-cseqmentioning
confidence: 99%
“…We used CBMC [4] (v5.4) 9 both as sequential backend (for UL-CSeq and LazyCSeq) and stand-alone bug-finding tool. It is a mature SAT-based bounded software model checker that uses a partial-order approach [1] to handle concurrent programs. We further used Lazy-CSeq [12] (v1.0), 10 a lazy sequentialization for bounded programs; CIVL [28] (v1.5), 11 a framework that uses a combination of explicit model checking and symbolic execution for verification; and SMACK [24] (v1.5.2), 12 a bounded software model checker that verifies programs up to a given bound on loop iterations and recursion depth.…”
Section: Ul-cseqmentioning
confidence: 99%
“…There are two competing frameworks for constructing a truly concurrent semantics, one based on event structures [39] and the other on pomsets [32]. A recent paper [9], the work that is closest to ours, uses partial orders (pomsets) to capture the semantics of shared memory program. The main insight is that partial orders neatly capture the causality of events in the dynamic execution of weak memory programs.…”
Section: Our Approachmentioning
confidence: 99%
“…The main insight is that partial orders neatly capture the causality of events in the dynamic execution of weak memory programs. But such a model cannot directly capture the control and data flow choices present in the programs: the semantics of programs with multiple, conflicting (that is, mutually exclusive) dynamic executions is captured simply as a set of candidate executions [9]. In this work, we advocate integrating program choices directly into the true concurrency semantics: we show that this results in a more succinct, algebraic presentation, leading to a more efficient analysis.…”
Section: Our Approachmentioning
confidence: 99%
“…Request permissions from permissions@acm.org. PPDP'17, October 9ś11, 2017, Namur, Belgium timing constraints and paths can be encoded, and software analysis, for example of concurrent programs [2].…”
Section: Introductionmentioning
confidence: 99%