**7. A Boolean Petri net whose reachability graph is homomorphic to the complete lattice**

As mentioned already, Boolean Petri nets generating all the 2*<sup>n</sup>* binary *n*-vectors as their marking vectors are not only of theoretical interest but also are of practical importance. We demonstrate the existence of a disconnected 1-safe Petri net whose reachability tree is homomorphic to the *n*-dimensional complete lattice *Ln*. This makes the problem of characterizing the crisp Boolean Petri nets appear quite intricate.

**Definition 4.** *Given any graph G* = (*V*, *E*)*, by a homomorphism of G we mean a partition* {*V*1, *V*2,..., *Vt*} *of its vertex-set V*(*G*) := *V such that for any i* ∈ {1, 2, . . . , *t*} *no two distinct vertices in Vi are adjacent; in other words, Vi is an independent set of G. In general, given any partition π* = {*V*1, *V*2,..., *Vt*} *(not necessarily a homomorphism) of G, the partition graph with respect to π of G, denoted π*(*G*)*, is the graph whose vertex-set is π and any two vertices Vi and Vj are adjacent whenever there exist vertices x* ∈ *Vi and y* ∈ *Vj such that x and y are adjacent in G, that is, whenever, xy* ∈ *E*(*G*)*. If, in particular, π is a homomorphism then π*(*G*) *is called a homomorphic image of G; further, a graph H is homomorphic to a graph G if there exists a homomorphism π of H such that π*(*H*) ∼= *G (read as "π*(*H*) *is 'isomorphic to' G").*

**Theorem 4.** *[7] Let Cn* = (*P*, *T*, *I*−, *I*+, *μ*0) *be the* 1*-safe Petri net consisting of n connected components, each isomorphic to C* :<sup>=</sup> −→ *. Then the reachability tree of Cn is homomorphic to the n-dimensional complete lattice Ln.*

as in the first step giving the marking (0, 0). Subsequently, at (1, 0) transition *t*<sup>1</sup> is enabled, which fires in the same direction as in its previous step of firing giving the marking (0, 0). After this second step of firing, both the transitions *t*<sup>1</sup> and *t*<sup>2</sup> become dead at (0, 0). Thus, it is clear from Figure 11 that the reachability tree *L*<sup>2</sup> of *C*2, seen as a connected acyclic digraph,

**Step1.** Take two copies of *L*1. In the first copy, augment each vector of *L*<sup>1</sup> by one extra coordinate position on the right by putting a 0 entry in that position and denote the resulting

coordinate position on the right by filling it with 1 and denote the resulting labeled copy of *L*<sup>1</sup>

joining those pairs of nodes whose marking vectors are at unit Hamming distance from each other. Direct each of these edges from the node, represented by its marking vector, at which *t*<sup>2</sup> fires to the node whose label (i.e., marking vector) gives the result of that firing. Accordingly,

manner as shown in Figure 12. In this way, we see that the resulting discrete structure *L*∗

1 *t*

(0, 0)

(1, 0)

2*t*

\* <sup>2</sup> *L* :

**Figure 12.** Augmented lattices and resulting complete lattice for 2 places

<sup>2</sup>*<sup>t</sup>* <sup>1</sup> *t*

(0, 0)

(1, 0) (0,1)

(1,1)

*n* = 3. That is, we have the 1-safe Petri net *C*<sup>3</sup> consisting of three connected components each isomorphic to *C*∗ as shown in Figure 13. In *C*3, all the three transitions *t*1, *t*2, *t*<sup>3</sup> are enabled. Hence, after firing the transitions *t*1, *t*<sup>2</sup> and *t*<sup>3</sup> successively at (1, 1, 1) we get the marking vectors (0, 1, 1),(1, 0, 1) and (1, 1, 0) respectively, in first step. Right here, we fix the directions of *t*1, *t*<sup>2</sup> and *t*<sup>3</sup> so as to be orthogonal to each other. Further, at (0, 1, 1) the transitions

1 *t*

<sup>4</sup> <sup>=</sup> 22 nodes which correspond to 22 binary vectors (*a*1, *<sup>a</sup>*2), *<sup>a</sup>*1, *<sup>a</sup>*<sup>2</sup> ∈ {0, 1}. Clearly, *<sup>L</sup>*<sup>∗</sup>

*t* <sup>0</sup> <sup>1</sup> *L* : <sup>1</sup>

nothing but the reachability tree *L*<sup>2</sup> of *C*2, seen as a connected acyclic digraph. Next, consider

<sup>1</sup>. Similarly, in the second copy, augment each vector by one extra

<sup>1</sup> and augment the new 'edges' (i.e., undirected line segments)

(1,1)

(0,1)

1

<sup>1</sup> *L* :

<sup>1</sup> to exactly one node in *<sup>L</sup>*<sup>0</sup>

<sup>1</sup> in a bijective

Boolean Petri Nets 395

<sup>2</sup> has

<sup>2</sup> is

has exactly 4 <sup>=</sup> 22 binary vectors (*a*1, *<sup>a</sup>*2), *<sup>a</sup>*1, *<sup>a</sup>*<sup>2</sup> ∈ {0, 1} as the marking vectors of *<sup>C</sup>*2.

We can construct *L*<sup>2</sup> tactically from *L*<sup>1</sup> as follows.

<sup>1</sup> <sup>∪</sup> *<sup>L</sup>*<sup>1</sup>

Thus, the directed arcs labeled *t*<sup>2</sup> join every node of *L*<sup>1</sup>

labeled copy of *L*<sup>1</sup> as *L*<sup>0</sup>

**Step2.** Take the union *L*<sup>0</sup>

label each of such arcs by the label *t*2.

as *L*<sup>1</sup> 1.

*Proof.* We prove this result by using the PMI on the number of connected components each isomorphic to *C*.

Let *n* = 1. That is, *C*<sup>1</sup> has only one connected component *C*, whence *C*<sup>1</sup> = *C*. Then, the reachability tree of *C*<sup>1</sup> is the 1-dimensional complete lattice *L*1, in which the direction of the 'link' (or, 'arc') ((1),(0)) between the two 1-dimensional marking vectors (1) and (0) is shown as the 'vertical' one, as in Figure 10. The arc ((1),(0)) in *L*1, labeled as *t*1, signifies the fact that the transition *t*<sup>1</sup> fires at (1), moving the only token out of the place *p*<sup>1</sup> resulting in the next state of the Petri net in which *t*<sup>1</sup> is 'dead' in the sense that it no longer fires at (0). Therefore, the next state of the Petri net *C*<sup>1</sup> is determined by the *zero vector* (0) as the marking vector of *C*1. Thus, *C*<sup>1</sup> has just two states, viz., the 'active' one represented by the 1-dimensional 'unit vector' (1) and the 'dead' one represented by the 1-dimensional zero vector (0). Hence, the entire 'dynamics' of *C*<sup>1</sup> is completely represented by *L*1. Next, consider *n* = 2. That is, we

**Figure 10.** Lattice *L*<sup>1</sup>

have the 1-safe Petri net *C*2, consisting of two connected components, each isomorphic to *C* as shown in Figure 11, along with its reachability tree (seen as a connected acyclic digraph) that is isomorphic to the 2-dimensional complete lattice *L*2. In *C*2, the transitions *t*<sup>1</sup> and *t*<sup>2</sup> are

**Figure 11.** Petri net *C*<sup>2</sup> and its directed reachability tree *L*<sup>2</sup>

both enabled. After firing *t*<sup>1</sup> and *t*<sup>2</sup> at the node (1, 1) successively, in the first step, we get the marking vectors (0, 1) and (1, 0) respectively. Here, we fix the direction of *t*<sup>2</sup> to be 'orthogonal' to that of *t*<sup>1</sup> in *L*2. Further, at (0, 1) the transition *t*<sup>2</sup> is enabled, which fires in the same direction as in the first step giving the marking (0, 0). Subsequently, at (1, 0) transition *t*<sup>1</sup> is enabled, which fires in the same direction as in its previous step of firing giving the marking (0, 0). After this second step of firing, both the transitions *t*<sup>1</sup> and *t*<sup>2</sup> become dead at (0, 0). Thus, it is clear from Figure 11 that the reachability tree *L*<sup>2</sup> of *C*2, seen as a connected acyclic digraph, has exactly 4 <sup>=</sup> 22 binary vectors (*a*1, *<sup>a</sup>*2), *<sup>a</sup>*1, *<sup>a</sup>*<sup>2</sup> ∈ {0, 1} as the marking vectors of *<sup>C</sup>*2.

We can construct *L*<sup>2</sup> tactically from *L*<sup>1</sup> as follows.

14 Will-be-set-by-IN-TECH

**Theorem 4.** *[7] Let Cn* = (*P*, *T*, *I*−, *I*+, *μ*0) *be the* 1*-safe Petri net consisting of n connected components, each isomorphic to C* :<sup>=</sup> −→ *. Then the reachability tree of Cn is homomorphic to*

*Proof.* We prove this result by using the PMI on the number of connected components each

Let *n* = 1. That is, *C*<sup>1</sup> has only one connected component *C*, whence *C*<sup>1</sup> = *C*. Then, the reachability tree of *C*<sup>1</sup> is the 1-dimensional complete lattice *L*1, in which the direction of the 'link' (or, 'arc') ((1),(0)) between the two 1-dimensional marking vectors (1) and (0) is shown as the 'vertical' one, as in Figure 10. The arc ((1),(0)) in *L*1, labeled as *t*1, signifies the fact that the transition *t*<sup>1</sup> fires at (1), moving the only token out of the place *p*<sup>1</sup> resulting in the next state of the Petri net in which *t*<sup>1</sup> is 'dead' in the sense that it no longer fires at (0). Therefore, the next state of the Petri net *C*<sup>1</sup> is determined by the *zero vector* (0) as the marking vector of *C*1. Thus, *C*<sup>1</sup> has just two states, viz., the 'active' one represented by the 1-dimensional 'unit vector' (1) and the 'dead' one represented by the 1-dimensional zero vector (0). Hence, the entire 'dynamics' of *C*<sup>1</sup> is completely represented by *L*1. Next, consider *n* = 2. That is, we

(1)

have the 1-safe Petri net *C*2, consisting of two connected components, each isomorphic to *C* as shown in Figure 11, along with its reachability tree (seen as a connected acyclic digraph) that is isomorphic to the 2-dimensional complete lattice *L*2. In *C*2, the transitions *t*<sup>1</sup> and *t*<sup>2</sup> are

<sup>2</sup> *p* <sup>2</sup>*t*

2*t*

1 *t*

2*t*

1 *t* (1,1)

both enabled. After firing *t*<sup>1</sup> and *t*<sup>2</sup> at the node (1, 1) successively, in the first step, we get the marking vectors (0, 1) and (1, 0) respectively. Here, we fix the direction of *t*<sup>2</sup> to be 'orthogonal' to that of *t*<sup>1</sup> in *L*2. Further, at (0, 1) the transition *t*<sup>2</sup> is enabled, which fires in the same direction

(0,1) (1, 0)

(0, 0)

1 *t*

1 *p*

<sup>2</sup> *L* :

<sup>2</sup> *C* :

**Figure 11.** Petri net *C*<sup>2</sup> and its directed reachability tree *L*<sup>2</sup>

(0)

1 *t*

*the n-dimensional complete lattice Ln.*

isomorphic to *C*.

**Figure 10.** Lattice *L*<sup>1</sup>

**Step1.** Take two copies of *L*1. In the first copy, augment each vector of *L*<sup>1</sup> by one extra coordinate position on the right by putting a 0 entry in that position and denote the resulting labeled copy of *L*<sup>1</sup> as *L*<sup>0</sup> <sup>1</sup>. Similarly, in the second copy, augment each vector by one extra coordinate position on the right by filling it with 1 and denote the resulting labeled copy of *L*<sup>1</sup> as *L*<sup>1</sup> 1.

**Step2.** Take the union *L*<sup>0</sup> <sup>1</sup> <sup>∪</sup> *<sup>L</sup>*<sup>1</sup> <sup>1</sup> and augment the new 'edges' (i.e., undirected line segments) joining those pairs of nodes whose marking vectors are at unit Hamming distance from each other. Direct each of these edges from the node, represented by its marking vector, at which *t*<sup>2</sup> fires to the node whose label (i.e., marking vector) gives the result of that firing. Accordingly, label each of such arcs by the label *t*2.

Thus, the directed arcs labeled *t*<sup>2</sup> join every node of *L*<sup>1</sup> <sup>1</sup> to exactly one node in *<sup>L</sup>*<sup>0</sup> <sup>1</sup> in a bijective manner as shown in Figure 12. In this way, we see that the resulting discrete structure *L*∗ <sup>2</sup> has <sup>4</sup> <sup>=</sup> 22 nodes which correspond to 22 binary vectors (*a*1, *<sup>a</sup>*2), *<sup>a</sup>*1, *<sup>a</sup>*<sup>2</sup> ∈ {0, 1}. Clearly, *<sup>L</sup>*<sup>∗</sup> <sup>2</sup> is nothing but the reachability tree *L*<sup>2</sup> of *C*2, seen as a connected acyclic digraph. Next, consider

**Figure 12.** Augmented lattices and resulting complete lattice for 2 places

*n* = 3. That is, we have the 1-safe Petri net *C*<sup>3</sup> consisting of three connected components each isomorphic to *C*∗ as shown in Figure 13. In *C*3, all the three transitions *t*1, *t*2, *t*<sup>3</sup> are enabled. Hence, after firing the transitions *t*1, *t*<sup>2</sup> and *t*<sup>3</sup> successively at (1, 1, 1) we get the marking vectors (0, 1, 1),(1, 0, 1) and (1, 1, 0) respectively, in first step. Right here, we fix the directions of *t*1, *t*<sup>2</sup> and *t*<sup>3</sup> so as to be orthogonal to each other. Further, at (0, 1, 1) the transitions

(0,1,1)

Boolean Petri Nets 397

2*t*

(0, 0,1)

1*t*

( 0, 1, 1)

*<sup>k</sup>*. Similarly, in the second copy, augment each vector by one

*<sup>k</sup>* and augment the new 'edges' (i.e., undirected line segments)

*<sup>k</sup>* whose nodes are labeled by the 2*<sup>k</sup>* (*<sup>k</sup>* <sup>+</sup> <sup>1</sup>)-dimensional vectors in *<sup>A</sup>*<sup>0</sup>

*<sup>k</sup>* <sup>∪</sup> *<sup>L</sup>*<sup>1</sup>

*<sup>k</sup>* whose nodes are labeled by the

*<sup>k</sup>* is labeled by one of the transitions

*<sup>k</sup>* according to whether *i* �= *j* or *i* = *j*; thus, by Step 1

2*t*

1*t*

(1, 0,1)

2*t*

\* <sup>3</sup> *L* :

*n* = *k* + 1.

(1, 1, . . . , 1).

copy of *Lk* as *L*<sup>1</sup>

resulting labeled copy of *Lk* as *L*<sup>0</sup>

*k*.

**Step2.** Take the union *L*<sup>0</sup>

'label-isomorphic' to *L*<sup>0</sup>

or parallel directions in each of *L*<sup>0</sup>

1*t*

0

2*t*

(1, 0, 0) ( 0, 1, 0 )

(1, 1, 0 )

**Figure 14.** Augmented lattices and resulting complete lattice

*<sup>k</sup>* <sup>∪</sup> *<sup>L</sup>*<sup>1</sup>

Accordingly, label each of such arcs by the label *tk*+1.

2*<sup>k</sup>* (*k* + 1)-dimensional vectors in *A*1. Every arc in *L*<sup>0</sup>

and the subdigraph induced by *A*<sup>1</sup> is 'label-isomorphic' to *L*<sup>1</sup>

*<sup>k</sup>* and *<sup>L</sup>*<sup>1</sup>

<sup>2</sup> *L* : <sup>1</sup>

( 0, 0, 0)

1*t*

1*t*

1*t*

(1, 1, 1) (1,1, 0)

2 *t*

3 *t*

<sup>1</sup> <sup>3</sup> *<sup>t</sup> <sup>t</sup>*

(1, 0, 0 ) (0, 0,1) ( 0 ,1, 0 )

<sup>2</sup> *<sup>t</sup>* <sup>2</sup> *<sup>t</sup>*

2 *t*

tree of *Ck*, seen as a connected acyclic digraph. Now, we will prove that the result is true for

Note that, in *Ck*, all the *k* transitions *t*1, *t*2,..., *tk* are enabled at the *k*-dimensional unit vector

**Step1.** Take two copies of *Lk*. In the first copy, augment each vector of *Lk* by one extra coordinate position on the extreme right by putting a 0 entry in that position; denote the

extra coordinate position on the extreme right by filling it with 1; denote the resulting labeled

joining those pairs of nodes whose marking vectors are at unit Hamming distance from each other. Direct each of these edges from the node, represented by its marking vector, at which *tk*<sup>+</sup><sup>1</sup> fires, to the node whose label (i.e., marking vector) gives the result of that firing.

It is now enough to show that *Lk*<sup>+</sup><sup>1</sup> is indeed isomorphic to the reachability tree of *Ck*+1, seen as a connected acyclic digraph. Towards this end, consider the sets *A*<sup>0</sup> = {(*a*1, *a*2,..., *ak*<sup>+</sup>1) : *ak*<sup>+</sup><sup>1</sup> = 0} and *A*<sup>1</sup> = {(*a*1, *a*2,..., *ak*<sup>+</sup>1) : *ak*<sup>+</sup><sup>1</sup> = 1} Clearly, the subdigraph induced by *A*<sup>0</sup> is

*t*1, *t*2,..., *tk* in such a way that for any two indices *i*, *j* ∈ {1, 2, . . . , *k*} *ti* and *tj* are in orthogonal

(1, 1, 1)

1*t*

3 *t*

(1, 0, 1)

3 *t*

(0, 0, 0)

<sup>2</sup> *L* :

**Figure 13.** Petri net *C*<sup>3</sup> with 3 places and its complete lattice

*t*<sup>2</sup> and *t*<sup>3</sup> are enabled. After firing them successively we get the marking vectors (0, 0, 1) and (0, 1, 0), respectively. Subsequently, firing *t*<sup>1</sup> and *t*<sup>3</sup> at (1, 0, 1) will give the marking vectors (0, 0, 1) and (1, 0, 0) respectively, whereas the firing of *t*<sup>1</sup> and *t*<sup>2</sup> at (1, 1, 0) give the marking vectors (0, 1, 0) and (1, 0, 0). On continuing the process of firing in the next (i.e., the third) step we get the marking vector (0, 0, 0) at which no transition is enabled. So, we have the reachability tree *L*<sup>3</sup> of *C*3, which is isomorphic to the 3-dimensional complete lattice *L*3, seen as a connected acyclic digraph.

We can construct *L*<sup>3</sup> from *L*<sup>2</sup> as follows.

**Step1.** Take two copies of *L*2. In the first copy, augment each vector of *L*<sup>2</sup> by one extra coordinate position on the extreme right by putting a 0 entry in that position; denote the resulting labeled copy of *L*<sup>2</sup> as *L*<sup>0</sup> <sup>2</sup>. Similarly, in the second copy, augment each vector by one extra coordinate position on the extreme right by filling it with 1; denote the resulting labeled copy of *L*<sup>2</sup> as *L*<sup>1</sup> 2.

**Step2.** Take the union *L*<sup>0</sup> <sup>2</sup> <sup>∪</sup> *<sup>L</sup>*<sup>1</sup> <sup>2</sup> and augment the new 'edges' (i.e., undirected line segments) joining those pairs of nodes whose marking vectors are at unit Hamming distance from each other. Direct each of these edges from the node, represented by its marking vector, at which *t*<sup>3</sup> fires, to the node whose label (i.e., marking vector) gives the result of that firing. Accordingly, label each of such arcs by the label *t*3.

Thus, the directed arcs labeled *t*<sup>3</sup> join every node of *L*<sup>1</sup> <sup>2</sup> to exactly one node in *<sup>L</sup>*<sup>0</sup> <sup>2</sup> in a bijective manner as shown in Figure 14. In this way, we see that the resulting discrete structure *L*∗ <sup>3</sup> has <sup>8</sup> <sup>=</sup> 23 nodes which correspond to 23 binary vectors (*a*1, *<sup>a</sup>*2, *<sup>a</sup>*3), *<sup>a</sup>*1, *<sup>a</sup>*2, *<sup>a</sup>*<sup>3</sup> ∈ {0, 1}. Clearly, *<sup>L</sup>*<sup>∗</sup> 3 is nothing but the reachability tree *L*<sup>3</sup> of *C*3, seen as a connected acyclic digraph. Hence, let us assume that the result is true for *n* = *k*. That is, we have the 1-safe Petri net *Ck* consisting of *k* connected components each isomorphic to *C*<sup>∗</sup> and *Lk* is isomorphic to the reachability

**Figure 14.** Augmented lattices and resulting complete lattice

16 Will-be-set-by-IN-TECH

<sup>2</sup>*<sup>t</sup>* <sup>2</sup>*<sup>t</sup>*

2*t*

(1,1,1)

1 *t*

(0,1,1)

<sup>2</sup>. Similarly, in the second copy, augment each vector by one

<sup>2</sup> and augment the new 'edges' (i.e., undirected line segments)

<sup>2</sup> to exactly one node in *<sup>L</sup>*<sup>0</sup>

<sup>2</sup> in a bijective

<sup>3</sup> has

3

3 *t*

(1, 0,1)

3*t*

(0, 0, 0)

1 *t*

2*t*

<sup>1</sup> <sup>3</sup> *<sup>t</sup> <sup>t</sup>*

(1, 0, 0) (0, 0,1) ( 0, 1, 0)

1 *t*

*t*<sup>2</sup> and *t*<sup>3</sup> are enabled. After firing them successively we get the marking vectors (0, 0, 1) and (0, 1, 0), respectively. Subsequently, firing *t*<sup>1</sup> and *t*<sup>3</sup> at (1, 0, 1) will give the marking vectors (0, 0, 1) and (1, 0, 0) respectively, whereas the firing of *t*<sup>1</sup> and *t*<sup>2</sup> at (1, 1, 0) give the marking vectors (0, 1, 0) and (1, 0, 0). On continuing the process of firing in the next (i.e., the third) step we get the marking vector (0, 0, 0) at which no transition is enabled. So, we have the reachability tree *L*<sup>3</sup> of *C*3, which is isomorphic to the 3-dimensional complete lattice *L*3, seen

**Step1.** Take two copies of *L*2. In the first copy, augment each vector of *L*<sup>2</sup> by one extra coordinate position on the extreme right by putting a 0 entry in that position; denote the

extra coordinate position on the extreme right by filling it with 1; denote the resulting labeled

joining those pairs of nodes whose marking vectors are at unit Hamming distance from each other. Direct each of these edges from the node, represented by its marking vector, at which *t*<sup>3</sup> fires, to the node whose label (i.e., marking vector) gives the result of that firing. Accordingly,

manner as shown in Figure 14. In this way, we see that the resulting discrete structure *L*∗

<sup>8</sup> <sup>=</sup> 23 nodes which correspond to 23 binary vectors (*a*1, *<sup>a</sup>*2, *<sup>a</sup>*3), *<sup>a</sup>*1, *<sup>a</sup>*2, *<sup>a</sup>*<sup>3</sup> ∈ {0, 1}. Clearly, *<sup>L</sup>*<sup>∗</sup>

is nothing but the reachability tree *L*<sup>3</sup> of *C*3, seen as a connected acyclic digraph. Hence, let us assume that the result is true for *n* = *k*. That is, we have the 1-safe Petri net *Ck* consisting of *k* connected components each isomorphic to *C*<sup>∗</sup> and *Lk* is isomorphic to the reachability

3*t*

1 *p*

2 *p*

3 *p*

(1,1, 0)

<sup>3</sup> *L* :

**Figure 13.** Petri net *C*<sup>3</sup> with 3 places and its complete lattice

<sup>2</sup> <sup>∪</sup> *<sup>L</sup>*<sup>1</sup>

Thus, the directed arcs labeled *t*<sup>3</sup> join every node of *L*<sup>1</sup>

as a connected acyclic digraph.

resulting labeled copy of *L*<sup>2</sup> as *L*<sup>0</sup>

2.

label each of such arcs by the label *t*3.

**Step2.** Take the union *L*<sup>0</sup>

copy of *L*<sup>2</sup> as *L*<sup>1</sup>

We can construct *L*<sup>3</sup> from *L*<sup>2</sup> as follows.

<sup>3</sup> *C* :

2*t*

3*t*

1 *t*

> tree of *Ck*, seen as a connected acyclic digraph. Now, we will prove that the result is true for *n* = *k* + 1.

> Note that, in *Ck*, all the *k* transitions *t*1, *t*2,..., *tk* are enabled at the *k*-dimensional unit vector (1, 1, . . . , 1).

> **Step1.** Take two copies of *Lk*. In the first copy, augment each vector of *Lk* by one extra coordinate position on the extreme right by putting a 0 entry in that position; denote the resulting labeled copy of *Lk* as *L*<sup>0</sup> *<sup>k</sup>*. Similarly, in the second copy, augment each vector by one extra coordinate position on the extreme right by filling it with 1; denote the resulting labeled copy of *Lk* as *L*<sup>1</sup> *k*.

> **Step2.** Take the union *L*<sup>0</sup> *<sup>k</sup>* <sup>∪</sup> *<sup>L</sup>*<sup>1</sup> *<sup>k</sup>* and augment the new 'edges' (i.e., undirected line segments) joining those pairs of nodes whose marking vectors are at unit Hamming distance from each other. Direct each of these edges from the node, represented by its marking vector, at which *tk*<sup>+</sup><sup>1</sup> fires, to the node whose label (i.e., marking vector) gives the result of that firing. Accordingly, label each of such arcs by the label *tk*+1.

> It is now enough to show that *Lk*<sup>+</sup><sup>1</sup> is indeed isomorphic to the reachability tree of *Ck*+1, seen as a connected acyclic digraph. Towards this end, consider the sets *A*<sup>0</sup> = {(*a*1, *a*2,..., *ak*<sup>+</sup>1) : *ak*<sup>+</sup><sup>1</sup> = 0} and *A*<sup>1</sup> = {(*a*1, *a*2,..., *ak*<sup>+</sup>1) : *ak*<sup>+</sup><sup>1</sup> = 1} Clearly, the subdigraph induced by *A*<sup>0</sup> is 'label-isomorphic' to *L*<sup>0</sup> *<sup>k</sup>* whose nodes are labeled by the 2*<sup>k</sup>* (*<sup>k</sup>* <sup>+</sup> <sup>1</sup>)-dimensional vectors in *<sup>A</sup>*<sup>0</sup> and the subdigraph induced by *A*<sup>1</sup> is 'label-isomorphic' to *L*<sup>1</sup> *<sup>k</sup>* whose nodes are labeled by the 2*<sup>k</sup>* (*k* + 1)-dimensional vectors in *A*1. Every arc in *L*<sup>0</sup> *<sup>k</sup>* <sup>∪</sup> *<sup>L</sup>*<sup>1</sup> *<sup>k</sup>* is labeled by one of the transitions *t*1, *t*2,..., *tk* in such a way that for any two indices *i*, *j* ∈ {1, 2, . . . , *k*} *ti* and *tj* are in orthogonal or parallel directions in each of *L*<sup>0</sup> *<sup>k</sup>* and *<sup>L</sup>*<sup>1</sup> *<sup>k</sup>* according to whether *i* �= *j* or *i* = *j*; thus, by Step 1

and the induction hypothesis, each of the *k*2*k*−<sup>1</sup> arcs in *L*<sup>0</sup> *<sup>k</sup>* (respectively, in *<sup>L</sup>*<sup>1</sup> *<sup>k</sup>*) represents one of the transitions *t*1, *t*2,..., *tk* fired in accordance with the firing rule, yielding the next state marking vector from its previous state marking vector that is at unit Hamming distance from the former. Now, by Step 2, the edges joining those pairs of nodes whose marking vectors are at unit Hamming distance from each other are directed in such a way that each of the resulting arcs represents the firing of a new transition *tk*<sup>+</sup><sup>1</sup> at the node, represented by its marking vector in the reachability tree of *Ck*+1, yielding the node of the reachability tree of *Ck*<sup>+</sup><sup>1</sup> whose label (i.e., marking vector) gives the result of that firing. Accordingly, label each of such arcs by the label *tk*+1. Since no two marking vectors in *A*<sup>0</sup> or in *A*<sup>1</sup> are interconnected by an arc labeled *tk*<sup>+</sup><sup>1</sup> in the above scheme, it follows that every arc labeled *tk*<sup>+</sup><sup>1</sup> has its initial node in *A*<sup>1</sup> and terminal node in *A*0, signifying the fact that *tk*<sup>+</sup><sup>1</sup> fires at its initial node in *A*<sup>1</sup> and yields the next state marking vector that belongs to *A*0. Further, no two of these arcs have a common node (whence we say that they are *independent*). Also, every node in *A*<sup>1</sup> is joined to a unique node in *A*<sup>0</sup> at Hamming distance one by an arc labeled *tk*<sup>+</sup><sup>1</sup> in a bijective way and, therefore, the number of such arcs is 2*k*.

Next, consider the node labeled (0, 0, . . . , 0) in *Lk*+1. The only arcs incoming at this node are from the nodes that are at unit Hamming distance from it, viz., those that are labeled by the elementary coordinate vectors (1, 0, 0, . . . , 0), (0, 1, 0, . . . , 0), (0, 0, 1, . . . , 0), ..., (0, 0, 0, . . . , 1) and, hence, the corresponding arcs are labeled *t*1, *t*2,..., *tk*, *tk*+1. Consequently, all these transitions become dead at the node labeled by the (*k* + 1)-dimensional zero vector (0, 0, . . . , 0) as its marking vector.

The foregoing arguments imply that *Lk*<sup>+</sup><sup>1</sup> indeed represents the reachability tree of *Ck*+1, being a connected acyclic digraph, invoking the PMI.

Now, for any arbitrary positive integer *n*, construct the partition *π<sup>H</sup>* of the reachability tree *R*(*Cn*, *μ*0) by defining its 'parts' (which are subsets of the nodes of *R*(*Cn*, *μ*0)) by letting *V*<sup>0</sup> = {(1, 1, . . . , 1)} and *Vi* = {(*a*1, *a*2,..., *an*) : *dH*((1, 1, . . . , 1),(*a*1, *a*2,..., *an*)) = *i*}, for each *i* ∈ {1, 2, . . . , *n*}, where *dH*(*A*, *B*) denotes the Hamming distance between the vectors *<sup>A</sup>* and *<sup>B</sup>* of the same dimension. Clearly, <sup>|</sup>*Vi*<sup>|</sup> <sup>=</sup> *nCi* for each *<sup>i</sup>* ∈ {0, 1, 2, . . . , *<sup>n</sup>*}, where *nCk* <sup>=</sup> *<sup>n</sup>*! *<sup>k</sup>*!(*n*−*k*)! will in general denote the number of ways in which *<sup>k</sup>* objects can be selected out of *n* given objects. Now, consider the mapping *ημ*<sup>0</sup> : *<sup>V</sup>*(*R*(*Cn*, *<sup>μ</sup>*0)) → {0, 1}*<sup>n</sup>* that assigns to each node *<sup>u</sup>* <sup>∈</sup> *<sup>R</sup>*(*Cn*, *<sup>μ</sup>*0) the marking vector derived by the sequence of transitions fired starting from the initial marking vector *μ*<sup>0</sup> as specified by the unique path from the root vertex *u*<sup>0</sup> whose marking vector is *μ*0. Hence, we consider the *refinement π*� *<sup>H</sup>* of *π<sup>H</sup>* defined as follows: For each *<sup>i</sup>* ∈ {0, 1, 2, . . . , *<sup>n</sup>*} and for each (*a*1, *<sup>a</sup>*2,..., *an*) <sup>∈</sup> *Vi*, let *<sup>U</sup><sup>i</sup>* (*a*1,*a*2,...,*an*) <sup>=</sup> {*<sup>u</sup>* <sup>∈</sup> *<sup>V</sup>*(*R*(*Cn*, *<sup>μ</sup>*0)) : *<sup>η</sup>μ*<sup>0</sup> (*u*)=(*a*1, *<sup>a</sup>*2,..., *an*)}. Then, clearly, *<sup>U</sup><sup>i</sup>* 's form a partition of the set *Vi* for each *i* ∈ {0, 1, 2, . . . , *n*}. It may be easily verified that no two marking vectors in *Vi* are adjacent in *R*(*Cn*, *μ*0), whence *π*� *<sup>H</sup>* is a homomorphism of *<sup>R</sup>*(*Cn*, *<sup>μ</sup>*0). Further, the homomorphic image *π*� *<sup>H</sup>*(*R*(*Cn*, *<sup>μ</sup>*0)) ∼= *Ln* because (*Vi*, *Vi*<sup>+</sup>1) is an arc in *Ln* if and only if there is an arc from a marking vector in *Vi* to a marking vector in *Vi*+<sup>1</sup> in *R*(*Cn*, *μ*0).

This completes the proof.

getting the vertices of a regular polyhedron in terms of marking vectors and using them for analysis of Boolean circuits with given properties. This raises another new question, viz., to

Note that given any 1-safe Petri net *C* of order *n*, its reachability tree *R*(*C*, *μ*), with an arbitrary binary *n*-dimensional vector *μ* as its root, is essentially finite (cf.: [11]) and has all its nodes labeled by the function *η<sup>μ</sup>* into the vertex set of the Boolean complete lattice *Ln*, possibly with repetitions of marking vectors. Consider the *Hamming distance partition π<sup>H</sup>* := *πH*(*V*(*R*(*C*, *μ*))

*Vi* = {(*a*1, *a*2,..., *an*) : *dH*(*μ*,(*a*1, *a*2,..., *an*)) = *i*},

of *R*(*C*, *μ*) into a connected sublattice of *Ln*. Thus, we are lead to the problem of determining 1-safe Petri nets whose reachability trees are homomorphic to a given sublattice of *Ln*. First of all, we have the question whether for any arbitrarily given connected sublattice *L* of *Ln* there exists a 1-safe Petri net whose usual reachability tree is homomorphic to *L*. We have a

order *n* whose reachability trees are homomorphic to *L*. Let L*<sup>n</sup>* denote the set of all pairwise

of all 1-safe Petri nets of order *<sup>n</sup>*. In other words, 1-safe Petri nets in any one of the sets in <sup>C</sup>*<sup>n</sup>*

are all 'equivalent' in the sense that the dynamics of any two of them are in accordance with the given connected sublattice *L* of *Ln*; thus, it is enough to pick any one of them so that we

We discuss here some necessary and sufficiency conditions for a 1-safe Petri net to be Boolean. **Lemma 1.** *[9] If a* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n is Boolean then p* <sup>∈</sup> *<sup>t</sup>*• <sup>⇒</sup> *<sup>p</sup>* <sup>∈</sup> •*t .*

*Proof.* Suppose *p* ∈ *t*• and *p* ∈/ •*t*. Since *C* is 1-safe, •*t* �= ∅ ∀ *t* ∈ *T* (see [2]). This means that there exists at least one place *pi* <sup>∈</sup> *<sup>P</sup>* such that *pi* <sup>∈</sup> •*t*. Further, since *<sup>C</sup>* is Boolean, *<sup>μ</sup>*0(*p*)=1 ∀ *p* ∈ *P* (Proposition 1) and, therefore, every transition is enabled. In particular, *t* is enabled.

**Lemma 2.** *[9] If a* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n is Boolean then* <sup>|</sup>*P*|≤|*T*<sup>|</sup> *.*

*Proof.* Since *C* generates all the binary *n*-vectors, it generates the marking vectors of the type (0, 1, ··· , 1),(1, 0, 1, ··· , 1), ··· ,(1, 1, ··· , 0), each having the Hamming distance 1 from the initial marking vector *<sup>μ</sup>*0=(1, 1, ··· , 1). These *<sup>n</sup>* marking vectors can be obtained only in the very first step of firing because the marking vector whose Hamming distance is 1 from the initial marking cannot be obtained from any other marking vector whose Hamming distance is greater than or equal to 2 from the initial marking. These *n* marking vectors can be generated only if for every place *pi* ∈ *P*, *i* = 1, 2, 3, ··· , *n*, there exist *n* distinct transitions

•

have an option to choose the 'required' one as per our practical constraints.

*<sup>H</sup>* = {*V*0, *V*1, *V*2,..., *Vn*} is a homomorphism

*<sup>L</sup>* denote the set of all 1-safe Petri nets of

*<sup>L</sup>* : *L* ∈ L*n*} is a partition of the set S<sup>1</sup>

(*p*) = *<sup>μ</sup>*(*p*) <sup>−</sup> *<sup>I</sup>*−(*p*, *<sup>t</sup>*) + *<sup>I</sup>*+(*p*, *<sup>t</sup>*)), which

*<sup>i</sup>* , ∀ *i* = 1, 2, 3, ··· , *n*. Hence, |*P*|≤|*T*|.

*L*

Boolean Petri Nets 399

characterize 1-safe Petri nets whose reachability trees have a given property P.

of the vertex-set of *R*(*C*, *μ*) defined by letting *V*<sup>0</sup> = {*μ*} and

conjecture that the answer to this question is in the affirmative.

for each *i* ∈ {1, 2, . . . }. Then, its refinement *π*�

Next, given a connected sublattice *<sup>L</sup>* of *Ln*, let <sup>C</sup>*<sup>n</sup>*

nonisomorphic connected sublattices of *Ln*. Clearly, {C*<sup>n</sup>*

**8. Towards characterizing Boolean Petri nets**

After firing of *t* the place *p* will receive 2 tokens (∵ *μ*�

say *t*1,*t*2,*t*3,··· ,*tn* such that *pi* ∈• *ti* and *pi* ∈/ *t*

contradicts the fact that the Petri net is 1-safe. Hence, *p* ∈ *t*• ⇒ *p* ∈ •*t*.

In the above theorem, we have shown that by fixing the sequence of transitions in a Petri net for firing tactfully, one can produce the complete Boolean lattice as a homomorphic image of its reachability tree. One can perhaps produce many such interesting results like, for instance, getting the vertices of a regular polyhedron in terms of marking vectors and using them for analysis of Boolean circuits with given properties. This raises another new question, viz., to characterize 1-safe Petri nets whose reachability trees have a given property P.

Note that given any 1-safe Petri net *C* of order *n*, its reachability tree *R*(*C*, *μ*), with an arbitrary binary *n*-dimensional vector *μ* as its root, is essentially finite (cf.: [11]) and has all its nodes labeled by the function *η<sup>μ</sup>* into the vertex set of the Boolean complete lattice *Ln*, possibly with repetitions of marking vectors. Consider the *Hamming distance partition π<sup>H</sup>* := *πH*(*V*(*R*(*C*, *μ*)) of the vertex-set of *R*(*C*, *μ*) defined by letting *V*<sup>0</sup> = {*μ*} and

$$V\_{\bar{i}} = \{ (a\_1, a\_2, \dots, a\_{\mathfrak{n}}) : d\_{\mathcal{H}}(\mu\_\prime(a\_1, a\_2, \dots, a\_{\mathfrak{n}})) = i \},$$

for each *i* ∈ {1, 2, . . . }. Then, its refinement *π*� *<sup>H</sup>* = {*V*0, *V*1, *V*2,..., *Vn*} is a homomorphism of *R*(*C*, *μ*) into a connected sublattice of *Ln*. Thus, we are lead to the problem of determining 1-safe Petri nets whose reachability trees are homomorphic to a given sublattice of *Ln*. First of all, we have the question whether for any arbitrarily given connected sublattice *L* of *Ln* there exists a 1-safe Petri net whose usual reachability tree is homomorphic to *L*. We have a conjecture that the answer to this question is in the affirmative.

Next, given a connected sublattice *<sup>L</sup>* of *Ln*, let <sup>C</sup>*<sup>n</sup> <sup>L</sup>* denote the set of all 1-safe Petri nets of order *n* whose reachability trees are homomorphic to *L*. Let L*<sup>n</sup>* denote the set of all pairwise nonisomorphic connected sublattices of *Ln*. Clearly, {C*<sup>n</sup> <sup>L</sup>* : *L* ∈ L*n*} is a partition of the set S<sup>1</sup> of all 1-safe Petri nets of order *<sup>n</sup>*. In other words, 1-safe Petri nets in any one of the sets in <sup>C</sup>*<sup>n</sup> L* are all 'equivalent' in the sense that the dynamics of any two of them are in accordance with the given connected sublattice *L* of *Ln*; thus, it is enough to pick any one of them so that we have an option to choose the 'required' one as per our practical constraints.

#### **8. Towards characterizing Boolean Petri nets**

18 Will-be-set-by-IN-TECH

of the transitions *t*1, *t*2,..., *tk* fired in accordance with the firing rule, yielding the next state marking vector from its previous state marking vector that is at unit Hamming distance from the former. Now, by Step 2, the edges joining those pairs of nodes whose marking vectors are at unit Hamming distance from each other are directed in such a way that each of the resulting arcs represents the firing of a new transition *tk*<sup>+</sup><sup>1</sup> at the node, represented by its marking vector in the reachability tree of *Ck*+1, yielding the node of the reachability tree of *Ck*<sup>+</sup><sup>1</sup> whose label (i.e., marking vector) gives the result of that firing. Accordingly, label each of such arcs by the label *tk*+1. Since no two marking vectors in *A*<sup>0</sup> or in *A*<sup>1</sup> are interconnected by an arc labeled *tk*<sup>+</sup><sup>1</sup> in the above scheme, it follows that every arc labeled *tk*<sup>+</sup><sup>1</sup> has its initial node in *A*<sup>1</sup> and terminal node in *A*0, signifying the fact that *tk*<sup>+</sup><sup>1</sup> fires at its initial node in *A*<sup>1</sup> and yields the next state marking vector that belongs to *A*0. Further, no two of these arcs have a common node (whence we say that they are *independent*). Also, every node in *A*<sup>1</sup> is joined to a unique node in *A*<sup>0</sup> at Hamming distance one by an arc labeled *tk*<sup>+</sup><sup>1</sup> in a bijective way and,

Next, consider the node labeled (0, 0, . . . , 0) in *Lk*+1. The only arcs incoming at this node are from the nodes that are at unit Hamming distance from it, viz., those that are labeled by the elementary coordinate vectors (1, 0, 0, . . . , 0), (0, 1, 0, . . . , 0), (0, 0, 1, . . . , 0), ..., (0, 0, 0, . . . , 1) and, hence, the corresponding arcs are labeled *t*1, *t*2,..., *tk*, *tk*+1. Consequently, all these transitions become dead at the node labeled by the (*k* + 1)-dimensional zero vector (0, 0, . . . , 0)

The foregoing arguments imply that *Lk*<sup>+</sup><sup>1</sup> indeed represents the reachability tree of *Ck*+1,

Now, for any arbitrary positive integer *n*, construct the partition *π<sup>H</sup>* of the reachability tree *R*(*Cn*, *μ*0) by defining its 'parts' (which are subsets of the nodes of *R*(*Cn*, *μ*0)) by letting *V*<sup>0</sup> = {(1, 1, . . . , 1)} and *Vi* = {(*a*1, *a*2,..., *an*) : *dH*((1, 1, . . . , 1),(*a*1, *a*2,..., *an*)) = *i*}, for each *i* ∈ {1, 2, . . . , *n*}, where *dH*(*A*, *B*) denotes the Hamming distance between the vectors *<sup>A</sup>* and *<sup>B</sup>* of the same dimension. Clearly, <sup>|</sup>*Vi*<sup>|</sup> <sup>=</sup> *nCi* for each *<sup>i</sup>* ∈ {0, 1, 2, . . . , *<sup>n</sup>*}, where *nCk* <sup>=</sup> *<sup>n</sup>*! *<sup>k</sup>*!(*n*−*k*)! will in general denote the number of ways in which *<sup>k</sup>* objects can be selected

to each node *<sup>u</sup>* <sup>∈</sup> *<sup>R</sup>*(*Cn*, *<sup>μ</sup>*0) the marking vector derived by the sequence of transitions fired starting from the initial marking vector *μ*<sup>0</sup> as specified by the unique path from the root

(*u*)=(*a*1, *<sup>a</sup>*2,..., *an*)}. Then, clearly, *<sup>U</sup><sup>i</sup>*

set *Vi* for each *i* ∈ {0, 1, 2, . . . , *n*}. It may be easily verified that no two marking vectors

In the above theorem, we have shown that by fixing the sequence of transitions in a Petri net for firing tactfully, one can produce the complete Boolean lattice as a homomorphic image of its reachability tree. One can perhaps produce many such interesting results like, for instance,

vertex *u*<sup>0</sup> whose marking vector is *μ*0. Hence, we consider the *refinement π*�

is an arc from a marking vector in *Vi* to a marking vector in *Vi*+<sup>1</sup> in *R*(*Cn*, *μ*0).

as follows: For each *<sup>i</sup>* ∈ {0, 1, 2, . . . , *<sup>n</sup>*} and for each (*a*1, *<sup>a</sup>*2,..., *an*) <sup>∈</sup> *Vi*, let *<sup>U</sup><sup>i</sup>*

*<sup>k</sup>* (respectively, in *<sup>L</sup>*<sup>1</sup>

: *<sup>V</sup>*(*R*(*Cn*, *<sup>μ</sup>*0)) → {0, 1}*<sup>n</sup>* that assigns

*<sup>H</sup>* is a homomorphism of *<sup>R</sup>*(*Cn*, *<sup>μ</sup>*0). Further, the

*<sup>H</sup>*(*R*(*Cn*, *<sup>μ</sup>*0)) ∼= *Ln* because (*Vi*, *Vi*<sup>+</sup>1) is an arc in *Ln* if and only if there

*<sup>H</sup>* of *π<sup>H</sup>* defined

's form a partition of the

(*a*1,*a*2,...,*an*) <sup>=</sup>

*<sup>k</sup>*) represents one

and the induction hypothesis, each of the *k*2*k*−<sup>1</sup> arcs in *L*<sup>0</sup>

therefore, the number of such arcs is 2*k*.

being a connected acyclic digraph, invoking the PMI.

out of *n* given objects. Now, consider the mapping *ημ*<sup>0</sup>

as its marking vector.

{*<sup>u</sup>* <sup>∈</sup> *<sup>V</sup>*(*R*(*Cn*, *<sup>μ</sup>*0)) : *<sup>η</sup>μ*<sup>0</sup>

homomorphic image *π*�

This completes the proof.

in *Vi* are adjacent in *R*(*Cn*, *μ*0), whence *π*�

We discuss here some necessary and sufficiency conditions for a 1-safe Petri net to be Boolean.

**Lemma 1.** *[9] If a* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n is Boolean then p* <sup>∈</sup> *<sup>t</sup>*• <sup>⇒</sup> *<sup>p</sup>* <sup>∈</sup> •*t .*

*Proof.* Suppose *p* ∈ *t*• and *p* ∈/ •*t*. Since *C* is 1-safe, •*t* �= ∅ ∀ *t* ∈ *T* (see [2]). This means that there exists at least one place *pi* <sup>∈</sup> *<sup>P</sup>* such that *pi* <sup>∈</sup> •*t*. Further, since *<sup>C</sup>* is Boolean, *<sup>μ</sup>*0(*p*)=1 ∀ *p* ∈ *P* (Proposition 1) and, therefore, every transition is enabled. In particular, *t* is enabled. After firing of *t* the place *p* will receive 2 tokens (∵ *μ*� (*p*) = *<sup>μ</sup>*(*p*) <sup>−</sup> *<sup>I</sup>*−(*p*, *<sup>t</sup>*) + *<sup>I</sup>*+(*p*, *<sup>t</sup>*)), which contradicts the fact that the Petri net is 1-safe. Hence, *p* ∈ *t*• ⇒ *p* ∈ •*t*.

**Lemma 2.** *[9] If a* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n is Boolean then* <sup>|</sup>*P*|≤|*T*<sup>|</sup> *.*

*Proof.* Since *C* generates all the binary *n*-vectors, it generates the marking vectors of the type (0, 1, ··· , 1),(1, 0, 1, ··· , 1), ··· ,(1, 1, ··· , 0), each having the Hamming distance 1 from the initial marking vector *<sup>μ</sup>*0=(1, 1, ··· , 1). These *<sup>n</sup>* marking vectors can be obtained only in the very first step of firing because the marking vector whose Hamming distance is 1 from the initial marking cannot be obtained from any other marking vector whose Hamming distance is greater than or equal to 2 from the initial marking. These *n* marking vectors can be generated only if for every place *pi* ∈ *P*, *i* = 1, 2, 3, ··· , *n*, there exist *n* distinct transitions say *t*1,*t*2,*t*3,··· ,*tn* such that *pi* ∈• *ti* and *pi* ∈/ *t* • *<sup>i</sup>* , ∀ *i* = 1, 2, 3, ··· , *n*. Hence, |*P*|≤|*T*|.

**Lemma 3.** *[9] If a* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n is Boolean then the incidence matrix I of C contains* −*In*, *the identity matrix of order n as a submatrix.*

**Theorem 6.** *[9] A* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n with I*−(*pi*, *tj*) = <sup>1</sup> <sup>∀</sup> *<sup>i</sup>*, *<sup>j</sup> is Boolean if and only if there exist at least nCr, r* <sup>=</sup> 1, 2, ··· , *n distinct transitions t* <sup>∈</sup> *T such that* |*t*•| = *n* − *r, where r is the Hamming distance of any binary n-vector from the initial marking*

*Proof. Necessity*: Since *C* generates all the binary *n*-vectors, we have binary *n*-vectors (0, 1, 1, ··· , 1), (1, 0, 1, ··· , 1), (1, 1, 0, ··· , 1), ··· , (1, 1, 1, ··· , 0), whose Hamming distance is 1 from the initial marking (1, 1, 1, ··· 1). They are *n* in number. Since *I*−(*pi*, *tj*) = 1 ∀*i*, *j*, these vectors can be obtained only if *<sup>I</sup>*+(*pi*, *tj*) = 0 for *<sup>i</sup>* <sup>=</sup> *<sup>j</sup>* and 1 for *<sup>i</sup>* �<sup>=</sup> *<sup>j</sup>*, 1 <sup>≤</sup> *<sup>j</sup>* <sup>≤</sup> *<sup>n</sup>*. This implies that there are at least *nC*<sup>1</sup> distinct transitions say *<sup>t</sup>*1, *<sup>t</sup>*2, ··· , *tn* such that <sup>|</sup>*t*•|=*<sup>n</sup>* <sup>−</sup> 1. After firing, they become dead. Further, we also have the binary *n*-vectors (0, 0, 1, ··· , 1), (1, 0, 0, 1, ··· , 1), (1, 0, 1, 0, 1, ··· , 1), ··· , (1, 1, ··· , 1, 0, 0) whose Hamming distance is 2 from (1, 1, 1, ··· <sup>1</sup>), *<sup>r</sup>* <sup>=</sup> 1, 2, . . . , *<sup>n</sup>*. These vectors are *nC*<sup>2</sup> in number and can be obtained only if there exist at least *nC*<sup>2</sup> distinct transitions with <sup>|</sup>*t*•| <sup>=</sup> *<sup>n</sup>* <sup>−</sup> 2. In general, there are at least *nCr* distinct transitions *<sup>t</sup>* such that <sup>|</sup>*t*•| <sup>=</sup> *<sup>n</sup>* <sup>−</sup> *<sup>r</sup>*, that yield *nCr* binary *<sup>n</sup>*-vectors at Hamming

*Sufficiency*: Since *<sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup>*p*, all the transitions are enabled and fire. After firing they all become dead as *I*−(*pi*, *tj*) = 1 ∀ *i*, *j*. This implies that the matrix *I*<sup>−</sup> is of order *n* × *m* where *<sup>m</sup>* <sup>≥</sup> <sup>2</sup>*<sup>n</sup>* <sup>−</sup> 1 and the matrix *<sup>I</sup>*<sup>+</sup> gets constructed as follows. By hypothesis, there are at least *nC*<sup>1</sup> <sup>=</sup> *<sup>n</sup>* distinct transition in *<sup>C</sup>* say *<sup>t</sup>*1, *<sup>t</sup>*2, ··· , *tn* which on firing generate all the binary

is no arc from *ti* to *pi* i.e., *<sup>I</sup>*+(*pi*, *ti*) = 0 for *<sup>i</sup>* <sup>=</sup> 1, 2, ··· , *<sup>n</sup>*). Thus, we place the transpose of these binary *n*-vectors as the first *n*-columns in *I*<sup>+</sup> matrix. Next, by hypothesis, we have

binary *n*-vectors each having exactly two zeros. Hence, the transpose of these *nC*<sup>2</sup> vectors are placed as columns in the matrix *I*<sup>+</sup> immediately after the previous *n* = *nC*<sup>1</sup> columns. We are thus enabled by the hypothesis to construct the submatrix *<sup>H</sup>* of order *<sup>n</sup>* <sup>×</sup> (2*<sup>n</sup>* <sup>−</sup> <sup>1</sup>) of *<sup>I</sup>*<sup>+</sup> which contains all the 2*<sup>n</sup>* <sup>−</sup> 1 distinct binary *<sup>n</sup>*-vectors, the last column of *<sup>H</sup>* being the all zero *n*-vector. We may augment to *H* the initial all-one *n*-vector as a column either on the extreme left or on the extreme right of *H* in *I*+. Let the so augmented submatrix of *I*<sup>+</sup> have more columns. That means, each one of them is a repetition of some column in *H*. Thus, we see that

**Definition 5.** *A Petri net C=*(*P*, *T*, *I*−, *I*+, *μ*0) *is said to have a Strong chain cycle (SCC) Z if Z is*

**Theorem 7.** *[9] A* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n having an SCC Z, covering all*

*Proof. Necessity*: Suppose that the 1-safe Petri net *C* with an SCC covering all the places is

*<sup>j</sup>* <sup>|</sup> <sup>=</sup> *<sup>n</sup>* <sup>−</sup> 2 for all *<sup>n</sup>* <sup>+</sup> <sup>1</sup> <sup>≤</sup> *<sup>j</sup>* <sup>≤</sup> *nC*<sup>2</sup> these must generate all the distinct

•|*=1* ∀ *p,t*∈ *Z (See Figure 15). Any SCC is said to become a*

*<sup>i</sup>* | = *n* − 1 (w.l.o.g., we assume that there

*<sup>j</sup>* | = *n* − 2. Since they all become

Boolean Petri Nets 401

(1, 1, ··· , 1)*.*

distance *r* from (1, 1, 1, ··· 1), *r* = 1, 2, . . . , *n*.

dead after firing and |*t*•

*a subnet satisfying* |

**1.** *<sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>*

Boolean.

*the places, is Boolean if and only if*

*n*-vectors each having exactly one zero because |*t*•

*nC*<sup>2</sup> distinct transitions, say *tn*+1, *tn*+2, ··· , *tnC*<sup>2</sup> , such that <sup>|</sup>*t*•

the Petri net *C* generates all the binary *n*-vectors as its marking vectors.

•*t*|*=2,* |*p*•|*=2 and* |*t*

*strong chain after the removal of the arcs of any one of its self loops.*

**2.** *there exists at least one transition t outside Z such that t*• = ∅*.*

*Proof.* Since *<sup>C</sup>* is Boolean, *<sup>μ</sup>*0(*p*)=1 <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>* (Proposition 1). Again, because of the generation of all the binary *n*-vectors, the vectors of the type (0, 1, ··· , 1),(1, 0, 1, ··· , 1), ··· ,(1, 1, ··· , 0) each at a Hamming distance 1 from the initial marking, have also been generated. These vectors can be obtained only in the first step of firing, as shown in Lemma 2. Therefore, ∀ *pi* ∈ *P*, *i* = 1, 2, 3, ··· , *n*, there exist *n* distinct transitions, say *t*1,*t*2,*t*3,··· ,*tn* such that *pi* ∈ •*ti* and *pi* ∈/ *t*• *<sup>i</sup>* and hence *<sup>I</sup>*−(*pi*, *tj*)=1 if *<sup>i</sup>*=*<sup>j</sup>* and 0 if *<sup>i</sup>* �<sup>=</sup> *<sup>j</sup>* and also *<sup>I</sup>*+(*pi*, *ti*) = 0 <sup>∀</sup> *<sup>i</sup>* <sup>=</sup> 1, 2, 3, ··· , *<sup>n</sup>*. Since *<sup>I</sup>*=*I*+-*I*−, *<sup>I</sup>* contains <sup>−</sup>*In* as a submatrix.

**Lemma 4.** *[9] If a* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n is Boolean then there exists at least one transition t such that t*• = ∅*.*

*Proof.* Suppose, under the hypothesis, there does not exist any *t* ∈ *T* such that *t*• = ∅; i.e., *t* • �<sup>=</sup> <sup>∅</sup> for every *<sup>t</sup>* <sup>∈</sup> *<sup>T</sup>*. Since *<sup>t</sup>*• �<sup>=</sup> <sup>∅</sup>, *<sup>p</sup>* <sup>∈</sup> *<sup>t</sup>*• for some *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>*. Then, by Lemma 1, *<sup>p</sup>* <sup>∈</sup> •*t*. Then, at *<sup>p</sup>*, the number of tokens remains one throughout the dynamic states of *<sup>C</sup>*. This implies that the vector (0, 0, ··· , 0) would never occur as a marking vector, a contradiction to the hypothesis. Therefore, the lemma follows by contraposition.

Now, we will study necessary and sufficient conditions for a 1-safe Petri net that generates all the binary *n*-vectors as its marking vectors.

**Theorem 5.** *[9] A* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n with t*• <sup>=</sup> <sup>∅</sup> <sup>∀</sup> *<sup>t</sup>* <sup>∈</sup> *T is Boolean if and only if*


*Proof. Necessity*: This follows from Proposition 1, Lemma 2 and Lemma 3 above.

*Sufficiency*: Given the hypothesis and conditions (1), (2) and (3), we claim that *C* is Boolean. Since *<sup>I</sup>* <sup>=</sup> *<sup>I</sup>*<sup>+</sup> <sup>−</sup> *<sup>I</sup>*<sup>−</sup> and *<sup>t</sup>*• <sup>=</sup> <sup>∅</sup>, <sup>∀</sup> *<sup>t</sup>* <sup>∈</sup> *<sup>T</sup>*, *<sup>I</sup>*<sup>+</sup> <sup>=</sup> 0. This implies that *<sup>I</sup>* <sup>=</sup> <sup>−</sup>*I*−. Since *<sup>I</sup>* contains −*In* as a submatrix, ∀ *pi* ∈ *P*, ∃ *ti* ∈ *T* such that *pi* ∈ •*ti* ∀ *i* = 1, 2, ··· , *n*. Also, *<sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup>*<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>*. Therefore, all the *<sup>n</sup>* transitions *<sup>t</sup>*1, *<sup>t</sup>*2, ··· , *tn* are enabled and fire. After firing, we get distinct *nC*<sup>1</sup> = *n* marking vectors whose Hamming distance is 1 from the initial marking vector. At these *<sup>n</sup>* new marking vectors, *<sup>n</sup>* <sup>−</sup> 1 transitions are enabled and give at least *nC*<sup>2</sup> distinct marking vectors, each of whose Hamming distance is 2 from the initial marking. Therefore this set of new vectors contains at least *nC*<sup>2</sup> new distinct binary *<sup>n</sup>*−vectors.

In general, at any stage *<sup>j</sup>*, 3 <sup>≤</sup> *<sup>j</sup>* <sup>≤</sup> *<sup>n</sup>*, we get a set of at least *nCj* new distinct binary *<sup>n</sup>*-vectors whose Hamming distance is *j* from the initial marking, which are also distinct from the sets of *nCr* distinct marking vectors for all *<sup>r</sup>*, 2 <sup>≤</sup> *<sup>r</sup>* <sup>≤</sup> *<sup>j</sup>* <sup>−</sup> 1. Therefore, at the *<sup>n</sup>th* stage we would have obtained at least *nC*<sup>1</sup> <sup>+</sup>*<sup>n</sup> <sup>C</sup>*<sup>2</sup> <sup>+</sup> ··· <sup>+</sup>*<sup>n</sup> Cn*=2*<sup>n</sup>* <sup>−</sup> 1 distinct binary *<sup>n</sup>*-vectors. Together with the initial marking (1, 1, ··· , 1), we thus see that all the 2*<sup>n</sup>* binary *<sup>n</sup>*-vectors would have been obtained as markings vectors, possibly with repetitions.

**Theorem 6.** *[9] A* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n with I*−(*pi*, *tj*) = <sup>1</sup> <sup>∀</sup> *<sup>i</sup>*, *<sup>j</sup> is Boolean if and only if there exist at least nCr, r* <sup>=</sup> 1, 2, ··· , *n distinct transitions t* <sup>∈</sup> *T such that* |*t*•| = *n* − *r, where r is the Hamming distance of any binary n-vector from the initial marking* (1, 1, ··· , 1)*.*

*Proof. Necessity*: Since *C* generates all the binary *n*-vectors, we have binary *n*-vectors (0, 1, 1, ··· , 1), (1, 0, 1, ··· , 1), (1, 1, 0, ··· , 1), ··· , (1, 1, 1, ··· , 0), whose Hamming distance is 1 from the initial marking (1, 1, 1, ··· 1). They are *n* in number. Since *I*−(*pi*, *tj*) = 1 ∀*i*, *j*, these vectors can be obtained only if *<sup>I</sup>*+(*pi*, *tj*) = 0 for *<sup>i</sup>* <sup>=</sup> *<sup>j</sup>* and 1 for *<sup>i</sup>* �<sup>=</sup> *<sup>j</sup>*, 1 <sup>≤</sup> *<sup>j</sup>* <sup>≤</sup> *<sup>n</sup>*. This implies that there are at least *nC*<sup>1</sup> distinct transitions say *<sup>t</sup>*1, *<sup>t</sup>*2, ··· , *tn* such that <sup>|</sup>*t*•|=*<sup>n</sup>* <sup>−</sup> 1. After firing, they become dead. Further, we also have the binary *n*-vectors (0, 0, 1, ··· , 1), (1, 0, 0, 1, ··· , 1), (1, 0, 1, 0, 1, ··· , 1), ··· , (1, 1, ··· , 1, 0, 0) whose Hamming distance is 2 from (1, 1, 1, ··· <sup>1</sup>), *<sup>r</sup>* <sup>=</sup> 1, 2, . . . , *<sup>n</sup>*. These vectors are *nC*<sup>2</sup> in number and can be obtained only if there exist at least *nC*<sup>2</sup> distinct transitions with <sup>|</sup>*t*•| <sup>=</sup> *<sup>n</sup>* <sup>−</sup> 2. In general, there are at least *nCr* distinct transitions *<sup>t</sup>* such that <sup>|</sup>*t*•| <sup>=</sup> *<sup>n</sup>* <sup>−</sup> *<sup>r</sup>*, that yield *nCr* binary *<sup>n</sup>*-vectors at Hamming distance *r* from (1, 1, 1, ··· 1), *r* = 1, 2, . . . , *n*.

*Sufficiency*: Since *<sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup>*p*, all the transitions are enabled and fire. After firing they all become dead as *I*−(*pi*, *tj*) = 1 ∀ *i*, *j*. This implies that the matrix *I*<sup>−</sup> is of order *n* × *m* where *<sup>m</sup>* <sup>≥</sup> <sup>2</sup>*<sup>n</sup>* <sup>−</sup> 1 and the matrix *<sup>I</sup>*<sup>+</sup> gets constructed as follows. By hypothesis, there are at least *nC*<sup>1</sup> <sup>=</sup> *<sup>n</sup>* distinct transition in *<sup>C</sup>* say *<sup>t</sup>*1, *<sup>t</sup>*2, ··· , *tn* which on firing generate all the binary *n*-vectors each having exactly one zero because |*t*• *<sup>i</sup>* | = *n* − 1 (w.l.o.g., we assume that there is no arc from *ti* to *pi* i.e., *<sup>I</sup>*+(*pi*, *ti*) = 0 for *<sup>i</sup>* <sup>=</sup> 1, 2, ··· , *<sup>n</sup>*). Thus, we place the transpose of these binary *n*-vectors as the first *n*-columns in *I*<sup>+</sup> matrix. Next, by hypothesis, we have *nC*<sup>2</sup> distinct transitions, say *tn*+1, *tn*+2, ··· , *tnC*<sup>2</sup> , such that <sup>|</sup>*t*• *<sup>j</sup>* | = *n* − 2. Since they all become dead after firing and |*t*• *<sup>j</sup>* <sup>|</sup> <sup>=</sup> *<sup>n</sup>* <sup>−</sup> 2 for all *<sup>n</sup>* <sup>+</sup> <sup>1</sup> <sup>≤</sup> *<sup>j</sup>* <sup>≤</sup> *nC*<sup>2</sup> these must generate all the distinct binary *n*-vectors each having exactly two zeros. Hence, the transpose of these *nC*<sup>2</sup> vectors are placed as columns in the matrix *I*<sup>+</sup> immediately after the previous *n* = *nC*<sup>1</sup> columns. We are thus enabled by the hypothesis to construct the submatrix *<sup>H</sup>* of order *<sup>n</sup>* <sup>×</sup> (2*<sup>n</sup>* <sup>−</sup> <sup>1</sup>) of *<sup>I</sup>*<sup>+</sup> which contains all the 2*<sup>n</sup>* <sup>−</sup> 1 distinct binary *<sup>n</sup>*-vectors, the last column of *<sup>H</sup>* being the all zero *n*-vector. We may augment to *H* the initial all-one *n*-vector as a column either on the extreme left or on the extreme right of *H* in *I*+. Let the so augmented submatrix of *I*<sup>+</sup> have more columns. That means, each one of them is a repetition of some column in *H*. Thus, we see that the Petri net *C* generates all the binary *n*-vectors as its marking vectors.

**Definition 5.** *A Petri net C=*(*P*, *T*, *I*−, *I*+, *μ*0) *is said to have a Strong chain cycle (SCC) Z if Z is a subnet satisfying* | •*t*|*=2,* |*p*•|*=2 and* |*t* •|*=1* ∀ *p,t*∈ *Z (See Figure 15). Any SCC is said to become a strong chain after the removal of the arcs of any one of its self loops.*

**Theorem 7.** *[9] A* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n having an SCC Z, covering all the places, is Boolean if and only if*

**1.** *<sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>*

20 Will-be-set-by-IN-TECH

**Lemma 3.** *[9] If a* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n is Boolean then the incidence*

*Proof.* Since *<sup>C</sup>* is Boolean, *<sup>μ</sup>*0(*p*)=1 <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>* (Proposition 1). Again, because of the generation of all the binary *n*-vectors, the vectors of the type (0, 1, ··· , 1),(1, 0, 1, ··· , 1), ··· ,(1, 1, ··· , 0) each at a Hamming distance 1 from the initial marking, have also been generated. These vectors can be obtained only in the first step of firing, as shown in Lemma 2. Therefore, ∀ *pi* ∈ *P*, *i* = 1, 2, 3, ··· , *n*, there exist *n* distinct transitions, say *t*1,*t*2,*t*3,··· ,*tn* such that *pi* ∈ •*ti*

**Lemma 4.** *[9] If a* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n is Boolean then there exists at least*

*Proof.* Suppose, under the hypothesis, there does not exist any *t* ∈ *T* such that *t*• = ∅; i.e.,

• �<sup>=</sup> <sup>∅</sup> for every *<sup>t</sup>* <sup>∈</sup> *<sup>T</sup>*. Since *<sup>t</sup>*• �<sup>=</sup> <sup>∅</sup>, *<sup>p</sup>* <sup>∈</sup> *<sup>t</sup>*• for some *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>*. Then, by Lemma 1, *<sup>p</sup>* <sup>∈</sup> •*t*. Then, at *<sup>p</sup>*, the number of tokens remains one throughout the dynamic states of *<sup>C</sup>*. This implies that the vector (0, 0, ··· , 0) would never occur as a marking vector, a contradiction to

Now, we will study necessary and sufficient conditions for a 1-safe Petri net that generates all

**Theorem 5.** *[9] A* <sup>1</sup>*-safe Petri net C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n with t*• <sup>=</sup> <sup>∅</sup> <sup>∀</sup> *<sup>t</sup>* <sup>∈</sup> *T is Boolean*

*Sufficiency*: Given the hypothesis and conditions (1), (2) and (3), we claim that *C* is Boolean. Since *<sup>I</sup>* <sup>=</sup> *<sup>I</sup>*<sup>+</sup> <sup>−</sup> *<sup>I</sup>*<sup>−</sup> and *<sup>t</sup>*• <sup>=</sup> <sup>∅</sup>, <sup>∀</sup> *<sup>t</sup>* <sup>∈</sup> *<sup>T</sup>*, *<sup>I</sup>*<sup>+</sup> <sup>=</sup> 0. This implies that *<sup>I</sup>* <sup>=</sup> <sup>−</sup>*I*−. Since *<sup>I</sup>* contains −*In* as a submatrix, ∀ *pi* ∈ *P*, ∃ *ti* ∈ *T* such that *pi* ∈ •*ti* ∀ *i* = 1, 2, ··· , *n*. Also, *<sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup>*<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>*. Therefore, all the *<sup>n</sup>* transitions *<sup>t</sup>*1, *<sup>t</sup>*2, ··· , *tn* are enabled and fire. After firing, we get distinct *nC*<sup>1</sup> = *n* marking vectors whose Hamming distance is 1 from the initial marking vector. At these *<sup>n</sup>* new marking vectors, *<sup>n</sup>* <sup>−</sup> 1 transitions are enabled and give at least *nC*<sup>2</sup> distinct marking vectors, each of whose Hamming distance is 2 from the initial marking.

In general, at any stage *<sup>j</sup>*, 3 <sup>≤</sup> *<sup>j</sup>* <sup>≤</sup> *<sup>n</sup>*, we get a set of at least *nCj* new distinct binary *<sup>n</sup>*-vectors whose Hamming distance is *j* from the initial marking, which are also distinct from the sets of *nCr* distinct marking vectors for all *<sup>r</sup>*, 2 <sup>≤</sup> *<sup>r</sup>* <sup>≤</sup> *<sup>j</sup>* <sup>−</sup> 1. Therefore, at the *<sup>n</sup>th* stage we would have obtained at least *nC*<sup>1</sup> <sup>+</sup>*<sup>n</sup> <sup>C</sup>*<sup>2</sup> <sup>+</sup> ··· <sup>+</sup>*<sup>n</sup> Cn*=2*<sup>n</sup>* <sup>−</sup> 1 distinct binary *<sup>n</sup>*-vectors. Together with the initial marking (1, 1, ··· , 1), we thus see that all the 2*<sup>n</sup>* binary *<sup>n</sup>*-vectors would have been

*Proof. Necessity*: This follows from Proposition 1, Lemma 2 and Lemma 3 above.

Therefore this set of new vectors contains at least *nC*<sup>2</sup> new distinct binary *<sup>n</sup>*−vectors.

*<sup>i</sup>* and hence *<sup>I</sup>*−(*pi*, *tj*)=1 if *<sup>i</sup>*=*<sup>j</sup>* and 0 if *<sup>i</sup>* �<sup>=</sup> *<sup>j</sup>* and also *<sup>I</sup>*+(*pi*, *ti*) = 0 <sup>∀</sup> *<sup>i</sup>* <sup>=</sup> 1, 2, 3, ··· , *<sup>n</sup>*.

*matrix I of C contains* −*In*, *the identity matrix of order n as a submatrix.*

the hypothesis. Therefore, the lemma follows by contraposition.

*3. The incidence matrix I of C contains* −*In as a submatrix.*

obtained as markings vectors, possibly with repetitions.

Since *<sup>I</sup>*=*I*+-*I*−, *<sup>I</sup>* contains <sup>−</sup>*In* as a submatrix.

the binary *n*-vectors as its marking vectors.

*one transition t such that t*• = ∅*.*

and *pi* ∈/ *t*•

*if and only if*

*2.* |*P*|≤|*T*|

*1. <sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>*

*t*

**2.** *there exists at least one transition t outside Z such that t*• = ∅*.*

*Proof. Necessity*: Suppose that the 1-safe Petri net *C* with an SCC covering all the places is Boolean.

a transition *t* outside *Z* such that *t*

are generated by *C*.

**Figure 16.** Petri net *C*�

**Figure 17.** Petri net *C*�

vectors.

respectively.

• = ∅. Thus, we see that all the 2*<sup>n</sup>* distinct binary *n*-vectors

• = ∅. Now, if *C*� has an SCC *Z*� then

Boolean Petri Nets 403

t1

•

<sup>2</sup> = ∅) in each of these

<sup>2</sup> <sup>=</sup> <sup>∅</sup>. Since *<sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>*, *<sup>t</sup>*<sup>2</sup> is enabled and it

**Lemma 5.** *Let C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n be a* <sup>1</sup>*-safe Petri net with <sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *P and let Z be an SCC that passes through all the n places. Then any Petri net C*� *obtained from C by the*

*Proof.* First, we note that the removal of any self-loop from *C* results in a Petri net *C*� with

by Theorem 7, *C*� is Boolean and hence there is nothing to prove. Hence, without loss of generality, we may assume that the given Petri net *C* has an SCC, say *Z*. We shall then prove the result by invoking the PMI on *n* = |*P*|. First, let *n* = 1. Then *C* does not contain any SCC and, therefore *C*� = *C*. Further, it is easy to verify that *C*� generates all the binary 1-vectors, namely (1), (0) as shown in Figure 16. Next, let *n* = 2. Then *C*� contains the following

−→ *<sup>t</sup>*<sup>1</sup>

p2 t2

fires. After firing *t*2, we get the marking vector *μ*<sup>1</sup> = (1, 0). Since *t*<sup>1</sup> fires simultaneously with *t*2, we get the marking vector *μ*<sup>2</sup> = (0, 1). At this stage, *t*<sup>2</sup> is enabled and after firing, it gives the marking vector *μ*<sup>3</sup> = (0, 0). Hence we can obtain these marking vectors procedurally by

**Step-2.** In each case, *t*<sup>2</sup> fires and after firing, we get the marking vectors (1, 0) and (0, 0),

taking two marking vectors obtained in the previous case namely, (1), (0) as follows.

**Step-1.** Augment 1 in the second position (corresponding to the case *t*

*p*1

•

*deletion of any of the self loops belonging to Z generates all the binary n-vectors.*

*<sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>* and a transition *<sup>t</sup>* such that *<sup>t</sup>*

=:∼= *C* for 1 place

for 2 places

structure, shown in Figure 17. Here, *t*

p1

**Figure 15.** Strong Chain Cycle

In part 1 of the statement of the theorem, let *<sup>μ</sup>*0(*pi*) �<sup>=</sup> 1 for some *pi* <sup>∈</sup> *<sup>P</sup>*. Then, *<sup>μ</sup>*0(*pi*) = 0. Since *C* has an SCC, we cannot get one token in the place *pi*. So, we cannot get all the binary *n*-vectors, which is a contradiction to the hypothesis.

In part 2 of the theorem, since *C* generates all the binary *n*-vectors, we have (0, 0, ··· , 0) as a marking vector. This vector can be obtained only if there is a transition *t* such that *t*•=∅, by virtue of Lemma 4. We claim that such a transition *t* does not belong to *Z*. Suppose *t* ∈ *Z*=(*p*1, *t*1, *p*2, *t*2, *p*3, *t*3, ··· , *pn*−1, *tn*−1, *pn*, *tn*, *p*1) where (*pi*, *ti*) is a single arc in *C* and (*ti*, *pi*+1) is a symmetric arc in *C*. This means, *t* = *ti* for some *i*, 1 ≤ *i* ≤ *n*. This implies, |*t*•|=|*t*• *<sup>i</sup>* |=1, which is a contradiction to our assumption that *t* •=∅. Therefore, *t* does not belong to any SCC.

*Sufficiency*: Since *<sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>*, all the transitions belonging to *<sup>Z</sup>* are enabled and fire. After firing, they give *nC*<sup>1</sup> distinct binary *<sup>n</sup>*-vectors *<sup>a</sup>*<sup>1</sup> = (0, 1, 1, ··· , 1), *<sup>a</sup>*<sup>2</sup> = (1, 0, 1, ··· , 1), ··· , *ai* = (1, 1, ··· , 1, 0, 1, ··· , 1), ··· , *an* = (1, 1, ··· , 1, 0), whose Hamming distance is 1 from *μ*0, since *p*• *<sup>i</sup>* <sup>=</sup>{*ti*−1, *ti*} for *<sup>i</sup>* > 1 and *<sup>p</sup>*• <sup>1</sup>={*t*1, *tn*}, at each of these vectors *ai*, exactly (*<sup>n</sup>* <sup>−</sup> <sup>2</sup>) remaining transitions on *<sup>Z</sup>* are enabled and fire. After firing them, we get at least *nC*<sup>2</sup> distinct marking vectors each of whose Hamming distance from *<sup>μ</sup>*<sup>0</sup> is 2 because in this second stage of firing there are *n*(*n* − 2) binary *n*-vectors in each of which there are exactly two zeros. In the third stage, at least *nC*<sup>3</sup> distinct marking vectors are obtained by firing the above *n*-vectors obtained in the second stage and each of these vectors contains exactly three zeros. Continuing in this manner in the *rth* stage we get at least *nCr* distinct marking vectors, each containing exactly *r* zeros, by firing all the *n*-vectors obtained in the (*r* − 1) stage. Since *r* ranges from 1, 2, ··· ,(*<sup>n</sup>* <sup>−</sup> <sup>1</sup>), we thus obtain at least *nC*1+*nC*2+*nC*3+··· <sup>+</sup>*nCn*−<sup>1</sup> which is equal to 2*nnC*0 *nCn*=2*n*-2 distinct *n*-marking vectors. Since all of them are distinct from *μ*<sup>0</sup> as well as from the zero vector (0, 0, ··· , 0), which is obtained due to the hypothesis that there exists a transition *t* outside *Z* such that *t* • = ∅. Thus, we see that all the 2*<sup>n</sup>* distinct binary *n*-vectors are generated by *C*.

**Lemma 5.** *Let C* = (*P*, *<sup>T</sup>*, *<sup>I</sup>*−, *<sup>I</sup>*+, *<sup>μ</sup>*0)*,* <sup>|</sup>*P*<sup>|</sup> <sup>=</sup> *n be a* <sup>1</sup>*-safe Petri net with <sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *P and let Z be an SCC that passes through all the n places. Then any Petri net C*� *obtained from C by the deletion of any of the self loops belonging to Z generates all the binary n-vectors.*

*Proof.* First, we note that the removal of any self-loop from *C* results in a Petri net *C*� with *<sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>* and a transition *<sup>t</sup>* such that *<sup>t</sup>* • = ∅. Now, if *C*� has an SCC *Z*� then by Theorem 7, *C*� is Boolean and hence there is nothing to prove. Hence, without loss of generality, we may assume that the given Petri net *C* has an SCC, say *Z*. We shall then prove the result by invoking the PMI on *n* = |*P*|. First, let *n* = 1. Then *C* does not contain any SCC and, therefore *C*� = *C*. Further, it is easy to verify that *C*� generates all the binary 1-vectors, namely (1), (0) as shown in Figure 16. Next, let *n* = 2. Then *C*� contains the following

$$p\_1 \odot \dots \odot \square t\_1$$

**Figure 16.** Petri net *C*� =:∼= *C* for 1 place

22 Will-be-set-by-IN-TECH

pn <sup>t</sup>

In part 1 of the statement of the theorem, let *<sup>μ</sup>*0(*pi*) �<sup>=</sup> 1 for some *pi* <sup>∈</sup> *<sup>P</sup>*. Then, *<sup>μ</sup>*0(*pi*) = 0. Since *C* has an SCC, we cannot get one token in the place *pi*. So, we cannot get all the binary

In part 2 of the theorem, since *C* generates all the binary *n*-vectors, we have (0, 0, ··· , 0) as a marking vector. This vector can be obtained only if there is a transition *t* such that *t*•=∅, by virtue of Lemma 4. We claim that such a transition *t* does not belong to *Z*. Suppose *t* ∈ *Z*=(*p*1, *t*1, *p*2, *t*2, *p*3, *t*3, ··· , *pn*−1, *tn*−1, *pn*, *tn*, *p*1) where (*pi*, *ti*) is a single arc in *C* and (*ti*, *pi*+1) is a

*Sufficiency*: Since *<sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>*, all the transitions belonging to *<sup>Z</sup>* are enabled and fire. After firing, they give *nC*<sup>1</sup> distinct binary *<sup>n</sup>*-vectors *<sup>a</sup>*<sup>1</sup> = (0, 1, 1, ··· , 1), *<sup>a</sup>*<sup>2</sup> = (1, 0, 1, ··· , 1), ··· , *ai* = (1, 1, ··· , 1, 0, 1, ··· , 1), ··· , *an* = (1, 1, ··· , 1, 0), whose Hamming distance is 1

(*<sup>n</sup>* <sup>−</sup> <sup>2</sup>) remaining transitions on *<sup>Z</sup>* are enabled and fire. After firing them, we get at least *nC*<sup>2</sup> distinct marking vectors each of whose Hamming distance from *<sup>μ</sup>*<sup>0</sup> is 2 because in this second stage of firing there are *n*(*n* − 2) binary *n*-vectors in each of which there are exactly two zeros. In the third stage, at least *nC*<sup>3</sup> distinct marking vectors are obtained by firing the above *n*-vectors obtained in the second stage and each of these vectors contains exactly three zeros. Continuing in this manner in the *rth* stage we get at least *nCr* distinct marking vectors, each containing exactly *r* zeros, by firing all the *n*-vectors obtained in the (*r* − 1) stage. Since *r* ranges from 1, 2, ··· ,(*<sup>n</sup>* <sup>−</sup> <sup>1</sup>), we thus obtain at least *nC*1+*nC*2+*nC*3+··· <sup>+</sup>*nCn*−<sup>1</sup> which is equal

as from the zero vector (0, 0, ··· , 0), which is obtained due to the hypothesis that there exists

*nCn*=2*n*-2 distinct *n*-marking vectors. Since all of them are distinct from *μ*<sup>0</sup> as well

symmetric arc in *C*. This means, *t* = *ti* for some *i*, 1 ≤ *i* ≤ *n*. This implies, |*t*•|=|*t*•

n

•=∅. Therefore, *t* does not belong to any SCC.

<sup>1</sup>={*t*1, *tn*}, at each of these vectors *ai*, exactly

*<sup>i</sup>* |=1, which

t3

t 2

t1

p1

p2

p3

**Figure 15.** Strong Chain Cycle

from *μ*0, since *p*•

to 2*n*-

*nC*0-

*n*-vectors, which is a contradiction to the hypothesis.

*<sup>i</sup>* <sup>=</sup>{*ti*−1, *ti*} for *<sup>i</sup>* > 1 and *<sup>p</sup>*•

is a contradiction to our assumption that *t*

structure, shown in Figure 17. Here, *t* • <sup>2</sup> <sup>=</sup> <sup>∅</sup>. Since *<sup>μ</sup>*0(*p*) = <sup>1</sup> <sup>∀</sup> *<sup>p</sup>* <sup>∈</sup> *<sup>P</sup>*, *<sup>t</sup>*<sup>2</sup> is enabled and it

**Figure 17.** Petri net *C*� for 2 places

fires. After firing *t*2, we get the marking vector *μ*<sup>1</sup> = (1, 0). Since *t*<sup>1</sup> fires simultaneously with *t*2, we get the marking vector *μ*<sup>2</sup> = (0, 1). At this stage, *t*<sup>2</sup> is enabled and after firing, it gives the marking vector *μ*<sup>3</sup> = (0, 0). Hence we can obtain these marking vectors procedurally by taking two marking vectors obtained in the previous case namely, (1), (0) as follows.

**Step-1.** Augment 1 in the second position (corresponding to the case *t* • <sup>2</sup> = ∅) in each of these vectors.

**Step-2.** In each case, *t*<sup>2</sup> fires and after firing, we get the marking vectors (1, 0) and (0, 0), respectively.

Next, take *<sup>n</sup>* <sup>=</sup> *<sup>k</sup>* <sup>≥</sup> 3 and assume the validity by the above procedure to get all the 2*<sup>k</sup>* binary *k*-vectors.

Therefore, every 1-safe Petri net *C* can be embedded as an induced subgraph of a Boolean

Boolean Petri Nets 405

Precisely which Petri nets generate all the binary *n*-vectors as their marking vectors, or the so-called Boolean Petri net? This has been a hotly pursued research problems. We have shown in this chapter some necessary and sufficient conditions to characterize a Boolean Petri net, containing an SCC. However, the general problem of characterizing such a 1-safe Petri net *C*, when *C* does not contain an SCC or a strong chain, is still open. A Petri net containing an SCC is strongly connected, in the graph-theoretical sense that any two nodes in it are mutually reachable. However, the converse is not true; that is, if the underlying digraph of a Petri net is strongly connected, it need not contain an SCC. So, even a characterization of strongly connected Boolean Petri net is an open problem. Further, in general, characterizing crisp Boolean Petri nets is open too. If we relax the condition on the depth of the reachability tree in our original definition of minimality of a 'minimal' crisp Boolean Petri net and require instead that the number of enabled transitions be kept at minimum possible, the reachability graphs of such Petri nets may not have their underlying graph structures isomorphic to *<sup>K</sup>*1,2*<sup>n</sup>*−1, whence they would all be trees of the same order 2*<sup>n</sup>*. Since they would be finite in number, determination of the structures of such Petri nets and their enumeration would be of potential practical interest. It involves orienting trees of order 2*<sup>n</sup>* (in general, for theoretical purposes, trees of any order as such) that admit an orientation of their edges to make them

As pointed out, many fundamental issues regarding Boolean Petri nets emerge from the above study. For example, it is found and established that the reachability tree of a 1-safe Petri net can be homomorphically mapped on to the *n*-dimensional complete Boolean lattice, thereby yielding new techniques to represent the dynamics of these Petri nets. One can expect to bring out in the near future some salient features of 1-safe Petri nets in general as a part of a theory

Following our first discovery of an infinite class of 1-safe star Petri nets that are Boolean, we came across crisp Boolean Petri nets, viz., that generate every binary *n*-vector as marking vector exactly once. This motivated us to move towards a characterization of such 1-safe Petri nets in general. Our work towards this end revealed to our surprise that there can be even such disconnected 1-safe Petri nets. We demonstrated the existence of a disconnected 1-safe Petri net which was obtained by removing the central transition from the star Petri net *Sn*, whose reachability tree can be tactically represented as an *n*-dimensional complete lattice *Ln* [7]. In this disconnected Petri net, the firing of transitions in a particular way (which we may regard as a 'tact' or 'strategy'), gives exactly 2*<sup>n</sup>* marking vectors, repetitions occurring possibly only within a level, that can be arranged as a homomorphic image of the reachability tree of

The results of this chapter can perhaps be used gainfully in many purely theoretical areas like mathematics, computer science, universal algebra and order theory, the extent and effectiveness of its utility in solving the practical problem requiring the design of

the reachability trees of minimal 1−safe crisp Boolean Petri nets.

the Petri net, forming the *n*-dimensional complete Boolean lattice *Ln*.

Petri net.

**10. Scope for research**

**11. Concluding remarks**

that is likely to emerge even in our work.

Let *n* = *k* + 1. Then, apply the following procedure.

**Step-I.** Augment 1 to each of the marking vectors (*a*1, *a*2, ··· , *ak*) at its right most end to get the (*k* + 1)-vector (*a*1, *a*2, ··· , *ak*, 1).

**Step-II.** In this case, *tk*<sup>+</sup><sup>1</sup> fires and after firing we get the marking vectors (*a*1, *a*2, ··· , *ak*, 0).

By the induction hypothesis, we have all the 2*<sup>k</sup>* marking vectors to which Step-I has been applied to obtain the 2*<sup>k</sup>* binary (*k* + 1)-vectors as marking vectors (because of firing at each stage), having 1 in the (*k* + 1)*th* coordinate. Further, each of these 2*<sup>k</sup>* binary (*k* + 1)-vectors has been fired using Step-II to obtain the binary (*k* + 1)-vectors of the form (*a*1, *a*2, ··· , *ak*, 0) which are all distinct from those obtained in Step-I. Together, therefore, we have obtained 2*<sup>k</sup>* + 2*<sup>k</sup>* = 2*k*+<sup>1</sup> binary (*k* + 1)-vectors as marking vectors from *C*� . Thus, the proof follows by PMI.
