Dynamic Verification with Observational Equivalence of C/C++ Concurrency
Sanjana Singh, Divyanjali Sharma, Subodh Sharma

TL;DR
This paper introduces observational equivalence for verifying C/C++ concurrent programs under relaxed memory models, enabling more efficient state-space exploration and improved verification accuracy.
Contribution
It proposes a new coarser trace equivalence called observational equivalence, along with an algorithm to compute it efficiently for C/C++ concurrency verification.
Findings
Significant reduction in explored traces using OE
More extensive treatment of C/C++ concurrency than existing methods
Effective verification demonstrated on threaded C/C++ programs
Abstract
Program executions under relaxed memory model (rmm) semantics are significantly more difficult to analyze; the rmm semantics result in out of order execution of program events leading to an explosion of state-space. Dynamic partial order reduction (DPOR) is a powerful technique to address such a state-space explosion and has been used to verify programs under rmm such as TSO, PSO, and POWER. Central to such DPOR techniques is the notion of trace-equivalence, which is computed based on the independence relation among program events. We propose a coarser notion of rmm-aware trace equivalence called observational equivalence (OE). Two program behaviors are observationally equivalent if every read event reads the same value in both the behaviors. We propose a notion of observational independence (OI) and provide an algorithmic construction to compute trace equivalence (modulo OI)…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Parallel Computing and Optimization Techniques · Radiation Effects in Electronics
