Exploiting Synchrony and Symmetry in Relational Verification [chapter]

Lauren Pick, Grigory Fedyukovich, Aarti Gupta
2018 Lecture Notes in Computer Science  
Relational safety specifications describe multiple runs of the same program or relate the behaviors of multiple programs. Approaches to automatic relational verification often compose the programs and analyze the result for safety, but a naively composed program can lead to difficult verification problems. We propose to exploit relational specifications for simplifying the generated verification subtasks. First, we maximize opportunities for synchronizing code fragments. Second, we compute
more » ... tries in the specifications to reveal and avoid redundant subtasks. We have implemented these enhancements in a prototype for verifying k-safety properties on Java programs. Our evaluation confirms that our approach leads to a consistent performance speedup on a range of benchmarks.
doi:10.1007/978-3-319-96145-3_9 fatcat:2xzpnx52s5fqfo7zc72ogauzvq