Incomplete Binding Sequences | CPN Tools help |
Simulator cannot calculate binding sequence for some transitions | Errors and Bugs |
In some cases, it is possible to use a guard to work around the problem. Examples of the problem and of workarounds are shown below.
The problem has been observed for transitions with two (or more) arc inscriptions that contain the list constructor ::, nested tuples, and nested records.
In the top example, the transition t1
should remove two lists from the input places p1
and p2
. The same element must be at the head of each list, as indicated by the a::
in each of the arc inscriptions. The tails of the two lists may or may not be equal, as indicated by the use of variables alist1
and alist2
.
In the bottom example, the variables a
and b
appear in nested tuples on each input arc to transition t2
.
In many cases, guards can be used to work around the problem.
In the top example, the variable a
has been replaced by the variable b
on one input arc, and a guard has been added to ensure that a=b
.
In the bottom example, the variable b
has been replaced by the variable e
on one input arc, and the guard ensures that b=e
.