The VATES-diamond as a verifier's best friend
Verification, induction termination analysis
LLVM2CSP: extracting csp models from concurrent programs
NFM'11 Proceedings of the Third international conference on NASA Formal methods
The VATES-diamond as a verifier's best friend
Verification, induction termination analysis
A CSP-based framework for the specification, verification, and implementation of adaptive systems
Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems
Modeling and Analysis of TinyOS Sensor Node Firmware: A CSP Approach
ACM Transactions on Embedded Computing Systems (TECS) - Special Issue on Modeling and Verification of Discrete Event Systems
Hi-index | 0.00 |
This paper contributes to the broad field of software verification by proposing a methodology that uses CSP to verify implementations of real-life multithreaded applications. We therefore use CSP to formalize the compiler intermediate representation of a program. Our methodology divides the low-level representation into three parts: an application-specific part, describing the behavior of threads; a domain-specific part, which encapsulates low-level software concepts such as scheduling; and a platform-specific part, which is the hardware model. These three parts form a low-level CSP model that enables us to prove properties, e.g. the absence of race conditions in the model, by either model checking or theorem proving. The application-specific part is synthesized from the LLVM intermediate representation of a multithreaded program.