Abstract. Cunf is a tool for building and analyzing unfoldings of Petri nets with read arcs. An unfolding represents the behaviour of a net by a partial order, effectively coping with the state-explosion problem stemming from the interleaving of concurrent actions. C-net unfoldings can be up to exponentially smaller than Petri net unfoldings, and recent work proposed algorithms for their construction and verification. Cunf is the first implementation of these techniques, it has been carefully engineered and optimized to ensure that the theoretical gains are put into practice.
OverviewPetri nets are a model for concurrent, distributed systems. Unfoldings are a well-established technique for verifying properties of Petri nets; their use for this purpose was initially proposed by McMillan [6]. The unfolding of a (Petri) net is another net of acyclic structure that fully represents the state-space (reachable markings) of the first, see, e.g., fig. 1 (c). Because unfoldings represent behaviour by acyclic structures rather than by interleaved actions, they are often exponentially smaller than the state-space of N , and never larger than it.Recently, the unfolding construction was extended to Petri nets with read arcs, also called contextual nets (c-nets) [2]. This extension is partially motivated by the fact that c-net unfoldings can yet again be exponentially smaller than Petri net unfoldings. In this paper, we present Cunf the first tool for constructing and analyzing c-net unfoldings, freely available from [8]. The theoretical basis of the tool was presented in [2,1,9].We assume the reader is familiar to Petri nets [7]. A c-net is a Petri net where in addition to the ordinary arcs (arrows) between places and transitions, one may use read arcs. Figure 1 (a) shows a c-net, read arcs are the undirected lines; we say that t 2 reads p 4 . A marking enables t 2 if it puts tokens on places p 1 and p 4 ; but firing t 2 only consumes the token in p 1 , the token in p 4 remains there.Every c-net can be seen as the marking-equivalent Petri net that results from replacing read arcs for pairs of arcs, as in fig. 1 (a) and (b). Although both nets have the same markings, remark, however, that t 1 , t 2 are concurrent in (a), both read p 4 at the same time, but not in (b), as they compete for the token in p 4 .The unfolding of a bounded c-net N is another well-defined, finite, acyclic c-net P N , where each place (resp. transition) of P N is labelled by a place (resp. transition) of N and such that runs of P N are labelled by runs of N .