Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

lustrec-tests / regression_tests / lustre_files / success / Stateflow / src_Super3 / Super3.lus @ eb639349

History | View | Annotate | Download (16.3 KB)

1
-- This file has been generated by cocoSim
2

    
3

    
4
-- System nodes
5

    
6

    
7

    
8

    
9

    
10

    
11

    
12

    
13

    
14

    
15

    
16

    
17

    
18

    
19

    
20

    
21

    
22

    
23

    
24

    
25

    
26
-- Entry action for state :Super3_C
27
node Super3_C_en(idSuper3_Super3_1:int;
28
	s_1:real;
29
	isInner:bool)
30

    
31
returns (idSuper3_Super3:int;
32
	s:real);
33

    
34

    
35
var 	idSuper3_Super3_2:int;
36
	s_2:real;
37

    
38

    
39
let
40

    
41

    
42

    
43
	-- set state as active 
44
	idSuper3_Super3_2 
45
	= 1972;
46
	
47

    
48
	s_2 
49
	= if (not isInner) then 5.
50
	 else s_1;
51
	
52

    
53
	(idSuper3_Super3, s) 
54
	= (idSuper3_Super3_2, s_2);
55
	
56

    
57
tel
58

    
59

    
60

    
61

    
62

    
63
-- Exit action for state :Super3_C
64
node Super3_C_ex(idSuper3_Super3_1:int;
65
	isInner:bool)
66

    
67
returns (idSuper3_Super3:int);
68

    
69

    
70
var 	idSuper3_Super3_2:int;
71

    
72

    
73
let
74

    
75

    
76

    
77
	-- set state as inactive 
78
	idSuper3_Super3_2
79
	 = if (not isInner) then 0 else idSuper3_Super3_1;
80

    
81

    
82
	(idSuper3_Super3) 
83
	= (idSuper3_Super3_1);
84
	
85

    
86
tel
87

    
88

    
89

    
90

    
91

    
92

    
93
-- Entry action for state :B_B2
94
node B_B2_en(idSuper3_B_1:int;
95
	s_1:real;
96
	isInner:bool)
97

    
98
returns (idSuper3_B:int;
99
	s:real);
100

    
101

    
102
var 	idSuper3_B_2:int;
103
	s_2:real;
104

    
105

    
106
let
107

    
108

    
109

    
110
	-- set state as active 
111
	idSuper3_B_2 
112
	= 1974;
113
	
114

    
115
	s_2 
116
	= if (not isInner) then 3.
117
	 else s_1;
118
	
119

    
120
	(idSuper3_B, s) 
121
	= (idSuper3_B_2, s_2);
122
	
123

    
124
tel
125

    
126

    
127

    
128

    
129

    
130
-- Exit action for state :B_B2
131
node B_B2_ex(idSuper3_B_1:int;
132
	isInner:bool)
133

    
134
returns (idSuper3_B:int);
135

    
136

    
137
var 	idSuper3_B_2:int;
138

    
139

    
140
let
141

    
142

    
143

    
144
	-- set state as inactive 
145
	idSuper3_B_2
146
	 = if (not isInner) then 0 else idSuper3_B_1;
147

    
148

    
149
	(idSuper3_B) 
150
	= (idSuper3_B_1);
151
	
152

    
153
tel
154

    
155

    
156

    
157

    
158

    
159

    
160
-- Entry action for state :B_B1
161
node B_B1_en(idSuper3_B_1:int;
162
	s_1:real;
163
	isInner:bool)
164

    
165
returns (idSuper3_B:int;
166
	s:real);
167

    
168

    
169
var 	idSuper3_B_2:int;
170
	s_2:real;
171

    
172

    
173
let
174

    
175

    
176

    
177
	-- set state as active 
178
	idSuper3_B_2 
179
	= 1971;
180
	
181

    
182
	s_2 
183
	= if (not isInner) then 4.
184
	 else s_1;
185
	
186

    
187
	(idSuper3_B, s) 
188
	= (idSuper3_B_2, s_2);
189
	
190

    
191
tel
192

    
193

    
194

    
195

    
196

    
197
-- Exit action for state :B_B1
198
node B_B1_ex(idSuper3_B_1:int;
199
	isInner:bool)
200

    
201
returns (idSuper3_B:int);
202

    
203

    
204
var 	idSuper3_B_2:int;
205

    
206

    
207
let
208

    
209

    
210

    
211
	-- set state as inactive 
212
	idSuper3_B_2
213
	 = if (not isInner) then 0 else idSuper3_B_1;
214

    
215

    
216
	(idSuper3_B) 
217
	= (idSuper3_B_1);
218
	
219

    
220
tel
221

    
222

    
223

    
224

    
225

    
226

    
227
-- Entry action for state :Super3_B
228
node Super3_B_en(idSuper3_B_1:int;
229
	idSuper3_Super3_1:int;
230
	s_1:real;
231
	isInner:bool)
232

    
233
returns (idSuper3_B:int;
234
	idSuper3_Super3:int;
235
	s:real);
236

    
237

    
238
var 	idSuper3_B_2, idSuper3_B_3, idSuper3_B_4, idSuper3_B_5, idSuper3_B_6:int;
239
	idSuper3_Super3_2, idSuper3_Super3_3, idSuper3_Super3_4:int;
240
	s_2, s_3, s_4, s_5, s_6:real;
241

    
242

    
243
let
244

    
245

    
246

    
247
	-- set state as active 
248
	idSuper3_Super3_2 
249
	= 1973;
250
	
251

    
252
	
253
-- transition trace :
254
	--POINT__To__B_B1_1
255
		(idSuper3_B_2, s_2) 
256
	= B_B1_en(idSuper3_B_1, s_1, false);
257
		
258

    
259
	(idSuper3_B_3, idSuper3_Super3_3, s_3) 
260
	= 
261

    
262
	if ( idSuper3_B_1 = 0) then
263

    
264
	 (idSuper3_B_2, idSuper3_Super3_2, s_2)
265

    
266
	 else(idSuper3_B_1, idSuper3_Super3_2, s_1);
267

    
268
	
269

    
270
	(idSuper3_B_4, s_4) 
271
	= 
272
	if ( idSuper3_B_1 = 1974) then
273
	B_B2_en(idSuper3_B_1, s_1, false)
274
	 else (idSuper3_B_1, s_1);
275

    
276
	
277

    
278
	(idSuper3_B_5, s_5) 
279
	= 
280
	if ( idSuper3_B_1 = 1971) then
281
	B_B1_en(idSuper3_B_1, s_1, false)
282
	 else (idSuper3_B_1, s_1);
283

    
284
	
285

    
286
	(idSuper3_B_6, idSuper3_Super3_4, s_6) 
287
	= 
288
		 if ( idSuper3_B_1 = 0) then 
289
		(idSuper3_B_3, idSuper3_Super3_3, s_3)
290
		 else
291
		 if ( idSuper3_B_1 = 1974) then 
292
		(idSuper3_B_4, idSuper3_Super3_3, s_4)
293
		 else
294
		 if ( idSuper3_B_1 = 1971) then 
295
		(idSuper3_B_5, idSuper3_Super3_3, s_5)
296
		 else (idSuper3_B_1, idSuper3_Super3_2, s_1);
297

    
298

    
299
	(idSuper3_B, idSuper3_Super3, s) 
300
	= (idSuper3_B_6, idSuper3_Super3_4, s_6);
301
	
302

    
303
tel
304

    
305

    
306

    
307

    
308

    
309
-- Exit action for state :Super3_B
310
node Super3_B_ex(idSuper3_B_1:int;
311
	idSuper3_Super3_1:int;
312
	isInner:bool)
313

    
314
returns (idSuper3_B:int;
315
	idSuper3_Super3:int);
316

    
317

    
318
var 	idSuper3_B_2, idSuper3_B_3, idSuper3_B_4, idSuper3_B_5:int;
319
	idSuper3_Super3_2:int;
320

    
321

    
322
let
323

    
324

    
325

    
326
	
327
	(idSuper3_B_2) 
328
	= 
329
	if ( idSuper3_B_1 = 1974) then
330
	B_B2_ex(idSuper3_B_1, false)
331
	 else (idSuper3_B_1);
332

    
333
	
334

    
335
	(idSuper3_B_3) 
336
	= 
337
	if ( idSuper3_B_1 = 1971) then
338
	B_B1_ex(idSuper3_B_1, false)
339
	 else (idSuper3_B_1);
340

    
341
	
342

    
343
	(idSuper3_B_4) 
344
	= 
345
		 if ( idSuper3_B_1 = 1974) then 
346
		(idSuper3_B_2)
347
		 else
348
		 if ( idSuper3_B_1 = 1971) then 
349
		(idSuper3_B_3)
350
		 else (idSuper3_B_1);
351

    
352

    
353
	-- set state as inactive 
354
	idSuper3_Super3_2
355
	 = if (not isInner) then 0 else idSuper3_Super3_1;
356

    
357
	idSuper3_B_5 
358
	= 0;
359
	
360

    
361
	(idSuper3_B, idSuper3_Super3) 
362
	= (idSuper3_B_5, idSuper3_Super3_1);
363
	
364

    
365
tel
366

    
367

    
368

    
369

    
370

    
371

    
372
-- Entry action for state :Super3_D
373
node Super3_D_en(idSuper3_Super3_1:int;
374
	s_1:real;
375
	isInner:bool)
376

    
377
returns (idSuper3_Super3:int;
378
	s:real);
379

    
380

    
381
var 	idSuper3_Super3_2:int;
382
	s_2:real;
383

    
384

    
385
let
386

    
387

    
388

    
389
	-- set state as active 
390
	idSuper3_Super3_2 
391
	= 1975;
392
	
393

    
394
	s_2 
395
	= if (not isInner) then 1.
396
	 else s_1;
397
	
398

    
399
	(idSuper3_Super3, s) 
400
	= (idSuper3_Super3_2, s_2);
401
	
402

    
403
tel
404

    
405

    
406

    
407

    
408

    
409
-- Exit action for state :Super3_D
410
node Super3_D_ex(idSuper3_Super3_1:int;
411
	isInner:bool)
412

    
413
returns (idSuper3_Super3:int);
414

    
415

    
416
var 	idSuper3_Super3_2:int;
417

    
418

    
419
let
420

    
421

    
422

    
423
	-- set state as inactive 
424
	idSuper3_Super3_2
425
	 = if (not isInner) then 0 else idSuper3_Super3_1;
426

    
427

    
428
	(idSuper3_Super3) 
429
	= (idSuper3_Super3_1);
430
	
431

    
432
tel
433

    
434

    
435

    
436

    
437

    
438

    
439
-- Entry action for state :Super3_A
440
node Super3_A_en(idSuper3_Super3_1:int;
441
	s_1:real;
442
	isInner:bool)
443

    
444
returns (idSuper3_Super3:int;
445
	s:real);
446

    
447

    
448
var 	idSuper3_Super3_2:int;
449
	s_2:real;
450

    
451

    
452
let
453

    
454

    
455

    
456
	-- set state as active 
457
	idSuper3_Super3_2 
458
	= 1970;
459
	
460

    
461
	s_2 
462
	= if (not isInner) then 2.
463
	 else s_1;
464
	
465

    
466
	(idSuper3_Super3, s) 
467
	= (idSuper3_Super3_2, s_2);
468
	
469

    
470
tel
471

    
472

    
473

    
474

    
475

    
476
-- Exit action for state :Super3_A
477
node Super3_A_ex(idSuper3_Super3_1:int;
478
	isInner:bool)
479

    
480
returns (idSuper3_Super3:int);
481

    
482

    
483
var 	idSuper3_Super3_2:int;
484

    
485

    
486
let
487

    
488

    
489

    
490
	-- set state as inactive 
491
	idSuper3_Super3_2
492
	 = if (not isInner) then 0 else idSuper3_Super3_1;
493

    
494

    
495
	(idSuper3_Super3) 
496
	= (idSuper3_Super3_1);
497
	
498

    
499
tel
500

    
501

    
502
--***************************************************State :Super3_B Automaton***************************************************
503

    
504
node Super3_B_node(idSuper3_B_1:int;
505
	s_1:real;
506
	E:bool;
507
	x:int;
508
	idSuper3_Super3_1:int)
509

    
510
returns (idSuper3_B:int;
511
	s:real;
512
	idSuper3_Super3:int);
513

    
514

    
515
let
516

    
517
	 automaton super3_b
518

    
519
	state POINTSuper3_B:
520
	unless (idSuper3_B_1=0) restart POINT__TO__B_B1_1
521

    
522

    
523

    
524
	unless (idSuper3_B_1=1974) and E and ( x=3 or x=4 ) restart B_B2__TO__SUPER3_B_1
525

    
526

    
527

    
528
	unless (idSuper3_B_1=1971) and E and ( x=2 ) restart B_B1__TO__SUPER3_A_1
529

    
530

    
531

    
532
	unless (idSuper3_B_1=1971) and E and ( x<=3 ) restart B_B1__TO__SUPER3_SUPER3JUNCTION1976_2
533

    
534

    
535

    
536
	unless (idSuper3_B_1=1971) and E and ( x>3 ) restart B_B1__TO__SUPER3_SUPER3JUNCTION1977_3
537

    
538

    
539

    
540
	unless (idSuper3_B_1=1974) restart B_B2_IDL
541

    
542
	unless (idSuper3_B_1=1971) restart B_B1_IDL
543

    
544
	let
545

    
546
		(idSuper3_B, s, idSuper3_Super3) 
547
	= (idSuper3_B_1, s_1, idSuper3_Super3_1);
548
	
549

    
550
	tel
551

    
552

    
553

    
554
	state POINT__TO__B_B1_1:
555

    
556
	 var 	idSuper3_B_2:int;
557
	s_2:real;
558
	let
559

    
560
		-- transition trace :
561
	--POINT__To__B_B1_1
562
		(idSuper3_B_2, s_2) 
563
	= B_B1_en(idSuper3_B_1, s_1, false);
564
		
565

    
566
	(idSuper3_B, s) 
567
	=  (idSuper3_B_2, s_2);
568

    
569
	--add unused variables
570
	(idSuper3_Super3) 
571
	= (idSuper3_Super3_1);
572
	
573

    
574
	tel
575

    
576
	until true restart POINTSuper3_B
577

    
578

    
579

    
580
	state B_B2__TO__SUPER3_B_1:
581

    
582
	 var 	idSuper3_B_2, idSuper3_B_3, idSuper3_B_4:int;
583
	s_2:real;
584
	idSuper3_Super3_2:int;
585
	let
586

    
587
		-- transition trace :
588
	--B_B2__To__Super3_B_1
589
		(idSuper3_B_2) 
590
	= B_B2_ex(idSuper3_B_1, false);
591
		
592

    
593
		idSuper3_B_3 
594
	= 0;
595
	
596
		(idSuper3_B_4, idSuper3_Super3_2, s_2) 
597
	= Super3_B_en(idSuper3_B_3, idSuper3_Super3_1, s_1, true);
598
		
599

    
600
	(idSuper3_B, s, idSuper3_Super3) 
601
	=  (idSuper3_B_4, s_2, idSuper3_Super3_2);
602

    
603

    
604
	tel
605

    
606
	until true restart POINTSuper3_B
607

    
608

    
609

    
610
	state B_B1__TO__SUPER3_A_1:
611

    
612
	 var 	idSuper3_B_2:int;
613
	s_2:real;
614
	idSuper3_Super3_2, idSuper3_Super3_3:int;
615
	let
616

    
617
		-- transition trace :
618
	--B_B1__To__Super3_A_1
619
		(idSuper3_B_2, idSuper3_Super3_2) 
620
	= Super3_B_ex(idSuper3_B_1, idSuper3_Super3_1, false);
621
		
622

    
623
		(idSuper3_Super3_3, s_2) 
624
	= Super3_A_en(idSuper3_Super3_2, s_1, false);
625
		
626

    
627
	(idSuper3_B, s, idSuper3_Super3) 
628
	=  (idSuper3_B_2, s_2, idSuper3_Super3_3);
629

    
630

    
631
	tel
632

    
633
	until true restart POINTSuper3_B
634

    
635

    
636

    
637
	state B_B1__TO__SUPER3_SUPER3JUNCTION1976_2:
638

    
639
	 var 	idSuper3_B_2, idSuper3_B_3, idSuper3_B_4:int;
640
	s_2, s_3:real;
641
	idSuper3_Super3_2, idSuper3_Super3_3:int;
642
	let
643

    
644
		
645

    
646
-- transition trace :
647
	--B_B1__To__Junction1976_2, Junction1976__To__Super3_D_1
648
		(idSuper3_B_2, idSuper3_Super3_2) 
649
	= 
650
		 if (( x=1 )) then 
651
		Super3_B_ex(idSuper3_B_1, idSuper3_Super3_1, false)
652
		 else (idSuper3_B_1, idSuper3_Super3_1);
653
		
654

    
655
		(idSuper3_Super3_3, s_2) 
656
	= 
657
		 if (( x=1 )) then 
658
		Super3_D_en(idSuper3_Super3_2, s_1, false)
659
		 else (idSuper3_Super3_2, s_1);
660
		
661

    
662

    
663
-- transition trace :
664
	--B_B1__To__Junction1976_2, Junction1976__To__B_B2_2
665
		(idSuper3_B_3) 
666
	= 
667
		 if (( x=3 )) then 
668
		B_B1_ex(idSuper3_B_1, false)
669
		 else (idSuper3_B_1);
670
		
671

    
672
		(idSuper3_B_4, s_3) 
673
	= 
674
		 if (( x=3 )) then 
675
		B_B2_en(idSuper3_B_3, s_1, false)
676
		 else (idSuper3_B_3, s_1);
677
		
678

    
679
	(idSuper3_B, s, idSuper3_Super3) 
680
	= 
681
		 if (( x=1 )) then 
682
		(idSuper3_B_2, s_2, idSuper3_Super3_3)
683
		 else
684
		 if (( x=3 )) then 
685
		(idSuper3_B_4, s_3, idSuper3_Super3_1)
686
		 else (idSuper3_B_1, s_1, idSuper3_Super3_1);
687

    
688

    
689
	tel
690

    
691
	until true restart POINTSuper3_B
692

    
693

    
694

    
695
	state B_B1__TO__SUPER3_SUPER3JUNCTION1977_3:
696

    
697
	 var 	idSuper3_B_2, idSuper3_B_3, idSuper3_B_4:int;
698
	s_2, s_3:real;
699
	idSuper3_Super3_2, idSuper3_Super3_3:int;
700
	let
701

    
702
		
703

    
704
-- transition trace :
705
	--B_B1__To__Junction1977_3, Junction1977__To__Super3_C_1
706
		(idSuper3_B_2, idSuper3_Super3_2) 
707
	= 
708
		 if (( x=5 )) then 
709
		Super3_B_ex(idSuper3_B_1, idSuper3_Super3_1, false)
710
		 else (idSuper3_B_1, idSuper3_Super3_1);
711
		
712

    
713
		(idSuper3_Super3_3, s_2) 
714
	= 
715
		 if (( x=5 )) then 
716
		Super3_C_en(idSuper3_Super3_2, s_1, false)
717
		 else (idSuper3_Super3_2, s_1);
718
		
719

    
720

    
721
-- transition trace :
722
	--B_B1__To__Junction1977_3, Junction1977__To__B_B2_2
723
		(idSuper3_B_3) 
724
	= 
725
		 if (( x=4 )) then 
726
		B_B1_ex(idSuper3_B_1, false)
727
		 else (idSuper3_B_1);
728
		
729

    
730
		(idSuper3_B_4, s_3) 
731
	= 
732
		 if (( x=4 )) then 
733
		B_B2_en(idSuper3_B_3, s_1, false)
734
		 else (idSuper3_B_3, s_1);
735
		
736

    
737
	(idSuper3_B, s, idSuper3_Super3) 
738
	= 
739
		 if (( x=5 )) then 
740
		(idSuper3_B_2, s_2, idSuper3_Super3_3)
741
		 else
742
		 if (( x=4 )) then 
743
		(idSuper3_B_4, s_3, idSuper3_Super3_1)
744
		 else (idSuper3_B_1, s_1, idSuper3_Super3_1);
745

    
746

    
747
	tel
748

    
749
	until true restart POINTSuper3_B
750

    
751

    
752

    
753
	state B_B2_IDL:
754

    
755
	 	let
756

    
757
		
758

    
759
	(idSuper3_B, s, idSuper3_Super3) 
760
	= (idSuper3_B_1, s_1, idSuper3_Super3_1);
761
	
762

    
763
	tel
764

    
765
	until true restart POINTSuper3_B
766

    
767

    
768

    
769
	state B_B1_IDL:
770

    
771
	 	let
772

    
773
		
774

    
775
	(idSuper3_B, s, idSuper3_Super3) 
776
	= (idSuper3_B_1, s_1, idSuper3_Super3_1);
777
	
778

    
779
	tel
780

    
781
	until true restart POINTSuper3_B
782

    
783

    
784

    
785
tel
786

    
787

    
788
--***************************************************State :Super3_Super3 Automaton***************************************************
789

    
790
node Super3_Super3_node(idSuper3_Super3_1:int;
791
	s_1:real;
792
	E:bool;
793
	x:int;
794
	idSuper3_B_1:int)
795

    
796
returns (idSuper3_Super3:int;
797
	s:real;
798
	idSuper3_B:int);
799

    
800

    
801
let
802

    
803
	 automaton super3_super3
804

    
805
	state POINTSuper3_Super3:
806
	unless (idSuper3_Super3_1=0) restart POINT__TO__SUPER3_A_1
807

    
808

    
809

    
810
	unless (idSuper3_Super3_1=1970) and E restart SUPER3_A__TO__SUPER3_SUPER3JUNCTION1987_1
811

    
812

    
813

    
814
	unless (idSuper3_Super3_1=1972) and E and ( x=0 or x=5 ) restart SUPER3_C__TO__SUPER3_A_1
815

    
816

    
817

    
818
	unless (idSuper3_Super3_1=1973) and E and ( x=0 ) restart SUPER3_B__TO__SUPER3_C_1
819

    
820

    
821

    
822
	unless (idSuper3_Super3_1=1975) and E and ( x=0 ) restart SUPER3_D__TO__SUPER3_B_1
823

    
824

    
825

    
826
	unless (idSuper3_Super3_1=1975) and E and ( x=1 ) restart SUPER3_D__TO__SUPER3_A_2
827

    
828

    
829

    
830
	unless (idSuper3_Super3_1=1970) restart SUPER3_A_IDL
831

    
832
	unless (idSuper3_Super3_1=1972) restart SUPER3_C_IDL
833

    
834
	unless (idSuper3_Super3_1=1973) restart SUPER3_B_IDL
835

    
836
	unless (idSuper3_Super3_1=1975) restart SUPER3_D_IDL
837

    
838
	let
839

    
840
		(idSuper3_Super3, s, idSuper3_B) 
841
	= (idSuper3_Super3_1, s_1, idSuper3_B_1);
842
	
843

    
844
	tel
845

    
846

    
847

    
848
	state POINT__TO__SUPER3_A_1:
849

    
850
	 var 	idSuper3_Super3_2:int;
851
	s_2:real;
852
	let
853

    
854
		-- transition trace :
855
	--POINT__To__Super3_A_1
856
		(idSuper3_Super3_2, s_2) 
857
	= Super3_A_en(idSuper3_Super3_1, s_1, false);
858
		
859

    
860
	(idSuper3_Super3, s) 
861
	=  (idSuper3_Super3_2, s_2);
862

    
863
	--add unused variables
864
	(idSuper3_B) 
865
	= (idSuper3_B_1);
866
	
867

    
868
	tel
869

    
870
	until true restart POINTSuper3_Super3
871

    
872

    
873

    
874
	state SUPER3_A__TO__SUPER3_SUPER3JUNCTION1987_1:
875

    
876
	 var 	idSuper3_Super3_2, idSuper3_Super3_3, idSuper3_Super3_4, idSuper3_Super3_5:int;
877
	s_2, s_3:real;
878
	idSuper3_B_2, idSuper3_B_3:int;
879
	let
880

    
881
		
882

    
883
-- transition trace :
884
	--Super3_A__To__Junction1987_1, Junction1987__To__B_B1_1
885
		(idSuper3_Super3_2) 
886
	= 
887
		 if (( x>0 )) then 
888
		Super3_A_ex(idSuper3_Super3_1, false)
889
		 else (idSuper3_Super3_1);
890
		
891

    
892
		idSuper3_B_2 
893
	= 1971;
894
	
895
		(idSuper3_B_3, idSuper3_Super3_3, s_2) 
896
	= 
897
		 if (( x>0 )) then 
898
		Super3_B_en(idSuper3_B_2, idSuper3_Super3_2, s_1, false)
899
		 else (idSuper3_B_2, idSuper3_Super3_2, s_1);
900
		
901

    
902

    
903
-- transition trace :
904
	--Super3_A__To__Junction1987_1, Junction1987__To__Super3_D_2
905
		(idSuper3_Super3_4) 
906
	= 
907
		 if (( x=0 )) then 
908
		Super3_A_ex(idSuper3_Super3_1, false)
909
		 else (idSuper3_Super3_1);
910
		
911

    
912
		(idSuper3_Super3_5, s_3) 
913
	= 
914
		 if (( x=0 )) then 
915
		Super3_D_en(idSuper3_Super3_4, s_1, false)
916
		 else (idSuper3_Super3_4, s_1);
917
		
918

    
919
	(idSuper3_Super3, s, idSuper3_B) 
920
	= 
921
		 if (( x>0 )) then 
922
		(idSuper3_Super3_3, s_2, idSuper3_B_3)
923
		 else
924
		 if (( x=0 )) then 
925
		(idSuper3_Super3_5, s_3, idSuper3_B_1)
926
		 else (idSuper3_Super3_1, s_1, idSuper3_B_1);
927

    
928

    
929
	tel
930

    
931
	until true restart POINTSuper3_Super3
932

    
933

    
934

    
935
	state SUPER3_C__TO__SUPER3_A_1:
936

    
937
	 var 	idSuper3_Super3_2, idSuper3_Super3_3:int;
938
	s_2:real;
939
	let
940

    
941
		-- transition trace :
942
	--Super3_C__To__Super3_A_1
943
		(idSuper3_Super3_2) 
944
	= Super3_C_ex(idSuper3_Super3_1, false);
945
		
946

    
947
		(idSuper3_Super3_3, s_2) 
948
	= Super3_A_en(idSuper3_Super3_2, s_1, false);
949
		
950

    
951
	(idSuper3_Super3, s, idSuper3_B) 
952
	=  (idSuper3_Super3_3, s_2, idSuper3_B_1);
953

    
954

    
955
	tel
956

    
957
	until true restart POINTSuper3_Super3
958

    
959

    
960

    
961
	state SUPER3_B__TO__SUPER3_C_1:
962

    
963
	 var 	idSuper3_Super3_2, idSuper3_Super3_3:int;
964
	s_2:real;
965
	idSuper3_B_2:int;
966
	let
967

    
968
		-- transition trace :
969
	--Super3_B__To__Super3_C_1
970
		(idSuper3_B_2, idSuper3_Super3_2) 
971
	= Super3_B_ex(idSuper3_B_1, idSuper3_Super3_1, false);
972
		
973

    
974
		(idSuper3_Super3_3, s_2) 
975
	= Super3_C_en(idSuper3_Super3_2, s_1, false);
976
		
977

    
978
	(idSuper3_Super3, s, idSuper3_B) 
979
	=  (idSuper3_Super3_3, s_2, idSuper3_B_2);
980

    
981

    
982
	tel
983

    
984
	until true restart POINTSuper3_Super3
985

    
986

    
987

    
988
	state SUPER3_D__TO__SUPER3_B_1:
989

    
990
	 var 	idSuper3_Super3_2, idSuper3_Super3_3:int;
991
	s_2:real;
992
	idSuper3_B_2:int;
993
	let
994

    
995
		-- transition trace :
996
	--Super3_D__To__Super3_B_1
997
		(idSuper3_Super3_2) 
998
	= Super3_D_ex(idSuper3_Super3_1, false);
999
		
1000

    
1001
		(idSuper3_B_2, idSuper3_Super3_3, s_2) 
1002
	= Super3_B_en(idSuper3_B_1, idSuper3_Super3_2, s_1, false);
1003
		
1004

    
1005
	(idSuper3_Super3, s, idSuper3_B) 
1006
	=  (idSuper3_Super3_3, s_2, idSuper3_B_2);
1007

    
1008

    
1009
	tel
1010

    
1011
	until true restart POINTSuper3_Super3
1012

    
1013

    
1014

    
1015
	state SUPER3_D__TO__SUPER3_A_2:
1016

    
1017
	 var 	idSuper3_Super3_2, idSuper3_Super3_3:int;
1018
	s_2:real;
1019
	let
1020

    
1021
		-- transition trace :
1022
	--Super3_D__To__Super3_A_2
1023
		(idSuper3_Super3_2) 
1024
	= Super3_D_ex(idSuper3_Super3_1, false);
1025
		
1026

    
1027
		(idSuper3_Super3_3, s_2) 
1028
	= Super3_A_en(idSuper3_Super3_2, s_1, false);
1029
		
1030

    
1031
	(idSuper3_Super3, s, idSuper3_B) 
1032
	=  (idSuper3_Super3_3, s_2, idSuper3_B_1);
1033

    
1034

    
1035
	tel
1036

    
1037
	until true restart POINTSuper3_Super3
1038

    
1039

    
1040

    
1041
	state SUPER3_A_IDL:
1042

    
1043
	 	let
1044

    
1045
		
1046

    
1047
	(idSuper3_Super3, s, idSuper3_B) 
1048
	= (idSuper3_Super3_1, s_1, idSuper3_B_1);
1049
	
1050

    
1051
	tel
1052

    
1053
	until true restart POINTSuper3_Super3
1054

    
1055

    
1056

    
1057
	state SUPER3_C_IDL:
1058

    
1059
	 	let
1060

    
1061
		
1062

    
1063
	(idSuper3_Super3, s, idSuper3_B) 
1064
	= (idSuper3_Super3_1, s_1, idSuper3_B_1);
1065
	
1066

    
1067
	tel
1068

    
1069
	until true restart POINTSuper3_Super3
1070

    
1071

    
1072

    
1073
	state SUPER3_B_IDL:
1074

    
1075
	 var 	idSuper3_Super3_2:int;
1076
	s_2:real;
1077
	idSuper3_B_2:int;
1078
	let
1079

    
1080
		
1081
	(idSuper3_B_2, s_2, idSuper3_Super3_2) 
1082
	= Super3_B_node(idSuper3_B_1, s_1, E, x, idSuper3_Super3_1);
1083

    
1084
		
1085

    
1086

    
1087
	(idSuper3_Super3, s, idSuper3_B) 
1088
	= (idSuper3_Super3_2, s_2, idSuper3_B_2);
1089
	
1090

    
1091
	tel
1092

    
1093
	until true restart POINTSuper3_Super3
1094

    
1095

    
1096

    
1097
	state SUPER3_D_IDL:
1098

    
1099
	 	let
1100

    
1101
		
1102

    
1103
	(idSuper3_Super3, s, idSuper3_B) 
1104
	= (idSuper3_Super3_1, s_1, idSuper3_B_1);
1105
	
1106

    
1107
	tel
1108

    
1109
	until true restart POINTSuper3_Super3
1110

    
1111

    
1112

    
1113
tel
1114

    
1115

    
1116
--***************************************************State :Super3_Super3 Automaton***************************************************
1117

    
1118
node Super3_Super3(x:int;
1119
	E:bool)
1120

    
1121
returns (s:real);
1122

    
1123

    
1124
var s_1: real;
1125

    
1126
	idSuper3_Super3, idSuper3_Super3_1: int;
1127

    
1128
	idSuper3_B, idSuper3_B_1: int;
1129

    
1130
	let
1131

    
1132
	s_1 = 0.0 -> pre s;
1133

    
1134
	idSuper3_Super3_1 = 0 -> pre idSuper3_Super3;
1135

    
1136
	idSuper3_B_1 = 0 -> pre idSuper3_B;
1137

    
1138
	
1139

    
1140

    
1141

    
1142
	(idSuper3_Super3, s, idSuper3_B)
1143
	 = 
1144

    
1145
	 if E then Super3_Super3_node(idSuper3_Super3_1, s_1, E, x, idSuper3_B_1)
1146

    
1147
	 else (idSuper3_Super3_1, s_1, idSuper3_B_1);
1148

    
1149
	
1150

    
1151

    
1152
--unused outputs
1153
	
1154

    
1155
tel
1156

    
1157

    
1158

    
1159
node Super3 (x_1_1 : int; E_1_1 : real)
1160
returns (state_1_1 : real); 
1161
var
1162
	Super3_1_1 : real;
1163
	i_virtual_local : real;
1164
	Super3E_1_1_event: bool;
1165
let 
1166
	Super3E_1_1_event = false -> ((pre(E_1_1) > 0.0 and E_1_1 <= 0.0) or (pre(E_1_1) <= 0.0 and E_1_1 > 0.0));
1167
	Super3_1_1 =  Super3_Super3(x_1_1, Super3E_1_1_event);
1168
	state_1_1 = Super3_1_1;
1169
	i_virtual_local= 0.0 -> 1.0;
1170
tel
1171