# Are there Petri net models with “checking” rather than “taking” transitions?

Is there a studied model of Petri nets where each transition only has one normal in-edge (which removes a marker from a place), but can also have "checking" edges, which only check whether there is a marker in a place?

Alternatively, each transition has at least one out-edge to each of its input places, except for one.

Such a net would model a random-permitting context grammar, but a Google Scholar search for "random permitting context" and "petri net" doesn't yield any likely candidates.

EDIT: it seems my question is not very clear, but I'm unsure exactly of how to improve it.

I'm looking for a restricted class of Petri nets: these nets can indeed be simulated by ordinary Petri nets, so I'm definitely not looking for a generalisation of Petri nets.

Unless I'm more-than-usually confused, there are Petri nets which cannot be simulated by these nets.

Perhaps my motivation and what I mean by my definition can be clarified by a further restriction: we keep the restriction of each transition having only one normal in-edge, but further disallow checking edges. In this case, we get a model (the Parikh vectors of) the context-free languages: each transition represents a production and places represent symbols, with a production deleting one symbol and adding any number of others.

Marek and Češka have shown that Petri nets can simulate any random-context language; the random-permitting context languages are a strictly smaller class (even when we ignore the order of symbols). For example $\{a^{2^n} : n \in \mathbb{N}\}$ is a random-context language but is not random-permitting context language (these languages satisfy a pumping lemma).

The Petri nets here correspond to these languages: the production $A \rightarrow XYZ$ with permitting set $\{C,D\}$ corresponds to a transition with an in-edge from $A$, out-edges to $X$, $Y$ and $Z$, and checking edges from $C$ and $D$.

• I wanted to add the tag [petri-nets] but I don't have enough rep to create new tags. – Max Mar 31 '11 at 14:14
• @Max: Thank you for suggesting the appropriate tag. I added it. – Tsuyoshi Ito Mar 31 '11 at 14:27
• I don't think it is necessary, as you can have a transition that puts the token back where it came from. There are Petri nets with inhibitor arcs if you want to check that a token is not present. – Dave Clarke Mar 31 '11 at 14:29
• The question is unclear to me. As you suggest in the second paragraph, a “checking” edge can be simulated by a pair of a usual incoming edge and a usual outgoing edge, which means that allowing “checking” edges does not change the power of the Petri net model. So what is the difference between the usual model of Petri nets and your model? – Tsuyoshi Ito Mar 31 '11 at 14:32
• Do you require that each transition has at least one “checking” incoming edge? This restriction is inessential because we can add a place which always hold one token and superficially “check” existence of a token at this place. – Tsuyoshi Ito Mar 31 '11 at 14:35