The 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 (OPLs), more powerful than Nested Words. We define the new OPL-based logic POTL and prove its FO-completeness. 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 too, which instead we show not to be FO-complete; it also allows to express more easily stack inspection and function-local properties. In a companion paper we report a model checking procedure for POTL and experimental results based on a prototype tool developed therefor. For completeness a short summary of this complementary result is provided in this paper too.
翻译:示范检查程序程序问题促使人们进行大量研究,以界定关于无背景结构推理的时间逻辑定义,最显著的成果是Caret和NWTL等Nested Words上的时间逻辑。最近,根据操作者优先语言(OPLs)的等级,采用LOTL逻辑的逻辑比Nested Words更有力。我们定义了基于OPL的新的逻辑POTL(POTL),并证明了其F-完整性。POTL改进了NWTL, 使得能够拟订涉及先决条件/后条件的要求、堆叠检查以及存在类似例外结构的其他要求。在OPL(OPL)上也改进了时间逻辑,而我们却表明它不是FO-完整;它也便于表达堆叠检查和功能-本地特性。在一份配套文件中,我们报告了基于所开发的原型工具的POTL和实验结果的示范检查程序。为了完整起见,本文也提供了这一补充结果的简短摘要。