Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

lustrec-tests / regression_tests / lustre_files / success / Stateflow / src_Super4 / Super4.lus @ eb639349

History | View | Annotate | Download (19.4 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
--During action for state :Super4_D
23
node Super4_D_du(out_1:real)
24

    
25
returns (out:real);
26

    
27

    
28
var 	out_2:real;
29

    
30

    
31
let
32

    
33

    
34

    
35
	out_2 
36
	=  out_1  + 1.;
37
	
38

    
39
	(out) 
40
	= (out_2);
41
	
42

    
43
tel
44

    
45

    
46

    
47

    
48

    
49
-- Entry action for state :Super4_D
50
node Super4_D_en(idSuper4_Super4_1:int;
51
	isInner:bool)
52

    
53
returns (idSuper4_Super4:int);
54

    
55

    
56
var 	idSuper4_Super4_2:int;
57

    
58

    
59
let
60

    
61

    
62

    
63
	-- set state as active 
64
	idSuper4_Super4_2 
65
	= 26;
66
	
67

    
68
	(idSuper4_Super4) 
69
	= (idSuper4_Super4_2);
70
	
71

    
72
tel
73

    
74

    
75

    
76

    
77

    
78
-- Exit action for state :Super4_D
79
node Super4_D_ex(idSuper4_Super4_1:int;
80
	isInner:bool)
81

    
82
returns (idSuper4_Super4:int);
83

    
84

    
85
var 	idSuper4_Super4_2:int;
86

    
87

    
88
let
89

    
90

    
91

    
92
	-- set state as inactive 
93
	idSuper4_Super4_2
94
	 = if (not isInner) then 0 else idSuper4_Super4_1;
95

    
96

    
97
	(idSuper4_Super4) 
98
	= (idSuper4_Super4_1);
99
	
100

    
101
tel
102

    
103

    
104

    
105

    
106

    
107

    
108
--During action for state :B_B1
109
node B_B1_du(out_1:real)
110

    
111
returns (out:real);
112

    
113

    
114
var 	out_2:real;
115

    
116

    
117
let
118

    
119

    
120

    
121
	out_2 
122
	=  out_1  + 1.;
123
	
124

    
125
	(out) 
126
	= (out_2);
127
	
128

    
129
tel
130

    
131

    
132

    
133

    
134

    
135
-- Entry action for state :B_B1
136
node B_B1_en(idSuper4_B_1:int;
137
	isInner:bool)
138

    
139
returns (idSuper4_B:int);
140

    
141

    
142
var 	idSuper4_B_2:int;
143

    
144

    
145
let
146

    
147

    
148

    
149
	-- set state as active 
150
	idSuper4_B_2 
151
	= 28;
152
	
153

    
154
	(idSuper4_B) 
155
	= (idSuper4_B_2);
156
	
157

    
158
tel
159

    
160

    
161

    
162

    
163

    
164
-- Exit action for state :B_B1
165
node B_B1_ex(idSuper4_B_1:int;
166
	isInner:bool)
167

    
168
returns (idSuper4_B:int);
169

    
170

    
171
var 	idSuper4_B_2:int;
172

    
173

    
174
let
175

    
176

    
177

    
178
	-- set state as inactive 
179
	idSuper4_B_2
180
	 = if (not isInner) then 0 else idSuper4_B_1;
181

    
182

    
183
	(idSuper4_B) 
184
	= (idSuper4_B_1);
185
	
186

    
187
tel
188

    
189

    
190

    
191

    
192

    
193

    
194
--During action for state :Super4_B
195
node Super4_B_du(out_1:real)
196

    
197
returns (out:real);
198

    
199

    
200
var 	out_2:real;
201

    
202

    
203
let
204

    
205

    
206

    
207
	out_2 
208
	=  out_1  + 1.;
209
	
210

    
211
	(out) 
212
	= (out_2);
213
	
214

    
215
tel
216

    
217

    
218

    
219

    
220

    
221
-- Entry action for state :Super4_B
222
node Super4_B_en(idSuper4_B_1:int;
223
	idSuper4_Super4_1:int;
224
	isInner:bool)
225

    
226
returns (idSuper4_B:int;
227
	idSuper4_Super4:int);
228

    
229

    
230
var 	idSuper4_B_2, idSuper4_B_3, idSuper4_B_4, idSuper4_B_5:int;
231
	idSuper4_Super4_2, idSuper4_Super4_3, idSuper4_Super4_4:int;
232

    
233

    
234
let
235

    
236

    
237

    
238
	-- set state as active 
239
	idSuper4_Super4_2 
240
	= 24;
241
	
242

    
243
	
244
-- transition trace :
245
	--POINT__To__B_B1_1
246
		(idSuper4_B_2) 
247
	= B_B1_en(idSuper4_B_1, false);
248
		
249

    
250
	(idSuper4_B_3, idSuper4_Super4_3) 
251
	= 
252

    
253
	if ( idSuper4_B_1 = 0) then
254

    
255
	 (idSuper4_B_2, idSuper4_Super4_2)
256

    
257
	 else(idSuper4_B_1, idSuper4_Super4_2);
258

    
259
	
260

    
261
	(idSuper4_B_4) 
262
	= 
263
	if ( idSuper4_B_1 = 28) then
264
	B_B1_en(idSuper4_B_1, false)
265
	 else (idSuper4_B_1);
266

    
267
	
268

    
269
	(idSuper4_B_5, idSuper4_Super4_4) 
270
	= 
271
		 if ( idSuper4_B_1 = 0) then 
272
		(idSuper4_B_3, idSuper4_Super4_3)
273
		 else
274
		 if ( idSuper4_B_1 = 28) then 
275
		(idSuper4_B_4, idSuper4_Super4_3)
276
		 else (idSuper4_B_1, idSuper4_Super4_2);
277

    
278

    
279
	(idSuper4_B, idSuper4_Super4) 
280
	= (idSuper4_B_5, idSuper4_Super4_4);
281
	
282

    
283
tel
284

    
285

    
286

    
287

    
288

    
289
-- Exit action for state :Super4_B
290
node Super4_B_ex(idSuper4_B_1:int;
291
	idSuper4_Super4_1:int;
292
	isInner:bool)
293

    
294
returns (idSuper4_B:int;
295
	idSuper4_Super4:int);
296

    
297

    
298
var 	idSuper4_B_2, idSuper4_B_3, idSuper4_B_4:int;
299
	idSuper4_Super4_2:int;
300

    
301

    
302
let
303

    
304

    
305

    
306
	
307
	(idSuper4_B_2) 
308
	= 
309
	if ( idSuper4_B_1 = 28) then
310
	B_B1_ex(idSuper4_B_1, false)
311
	 else (idSuper4_B_1);
312

    
313
	
314

    
315
	(idSuper4_B_3) 
316
	= 
317
		 if ( idSuper4_B_1 = 28) then 
318
		(idSuper4_B_2)
319
		 else (idSuper4_B_1);
320

    
321

    
322
	-- set state as inactive 
323
	idSuper4_Super4_2
324
	 = if (not isInner) then 0 else idSuper4_Super4_1;
325

    
326
	idSuper4_B_4 
327
	= 0;
328
	
329

    
330
	(idSuper4_B, idSuper4_Super4) 
331
	= (idSuper4_B_4, idSuper4_Super4_1);
332
	
333

    
334
tel
335

    
336

    
337

    
338

    
339

    
340

    
341
--During action for state :A_A1
342
node A_A1_du(out_1:real)
343

    
344
returns (out:real);
345

    
346

    
347
var 	out_2:real;
348

    
349

    
350
let
351

    
352

    
353

    
354
	out_2 
355
	=  out_1  + 1.;
356
	
357

    
358
	(out) 
359
	= (out_2);
360
	
361

    
362
tel
363

    
364

    
365

    
366

    
367

    
368
-- Entry action for state :A_A1
369
node A_A1_en(idSuper4_A_1:int;
370
	isInner:bool)
371

    
372
returns (idSuper4_A:int);
373

    
374

    
375
var 	idSuper4_A_2:int;
376

    
377

    
378
let
379

    
380

    
381

    
382
	-- set state as active 
383
	idSuper4_A_2 
384
	= 27;
385
	
386

    
387
	(idSuper4_A) 
388
	= (idSuper4_A_2);
389
	
390

    
391
tel
392

    
393

    
394

    
395

    
396

    
397
-- Exit action for state :A_A1
398
node A_A1_ex(idSuper4_A_1:int;
399
	isInner:bool)
400

    
401
returns (idSuper4_A:int);
402

    
403

    
404
var 	idSuper4_A_2:int;
405

    
406

    
407
let
408

    
409

    
410

    
411
	-- set state as inactive 
412
	idSuper4_A_2
413
	 = if (not isInner) then 0 else idSuper4_A_1;
414

    
415

    
416
	(idSuper4_A) 
417
	= (idSuper4_A_1);
418
	
419

    
420
tel
421

    
422

    
423

    
424

    
425

    
426

    
427
--During action for state :Super4_A
428
node Super4_A_du(out_1:real)
429

    
430
returns (out:real);
431

    
432

    
433
var 	out_2:real;
434

    
435

    
436
let
437

    
438

    
439

    
440
	out_2 
441
	=  out_1  + 1.;
442
	
443

    
444
	(out) 
445
	= (out_2);
446
	
447

    
448
tel
449

    
450

    
451

    
452

    
453

    
454
-- Entry action for state :Super4_A
455
node Super4_A_en(idSuper4_A_1:int;
456
	idSuper4_Super4_1:int;
457
	isInner:bool)
458

    
459
returns (idSuper4_A:int;
460
	idSuper4_Super4:int);
461

    
462

    
463
var 	idSuper4_A_2, idSuper4_A_3, idSuper4_A_4, idSuper4_A_5:int;
464
	idSuper4_Super4_2, idSuper4_Super4_3, idSuper4_Super4_4:int;
465

    
466

    
467
let
468

    
469

    
470

    
471
	-- set state as active 
472
	idSuper4_Super4_2 
473
	= 23;
474
	
475

    
476
	
477
-- transition trace :
478
	--POINT__To__A_A1_1
479
		(idSuper4_A_2) 
480
	= A_A1_en(idSuper4_A_1, false);
481
		
482

    
483
	(idSuper4_A_3, idSuper4_Super4_3) 
484
	= 
485

    
486
	if ( idSuper4_A_1 = 0) then
487

    
488
	 (idSuper4_A_2, idSuper4_Super4_2)
489

    
490
	 else(idSuper4_A_1, idSuper4_Super4_2);
491

    
492
	
493

    
494
	(idSuper4_A_4) 
495
	= 
496
	if ( idSuper4_A_1 = 27) then
497
	A_A1_en(idSuper4_A_1, false)
498
	 else (idSuper4_A_1);
499

    
500
	
501

    
502
	(idSuper4_A_5, idSuper4_Super4_4) 
503
	= 
504
		 if ( idSuper4_A_1 = 0) then 
505
		(idSuper4_A_3, idSuper4_Super4_3)
506
		 else
507
		 if ( idSuper4_A_1 = 27) then 
508
		(idSuper4_A_4, idSuper4_Super4_3)
509
		 else (idSuper4_A_1, idSuper4_Super4_2);
510

    
511

    
512
	(idSuper4_A, idSuper4_Super4) 
513
	= (idSuper4_A_5, idSuper4_Super4_4);
514
	
515

    
516
tel
517

    
518

    
519

    
520

    
521

    
522
-- Exit action for state :Super4_A
523
node Super4_A_ex(idSuper4_A_1:int;
524
	idSuper4_Super4_1:int;
525
	isInner:bool)
526

    
527
returns (idSuper4_A:int;
528
	idSuper4_Super4:int);
529

    
530

    
531
var 	idSuper4_A_2, idSuper4_A_3, idSuper4_A_4:int;
532
	idSuper4_Super4_2:int;
533

    
534

    
535
let
536

    
537

    
538

    
539
	
540
	(idSuper4_A_2) 
541
	= 
542
	if ( idSuper4_A_1 = 27) then
543
	A_A1_ex(idSuper4_A_1, false)
544
	 else (idSuper4_A_1);
545

    
546
	
547

    
548
	(idSuper4_A_3) 
549
	= 
550
		 if ( idSuper4_A_1 = 27) then 
551
		(idSuper4_A_2)
552
		 else (idSuper4_A_1);
553

    
554

    
555
	-- set state as inactive 
556
	idSuper4_Super4_2
557
	 = if (not isInner) then 0 else idSuper4_Super4_1;
558

    
559
	idSuper4_A_4 
560
	= 0;
561
	
562

    
563
	(idSuper4_A, idSuper4_Super4) 
564
	= (idSuper4_A_4, idSuper4_Super4_1);
565
	
566

    
567
tel
568

    
569

    
570

    
571

    
572

    
573

    
574
--During action for state :Super4_C
575
node Super4_C_du(out_1:real)
576

    
577
returns (out:real);
578

    
579

    
580
var 	out_2:real;
581

    
582

    
583
let
584

    
585

    
586

    
587
	out_2 
588
	=  out_1  + 1.;
589
	
590

    
591
	(out) 
592
	= (out_2);
593
	
594

    
595
tel
596

    
597

    
598

    
599

    
600

    
601
-- Entry action for state :Super4_C
602
node Super4_C_en(idSuper4_Super4_1:int;
603
	isInner:bool)
604

    
605
returns (idSuper4_Super4:int);
606

    
607

    
608
var 	idSuper4_Super4_2:int;
609

    
610

    
611
let
612

    
613

    
614

    
615
	-- set state as active 
616
	idSuper4_Super4_2 
617
	= 25;
618
	
619

    
620
	(idSuper4_Super4) 
621
	= (idSuper4_Super4_2);
622
	
623

    
624
tel
625

    
626

    
627

    
628

    
629

    
630
-- Exit action for state :Super4_C
631
node Super4_C_ex(idSuper4_Super4_1:int;
632
	isInner:bool)
633

    
634
returns (idSuper4_Super4:int);
635

    
636

    
637
var 	idSuper4_Super4_2:int;
638

    
639

    
640
let
641

    
642

    
643

    
644
	-- set state as inactive 
645
	idSuper4_Super4_2
646
	 = if (not isInner) then 0 else idSuper4_Super4_1;
647

    
648

    
649
	(idSuper4_Super4) 
650
	= (idSuper4_Super4_1);
651
	
652

    
653
tel
654

    
655

    
656
--***************************************************State :Super4_B Automaton***************************************************
657

    
658
node Super4_B_node(idSuper4_B_1:int;
659
	E:bool;
660
	idSuper4_Super4_1:int;
661
	F:bool;
662
	idSuper4_A_1:int;
663
	out_1:real)
664

    
665
returns (idSuper4_B:int;
666
	idSuper4_Super4:int;
667
	idSuper4_A:int;
668
	out:real);
669

    
670

    
671
let
672

    
673
	 automaton super4_b
674

    
675
	state POINTSuper4_B:
676
	unless (idSuper4_B_1=0) restart POINT__TO__B_B1_1
677

    
678

    
679

    
680
	unless (idSuper4_B_1=28) and E restart B_B1__TO__SUPER4_D_1
681

    
682

    
683

    
684
	unless (idSuper4_B_1=28) and F restart B_B1__TO__A_A1_2
685

    
686

    
687

    
688
	unless (idSuper4_B_1=28) restart B_B1_IDL
689

    
690
	let
691

    
692
		(idSuper4_B, idSuper4_Super4, idSuper4_A, out) 
693
	= (idSuper4_B_1, idSuper4_Super4_1, idSuper4_A_1, out_1);
694
	
695

    
696
	tel
697

    
698

    
699

    
700
	state POINT__TO__B_B1_1:
701

    
702
	 var 	idSuper4_B_2:int;
703
	let
704

    
705
		-- transition trace :
706
	--POINT__To__B_B1_1
707
		(idSuper4_B_2) 
708
	= B_B1_en(idSuper4_B_1, false);
709
		
710

    
711
	(idSuper4_B) 
712
	=  (idSuper4_B_2);
713

    
714
	--add unused variables
715
	(idSuper4_A, idSuper4_Super4, out) 
716
	= (idSuper4_A_1, idSuper4_Super4_1, out_1);
717
	
718

    
719
	tel
720

    
721
	until true restart POINTSuper4_B
722

    
723

    
724

    
725
	state B_B1__TO__SUPER4_D_1:
726

    
727
	 var 	idSuper4_B_2:int;
728
	idSuper4_Super4_2, idSuper4_Super4_3:int;
729
	let
730

    
731
		-- transition trace :
732
	--B_B1__To__Super4_D_1
733
		(idSuper4_B_2, idSuper4_Super4_2) 
734
	= Super4_B_ex(idSuper4_B_1, idSuper4_Super4_1, false);
735
		
736

    
737
		(idSuper4_Super4_3) 
738
	= Super4_D_en(idSuper4_Super4_2, false);
739
		
740

    
741
	(idSuper4_B, idSuper4_Super4) 
742
	=  (idSuper4_B_2, idSuper4_Super4_3);
743

    
744
	--add unused variables
745
	(idSuper4_A, out) 
746
	= (idSuper4_A_1, out_1);
747
	
748

    
749
	tel
750

    
751
	until true restart POINTSuper4_B
752

    
753

    
754

    
755
	state B_B1__TO__A_A1_2:
756

    
757
	 var 	idSuper4_B_2:int;
758
	idSuper4_Super4_2, idSuper4_Super4_3:int;
759
	idSuper4_A_2, idSuper4_A_3:int;
760
	let
761

    
762
		-- transition trace :
763
	--B_B1__To__A_A1_2
764
		(idSuper4_B_2, idSuper4_Super4_2) 
765
	= Super4_B_ex(idSuper4_B_1, idSuper4_Super4_1, false);
766
		
767

    
768
		idSuper4_A_2 
769
	= 27;
770
	
771
		(idSuper4_A_3, idSuper4_Super4_3) 
772
	= Super4_A_en(idSuper4_A_2, idSuper4_Super4_2, false);
773
		
774

    
775
	(idSuper4_B, idSuper4_Super4, idSuper4_A) 
776
	=  (idSuper4_B_2, idSuper4_Super4_3, idSuper4_A_3);
777

    
778
	--add unused variables
779
	(out) 
780
	= (out_1);
781
	
782

    
783
	tel
784

    
785
	until true restart POINTSuper4_B
786

    
787

    
788

    
789
	state B_B1_IDL:
790

    
791
	 var 	out_2:real;
792
	let
793

    
794
		
795
	(out_2) 
796
	= B_B1_du(out_1);
797

    
798
		
799

    
800

    
801
	(idSuper4_B, idSuper4_Super4, idSuper4_A, out) 
802
	= (idSuper4_B_1, idSuper4_Super4_1, idSuper4_A_1, out_2);
803
	
804

    
805
	tel
806

    
807
	until true restart POINTSuper4_B
808

    
809

    
810

    
811
tel
812

    
813

    
814
--***************************************************State :Super4_A Automaton***************************************************
815

    
816
node Super4_A_node(idSuper4_A_1:int;
817
	E:bool;
818
	idSuper4_Super4_1:int;
819
	idSuper4_B_1:int;
820
	F:bool;
821
	out_1:real)
822

    
823
returns (idSuper4_A:int;
824
	idSuper4_Super4:int;
825
	idSuper4_B:int;
826
	out:real);
827

    
828

    
829
let
830

    
831
	 automaton super4_a
832

    
833
	state POINTSuper4_A:
834
	unless (idSuper4_A_1=0) restart POINT__TO__A_A1_1
835

    
836

    
837

    
838
	unless (idSuper4_A_1=27) and E restart A_A1__TO__B_B1_1
839

    
840

    
841

    
842
	unless (idSuper4_A_1=27) and F restart A_A1__TO__SUPER4_C_2
843

    
844

    
845

    
846
	unless (idSuper4_A_1=27) restart A_A1_IDL
847

    
848
	let
849

    
850
		(idSuper4_A, idSuper4_Super4, idSuper4_B, out) 
851
	= (idSuper4_A_1, idSuper4_Super4_1, idSuper4_B_1, out_1);
852
	
853

    
854
	tel
855

    
856

    
857

    
858
	state POINT__TO__A_A1_1:
859

    
860
	 var 	idSuper4_A_2:int;
861
	let
862

    
863
		-- transition trace :
864
	--POINT__To__A_A1_1
865
		(idSuper4_A_2) 
866
	= A_A1_en(idSuper4_A_1, false);
867
		
868

    
869
	(idSuper4_A) 
870
	=  (idSuper4_A_2);
871

    
872
	--add unused variables
873
	(idSuper4_B, idSuper4_Super4, out) 
874
	= (idSuper4_B_1, idSuper4_Super4_1, out_1);
875
	
876

    
877
	tel
878

    
879
	until true restart POINTSuper4_A
880

    
881

    
882

    
883
	state A_A1__TO__B_B1_1:
884

    
885
	 var 	idSuper4_A_2:int;
886
	idSuper4_Super4_2, idSuper4_Super4_3:int;
887
	idSuper4_B_2, idSuper4_B_3:int;
888
	let
889

    
890
		-- transition trace :
891
	--A_A1__To__B_B1_1
892
		(idSuper4_A_2, idSuper4_Super4_2) 
893
	= Super4_A_ex(idSuper4_A_1, idSuper4_Super4_1, false);
894
		
895

    
896
		idSuper4_B_2 
897
	= 28;
898
	
899
		(idSuper4_B_3, idSuper4_Super4_3) 
900
	= Super4_B_en(idSuper4_B_2, idSuper4_Super4_2, false);
901
		
902

    
903
	(idSuper4_A, idSuper4_Super4, idSuper4_B) 
904
	=  (idSuper4_A_2, idSuper4_Super4_3, idSuper4_B_3);
905

    
906
	--add unused variables
907
	(out) 
908
	= (out_1);
909
	
910

    
911
	tel
912

    
913
	until true restart POINTSuper4_A
914

    
915

    
916

    
917
	state A_A1__TO__SUPER4_C_2:
918

    
919
	 var 	idSuper4_A_2:int;
920
	idSuper4_Super4_2, idSuper4_Super4_3:int;
921
	let
922

    
923
		-- transition trace :
924
	--A_A1__To__Super4_C_2
925
		(idSuper4_A_2, idSuper4_Super4_2) 
926
	= Super4_A_ex(idSuper4_A_1, idSuper4_Super4_1, false);
927
		
928

    
929
		(idSuper4_Super4_3) 
930
	= Super4_C_en(idSuper4_Super4_2, false);
931
		
932

    
933
	(idSuper4_A, idSuper4_Super4, idSuper4_B) 
934
	=  (idSuper4_A_2, idSuper4_Super4_3, idSuper4_B_1);
935

    
936
	--add unused variables
937
	(out) 
938
	= (out_1);
939
	
940

    
941
	tel
942

    
943
	until true restart POINTSuper4_A
944

    
945

    
946

    
947
	state A_A1_IDL:
948

    
949
	 var 	out_2:real;
950
	let
951

    
952
		
953
	(out_2) 
954
	= A_A1_du(out_1);
955

    
956
		
957

    
958

    
959
	(idSuper4_A, idSuper4_Super4, idSuper4_B, out) 
960
	= (idSuper4_A_1, idSuper4_Super4_1, idSuper4_B_1, out_2);
961
	
962

    
963
	tel
964

    
965
	until true restart POINTSuper4_A
966

    
967

    
968

    
969
tel
970

    
971

    
972
--***************************************************State :Super4_Super4 Automaton***************************************************
973

    
974
node Super4_Super4_node(idSuper4_Super4_1:int;
975
	G:bool;
976
	idSuper4_A_1:int;
977
	idSuper4_B_1:int;
978
	F:bool;
979
	E:bool;
980
	out_1:real)
981

    
982
returns (idSuper4_Super4:int;
983
	idSuper4_A:int;
984
	idSuper4_B:int;
985
	out:real);
986

    
987

    
988
let
989

    
990
	 automaton super4_super4
991

    
992
	state POINTSuper4_Super4:
993
	unless (idSuper4_Super4_1=0) restart POINT__TO__SUPER4_C_1
994

    
995

    
996

    
997
	unless (idSuper4_Super4_1=23) and G restart SUPER4_A__TO__SUPER4_B_1
998

    
999

    
1000

    
1001
	unless (idSuper4_Super4_1=24) and G restart SUPER4_B__TO__SUPER4_A_1
1002

    
1003

    
1004

    
1005
	unless (idSuper4_Super4_1=25) and F restart SUPER4_C__TO__SUPER4_D_1
1006

    
1007

    
1008

    
1009
	unless (idSuper4_Super4_1=25) and E restart SUPER4_C__TO__A_A1_2
1010

    
1011

    
1012

    
1013
	unless (idSuper4_Super4_1=26) and E restart SUPER4_D__TO__SUPER4_C_1
1014

    
1015

    
1016

    
1017
	unless (idSuper4_Super4_1=26) and F restart SUPER4_D__TO__B_B1_2
1018

    
1019

    
1020

    
1021
	unless (idSuper4_Super4_1=23) restart SUPER4_A_IDL
1022

    
1023
	unless (idSuper4_Super4_1=24) restart SUPER4_B_IDL
1024

    
1025
	unless (idSuper4_Super4_1=25) restart SUPER4_C_IDL
1026

    
1027
	unless (idSuper4_Super4_1=26) restart SUPER4_D_IDL
1028

    
1029
	let
1030

    
1031
		(idSuper4_Super4, idSuper4_A, idSuper4_B, out) 
1032
	= (idSuper4_Super4_1, idSuper4_A_1, idSuper4_B_1, out_1);
1033
	
1034

    
1035
	tel
1036

    
1037

    
1038

    
1039
	state POINT__TO__SUPER4_C_1:
1040

    
1041
	 var 	idSuper4_Super4_2:int;
1042
	let
1043

    
1044
		-- transition trace :
1045
	--POINT__To__Super4_C_1
1046
		(idSuper4_Super4_2) 
1047
	= Super4_C_en(idSuper4_Super4_1, false);
1048
		
1049

    
1050
	(idSuper4_Super4) 
1051
	=  (idSuper4_Super4_2);
1052

    
1053
	--add unused variables
1054
	(idSuper4_A, idSuper4_B, out) 
1055
	= (idSuper4_A_1, idSuper4_B_1, out_1);
1056
	
1057

    
1058
	tel
1059

    
1060
	until true restart POINTSuper4_Super4
1061

    
1062

    
1063

    
1064
	state SUPER4_A__TO__SUPER4_B_1:
1065

    
1066
	 var 	idSuper4_Super4_2, idSuper4_Super4_3:int;
1067
	idSuper4_A_2:int;
1068
	idSuper4_B_2:int;
1069
	let
1070

    
1071
		-- transition trace :
1072
	--Super4_A__To__Super4_B_1
1073
		(idSuper4_A_2, idSuper4_Super4_2) 
1074
	= Super4_A_ex(idSuper4_A_1, idSuper4_Super4_1, false);
1075
		
1076

    
1077
		(idSuper4_B_2, idSuper4_Super4_3) 
1078
	= Super4_B_en(idSuper4_B_1, idSuper4_Super4_2, false);
1079
		
1080

    
1081
	(idSuper4_Super4, idSuper4_A, idSuper4_B) 
1082
	=  (idSuper4_Super4_3, idSuper4_A_2, idSuper4_B_2);
1083

    
1084
	--add unused variables
1085
	(out) 
1086
	= (out_1);
1087
	
1088

    
1089
	tel
1090

    
1091
	until true restart POINTSuper4_Super4
1092

    
1093

    
1094

    
1095
	state SUPER4_B__TO__SUPER4_A_1:
1096

    
1097
	 var 	idSuper4_Super4_2, idSuper4_Super4_3:int;
1098
	idSuper4_A_2:int;
1099
	idSuper4_B_2:int;
1100
	let
1101

    
1102
		-- transition trace :
1103
	--Super4_B__To__Super4_A_1
1104
		(idSuper4_B_2, idSuper4_Super4_2) 
1105
	= Super4_B_ex(idSuper4_B_1, idSuper4_Super4_1, false);
1106
		
1107

    
1108
		(idSuper4_A_2, idSuper4_Super4_3) 
1109
	= Super4_A_en(idSuper4_A_1, idSuper4_Super4_2, false);
1110
		
1111

    
1112
	(idSuper4_Super4, idSuper4_A, idSuper4_B) 
1113
	=  (idSuper4_Super4_3, idSuper4_A_2, idSuper4_B_2);
1114

    
1115
	--add unused variables
1116
	(out) 
1117
	= (out_1);
1118
	
1119

    
1120
	tel
1121

    
1122
	until true restart POINTSuper4_Super4
1123

    
1124

    
1125

    
1126
	state SUPER4_C__TO__SUPER4_D_1:
1127

    
1128
	 var 	idSuper4_Super4_2, idSuper4_Super4_3:int;
1129
	let
1130

    
1131
		-- transition trace :
1132
	--Super4_C__To__Super4_D_1
1133
		(idSuper4_Super4_2) 
1134
	= Super4_C_ex(idSuper4_Super4_1, false);
1135
		
1136

    
1137
		(idSuper4_Super4_3) 
1138
	= Super4_D_en(idSuper4_Super4_2, false);
1139
		
1140

    
1141
	(idSuper4_Super4, idSuper4_A, idSuper4_B) 
1142
	=  (idSuper4_Super4_3, idSuper4_A_1, idSuper4_B_1);
1143

    
1144
	--add unused variables
1145
	(out) 
1146
	= (out_1);
1147
	
1148

    
1149
	tel
1150

    
1151
	until true restart POINTSuper4_Super4
1152

    
1153

    
1154

    
1155
	state SUPER4_C__TO__A_A1_2:
1156

    
1157
	 var 	idSuper4_Super4_2, idSuper4_Super4_3:int;
1158
	idSuper4_A_2, idSuper4_A_3:int;
1159
	let
1160

    
1161
		-- transition trace :
1162
	--Super4_C__To__A_A1_2
1163
		(idSuper4_Super4_2) 
1164
	= Super4_C_ex(idSuper4_Super4_1, false);
1165
		
1166

    
1167
		idSuper4_A_2 
1168
	= 27;
1169
	
1170
		(idSuper4_A_3, idSuper4_Super4_3) 
1171
	= Super4_A_en(idSuper4_A_2, idSuper4_Super4_2, false);
1172
		
1173

    
1174
	(idSuper4_Super4, idSuper4_A, idSuper4_B) 
1175
	=  (idSuper4_Super4_3, idSuper4_A_3, idSuper4_B_1);
1176

    
1177
	--add unused variables
1178
	(out) 
1179
	= (out_1);
1180
	
1181

    
1182
	tel
1183

    
1184
	until true restart POINTSuper4_Super4
1185

    
1186

    
1187

    
1188
	state SUPER4_D__TO__SUPER4_C_1:
1189

    
1190
	 var 	idSuper4_Super4_2, idSuper4_Super4_3:int;
1191
	let
1192

    
1193
		-- transition trace :
1194
	--Super4_D__To__Super4_C_1
1195
		(idSuper4_Super4_2) 
1196
	= Super4_D_ex(idSuper4_Super4_1, false);
1197
		
1198

    
1199
		(idSuper4_Super4_3) 
1200
	= Super4_C_en(idSuper4_Super4_2, false);
1201
		
1202

    
1203
	(idSuper4_Super4, idSuper4_A, idSuper4_B) 
1204
	=  (idSuper4_Super4_3, idSuper4_A_1, idSuper4_B_1);
1205

    
1206
	--add unused variables
1207
	(out) 
1208
	= (out_1);
1209
	
1210

    
1211
	tel
1212

    
1213
	until true restart POINTSuper4_Super4
1214

    
1215

    
1216

    
1217
	state SUPER4_D__TO__B_B1_2:
1218

    
1219
	 var 	idSuper4_Super4_2, idSuper4_Super4_3:int;
1220
	idSuper4_B_2, idSuper4_B_3:int;
1221
	let
1222

    
1223
		-- transition trace :
1224
	--Super4_D__To__B_B1_2
1225
		(idSuper4_Super4_2) 
1226
	= Super4_D_ex(idSuper4_Super4_1, false);
1227
		
1228

    
1229
		idSuper4_B_2 
1230
	= 28;
1231
	
1232
		(idSuper4_B_3, idSuper4_Super4_3) 
1233
	= Super4_B_en(idSuper4_B_2, idSuper4_Super4_2, false);
1234
		
1235

    
1236
	(idSuper4_Super4, idSuper4_A, idSuper4_B) 
1237
	=  (idSuper4_Super4_3, idSuper4_A_1, idSuper4_B_3);
1238

    
1239
	--add unused variables
1240
	(out) 
1241
	= (out_1);
1242
	
1243

    
1244
	tel
1245

    
1246
	until true restart POINTSuper4_Super4
1247

    
1248

    
1249

    
1250
	state SUPER4_A_IDL:
1251

    
1252
	 var 	idSuper4_Super4_2:int;
1253
	idSuper4_A_2:int;
1254
	idSuper4_B_2:int;
1255
	out_2, out_3:real;
1256
	let
1257

    
1258
		
1259
	(out_2) 
1260
	= Super4_A_du(out_1);
1261

    
1262
		
1263

    
1264
	(idSuper4_A_2, idSuper4_Super4_2, idSuper4_B_2, out_3) 
1265
	= Super4_A_node(idSuper4_A_1, E, idSuper4_Super4_1, idSuper4_B_1, F, out_2);
1266

    
1267
		
1268

    
1269

    
1270
	(idSuper4_Super4, idSuper4_A, idSuper4_B, out) 
1271
	= (idSuper4_Super4_2, idSuper4_A_2, idSuper4_B_2, out_3);
1272
	
1273

    
1274
	tel
1275

    
1276
	until true restart POINTSuper4_Super4
1277

    
1278

    
1279

    
1280
	state SUPER4_B_IDL:
1281

    
1282
	 var 	idSuper4_Super4_2:int;
1283
	idSuper4_A_2:int;
1284
	idSuper4_B_2:int;
1285
	out_2, out_3:real;
1286
	let
1287

    
1288
		
1289
	(out_2) 
1290
	= Super4_B_du(out_1);
1291

    
1292
		
1293

    
1294
	(idSuper4_B_2, idSuper4_Super4_2, idSuper4_A_2, out_3) 
1295
	= Super4_B_node(idSuper4_B_1, E, idSuper4_Super4_1, F, idSuper4_A_1, out_2);
1296

    
1297
		
1298

    
1299

    
1300
	(idSuper4_Super4, idSuper4_A, idSuper4_B, out) 
1301
	= (idSuper4_Super4_2, idSuper4_A_2, idSuper4_B_2, out_3);
1302
	
1303

    
1304
	tel
1305

    
1306
	until true restart POINTSuper4_Super4
1307

    
1308

    
1309

    
1310
	state SUPER4_C_IDL:
1311

    
1312
	 var 	out_2:real;
1313
	let
1314

    
1315
		
1316
	(out_2) 
1317
	= Super4_C_du(out_1);
1318

    
1319
		
1320

    
1321

    
1322
	(idSuper4_Super4, idSuper4_A, idSuper4_B, out) 
1323
	= (idSuper4_Super4_1, idSuper4_A_1, idSuper4_B_1, out_2);
1324
	
1325

    
1326
	tel
1327

    
1328
	until true restart POINTSuper4_Super4
1329

    
1330

    
1331

    
1332
	state SUPER4_D_IDL:
1333

    
1334
	 var 	out_2:real;
1335
	let
1336

    
1337
		
1338
	(out_2) 
1339
	= Super4_D_du(out_1);
1340

    
1341
		
1342

    
1343

    
1344
	(idSuper4_Super4, idSuper4_A, idSuper4_B, out) 
1345
	= (idSuper4_Super4_1, idSuper4_A_1, idSuper4_B_1, out_2);
1346
	
1347

    
1348
	tel
1349

    
1350
	until true restart POINTSuper4_Super4
1351

    
1352

    
1353

    
1354
tel
1355

    
1356

    
1357
--***************************************************State :Super4_Super4 Automaton***************************************************
1358

    
1359
node Super4_Super4(E:bool;
1360
	G:bool;
1361
	F:bool)
1362

    
1363
returns (out:real);
1364

    
1365

    
1366
var out_1: real;
1367

    
1368
	idSuper4_Super4, idSuper4_Super4_1: int;
1369

    
1370
	idSuper4_B, idSuper4_B_1: int;
1371

    
1372
	idSuper4_A, idSuper4_A_1: int;
1373

    
1374
		idSuper4_Super4_2, idSuper4_Super4_3:int;
1375
	idSuper4_A_2, idSuper4_A_3:int;
1376
	idSuper4_B_2, idSuper4_B_3:int;
1377
	out_2, out_3:real;
1378
let
1379

    
1380
	out_1 = 0.0 -> pre out;
1381

    
1382
	idSuper4_Super4_1 = 0 -> pre idSuper4_Super4;
1383

    
1384
	idSuper4_B_1 = 0 -> pre idSuper4_B;
1385

    
1386
	idSuper4_A_1 = 0 -> pre idSuper4_A;
1387

    
1388
	
1389

    
1390

    
1391

    
1392
	(idSuper4_Super4_2, idSuper4_A_2, idSuper4_B_2, out_2)
1393
	 = 
1394

    
1395
	 if E then Super4_Super4_node(idSuper4_Super4_1, false, idSuper4_A_1, idSuper4_B_1, false, E, out_1)
1396

    
1397
	 else (idSuper4_Super4_1, idSuper4_A_1, idSuper4_B_1, out_1);
1398

    
1399
	
1400

    
1401

    
1402

    
1403
	(idSuper4_Super4_3, idSuper4_A_3, idSuper4_B_3, out_3)
1404
	 = 
1405

    
1406
	 if G then Super4_Super4_node(idSuper4_Super4_2, G, idSuper4_A_2, idSuper4_B_2, false, false, out_2)
1407

    
1408
	 else (idSuper4_Super4_2, idSuper4_A_2, idSuper4_B_2, out_2);
1409

    
1410
	
1411

    
1412

    
1413

    
1414
	(idSuper4_Super4, idSuper4_A, idSuper4_B, out)
1415
	 = 
1416

    
1417
	 if F then Super4_Super4_node(idSuper4_Super4_3, false, idSuper4_A_3, idSuper4_B_3, F, false, out_3)
1418

    
1419
	 else (idSuper4_Super4_3, idSuper4_A_3, idSuper4_B_3, out_3);
1420

    
1421
	
1422

    
1423

    
1424
--unused outputs
1425
	
1426

    
1427
tel
1428

    
1429

    
1430

    
1431
node Super4 (E_1_1 : real; F_1_1 : real; E2_1_1 : real)
1432
returns (Out_1_1 : real); 
1433
var
1434
	Mux_1_1 : real; Mux_1_2 : real; Mux_1_3 : real;
1435
	Super4_1_1 : real;
1436
	i_virtual_local : real;
1437
	Super4Mux_1_1_event: bool;
1438
	Super4Mux_1_2_event: bool;
1439
	Super4Mux_1_3_event: bool;
1440
let 
1441
	Mux_1_1 = E_1_1 ;
1442
	Mux_1_2 = F_1_1 ;
1443
	Mux_1_3 = E2_1_1 ;
1444
	Super4Mux_1_1_event = false -> ((pre(Mux_1_1) > 0.0 and Mux_1_1 <= 0.0) or (pre(Mux_1_1) <= 0.0 and Mux_1_1 > 0.0));
1445
	Super4Mux_1_2_event = false -> ((pre(Mux_1_2) > 0.0 and Mux_1_2 <= 0.0) or (pre(Mux_1_2) <= 0.0 and Mux_1_2 > 0.0));
1446
	Super4Mux_1_3_event = false -> ((pre(Mux_1_3) > 0.0 and Mux_1_3 <= 0.0) or (pre(Mux_1_3) <= 0.0 and Mux_1_3 > 0.0));
1447
	Super4_1_1 =  Super4_Super4(Super4Mux_1_1_event, Super4Mux_1_2_event, Super4Mux_1_3_event);
1448
	Out_1_1 = Super4_1_1;
1449
	i_virtual_local= 0.0 -> 1.0;
1450
tel
1451