BPPChecker: An SMT-based Model Checker on Basic Parallel Processes(Full Version)

10/15/2021
by   Ying Zhao, et al.
0

Program verification on concurrent programs is a big challenge due to general undecidable results. Petri nets and its extensions are used in most works. However, existing verifiers based on Petri nets are difficult to be complete and efficient. Basic Parallel Process (BPP), as a subclass of Petri nets, can be used as a model for describing and verifying concurrent programs with lower complexity. We propose and implement BPPChecker, the first model checker for verifying a subclass of CTL on BPP. We propose constraint-based algorithms for the problem of model checking on BPPs and handle formulas by SMT solver Z3. For EF operator, we reduce the model checking of EF-formulas to the satisfiability problem of existential Presburger formula. For EG operator, we provide a k-step bounded semantics and reduce the model checking of EG-formulas to the satisfiability problem of linear integer arithmetic. Besides, we give Actor Communicating System (ACS) the over-approximation BPP-based semantics and evaluate BPPChecker on ACSs generated from real Erlang programs. Experimental results show that BPPChecker performs more efficiently than the existing tools for a series of branching-time property verification problems of Erlang programs.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/24/2020

Formalizing the Soundness of the Encoding Methods of SAT-based Model Checking

One of the effective model checking methods is to utilize the efficient ...
research
07/02/2021

Model Checking C++ Programs

In the last three decades, memory safety issues in system programming la...
research
05/16/2020

Distributed Bounded Model Checking

Program verification is a resource-hungry task. This paper looks at the ...
research
01/27/2023

Program Dependence Net and Its Slice for Verifying Linear Temporal Properties

The finite-state model checking of software is still limited by the noto...
research
11/20/2017

SMT Queries Decomposition and Caching in Semi-Symbolic Model Checking

In semi-symbolic (control-explicit data-symbolic) model checking the sta...
research
01/11/2019

Model Checking Clinical Decision Support Systems Using SMT

Individual clinical Knowledge Artifacts (KA) are designed to be used in ...
research
12/05/2019

The Expressiveness of Looping Terms in the Semantic Programming

We consider the complexity of reasoning in extensions of the language of...

Please sign up or login with your details

Forgot password? Click here to reset