DeepAI
Log In Sign Up

POTL: A First-Order Complete Temporal Logic for Operator Precedence Languages

10/21/2019
by   Michele Chiari, et al.
0

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, we introduced OPTL, based on the class of Operator Precedence Languages (OPL), more powerful than Nested Words. In this paper, we introduce the new OPL-based logic POTL, prove its FO-completeness over finite words, 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.

READ FULL TEXT

page 1

page 2

page 3

page 4

05/22/2021

A First-Order Complete Temporal Logic for Structured Context-Free Languages

The problem of model checking procedural programs has fostered much rese...
09/10/2018

Temporal Logic and Model Checking for Operator Precedence Languages

In the last decades much research effort has been devoted to extending t...
08/13/2018

Timed context-free temporal logics

The paper is focused on temporal logics for the description of the behav...
09/06/2022

A first-order logic characterization of safety and co-safety languages

Linear Temporal Logic (LTL) is one of the most popular temporal logics, ...
08/13/2018

Timed context-free temporal logics (extended version)

The paper is focused on temporal logics for the description of the behav...
04/27/2021

Why Propositional Quantification Makes Modal and Temporal Logics on Trees Robustly Hard?

Adding propositional quantification to the modal logics K, T or S4 is kn...
03/14/2018

Bisimulations for intuitionistic temporal logics

We introduce bisimulations for the logic ITL^e with `next', `until' and ...