English

SMT-based Symbolic Model-Checking for Operator Precedence Languages

Logic in Computer Science 2024-05-21 v1

Abstract

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.

Keywords

Cite

@article{arxiv.2405.11327,
  title  = {SMT-based Symbolic Model-Checking for Operator Precedence Languages},
  author = {Michele Chiari and Luca Geatti and Nicola Gigante and Matteo Pradella},
  journal= {arXiv preprint arXiv:2405.11327},
  year   = {2024}
}

Comments

30 pages, 6 figures

R2 v1 2026-06-28T16:31:55.897Z