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
Summary
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.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have