HyperAIHyperAI

Command Palette

Search for a command to run...

제한된 모델 체크를 통한 무한 클라이언트-서버 시스템 분석

Ramchandra Phawade Tephilla Prince S. Sheerazuddin

초록

경계 모델 체크(bounded model checking, BMC)는 소프트웨어 시스템의 추상 모델에 대한 유한 실행 경로에서 원하는 성질을 효율적으로 검증할 수 있는 공식적 검증 기법이다. 이 성질들은 일반적으로 일종의 시제 논리(temporal logic)로 기술되며, 시스템은 상태 전이 시스템(state transition system)으로 모델링된다. 본 논문에서는 클라이언트 수가 무한한 클라이언트-서버 시스템의 시제 성질을 기술하기 위해 새로운 카운팅 논리(LC\mathcal{L}{C}LC)를 제안한다. 또한, 클라이언트-서버 시스템을 나타내는 네트(workflow net) 내의 토큰 수와 실행 단계를 구분하여 각각 별도로 진화하는 두 개의 구분 가능한 파라미터를 사용하는 이중 차원 경계 모델 체크(2D-BMC) 전략을 제안한다. 이는 기존의 페트리 넷(Petri Net) 형식에서 사용되는 표준 BMC 기법과는 다른 특징을 지닌다. 제안된 2D-BMC 전략은 최신의 만족 가능성 모듈로 이론(satisfiability modulo theories, SMT) 솔버인 Z3를 활용하는 도구인 DCModelChecker에 구현되었다. 시스템은 페트리 넷으로 주어지고, LC\mathcal{L}{C}LC로 기술된 성질들은 솔버가 검증할 수 있는 공식으로 인코딩된다. 본 도구는 모델 체크 경연(Model Checking Contest, MCC)에서 제공하는 산업용 벤치마크에도 적용 가능하다. 제시된 실험 결과를 통해 2D-BMC 전략의 실용성과 효과성을 입증한다.

One-sentence Summary

Phawade et al. from IIT Dharwad and NIT Calicut propose 2D-BMC, a novel bounded model checking algorithm that simultaneously bounds execution steps and token counts to verify unbounded Petri nets against LTL with linear integer arithmetic (LTL_LIA), enabling concurrent semantics and outperforming existing tools on complex properties.

Key Contributions

  • We introduce 2D-BMC, a novel bounded model checking algorithm that simultaneously bounds execution length and token counts in unbounded Petri nets, enabling verification of LTL with linear integer arithmetic (LTL_LIA) properties under concurrent semantics.
  • We provide SMT encodings for both interleaved and concurrent executions of unbounded Petri nets, allowing precise specification of token-based invariants and temporal properties that go beyond traditional reachability and coverability.
  • We implement and evaluate DCModelChecker 2.0, demonstrating its ability to generate counterexamples on unbounded nets while preserving net structure, and showing competitive performance against tools like TAPAAL and ITS-Tools on selected benchmarks.

Introduction

The authors leverage bounded model checking (BMC) to verify unbounded Petri nets under concurrent semantics, addressing a gap in existing tools that mostly rely on interleaved execution and only check reachability or coverability. Prior approaches struggle to capture true concurrency and lack support for richer temporal properties like those expressible in LTL with linear integer arithmetic (LTL_LIA). Their main contribution is 2D-BMC—a novel BMC variant that bounds both execution length and token count simultaneously—and two tool versions (DCModelChecker 1.0 and 2.0) that implement this approach, enabling verification of LTL_LIA properties with either interleaved or concurrent semantics, while also generating counterexamples for debugging.

Method

The authors leverage a structured approach to model and verify unbounded Petri nets using SMT-based bounded model checking, with a focus on concurrent semantics and two-dimensional bounding. The core methodology integrates formal net semantics, SMT encoding, and a custom toolchain to handle temporal properties expressed in LTLLIALTL_{LIA}LTLLIA.

The modeling begins with the standard Petri net formalism: a tuple N=(P,T,F)N = (P, T, F)N=(P,T,F), where PPP is a set of places, TTT a set of transitions, and FFF a flow function defining directed arcs with optional weights. A marking M:PN0M: P \rightarrow \mathbb{N}_0M:PN0 represents the state of the net, indicating token distribution across places. Transitions fire based on the enabledness rule: a transition ttt is enabled at marking MMM if M(p)preN(t,p)M(p) \geq \text{pre}_N(t, p)M(p)preN(t,p) for all pPp \in PpP. Upon firing, the successor marking MM'M is computed as M(p)=M(p)F(p,t)+F(t,p)M'(p) = M(p) - F(p, t) + F(t, p)M(p)=M(p)F(p,t)+F(t,p) for all pPp \in PpP. The reachability graph captures all possible state transitions from an initial marking M0M_0M0.

As shown in the figure below, the authors distinguish between interleaving and concurrent semantics. In interleaving semantics, only one transition fires per step. In contrast, concurrent semantics allows a subset ττ\tau' \subseteq \tauττ of enabled transitions to fire simultaneously, provided the combined token consumption from pre-places does not exceed available tokens. The concurrent firing rule is defined as:

pτ:M(p)=M(p)tτF(p,t)+tτF(t,p)iftτF(p,t)M(p)0.\forall p \in \bullet \tau' : M'(p) = M(p) - \sum_{t \in \tau'} F(p, t) + \sum_{t \in \tau'} F(t, p) \quad \text{if} \quad \sum_{t \in \tau'} F(p, t) - M(p) \geq 0.pτ:M(p)=M(p)tτF(p,t)+tτF(t,p)iftτF(p,t)M(p)0.

This rule enables a more compact and realistic representation of parallel system behavior.

To enable verification via SMT solvers like Z3, the authors construct a symbolic representation of the net. They define two key matrices: Wt[m][l]Wt[m][l]Wt[m][l] for net weight changes (outgoing minus incoming arcs) and iWt[m][l]iWt[m][l]iWt[m][l] for incident weights (incoming arcs only). The transition function TFTFTF is built by combining preconditions (ensuring sufficient tokens for firing) and postconditions (updating place markings). For concurrent semantics, TFTFTF does not enforce exactly one transition firing per step, unlike interleaving semantics.

The verification target is LTLLIALTL_{LIA}LTLLIA, a linear temporal logic extended with integer arithmetic over place token counts. Formulas are built from atomic comparisons like (#p<#q)(\#p < \#q)(#p<#q) and temporal operators (X, F, G, U). To apply bounded model checking, the authors introduce a two-dimensional bound k=λ+κk = \lambda + \kappak=λ+κ, where λ\lambdaλ bounds execution steps and κ\kappaκ bounds the total number of tokens. The bounded semantics restricts the state space to runs of length λ\lambdaλ with at most κ\kappaκ tokens.

The 2D-BMC encoding [M,ψ]λ,κ[\mathcal{M}, \psi]_{\langle \lambda, \kappa \rangle}[M,ψ]λ,κ combines the SMT encoding of the net model [M]λ,κ[\mathcal{M}]_{\langle \lambda, \kappa \rangle}[M]λ,κ with the negated property ψ=¬ϕ\psi = \neg \phiψ=¬ϕ encoded as [ψ]λ,κ0[\psi]_{\langle \lambda, \kappa \rangle}^0[ψ]λ,κ0 (for loop-free paths) or l[ψ]λ,κ0l[\psi]_{\langle \lambda, \kappa \rangle}^0l[ψ]λ,κ0 (for paths with a loop back to state lll). The model encoding is built inductively: [M]0,κ[\mathcal{M}]_{\langle 0, \kappa \rangle}[M]0,κ encodes the initial state with token bounds, and [M]λ,κ[\mathcal{M}]_{\langle \lambda, \kappa \rangle}[M]λ,κ extends this by adding the transition relation T(sλ1,sλ)T(s_{\lambda-1}, s_{\lambda})T(sλ1,sλ) and token bounds for the new state.

As shown in the figure below, the 2D-BMC algorithm explores the state space by incrementing kkk and, for each kkk, iterating over possible (λ,κ)(\lambda, \kappa)(λ,κ) pairs. For each pair, it constructs and checks the SMT formula. If satisfiable, a counterexample trace is returned; if unsatisfiable, the bound is increased.

The tool architecture, depicted in the figure below, accepts a Petri net in PNML format and an LTLLIALTL_{LIA}LTLLIA property. A pre-processing module, built using ANTLR, parses and validates both inputs, constructing internal data structures. The core model checker then applies the 2D-BMC algorithm, generating SMT constraints for Z3. The solver returns either UNSAT (property holds up to the bound) or SAT with a counterexample trace (property violated).

The workflow begins by negating the property ϕ\phiϕ to ψ\psiψ and initializing the bound k=0k=0k=0. For each kkk, it iterates over (λ,κ)(\lambda, \kappa)(λ,κ) pairs summing to kkk, constructs the corresponding SMT formula, and queries Z3. The search continues until a counterexample is found or the external termination bound is reached. This systematic exploration ensures comprehensive verification within the bounded state space.

Experiment

  • Validated correctness of DCModelChecker 2.0 against ITS-Tools on LTLFireability properties, achieving 90% tool confidence, with agreement on false properties confirming reliability.
  • Demonstrated capability to verify FireabilityCardinality properties beyond MCC’s expressiveness, showing increased counterexample discovery with higher bounds.
  • Successfully verified unbounded Petri nets where other tools (ITS-Tools, TAPAAL) only report falsity, while DCModelChecker 2.0 provides counterexample traces.
  • Verified synthetic invariants in LTL_LIA, a capability absent in both MCC tools and DCModelChecker 1.0, expanding the scope of verifiable properties.
  • Tool currently lags in performance versus state-of-the-art due to counterexample generation overhead, with future work targeting concurrent semantics and optimized encoding.

The authors use DCModelChecker 2.0 to verify unbounded Petri nets and compare its performance against DCModelChecker 1.0, ITS-Tools, and TAPAAL, showing that DCModelChecker 2.0 consistently returns false properties with counterexample traces while matching the outcomes of other tools. Results indicate that DCModelChecker 2.0 is slower than ITS-Tools and TAPAAL in execution time but provides additional diagnostic value through counterexample generation. The tool’s ability to handle unbounded nets and generate traces positions it as a complementary option despite current performance limitations.

The authors use DCModelChecker 2.0 to verify LTLFireability properties against ITS-Tools, achieving a tool confidence of 0.90 by comparing results where both tools agree on false properties or where DCModelChecker 2.0 returns counterexamples. Results show that DCModelChecker 2.0 correctly identifies false properties in most cases, though it produces some erroneous outputs when ITS-Tools reports true. The tool’s 2D-BMC strategy is not complete, as indicated by UNSAT results that may become false at higher bounds.


AI로 AI 구축

아이디어에서 출시까지 — 무료 AI 코코딩, 즉시 사용 가능한 환경, 최적의 GPU 가격으로 AI 개발을 가속화하세요.

AI 협업 코딩
바로 사용 가능한 GPU
최적의 가격

HyperAI Newsletters

최신 정보 구독하기
한국 시간 매주 월요일 오전 9시 에 이번 주의 최신 업데이트를 메일로 발송합니다
이메일 서비스 제공: MailChimp