Date of this Version
Rajeev Alur and Swarat Chaudhuri, "Temporal Reasoning for Procedural Programs", Lecture Notes in Computer Science: Verification, Model Checking, and Abstract Interpretation 5944, 45-60. January 2010. http://dx.doi.org/10.1007/978-3-642-11319-2_7
While temporal verification of programs is a topic with a long history, its traditional basis—semantics based on word languages—is ill-suited for modular reasoning about procedural programs. We address this issue by defining the semantics of procedural (potentially recursive) programs using languages of nested words and developing a framework for temporal reasoning around it. This generalization has two benefits. First, this style of reasoning naturally unifies Manna-Pnueli-style temporal reasoning with Hoare-style reasoning about structured programs. Second, it allows verification of "non-regular" properties of specific procedural contexts—e.g., "If a lock is acquired in a context, then it is released in the same context." We present proof rules for a variety of properties such as local safety, local response, and staircase reactivity; our rules are sufficient to prove all temporal properties over nested words. We show that our rules are sound and relatively complete.
CPS Formal Methods
Lecture Notes in Computer Science: Verification, Model Checking, and Abstract Interpretation
The original publication is available at www.springerlink.com
Date Posted: 16 July 2012