Temporal reasoning for procedural programs

  • Authors:
  • Rajeev Alur;Swarat Chaudhuri

  • Affiliations:
  • University of Pennsylvania;Pennsylvania State University

  • Venue:
  • VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.