Bug 106

Summary: Using constant arrrays as parameter to templetes gives faulty behavior
Product: UPPAAL Reporter: Jacob Illum <illum>
Component: EngineAssignee: Gerd Behrmann <behrmann>
Status: CLOSED FIXED    
Severity: normal    
Priority: P2    
Version: 3.4.6   
Hardware: PC   
OS: All   
Attachments: The system that causes problems
The system that causes problems

Description Jacob Illum 2004-09-08 12:58:13 CEST
When a constant array is given a an input parameter to a template, then testing
the value of this array is unreliable, i.e. a boolean array can be matched
against neither true nor false.

Furthermore, if a variable is added to the system the behavior changes, even if
the variable is not used in any component.

See the attached system for detail:
Here P takes a constant array as an input parameter. A process is created with
P({true,false}). The initial state of P is A, here there is a single transition
to the state B. In B we have two transition back to A depending on whether the
value of the first entry of the array is true or false. However, the simulator
claims the system is deadlocked. When adding a global variable i and not using
it in P, the behavior changes. Now, a transition is available in B, however, it
is the wrong one.
Comment 1 Jacob Illum 2004-09-08 13:02:01 CEST
Created attachment 23 [details]
The system that causes problems
Comment 2 Jacob Illum 2004-09-08 13:02:41 CEST
Created attachment 24 [details]
The system that causes problems
Comment 3 Gerd Behrmann 2004-09-10 15:38:49 CEST
A fix for 3.4 has been checked into CVS. I still need to check the development
Comment 4 Gerd Behrmann 2004-09-11 10:45:45 CEST
I checked the development branch. The bug is not present there, but the test
case triggered another problem. A fix for that problem has also been checked
into CVS now.