Interesting LTSA Behavior

Several students have noticed a quirk with the LTSA tool involving its processing of sets of action labels in FSP specifications. The difference occurs when the set of labels lead to a subsequent action, before going to another process.

To see the difference try compiling the following two similar FSP processes.

EXAMPLE1 = ({one,two}-> FOO | three -> BAR),
           FOO = (foo -> EXAMPLE1),
           BAR = (bar -> EXAMPLE1).

EXAMPLE2 = ({one,two}->foo -> EXAMPLE2 | three -> bar -> EXAMPLE2).

You will see that in EXAMPLE1 a state machine is created in which actions "one" and "two" both go to the same state. But in EXAMPLE2, a state machine is created in which "one" and "two" go to different states. Apparently, when a set of actions leads to an action (as in EXAMPLE2), a new state is generated for each action in the set of actions. If, however, a set of actions leads to a process (as in EXAMPLE1), all actions in the set lead to the same state.

This information will come in handy while trying to write the FSP specification for the third state diagram in problem 2.1.

Hope this helps!

© Kenneth M. Anderson, 2007.