Abstract

AbstractThe problem of model checking procedural programs has fostered much research towards the definition of temporal logics for reasoning on context-free structures. The most notable of such results are temporal logics on Nested Words, such as CaRet and NWTL. Recently, the logic OPTL was introduced, based on the class of Operator Precedence Languages (OPL), more powerful than Nested Words. We define the new OPL-based logic POTL, and provide a model checking procedure for it. POTL improves on NWTL by enabling the formulation of requirements involving pre/post-conditions, stack inspection, and others in the presence of exception-like constructs. It improves on OPTL by being FO-complete, and by expressing more easily stack inspection and function-local properties. We developed a model checking tool for POTL, which we experimentally evaluate on some interesting use-cases.

Highlights

  • Model checking is one of the most successful techniques for the verification of software programs

  • Equivalence to First-Order Logic (FOL) on the relevant algebraic structure is a desirable feature of linear-time temporal logics, and it was proved for Linear-time Temporal Logic (LTL) [39] and NWTL [2]

  • We introduced the temporal logic Precedence Oriented Temporal Logic (POTL), gave an automata-theoretic model checking procedure, and implemented it in a prototype tool

Read more

Summary

Introduction

Model checking is one of the most successful techniques for the verification of software programs. Such logics, namely CaRet [6] and its FO-complete successor NWTL [2], model the execution trace of a procedural program as a Nested Word [8], consisting in a linear ordering augmented with a one-to-one matching relation between function calls and returns. Namely CaRet [6] and its FO-complete successor NWTL [2], model the execution trace of a procedural program as a Nested Word [8], consisting in a linear ordering augmented with a one-to-one matching relation between function calls and returns They are the first ones featuring temporal modalities that explicitly refer to the nesting structure of CFL [4]. OPTL [22] is the first linear-time temporal logic for which a model checking procedure has been given on both finite and ω-words of OPL It enables reasoning on procedural programs with exceptions, expressing properties about whether a function can be terminated by an exception, or throw one, and pre/postconditions.

Operator Precedence Languages
Operator Precedence ω-Languages
Modeling Programs with OPA
POTL: Syntax and Semantics
Expressiveness of POTL
Model Checking
Model Checking for ω-Words
Complexity
Experimental Evaluation
Conclusions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call