SMT-based Symbolic Model-Checking for Operator Precedence Languages

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Chiari, Michele, Geatti, Luca, Gigante, Nicola, Pradella, Matteo
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866910452780367872
author Chiari, Michele
Geatti, Luca
Gigante, Nicola
Pradella, Matteo
author_facet Chiari, Michele
Geatti, Luca
Gigante, Nicola
Pradella, Matteo
contents Operator Precedence Languages (OPL) have been recently identified as a suitable formalism for model checking recursive procedural programs, thanks to their ability of modeling the program stack. OPL requirements can be expressed in the Precedence Oriented Temporal Logic (POTL), which features modalities to reason on the natural matching between function calls and returns, exceptions, and other advanced programming constructs that previous approaches, such as Visibly Pushdown Languages, cannot model effectively. Existing approaches for model checking of POTL have been designed following the explicit-state, automata-based approach, a feature that severely limits their scalability. In this paper, we give the first symbolic, SMT-based approach for model checking POTL properties. While previous approaches construct the automaton for both the POTL formula and the model of the program, we encode them into a (sequence of) SMT formulas. The search of a trace of the model witnessing a violation of the formula is then carried out by an SMT-solver, in a Bounded Model Checking fashion. We carried out an experimental evaluation, which shows the effectiveness of the proposed solution.
format Preprint
id arxiv_https___arxiv_org_abs_2405_11327
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle SMT-based Symbolic Model-Checking for Operator Precedence Languages
Chiari, Michele
Geatti, Luca
Gigante, Nicola
Pradella, Matteo
Logic in Computer Science
F.3.1; D.2.4
Operator Precedence Languages (OPL) have been recently identified as a suitable formalism for model checking recursive procedural programs, thanks to their ability of modeling the program stack. OPL requirements can be expressed in the Precedence Oriented Temporal Logic (POTL), which features modalities to reason on the natural matching between function calls and returns, exceptions, and other advanced programming constructs that previous approaches, such as Visibly Pushdown Languages, cannot model effectively. Existing approaches for model checking of POTL have been designed following the explicit-state, automata-based approach, a feature that severely limits their scalability. In this paper, we give the first symbolic, SMT-based approach for model checking POTL properties. While previous approaches construct the automaton for both the POTL formula and the model of the program, we encode them into a (sequence of) SMT formulas. The search of a trace of the model witnessing a violation of the formula is then carried out by an SMT-solver, in a Bounded Model Checking fashion. We carried out an experimental evaluation, which shows the effectiveness of the proposed solution.
title SMT-based Symbolic Model-Checking for Operator Precedence Languages
topic Logic in Computer Science
F.3.1; D.2.4
url https://arxiv.org/abs/2405.11327