Skip to main content

Formal Verification of Petri Nets with Names

  • Conference paper
  • First Online:
Web Services, Formal Methods, and Behavioral Types (WS-FM 2014, WS-FM 2015)

Abstract

Petri nets with name creation and management have been recently introduced so as to make Petri nets able to model the dynamics of (distributed) systems equipped with channels, cyphering keys, or computing boundaries. While traditional formal properties such as boundedness, coverability, and reachability, have been thoroughly studied for this class of Petri nets, formal verification against rich temporal properties has not been investigated so far. In this paper, we attack this verification problem. We introduce sophisticated variants of first-order \(\mu \)-calculus to specify rich properties that simultaneously account for the system dynamics and the names present in its states. We then analyse the (un)decidability boundaries for the verification of such logics, by considering different notions of boundedness. Notably, our decidability results are obtained via a translation to data-centric dynamic systems, a recently devised framework for the formal specification and verification of business processes working over relational database with constraints. In this light, our results contribute to the cross-fertilization between areas that have not been extensively related so far.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 34.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 44.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    For a detailed description of LTL with freeze quantifier, the interested reader can refer to [6].

  2. 2.

    Instead of \(z_{ij}=y_{ij}\) we can also use \(z_{ij}\ne y_{ij}\) or \(\bot \) (forming a full denial constraint).

  3. 3.

    Given a database instance \(\mathcal {I}\), its active domain \(\mathtt {ADOM}(\mathcal {I})\) is the subset of \(\mathcal {C}\) such that \(u\in \mathtt {ADOM}(\mathcal {I})\) if and only if u occurs in \((\mathcal {I})\).

  4. 4.

    For convenience, and without loss of generality, we assume that all constants used inside formulas appear in \(\mathcal {I}_0\).

  5. 5.

    Its free variables are exactly the parameters of \(\alpha \), and other terms can be quantified variables or constants in \(\mathtt {ADOM}(\mathcal {I}_0)\).

References

  1. Bagheri Hariri, B., Calvanese, D., De Giacomo, G., Deutsch, A., Montali, M.: Verification of relational data-centric dynamic systems with external services. CoRR Technical report, arXiv.org e-Print archive (2012). http://arxiv.org/abs/1203.0024

  2. Bagheri Hariri, B., Calvanese, D., De Giacomo, G., Deutsch, A., Montali, M.: Verification of relational data-centric dynamic systems with external services. In: Proceedings of PODS, pp. 163–174. ACM (2013)

    Google Scholar 

  3. Bagheri Hariri, B., Calvanese, D., Deutsch, A., Montali, M.: State boundedness in data-aware dynamic systems. In: Proceedings of KR (2014)

    Google Scholar 

  4. Calvanese, D., De Giacomo, G., Montali, M.: Foundations of data aware process analysis: a database theory perspective. In: Proceedings of PODS (2013)

    Google Scholar 

  5. Decker, G., Weske, M.: Instance isolation analysis for service-oriented architectures. In: Proceedings of SCC, pp. 249–256. IEEE Computer Society (2008)

    Google Scholar 

  6. Demri, S., Lazic, R.: LTL with the freeze quantifier and register automata. ACM Trans. Comput. Log 10(3), 16 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  7. Esparza, J.: On the decidability of model checking for several \(\mu \)-calculi and petri nets. In: Tison, S. (ed.) CAPP 1994. LNCS, vol. 787, pp. 115–129. Springer, Heidelberg (1994)

    Chapter  Google Scholar 

  8. Reisig, W., Rozenberg, G. (eds.): Lectures on Petri Nets I: Basic Models. Advances in Petri Nets. LNCS, vol. 1491. Springer, Heidelberg (1998)

    MATH  Google Scholar 

  9. Rosa-Velardo, F., de Frutos-Escrig, D.: Name creation vs. replication in petri net systems. Fundam. Inform. 88(3), 329–356 (2008)

    MathSciNet  MATH  Google Scholar 

  10. Rosa-Velardo, F., de Frutos-Escrig, D.: Decidability and complexity of petri nets with unordered data. Theor. Comput. Sci. 412(34), 4439–4451 (2011)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marco Montali .

Editor information

Editors and Affiliations

A From \(\nu \)-PNs to DCDSs

A From \(\nu \)-PNs to DCDSs

We define a translation function \(\tau \) that, given a marked \(\nu \)-PN \(\overline{N}=(P,T,F,m_0)\), produces a DCDS \(\tau (\overline{N})=\langle \mathcal {D}_N,\mathcal {P}_N\rangle \), whose execution semantics faithfully reproduces that of \(\varGamma _{\overline{N}}\). The data layer of \(\tau (N)\) is \(\mathcal {D}_N=\langle \mathcal {C}_N,\mathcal {R}_N,\mathcal {E}_N,\mathcal {I}_0^N\rangle \), where:

  1. 1.

    \(\mathcal {C}_N=Id\cup T\cup P\cup Var\)

  2. 2.

    \(\mathcal {R}_N\) contains:

    • \( p_i /2\) for each \(p_i\in P\)

    • \( NewID /5= NewID (\mathsf {t},\mathsf {p},\mathsf {v},\mathsf {d},\mathsf {id})\)

    • \( FL /0\)

  3. 3.

    \(\mathcal {E}_N\) is constituted by the following constraints:

    • \(\mathcal {E}_1\) and \(\mathcal {E}_2\) ensure that the new identifiers from \( NewID \) are unique:

      $$\begin{aligned} \mathcal {E}_1 =\forall id. NewID (\_,\_,\_,id,\_) \wedge \bigvee _{p_i\in \mathcal {R}_N} p_i(id,\_) \rightarrow \bot \end{aligned}$$
      $$\begin{aligned} \mathcal {E}_2 = \begin{array}[t]{rl} \forall id,t,p,v,n,t',p',v',n'. &{} NewID (t,p,v,id,n) \wedge NewID (t',p',v',id,n') \\ &{}\qquad \rightarrow t = t' \wedge p = p' \wedge v = v' \wedge n = n' \end{array} \end{aligned}$$
    • \(\mathcal {E}_3\) and \(\mathcal {E}_4\) ensure the uniqueness of the fresh names stored in \( NewID \) (here \(\varUpsilon _N\) contains all the fresh variables present in N):

      $$\begin{aligned} \mathcal {E}_3 =\forall n.\bigvee _{\mathsf {c} \in \varUpsilon _N} NewID (\_,\_,\mathsf {c},\_,n) \wedge \bigvee _{i \in \{1,\ldots ,5\}} p_i(\_,n) \rightarrow \bot \end{aligned}$$
      $$\begin{aligned} \mathcal {E}_4 = \begin{array}[t]{rl} \forall n_1,n_2.\bigvee \limits _{\mathsf {\nu _1},\mathsf {\nu _2} \in \varUpsilon _N, \mathsf {\nu _1}\ne \mathsf {\nu _2}} &{}\Bigl ( NewID (\_,\_,\mathsf {\nu _1},\_,n_1) \wedge NewID (\_,\_,\mathsf {\nu _2},\_,n_2)\\ &{}\qquad \rightarrow n_1 \ne n_2\Bigr ) \end{array} \end{aligned}$$
  4. 4.

    for each \(p\in P\) such that \(M_0(p)\ne \emptyset \), \(\mathcal {I}_0^N\) is containing the following set of facts:

    $$\begin{aligned} \Bigl \lbrace p (\mathsf {id}^p_k,\mathsf {d}):&\mathsf {d}\in M_0(p),\, \mathsf {id}^p_k\in X_p\subset \mathbb {N},\,\forall i,j,. i\ne j \text { we have }\mathsf {id}^p_i\ne \mathsf {id}^p_j,\\&\text {and } \forall p,p^\prime . X_p\cap X_{p^\prime }=\emptyset \Bigr \rbrace \end{aligned}$$
Fig. 4.
figure 4

Marked \(\nu \)-PN representing all possible infinite data words with labels \(\{\sigma _1,\sigma _2\}\).

The process layer of \(\tau (N)\) is \(\mathcal {P}_N=\langle \mathcal {F}_N,\mathcal {P}_N,\rho _N\rangle \), where:

  1. 1.

    \(\mathcal {F}_N\) includes the following non-deterministic services:

    • a new id generator \( genID (\mathsf {t},\mathsf {p},\mathsf {v},\mathsf {i})\),

    • a fresh data generator \( genFresh (\nu )\).

  2. 2.

    Sets of process and action components \(\rho _N\) and \(\mathcal {A}_N\) are constructed as follows:

    • for each transition \(t\in T\) we define (i) a process

      $$\begin{aligned} \bigwedge _{CA^1_G}(p_j(id_k^j,v)\wedge id_k^j\ne id_m^j)\wedge \lnot FL \mapsto gen_t(\vec {v},\vec {id}), \end{aligned}$$

    where \(CA^1_G=\Big \lbrace p_j\in ^\bullet t,\, m,k\in \{1,\ldots ,|pre(t,p_j)|\},\,m\ne k,\, v\in pre(t,p_j)\Big \rbrace \) is the guard condition, and (ii) a corresponding action \(gen_t(\vec {v},\vec {id})=\)

    $$\begin{aligned} \{\begin{array}[t]{rcl} p_j(id,n) \wedge \bigwedge \nolimits _{i \in I_{p_j}} id \ne id_i^j &{} \rightsquigarrow &{} \{p_j(id,n)\}\quad \text {for} p_j \in {^\bullet t}\\ &{}&{} \left. \text { and } I_{p_j}=\{1,\ldots ,|pre(t,p_j)|\}\right\} \\ p_i(id,n) &{} \rightsquigarrow &{} \{p_i(id,n)\} \quad \text {for} p_i \in P\setminus {^\bullet t}\\ true &{} \rightsquigarrow &{}\{ NewID (\mathsf {t},\mathsf {p_k},\mathsf {x}, genID(\mathsf {t},\mathsf {p_k},\mathsf {x},\mathsf {num_{\mathsf {x}}}) ,v):A_1\},\\ \\ true &{} \rightsquigarrow &{}\{ NewID (\mathsf {t},\mathsf {p_k},\mathsf {\nu }, genID(\mathsf {t},\mathsf {p_k},\mathsf {\nu },\mathsf {1}) ,\\ &{}&{} {\{}genName(\mathsf {\nu })):A_2\},\\ true &{}\rightsquigarrow &{} FL ~\}, \end{array} \end{aligned}$$

    where \(A_1\) and \(A_2\) are two conditions which are defined as follows:

    1. (a)

      \(A_1=\Big \lbrace p_k\in t^\bullet ,\mathsf {x}\in post(t,p_j) \setminus \varUpsilon , \mathsf {num_{\mathsf {x}}} = \{1,\ldots ,post(t,p_j)(var)\} \Big \rbrace \),

    2. (b)

      \(A_2=\Big \lbrace p_k\in t^\bullet , \nu \in post(t,p_j)\cap \varUpsilon \}\Big \rbrace \);

    • define an additional action

    $$\begin{aligned} transf () = \{\begin{array}[t]{rcl} p_i (id,n) &{} \rightsquigarrow &{} \{ p_i (id,n)\} \qquad \text { for } p_i \in P\\ NewId (\_,\mathsf {p_j},\_,id,n) &{} \rightsquigarrow &{} \{ p_j (id,n)\} \qquad \text { for } p_j \in P ~\} \end{array} \end{aligned}$$

    and a condition-action rule corresponding to it:

    $$\begin{aligned} FL \mapsto transf () \end{aligned}$$

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Montali, M., Rivkin, A. (2016). Formal Verification of Petri Nets with Names. In: Hildebrandt, T., Ravara, A., van der Werf, J., Weidlich, M. (eds) Web Services, Formal Methods, and Behavioral Types. WS-FM WS-FM 2014 2015. Lecture Notes in Computer Science(), vol 9421. Springer, Cham. https://doi.org/10.1007/978-3-319-33612-1_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-33612-1_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-33611-4

  • Online ISBN: 978-3-319-33612-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics