Bounded model checking (BMC) is an efficient formal verification technique which allows for desired properties of a software system to be checked on bounded runs of an abstract model of the system. The properties are frequently described in some temporal logic and the system is modeled as a state transition system. In this paper we propose a novel counting logic, $\mathcal{L}_{C}$, to describe the temporal properties of client-server systems with an unbounded number of clients. We also propose two dimensional bounded model checking ($2D$-BMC) strategy that uses two distinguishable parameters, one for execution steps and another for the number of tokens in the net representing a client-server system, and these two evolve separately, which is different from the standard BMC techniques in the Petri Nets formalism. This $2D$-BMC strategy is implemented in a tool called DCModelChecker which leverages the $2D$-BMC technique with a state-of-the-art satisfiability modulo theories (SMT) solver Z3. The system is given as a Petri Net and properties specified using $\mathcal{L}_{C}$ are encoded into formulas that are checked by the solver. Our tool can also work on industrial benchmarks from the Model Checking Contest (MCC). We report on these experiments to illustrate the applicability of the $2D$-BMC strategy.
翻译:外观模式检查( BMC) 是一种高效的正式核查技术, 允许在系统抽象模型的捆绑运行中对软件系统的理想属性进行检查。 这些属性经常在某种时间逻辑中描述, 系统也以州过渡系统为模型。 在本文中, 我们提出了一个新的计算逻辑, $\mathcal{L ⁇ C}$, 用来描述客户数量不限制的客户端服务器系统的时间属性。 我们还提议了两个维维约束模式检查(2D$-BMC) 战略, 使用两个可辨别参数, 一个用于执行步骤,另一个用于显示客户服务器系统的网格号数量, 而这两个系统是分别演变的, 不同于Petri Nets 格式中的标准 BMC 技术。 这个$D$- BMC 战略是在一个名为 DCModelcecker的工具中实施的, 该工具将2D$- BMC 的Sabiliflical modifilical(SMUL3) Explicr 3。 该系统是用于一个Petritelex Net Net and Instrual exstrual Reports construal Card express the wergard express the ex expressional collexl express exbl) expressional bal brogetal ex ex ex ex exbal ex express.