Initial commit
This commit is contained in:
92
netfiles/fischer-fail.aut
Normal file
92
netfiles/fischer-fail.aut
Normal file
@@ -0,0 +1,92 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 2, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 1, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 2, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 1, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
reach {
|
||||
mutualexclusion_p1p2 { crit1@proc1 crit2@proc2 };
|
||||
};
|
||||
87
netfiles/fischer-orig.aut
Normal file
87
netfiles/fischer-orig.aut
Normal file
@@ -0,0 +1,87 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 1, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 2, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 1, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 2, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
88
netfiles/fischer.aut
Normal file
88
netfiles/fischer.aut
Normal file
@@ -0,0 +1,88 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 1, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 2, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 1, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 2, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
416
netfiles/fischer10p.aut
Normal file
416
netfiles/fischer10p.aut
Normal file
@@ -0,0 +1,416 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
|
||||
start3;
|
||||
setv3;
|
||||
enter3;
|
||||
setv03;
|
||||
|
||||
start4;
|
||||
setv4;
|
||||
enter4;
|
||||
setv04;
|
||||
|
||||
start5;
|
||||
setv5;
|
||||
enter5;
|
||||
setv05;
|
||||
|
||||
start6;
|
||||
setv6;
|
||||
enter6;
|
||||
setv06;
|
||||
|
||||
start7;
|
||||
setv7;
|
||||
enter7;
|
||||
setv07;
|
||||
|
||||
start8;
|
||||
setv8;
|
||||
enter8;
|
||||
setv08;
|
||||
|
||||
start9;
|
||||
setv9;
|
||||
enter9;
|
||||
setv09;
|
||||
|
||||
start10;
|
||||
setv10;
|
||||
enter10;
|
||||
setv010;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 1, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 2, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 1, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 2, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc3 {
|
||||
clocks {
|
||||
x3;
|
||||
};
|
||||
locations {
|
||||
idle3 { init; };
|
||||
try3;
|
||||
wait3;
|
||||
crit3;
|
||||
};
|
||||
trans {
|
||||
idle3 -> try3, start3, , { x3; };
|
||||
try3 -> wait3, setv3, x3 < 1, { x3; };
|
||||
wait3 -> crit3, enter3, x3 > 2, { };
|
||||
crit3 -> idle3, setv03, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc4 {
|
||||
clocks {
|
||||
x4;
|
||||
};
|
||||
locations {
|
||||
idle4 { init; };
|
||||
try4;
|
||||
wait4;
|
||||
crit4;
|
||||
};
|
||||
trans {
|
||||
idle4 -> try4, start4, , { x4; };
|
||||
try4 -> wait4, setv4, x4 < 1, { x4; };
|
||||
wait4 -> crit4, enter4, x4 > 2, { };
|
||||
crit4 -> idle4, setv04, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc5 {
|
||||
clocks {
|
||||
x5;
|
||||
};
|
||||
locations {
|
||||
idle5 { init; };
|
||||
try5;
|
||||
wait5;
|
||||
crit5;
|
||||
};
|
||||
trans {
|
||||
idle5 -> try5, start5, , { x5; };
|
||||
try5 -> wait5, setv5, x5 < 1, { x5; };
|
||||
wait5 -> crit5, enter5, x5 > 2, { };
|
||||
crit5 -> idle5, setv05, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc6 {
|
||||
clocks {
|
||||
x6;
|
||||
};
|
||||
locations {
|
||||
idle6 { init; };
|
||||
try6;
|
||||
wait6;
|
||||
crit6;
|
||||
};
|
||||
trans {
|
||||
idle6 -> try6, start6, , { x6; };
|
||||
try6 -> wait6, setv6, x6 < 1, { x6; };
|
||||
wait6 -> crit6, enter6, x6 > 2, { };
|
||||
crit6 -> idle6, setv06, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc7 {
|
||||
clocks {
|
||||
x7;
|
||||
};
|
||||
locations {
|
||||
idle7 { init; };
|
||||
try7;
|
||||
wait7;
|
||||
crit7;
|
||||
};
|
||||
trans {
|
||||
idle7 -> try7, start7, , { x7; };
|
||||
try7 -> wait7, setv7, x7 < 1, { x7; };
|
||||
wait7 -> crit7, enter7, x7 > 2, { };
|
||||
crit7 -> idle7, setv07, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc8 {
|
||||
clocks {
|
||||
x8;
|
||||
};
|
||||
locations {
|
||||
idle8 { init; };
|
||||
try8;
|
||||
wait8;
|
||||
crit8;
|
||||
};
|
||||
trans {
|
||||
idle8 -> try8, start8, , { x8; };
|
||||
try8 -> wait8, setv8, x8 < 1, { x8; };
|
||||
wait8 -> crit8, enter8, x8 > 2, { };
|
||||
crit8 -> idle8, setv08, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc9 {
|
||||
clocks {
|
||||
x9;
|
||||
};
|
||||
locations {
|
||||
idle9 { init; };
|
||||
try9;
|
||||
wait9;
|
||||
crit9;
|
||||
};
|
||||
trans {
|
||||
idle9 -> try9, start9, , { x9; };
|
||||
try9 -> wait9, setv9, x9 < 1, { x9; };
|
||||
wait9 -> crit9, enter9, x9 > 2, { };
|
||||
crit9 -> idle9, setv09, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc10 {
|
||||
clocks {
|
||||
x10;
|
||||
};
|
||||
locations {
|
||||
idle10 { init; };
|
||||
try10;
|
||||
wait10;
|
||||
crit10;
|
||||
};
|
||||
trans {
|
||||
idle10 -> try10, start10, , { x10; };
|
||||
try10 -> wait10, setv10, x10 < 1, { x10; };
|
||||
wait10 -> crit10, enter10, x10 > 2, { };
|
||||
crit10 -> idle10, setv010, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
v3;
|
||||
v4;
|
||||
v5;
|
||||
v6;
|
||||
v7;
|
||||
v8;
|
||||
v9;
|
||||
v10;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v0, start3, , { };
|
||||
v0 -> v0, start4, , { };
|
||||
v0 -> v0, start5, , { };
|
||||
v0 -> v0, start6, , { };
|
||||
v0 -> v0, start7, , { };
|
||||
v0 -> v0, start8, , { };
|
||||
v0 -> v0, start9, , { };
|
||||
v0 -> v0, start10, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
v0 -> v3, setv3, , { };
|
||||
v0 -> v4, setv4, , { };
|
||||
v0 -> v5, setv5, , { };
|
||||
v0 -> v6, setv6, , { };
|
||||
v0 -> v7, setv7, , { };
|
||||
v0 -> v8, setv8, , { };
|
||||
v0 -> v9, setv9, , { };
|
||||
v0 -> v10, setv10, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
v1 -> v3, setv3, , { };
|
||||
v1 -> v4, setv4, , { };
|
||||
v1 -> v5, setv5, , { };
|
||||
v1 -> v6, setv6, , { };
|
||||
v1 -> v7, setv7, , { };
|
||||
v1 -> v8, setv8, , { };
|
||||
v1 -> v9, setv9, , { };
|
||||
v1 -> v10, setv10, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v1, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
v2 -> v3, setv3, , { };
|
||||
v2 -> v4, setv4, , { };
|
||||
v2 -> v5, setv5, , { };
|
||||
v2 -> v6, setv6, , { };
|
||||
v2 -> v7, setv7, , { };
|
||||
v2 -> v8, setv8, , { };
|
||||
v2 -> v9, setv9, , { };
|
||||
v2 -> v10, setv10, , { };
|
||||
|
||||
v3 -> v0, setv03, , { };
|
||||
v3 -> v1, enter3, , { };
|
||||
v3 -> v1, setv1, , { };
|
||||
v3 -> v2, setv2, , { };
|
||||
v3 -> v3, setv3, , { };
|
||||
v3 -> v4, setv4, , { };
|
||||
v3 -> v5, setv5, , { };
|
||||
v3 -> v6, setv6, , { };
|
||||
v3 -> v7, setv7, , { };
|
||||
v3 -> v8, setv8, , { };
|
||||
v3 -> v9, setv9, , { };
|
||||
v3 -> v10, setv10, , { };
|
||||
|
||||
v4 -> v0, setv04, , { };
|
||||
v4 -> v1, enter4, , { };
|
||||
v4 -> v1, setv1, , { };
|
||||
v4 -> v2, setv2, , { };
|
||||
v4 -> v3, setv3, , { };
|
||||
v4 -> v4, setv4, , { };
|
||||
v4 -> v5, setv5, , { };
|
||||
v4 -> v6, setv6, , { };
|
||||
v4 -> v7, setv7, , { };
|
||||
v4 -> v8, setv8, , { };
|
||||
v4 -> v9, setv9, , { };
|
||||
v4 -> v10, setv10, , { };
|
||||
|
||||
v5 -> v0, setv05, , { };
|
||||
v5 -> v1, enter5, , { };
|
||||
v5 -> v1, setv1, , { };
|
||||
v5 -> v2, setv2, , { };
|
||||
v5 -> v3, setv3, , { };
|
||||
v5 -> v4, setv4, , { };
|
||||
v5 -> v5, setv5, , { };
|
||||
v5 -> v6, setv6, , { };
|
||||
v5 -> v7, setv7, , { };
|
||||
v5 -> v8, setv8, , { };
|
||||
v5 -> v9, setv9, , { };
|
||||
v5 -> v10, setv10, , { };
|
||||
|
||||
v6 -> v0, setv06, , { };
|
||||
v6 -> v1, enter6, , { };
|
||||
v6 -> v1, setv1, , { };
|
||||
v6 -> v2, setv2, , { };
|
||||
v6 -> v3, setv3, , { };
|
||||
v6 -> v4, setv4, , { };
|
||||
v6 -> v5, setv5, , { };
|
||||
v6 -> v6, setv6, , { };
|
||||
v6 -> v7, setv7, , { };
|
||||
v6 -> v8, setv8, , { };
|
||||
v6 -> v9, setv9, , { };
|
||||
v6 -> v10, setv10, , { };
|
||||
|
||||
v7 -> v0, setv07, , { };
|
||||
v7 -> v1, enter7, , { };
|
||||
v7 -> v1, setv1, , { };
|
||||
v7 -> v2, setv2, , { };
|
||||
v7 -> v3, setv3, , { };
|
||||
v7 -> v4, setv4, , { };
|
||||
v7 -> v5, setv5, , { };
|
||||
v7 -> v6, setv6, , { };
|
||||
v7 -> v7, setv7, , { };
|
||||
v7 -> v8, setv8, , { };
|
||||
v7 -> v9, setv9, , { };
|
||||
v7 -> v10, setv10, , { };
|
||||
|
||||
v8 -> v0, setv08, , { };
|
||||
v8 -> v1, enter8, , { };
|
||||
v8 -> v1, setv1, , { };
|
||||
v8 -> v2, setv2, , { };
|
||||
v8 -> v3, setv3, , { };
|
||||
v8 -> v4, setv4, , { };
|
||||
v8 -> v5, setv5, , { };
|
||||
v8 -> v6, setv6, , { };
|
||||
v8 -> v7, setv7, , { };
|
||||
v8 -> v8, setv8, , { };
|
||||
v8 -> v9, setv9, , { };
|
||||
v8 -> v10, setv10, , { };
|
||||
|
||||
v9 -> v0, setv09, , { };
|
||||
v9 -> v1, enter9, , { };
|
||||
v9 -> v1, setv1, , { };
|
||||
v9 -> v2, setv2, , { };
|
||||
v9 -> v3, setv3, , { };
|
||||
v9 -> v4, setv4, , { };
|
||||
v9 -> v5, setv5, , { };
|
||||
v9 -> v6, setv6, , { };
|
||||
v9 -> v7, setv7, , { };
|
||||
v9 -> v8, setv8, , { };
|
||||
v9 -> v9, setv9, , { };
|
||||
v9 -> v10, setv10, , { };
|
||||
|
||||
v10 -> v0, setv010, , { };
|
||||
v10 -> v1, enter10, , { };
|
||||
v10 -> v1, setv1, , { };
|
||||
v10 -> v2, setv2, , { };
|
||||
v10 -> v3, setv3, , { };
|
||||
v10 -> v4, setv4, , { };
|
||||
v10 -> v5, setv5, , { };
|
||||
v10 -> v6, setv6, , { };
|
||||
v10 -> v7, setv7, , { };
|
||||
v10 -> v8, setv8, , { };
|
||||
v10 -> v9, setv9, , { };
|
||||
v10 -> v10, setv10, , { };
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
121
netfiles/fischer3p-fail.aut
Normal file
121
netfiles/fischer3p-fail.aut
Normal file
@@ -0,0 +1,121 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
|
||||
start3;
|
||||
setv3;
|
||||
enter3;
|
||||
setv03;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 2, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 1, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 2, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 1, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc3 {
|
||||
clocks {
|
||||
x3;
|
||||
};
|
||||
locations {
|
||||
idle3 { init; };
|
||||
try3;
|
||||
wait3;
|
||||
crit3;
|
||||
};
|
||||
trans {
|
||||
idle3 -> try3, start3, , { x3; };
|
||||
try3 -> wait3, setv3, x3 < 2, { x3; };
|
||||
wait3 -> crit3, enter3, x3 > 1, { };
|
||||
crit3 -> idle3, setv03, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
v3;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v0, start3, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
v0 -> v3, setv3, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
v1 -> v3, setv3, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
v2 -> v3, setv3, , { };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
reach {
|
||||
mutualexclusion_p1p2 { crit1@proc1 crit2@proc2 };
|
||||
mutualexclusion_p1p3 { crit1@proc1 crit3@proc3 };
|
||||
mutualexclusion_p2p3 { crit2@proc2 crit3@proc3 };
|
||||
};
|
||||
121
netfiles/fischer3p.aut
Normal file
121
netfiles/fischer3p.aut
Normal file
@@ -0,0 +1,121 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
|
||||
start3;
|
||||
setv3;
|
||||
enter3;
|
||||
setv03;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 1, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 2, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 1, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 2, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc3 {
|
||||
clocks {
|
||||
x3;
|
||||
};
|
||||
locations {
|
||||
idle3 { init; };
|
||||
try3;
|
||||
wait3;
|
||||
crit3;
|
||||
};
|
||||
trans {
|
||||
idle3 -> try3, start3, , { x3; };
|
||||
try3 -> wait3, setv3, x3 < 1, { x3; };
|
||||
wait3 -> crit3, enter3, x3 > 2, { };
|
||||
crit3 -> idle3, setv03, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
v3;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v0, start3, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
v0 -> v3, setv3, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
v1 -> v3, setv3, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
v2 -> v3, setv3, , { };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
reach {
|
||||
mutualexclusion_p1p2 { crit1@proc1 crit2@proc2 };
|
||||
mutualexclusion_p1p3 { crit1@proc1 crit3@proc3 };
|
||||
mutualexclusion_p2p3 { crit2@proc2 crit3@proc3 };
|
||||
};
|
||||
167
netfiles/fischer4p-fail.aut
Normal file
167
netfiles/fischer4p-fail.aut
Normal file
@@ -0,0 +1,167 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
|
||||
start3;
|
||||
setv3;
|
||||
enter3;
|
||||
setv03;
|
||||
|
||||
start4;
|
||||
setv4;
|
||||
enter4;
|
||||
setv04;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 2, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 1, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 2, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 1, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc3 {
|
||||
clocks {
|
||||
x3;
|
||||
};
|
||||
locations {
|
||||
idle3 { init; };
|
||||
try3;
|
||||
wait3;
|
||||
crit3;
|
||||
};
|
||||
trans {
|
||||
idle3 -> try3, start3, , { x3; };
|
||||
try3 -> wait3, setv3, x3 < 2, { x3; };
|
||||
wait3 -> crit3, enter3, x3 > 1, { };
|
||||
crit3 -> idle3, setv03, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc4 {
|
||||
clocks {
|
||||
x4;
|
||||
};
|
||||
locations {
|
||||
idle4 { init; };
|
||||
try4;
|
||||
wait4;
|
||||
crit4;
|
||||
};
|
||||
trans {
|
||||
idle4 -> try4, start4, , { x4; };
|
||||
try4 -> wait4, setv4, x4 < 2, { x4; };
|
||||
wait4 -> crit4, enter4, x4 > 1, { };
|
||||
crit4 -> idle4, setv04, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
v3;
|
||||
v4;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v0, start3, , { };
|
||||
v0 -> v0, start4, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
v0 -> v3, setv3, , { };
|
||||
v0 -> v4, setv4, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
v1 -> v3, setv3, , { };
|
||||
v1 -> v4, setv4, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
v2 -> v3, setv3, , { };
|
||||
v2 -> v4, setv4, , { };
|
||||
|
||||
v3 -> v0, setv03, , { };
|
||||
v3 -> v3, enter3, , { };
|
||||
v3 -> v1, setv1, , { };
|
||||
v3 -> v2, setv2, , { };
|
||||
v3 -> v3, setv3, , { };
|
||||
v3 -> v4, setv4, , { };
|
||||
|
||||
v4 -> v0, setv04, , { };
|
||||
v4 -> v4, enter4, , { };
|
||||
v4 -> v1, setv1, , { };
|
||||
v4 -> v2, setv2, , { };
|
||||
v4 -> v3, setv3, , { };
|
||||
v4 -> v4, setv4, , { };
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
reach {
|
||||
mutualexclusion_p1p2 { crit1@proc1 crit2@proc2 };
|
||||
mutualexclusion_p1p3 { crit1@proc1 crit3@proc3 };
|
||||
mutualexclusion_p1p4 { crit1@proc1 crit4@proc4 };
|
||||
mutualexclusion_p2p3 { crit2@proc2 crit3@proc3 };
|
||||
mutualexclusion_p2p4 { crit2@proc2 crit4@proc4 };
|
||||
mutualexclusion_p3p4 { crit3@proc3 crit4@proc4 };
|
||||
};
|
||||
158
netfiles/fischer4p.aut
Normal file
158
netfiles/fischer4p.aut
Normal file
@@ -0,0 +1,158 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
|
||||
start3;
|
||||
setv3;
|
||||
enter3;
|
||||
setv03;
|
||||
|
||||
start4;
|
||||
setv4;
|
||||
enter4;
|
||||
setv04;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 1, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 2, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 1, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 2, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc3 {
|
||||
clocks {
|
||||
x3;
|
||||
};
|
||||
locations {
|
||||
idle3 { init; };
|
||||
try3;
|
||||
wait3;
|
||||
crit3;
|
||||
};
|
||||
trans {
|
||||
idle3 -> try3, start3, , { x3; };
|
||||
try3 -> wait3, setv3, x3 < 1, { x3; };
|
||||
wait3 -> crit3, enter3, x3 > 2, { };
|
||||
crit3 -> idle3, setv03, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc4 {
|
||||
clocks {
|
||||
x4;
|
||||
};
|
||||
locations {
|
||||
idle4 { init; };
|
||||
try4;
|
||||
wait4;
|
||||
crit4;
|
||||
};
|
||||
trans {
|
||||
idle4 -> try4, start4, , { x4; };
|
||||
try4 -> wait4, setv4, x4 < 1, { x4; };
|
||||
wait4 -> crit4, enter4, x4 > 2, { };
|
||||
crit4 -> idle4, setv04, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
v3;
|
||||
v4;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v0, start3, , { };
|
||||
v0 -> v0, start4, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
v0 -> v3, setv3, , { };
|
||||
v0 -> v4, setv4, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
v1 -> v3, setv3, , { };
|
||||
v1 -> v4, setv4, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
v2 -> v3, setv3, , { };
|
||||
v2 -> v4, setv4, , { };
|
||||
|
||||
v3 -> v0, setv03, , { };
|
||||
v3 -> v3, enter3, , { };
|
||||
v3 -> v1, setv1, , { };
|
||||
v3 -> v2, setv2, , { };
|
||||
v3 -> v3, setv3, , { };
|
||||
v3 -> v4, setv4, , { };
|
||||
|
||||
v4 -> v0, setv04, , { };
|
||||
v4 -> v4, enter4, , { };
|
||||
v4 -> v1, setv1, , { };
|
||||
v4 -> v2, setv2, , { };
|
||||
v4 -> v3, setv3, , { };
|
||||
v4 -> v4, setv4, , { };
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
209
netfiles/fischer5p-fail.aut
Normal file
209
netfiles/fischer5p-fail.aut
Normal file
@@ -0,0 +1,209 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
|
||||
start3;
|
||||
setv3;
|
||||
enter3;
|
||||
setv03;
|
||||
|
||||
start4;
|
||||
setv4;
|
||||
enter4;
|
||||
setv04;
|
||||
|
||||
start5;
|
||||
setv5;
|
||||
enter5;
|
||||
setv05;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 2, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 1, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 2, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 1, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc3 {
|
||||
clocks {
|
||||
x3;
|
||||
};
|
||||
locations {
|
||||
idle3 { init; };
|
||||
try3;
|
||||
wait3;
|
||||
crit3;
|
||||
};
|
||||
trans {
|
||||
idle3 -> try3, start3, , { x3; };
|
||||
try3 -> wait3, setv3, x3 < 2, { x3; };
|
||||
wait3 -> crit3, enter3, x3 > 1, { };
|
||||
crit3 -> idle3, setv03, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc4 {
|
||||
clocks {
|
||||
x4;
|
||||
};
|
||||
locations {
|
||||
idle4 { init; };
|
||||
try4;
|
||||
wait4;
|
||||
crit4;
|
||||
};
|
||||
trans {
|
||||
idle4 -> try4, start4, , { x4; };
|
||||
try4 -> wait4, setv4, x4 < 2, { x4; };
|
||||
wait4 -> crit4, enter4, x4 > 1, { };
|
||||
crit4 -> idle4, setv04, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc5 {
|
||||
clocks {
|
||||
x5;
|
||||
};
|
||||
locations {
|
||||
idle5 { init; };
|
||||
try5;
|
||||
wait5;
|
||||
crit5;
|
||||
};
|
||||
trans {
|
||||
idle5 -> try5, start5, , { x5; };
|
||||
try5 -> wait5, setv5, x5 < 2, { x5; };
|
||||
wait5 -> crit5, enter5, x5 > 1, { };
|
||||
crit5 -> idle5, setv05, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
v3;
|
||||
v4;
|
||||
v5;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v0, start3, , { };
|
||||
v0 -> v0, start4, , { };
|
||||
v0 -> v0, start5, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
v0 -> v3, setv3, , { };
|
||||
v0 -> v4, setv4, , { };
|
||||
v0 -> v5, setv5, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
v1 -> v3, setv3, , { };
|
||||
v1 -> v4, setv4, , { };
|
||||
v1 -> v5, setv5, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
v2 -> v3, setv3, , { };
|
||||
v2 -> v4, setv4, , { };
|
||||
v2 -> v5, setv5, , { };
|
||||
|
||||
v3 -> v0, setv03, , { };
|
||||
v3 -> v3, enter3, , { };
|
||||
v3 -> v1, setv1, , { };
|
||||
v3 -> v2, setv2, , { };
|
||||
v3 -> v3, setv3, , { };
|
||||
v3 -> v4, setv4, , { };
|
||||
v3 -> v5, setv5, , { };
|
||||
|
||||
v4 -> v0, setv04, , { };
|
||||
v4 -> v4, enter4, , { };
|
||||
v4 -> v1, setv1, , { };
|
||||
v4 -> v2, setv2, , { };
|
||||
v4 -> v3, setv3, , { };
|
||||
v4 -> v4, setv4, , { };
|
||||
v4 -> v5, setv5, , { };
|
||||
|
||||
v5 -> v0, setv05, , { };
|
||||
v5 -> v5, enter5, , { };
|
||||
v5 -> v1, setv1, , { };
|
||||
v5 -> v2, setv2, , { };
|
||||
v5 -> v3, setv3, , { };
|
||||
v5 -> v4, setv4, , { };
|
||||
v5 -> v5, setv5, , { };
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
reach {
|
||||
mutualexclusion_p1p2 { crit1@proc1 crit2@proc2 };
|
||||
mutualexclusion_p1p3 { crit1@proc1 crit3@proc3 };
|
||||
mutualexclusion_p1p4 { crit1@proc1 crit4@proc4 };
|
||||
mutualexclusion_p1p5 { crit1@proc1 crit5@proc5 };
|
||||
mutualexclusion_p2p3 { crit2@proc2 crit3@proc3 };
|
||||
mutualexclusion_p2p4 { crit2@proc2 crit4@proc4 };
|
||||
mutualexclusion_p2p5 { crit2@proc2 crit5@proc5 };
|
||||
mutualexclusion_p3p4 { crit3@proc3 crit4@proc4 };
|
||||
mutualexclusion_p3p5 { crit3@proc3 crit5@proc5 };
|
||||
mutualexclusion_p4p5 { crit4@proc4 crit5@proc5 };
|
||||
};
|
||||
196
netfiles/fischer5p.aut
Normal file
196
netfiles/fischer5p.aut
Normal file
@@ -0,0 +1,196 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
|
||||
start3;
|
||||
setv3;
|
||||
enter3;
|
||||
setv03;
|
||||
|
||||
start4;
|
||||
setv4;
|
||||
enter4;
|
||||
setv04;
|
||||
|
||||
start5;
|
||||
setv5;
|
||||
enter5;
|
||||
setv05;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 1, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 2, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 1, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 2, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc3 {
|
||||
clocks {
|
||||
x3;
|
||||
};
|
||||
locations {
|
||||
idle3 { init; };
|
||||
try3;
|
||||
wait3;
|
||||
crit3;
|
||||
};
|
||||
trans {
|
||||
idle3 -> try3, start3, , { x3; };
|
||||
try3 -> wait3, setv3, x3 < 1, { x3; };
|
||||
wait3 -> crit3, enter3, x3 > 2, { };
|
||||
crit3 -> idle3, setv03, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc4 {
|
||||
clocks {
|
||||
x4;
|
||||
};
|
||||
locations {
|
||||
idle4 { init; };
|
||||
try4;
|
||||
wait4;
|
||||
crit4;
|
||||
};
|
||||
trans {
|
||||
idle4 -> try4, start4, , { x4; };
|
||||
try4 -> wait4, setv4, x4 < 1, { x4; };
|
||||
wait4 -> crit4, enter4, x4 > 2, { };
|
||||
crit4 -> idle4, setv04, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc5 {
|
||||
clocks {
|
||||
x5;
|
||||
};
|
||||
locations {
|
||||
idle5 { init; };
|
||||
try5;
|
||||
wait5;
|
||||
crit5;
|
||||
};
|
||||
trans {
|
||||
idle5 -> try5, start5, , { x5; };
|
||||
try5 -> wait5, setv5, x5 < 1, { x5; };
|
||||
wait5 -> crit5, enter5, x5 > 2, { };
|
||||
crit5 -> idle5, setv05, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
v3;
|
||||
v4;
|
||||
v5;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v0, start3, , { };
|
||||
v0 -> v0, start4, , { };
|
||||
v0 -> v0, start5, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
v0 -> v3, setv3, , { };
|
||||
v0 -> v4, setv4, , { };
|
||||
v0 -> v5, setv5, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
v1 -> v3, setv3, , { };
|
||||
v1 -> v4, setv4, , { };
|
||||
v1 -> v5, setv5, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
v2 -> v3, setv3, , { };
|
||||
v2 -> v4, setv4, , { };
|
||||
v2 -> v5, setv5, , { };
|
||||
|
||||
v3 -> v0, setv03, , { };
|
||||
v3 -> v3, enter3, , { };
|
||||
v3 -> v1, setv1, , { };
|
||||
v3 -> v2, setv2, , { };
|
||||
v3 -> v3, setv3, , { };
|
||||
v3 -> v4, setv4, , { };
|
||||
v3 -> v5, setv5, , { };
|
||||
|
||||
v4 -> v0, setv04, , { };
|
||||
v4 -> v4, enter4, , { };
|
||||
v4 -> v1, setv1, , { };
|
||||
v4 -> v2, setv2, , { };
|
||||
v4 -> v3, setv3, , { };
|
||||
v4 -> v4, setv4, , { };
|
||||
v4 -> v5, setv5, , { };
|
||||
|
||||
v5 -> v0, setv05, , { };
|
||||
v5 -> v5, enter5, , { };
|
||||
v5 -> v1, setv1, , { };
|
||||
v5 -> v2, setv2, , { };
|
||||
v5 -> v3, setv3, , { };
|
||||
v5 -> v4, setv4, , { };
|
||||
v5 -> v5, setv5, , { };
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
253
netfiles/fischer6p-fail.aut
Normal file
253
netfiles/fischer6p-fail.aut
Normal file
@@ -0,0 +1,253 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
|
||||
start3;
|
||||
setv3;
|
||||
enter3;
|
||||
setv03;
|
||||
|
||||
start4;
|
||||
setv4;
|
||||
enter4;
|
||||
setv04;
|
||||
|
||||
start5;
|
||||
setv5;
|
||||
enter5;
|
||||
setv05;
|
||||
|
||||
start6;
|
||||
setv6;
|
||||
enter6;
|
||||
setv06;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 2, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 1, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 2, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 1, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc3 {
|
||||
clocks {
|
||||
x3;
|
||||
};
|
||||
locations {
|
||||
idle3 { init; };
|
||||
try3;
|
||||
wait3;
|
||||
crit3;
|
||||
};
|
||||
trans {
|
||||
idle3 -> try3, start3, , { x3; };
|
||||
try3 -> wait3, setv3, x3 < 2, { x3; };
|
||||
wait3 -> crit3, enter3, x3 > 1, { };
|
||||
crit3 -> idle3, setv03, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc4 {
|
||||
clocks {
|
||||
x4;
|
||||
};
|
||||
locations {
|
||||
idle4 { init; };
|
||||
try4;
|
||||
wait4;
|
||||
crit4;
|
||||
};
|
||||
trans {
|
||||
idle4 -> try4, start4, , { x4; };
|
||||
try4 -> wait4, setv4, x4 < 2, { x4; };
|
||||
wait4 -> crit4, enter4, x4 > 1, { };
|
||||
crit4 -> idle4, setv04, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc5 {
|
||||
clocks {
|
||||
x5;
|
||||
};
|
||||
locations {
|
||||
idle5 { init; };
|
||||
try5;
|
||||
wait5;
|
||||
crit5;
|
||||
};
|
||||
trans {
|
||||
idle5 -> try5, start5, , { x5; };
|
||||
try5 -> wait5, setv5, x5 < 2, { x5; };
|
||||
wait5 -> crit5, enter5, x5 > 1, { };
|
||||
crit5 -> idle5, setv05, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc6 {
|
||||
clocks {
|
||||
x6;
|
||||
};
|
||||
locations {
|
||||
idle6 { init; };
|
||||
try6;
|
||||
wait6;
|
||||
crit6;
|
||||
};
|
||||
trans {
|
||||
idle6 -> try6, start6, , { x6; };
|
||||
try6 -> wait6, setv6, x6 < 2, { x6; };
|
||||
wait6 -> crit6, enter6, x6 > 1, { };
|
||||
crit6 -> idle6, setv06, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
v3;
|
||||
v4;
|
||||
v5;
|
||||
v6;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v0, start3, , { };
|
||||
v0 -> v0, start4, , { };
|
||||
v0 -> v0, start5, , { };
|
||||
v0 -> v0, start6, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
v0 -> v3, setv3, , { };
|
||||
v0 -> v4, setv4, , { };
|
||||
v0 -> v5, setv5, , { };
|
||||
v0 -> v6, setv6, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
v1 -> v3, setv3, , { };
|
||||
v1 -> v4, setv4, , { };
|
||||
v1 -> v5, setv5, , { };
|
||||
v1 -> v6, setv6, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
v2 -> v3, setv3, , { };
|
||||
v2 -> v4, setv4, , { };
|
||||
v2 -> v5, setv5, , { };
|
||||
v2 -> v6, setv6, , { };
|
||||
|
||||
v3 -> v0, setv03, , { };
|
||||
v3 -> v3, enter3, , { };
|
||||
v3 -> v1, setv1, , { };
|
||||
v3 -> v2, setv2, , { };
|
||||
v3 -> v3, setv3, , { };
|
||||
v3 -> v4, setv4, , { };
|
||||
v3 -> v5, setv5, , { };
|
||||
v3 -> v6, setv6, , { };
|
||||
|
||||
v4 -> v0, setv04, , { };
|
||||
v4 -> v4, enter4, , { };
|
||||
v4 -> v1, setv1, , { };
|
||||
v4 -> v2, setv2, , { };
|
||||
v4 -> v3, setv3, , { };
|
||||
v4 -> v4, setv4, , { };
|
||||
v4 -> v5, setv5, , { };
|
||||
v4 -> v6, setv6, , { };
|
||||
|
||||
v5 -> v0, setv05, , { };
|
||||
v5 -> v5, enter5, , { };
|
||||
v5 -> v1, setv1, , { };
|
||||
v5 -> v2, setv2, , { };
|
||||
v5 -> v3, setv3, , { };
|
||||
v5 -> v4, setv4, , { };
|
||||
v5 -> v5, setv5, , { };
|
||||
v5 -> v6, setv6, , { };
|
||||
|
||||
v6 -> v0, setv06, , { };
|
||||
v6 -> v6, enter6, , { };
|
||||
v6 -> v1, setv1, , { };
|
||||
v6 -> v2, setv2, , { };
|
||||
v6 -> v3, setv3, , { };
|
||||
v6 -> v4, setv4, , { };
|
||||
v6 -> v5, setv5, , { };
|
||||
v6 -> v6, setv6, , { };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
reach {
|
||||
mutualexclusion_p1p2 { crit1@proc1 crit2@proc2 };
|
||||
mutualexclusion_p1p3 { crit1@proc1 crit3@proc3 };
|
||||
mutualexclusion_p1p4 { crit1@proc1 crit4@proc4 };
|
||||
mutualexclusion_p1p5 { crit1@proc1 crit5@proc5 };
|
||||
mutualexclusion_p1p6 { crit1@proc1 crit6@proc6 };
|
||||
mutualexclusion_p2p3 { crit2@proc2 crit3@proc3 };
|
||||
mutualexclusion_p2p4 { crit2@proc2 crit4@proc4 };
|
||||
mutualexclusion_p2p5 { crit2@proc2 crit5@proc5 };
|
||||
mutualexclusion_p2p6 { crit2@proc2 crit6@proc6 };
|
||||
mutualexclusion_p3p4 { crit3@proc3 crit4@proc4 };
|
||||
mutualexclusion_p3p5 { crit3@proc3 crit5@proc5 };
|
||||
mutualexclusion_p3p6 { crit3@proc3 crit6@proc6 };
|
||||
mutualexclusion_p4p5 { crit4@proc4 crit5@proc5 };
|
||||
mutualexclusion_p4p6 { crit4@proc4 crit6@proc6 };
|
||||
mutualexclusion_p5p6 { crit5@proc5 crit6@proc6 };
|
||||
};
|
||||
235
netfiles/fischer6p.aut
Normal file
235
netfiles/fischer6p.aut
Normal file
@@ -0,0 +1,235 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
|
||||
start3;
|
||||
setv3;
|
||||
enter3;
|
||||
setv03;
|
||||
|
||||
start4;
|
||||
setv4;
|
||||
enter4;
|
||||
setv04;
|
||||
|
||||
start5;
|
||||
setv5;
|
||||
enter5;
|
||||
setv05;
|
||||
|
||||
start6;
|
||||
setv6;
|
||||
enter6;
|
||||
setv06;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 1, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 2, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 1, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 2, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc3 {
|
||||
clocks {
|
||||
x3;
|
||||
};
|
||||
locations {
|
||||
idle3 { init; };
|
||||
try3;
|
||||
wait3;
|
||||
crit3;
|
||||
};
|
||||
trans {
|
||||
idle3 -> try3, start3, , { x3; };
|
||||
try3 -> wait3, setv3, x3 < 1, { x3; };
|
||||
wait3 -> crit3, enter3, x3 > 2, { };
|
||||
crit3 -> idle3, setv03, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc4 {
|
||||
clocks {
|
||||
x4;
|
||||
};
|
||||
locations {
|
||||
idle4 { init; };
|
||||
try4;
|
||||
wait4;
|
||||
crit4;
|
||||
};
|
||||
trans {
|
||||
idle4 -> try4, start4, , { x4; };
|
||||
try4 -> wait4, setv4, x4 < 1, { x4; };
|
||||
wait4 -> crit4, enter4, x4 > 2, { };
|
||||
crit4 -> idle4, setv04, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc5 {
|
||||
clocks {
|
||||
x5;
|
||||
};
|
||||
locations {
|
||||
idle5 { init; };
|
||||
try5;
|
||||
wait5;
|
||||
crit5;
|
||||
};
|
||||
trans {
|
||||
idle5 -> try5, start5, , { x5; };
|
||||
try5 -> wait5, setv5, x5 < 1, { x5; };
|
||||
wait5 -> crit5, enter5, x5 > 2, { };
|
||||
crit5 -> idle5, setv05, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc6 {
|
||||
clocks {
|
||||
x6;
|
||||
};
|
||||
locations {
|
||||
idle6 { init; };
|
||||
try6;
|
||||
wait6;
|
||||
crit6;
|
||||
};
|
||||
trans {
|
||||
idle6 -> try6, start6, , { x6; };
|
||||
try6 -> wait6, setv6, x6 < 1, { x6; };
|
||||
wait6 -> crit6, enter6, x6 > 2, { };
|
||||
crit6 -> idle6, setv06, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
v3;
|
||||
v4;
|
||||
v5;
|
||||
v6;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v0, start3, , { };
|
||||
v0 -> v0, start4, , { };
|
||||
v0 -> v0, start5, , { };
|
||||
v0 -> v0, start6, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
v0 -> v3, setv3, , { };
|
||||
v0 -> v4, setv4, , { };
|
||||
v0 -> v5, setv5, , { };
|
||||
v0 -> v6, setv6, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
v1 -> v3, setv3, , { };
|
||||
v1 -> v4, setv4, , { };
|
||||
v1 -> v5, setv5, , { };
|
||||
v1 -> v6, setv6, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
v2 -> v3, setv3, , { };
|
||||
v2 -> v4, setv4, , { };
|
||||
v2 -> v5, setv5, , { };
|
||||
v2 -> v6, setv6, , { };
|
||||
|
||||
v3 -> v0, setv03, , { };
|
||||
v3 -> v3, enter3, , { };
|
||||
v3 -> v1, setv1, , { };
|
||||
v3 -> v2, setv2, , { };
|
||||
v3 -> v3, setv3, , { };
|
||||
v3 -> v4, setv4, , { };
|
||||
v3 -> v5, setv5, , { };
|
||||
v3 -> v6, setv6, , { };
|
||||
|
||||
v4 -> v0, setv04, , { };
|
||||
v4 -> v4, enter4, , { };
|
||||
v4 -> v1, setv1, , { };
|
||||
v4 -> v2, setv2, , { };
|
||||
v4 -> v3, setv3, , { };
|
||||
v4 -> v4, setv4, , { };
|
||||
v4 -> v5, setv5, , { };
|
||||
v4 -> v6, setv6, , { };
|
||||
|
||||
v5 -> v0, setv05, , { };
|
||||
v5 -> v5, enter5, , { };
|
||||
v5 -> v1, setv1, , { };
|
||||
v5 -> v2, setv2, , { };
|
||||
v5 -> v3, setv3, , { };
|
||||
v5 -> v4, setv4, , { };
|
||||
v5 -> v5, setv5, , { };
|
||||
v5 -> v6, setv6, , { };
|
||||
|
||||
v6 -> v0, setv06, , { };
|
||||
v6 -> v6, enter6, , { };
|
||||
v6 -> v1, setv1, , { };
|
||||
v6 -> v2, setv2, , { };
|
||||
v6 -> v3, setv3, , { };
|
||||
v6 -> v4, setv4, , { };
|
||||
v6 -> v5, setv5, , { };
|
||||
v6 -> v6, setv6, , { };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
301
netfiles/fischer7p-fail.aut
Normal file
301
netfiles/fischer7p-fail.aut
Normal file
@@ -0,0 +1,301 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
|
||||
start3;
|
||||
setv3;
|
||||
enter3;
|
||||
setv03;
|
||||
|
||||
start4;
|
||||
setv4;
|
||||
enter4;
|
||||
setv04;
|
||||
|
||||
start5;
|
||||
setv5;
|
||||
enter5;
|
||||
setv05;
|
||||
|
||||
start6;
|
||||
setv6;
|
||||
enter6;
|
||||
setv06;
|
||||
|
||||
start7;
|
||||
setv7;
|
||||
enter7;
|
||||
setv07;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 2, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 1, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 2, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 1, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc3 {
|
||||
clocks {
|
||||
x3;
|
||||
};
|
||||
locations {
|
||||
idle3 { init; };
|
||||
try3;
|
||||
wait3;
|
||||
crit3;
|
||||
};
|
||||
trans {
|
||||
idle3 -> try3, start3, , { x3; };
|
||||
try3 -> wait3, setv3, x3 < 2, { x3; };
|
||||
wait3 -> crit3, enter3, x3 > 1, { };
|
||||
crit3 -> idle3, setv03, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc4 {
|
||||
clocks {
|
||||
x4;
|
||||
};
|
||||
locations {
|
||||
idle4 { init; };
|
||||
try4;
|
||||
wait4;
|
||||
crit4;
|
||||
};
|
||||
trans {
|
||||
idle4 -> try4, start4, , { x4; };
|
||||
try4 -> wait4, setv4, x4 < 2, { x4; };
|
||||
wait4 -> crit4, enter4, x4 > 1, { };
|
||||
crit4 -> idle4, setv04, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc5 {
|
||||
clocks {
|
||||
x5;
|
||||
};
|
||||
locations {
|
||||
idle5 { init; };
|
||||
try5;
|
||||
wait5;
|
||||
crit5;
|
||||
};
|
||||
trans {
|
||||
idle5 -> try5, start5, , { x5; };
|
||||
try5 -> wait5, setv5, x5 < 2, { x5; };
|
||||
wait5 -> crit5, enter5, x5 > 1, { };
|
||||
crit5 -> idle5, setv05, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc6 {
|
||||
clocks {
|
||||
x6;
|
||||
};
|
||||
locations {
|
||||
idle6 { init; };
|
||||
try6;
|
||||
wait6;
|
||||
crit6;
|
||||
};
|
||||
trans {
|
||||
idle6 -> try6, start6, , { x6; };
|
||||
try6 -> wait6, setv6, x6 < 2, { x6; };
|
||||
wait6 -> crit6, enter6, x6 > 1, { };
|
||||
crit6 -> idle6, setv06, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc7 {
|
||||
clocks {
|
||||
x7;
|
||||
};
|
||||
locations {
|
||||
idle7 { init; };
|
||||
try7;
|
||||
wait7;
|
||||
crit7;
|
||||
};
|
||||
trans {
|
||||
idle7 -> try7, start7, , { x7; };
|
||||
try7 -> wait7, setv7, x7 < 2, { x7; };
|
||||
wait7 -> crit7, enter7, x7 > 1, { };
|
||||
crit7 -> idle7, setv07, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
v3;
|
||||
v4;
|
||||
v5;
|
||||
v6;
|
||||
v7;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v0, start3, , { };
|
||||
v0 -> v0, start4, , { };
|
||||
v0 -> v0, start5, , { };
|
||||
v0 -> v0, start6, , { };
|
||||
v0 -> v0, start7, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
v0 -> v3, setv3, , { };
|
||||
v0 -> v4, setv4, , { };
|
||||
v0 -> v5, setv5, , { };
|
||||
v0 -> v6, setv6, , { };
|
||||
v0 -> v7, setv7, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
v1 -> v3, setv3, , { };
|
||||
v1 -> v4, setv4, , { };
|
||||
v1 -> v5, setv5, , { };
|
||||
v1 -> v6, setv6, , { };
|
||||
v1 -> v7, setv7, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
v2 -> v3, setv3, , { };
|
||||
v2 -> v4, setv4, , { };
|
||||
v2 -> v5, setv5, , { };
|
||||
v2 -> v6, setv6, , { };
|
||||
v2 -> v7, setv7, , { };
|
||||
|
||||
v3 -> v0, setv03, , { };
|
||||
v3 -> v3, enter3, , { };
|
||||
v3 -> v1, setv1, , { };
|
||||
v3 -> v2, setv2, , { };
|
||||
v3 -> v3, setv3, , { };
|
||||
v3 -> v4, setv4, , { };
|
||||
v3 -> v5, setv5, , { };
|
||||
v3 -> v6, setv6, , { };
|
||||
v3 -> v7, setv7, , { };
|
||||
|
||||
v4 -> v0, setv04, , { };
|
||||
v4 -> v4, enter4, , { };
|
||||
v4 -> v1, setv1, , { };
|
||||
v4 -> v2, setv2, , { };
|
||||
v4 -> v3, setv3, , { };
|
||||
v4 -> v4, setv4, , { };
|
||||
v4 -> v5, setv5, , { };
|
||||
v4 -> v6, setv6, , { };
|
||||
v4 -> v7, setv7, , { };
|
||||
|
||||
v5 -> v0, setv05, , { };
|
||||
v5 -> v5, enter5, , { };
|
||||
v5 -> v1, setv1, , { };
|
||||
v5 -> v2, setv2, , { };
|
||||
v5 -> v3, setv3, , { };
|
||||
v5 -> v4, setv4, , { };
|
||||
v5 -> v5, setv5, , { };
|
||||
v5 -> v6, setv6, , { };
|
||||
v5 -> v7, setv7, , { };
|
||||
|
||||
v6 -> v0, setv06, , { };
|
||||
v6 -> v6, enter6, , { };
|
||||
v6 -> v1, setv1, , { };
|
||||
v6 -> v2, setv2, , { };
|
||||
v6 -> v3, setv3, , { };
|
||||
v6 -> v4, setv4, , { };
|
||||
v6 -> v5, setv5, , { };
|
||||
v6 -> v6, setv6, , { };
|
||||
v6 -> v7, setv7, , { };
|
||||
|
||||
v7 -> v0, setv07, , { };
|
||||
v7 -> v7, enter7, , { };
|
||||
v7 -> v1, setv1, , { };
|
||||
v7 -> v2, setv2, , { };
|
||||
v7 -> v3, setv3, , { };
|
||||
v7 -> v4, setv4, , { };
|
||||
v7 -> v5, setv5, , { };
|
||||
v7 -> v6, setv6, , { };
|
||||
v7 -> v7, setv7, , { };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
reach {
|
||||
mutualexclusion_p1p2 { crit1@proc1 crit2@proc2 };
|
||||
mutualexclusion_p1p3 { crit1@proc1 crit3@proc3 };
|
||||
mutualexclusion_p1p4 { crit1@proc1 crit4@proc4 };
|
||||
mutualexclusion_p1p5 { crit1@proc1 crit5@proc5 };
|
||||
mutualexclusion_p1p6 { crit1@proc1 crit6@proc6 };
|
||||
mutualexclusion_p1p7 { crit1@proc1 crit7@proc7 };
|
||||
mutualexclusion_p2p3 { crit2@proc2 crit3@proc3 };
|
||||
mutualexclusion_p2p4 { crit2@proc2 crit4@proc4 };
|
||||
mutualexclusion_p2p5 { crit2@proc2 crit5@proc5 };
|
||||
mutualexclusion_p2p6 { crit2@proc2 crit6@proc6 };
|
||||
mutualexclusion_p2p7 { crit2@proc2 crit7@proc7 };
|
||||
mutualexclusion_p3p4 { crit3@proc3 crit4@proc4 };
|
||||
mutualexclusion_p3p5 { crit3@proc3 crit5@proc5 };
|
||||
mutualexclusion_p3p6 { crit3@proc3 crit6@proc6 };
|
||||
mutualexclusion_p3p7 { crit3@proc3 crit7@proc7 };
|
||||
mutualexclusion_p4p5 { crit4@proc4 crit5@proc5 };
|
||||
mutualexclusion_p4p6 { crit4@proc4 crit6@proc6 };
|
||||
mutualexclusion_p4p7 { crit4@proc4 crit7@proc7 };
|
||||
mutualexclusion_p5p6 { crit5@proc5 crit6@proc6 };
|
||||
mutualexclusion_p5p7 { crit5@proc5 crit7@proc7 };
|
||||
mutualexclusion_p6p7 { crit6@proc6 crit7@proc7 };
|
||||
};
|
||||
301
netfiles/fischer7p.aut
Normal file
301
netfiles/fischer7p.aut
Normal file
@@ -0,0 +1,301 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
|
||||
start3;
|
||||
setv3;
|
||||
enter3;
|
||||
setv03;
|
||||
|
||||
start4;
|
||||
setv4;
|
||||
enter4;
|
||||
setv04;
|
||||
|
||||
start5;
|
||||
setv5;
|
||||
enter5;
|
||||
setv05;
|
||||
|
||||
start6;
|
||||
setv6;
|
||||
enter6;
|
||||
setv06;
|
||||
|
||||
start7;
|
||||
setv7;
|
||||
enter7;
|
||||
setv07;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 1, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 2, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 1, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 2, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc3 {
|
||||
clocks {
|
||||
x3;
|
||||
};
|
||||
locations {
|
||||
idle3 { init; };
|
||||
try3;
|
||||
wait3;
|
||||
crit3;
|
||||
};
|
||||
trans {
|
||||
idle3 -> try3, start3, , { x3; };
|
||||
try3 -> wait3, setv3, x3 < 1, { x3; };
|
||||
wait3 -> crit3, enter3, x3 > 2, { };
|
||||
crit3 -> idle3, setv03, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc4 {
|
||||
clocks {
|
||||
x4;
|
||||
};
|
||||
locations {
|
||||
idle4 { init; };
|
||||
try4;
|
||||
wait4;
|
||||
crit4;
|
||||
};
|
||||
trans {
|
||||
idle4 -> try4, start4, , { x4; };
|
||||
try4 -> wait4, setv4, x4 < 1, { x4; };
|
||||
wait4 -> crit4, enter4, x4 > 2, { };
|
||||
crit4 -> idle4, setv04, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc5 {
|
||||
clocks {
|
||||
x5;
|
||||
};
|
||||
locations {
|
||||
idle5 { init; };
|
||||
try5;
|
||||
wait5;
|
||||
crit5;
|
||||
};
|
||||
trans {
|
||||
idle5 -> try5, start5, , { x5; };
|
||||
try5 -> wait5, setv5, x5 < 1, { x5; };
|
||||
wait5 -> crit5, enter5, x5 > 2, { };
|
||||
crit5 -> idle5, setv05, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc6 {
|
||||
clocks {
|
||||
x6;
|
||||
};
|
||||
locations {
|
||||
idle6 { init; };
|
||||
try6;
|
||||
wait6;
|
||||
crit6;
|
||||
};
|
||||
trans {
|
||||
idle6 -> try6, start6, , { x6; };
|
||||
try6 -> wait6, setv6, x6 < 1, { x6; };
|
||||
wait6 -> crit6, enter6, x6 > 2, { };
|
||||
crit6 -> idle6, setv06, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc7 {
|
||||
clocks {
|
||||
x7;
|
||||
};
|
||||
locations {
|
||||
idle7 { init; };
|
||||
try7;
|
||||
wait7;
|
||||
crit7;
|
||||
};
|
||||
trans {
|
||||
idle7 -> try7, start7, , { x7; };
|
||||
try7 -> wait7, setv7, x7 < 1, { x7; };
|
||||
wait7 -> crit7, enter7, x7 > 2, { };
|
||||
crit7 -> idle7, setv07, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
v3;
|
||||
v4;
|
||||
v5;
|
||||
v6;
|
||||
v7;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v0, start3, , { };
|
||||
v0 -> v0, start4, , { };
|
||||
v0 -> v0, start5, , { };
|
||||
v0 -> v0, start6, , { };
|
||||
v0 -> v0, start7, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
v0 -> v3, setv3, , { };
|
||||
v0 -> v4, setv4, , { };
|
||||
v0 -> v5, setv5, , { };
|
||||
v0 -> v6, setv6, , { };
|
||||
v0 -> v7, setv7, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
v1 -> v3, setv3, , { };
|
||||
v1 -> v4, setv4, , { };
|
||||
v1 -> v5, setv5, , { };
|
||||
v1 -> v6, setv6, , { };
|
||||
v1 -> v7, setv7, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
v2 -> v3, setv3, , { };
|
||||
v2 -> v4, setv4, , { };
|
||||
v2 -> v5, setv5, , { };
|
||||
v2 -> v6, setv6, , { };
|
||||
v2 -> v7, setv7, , { };
|
||||
|
||||
v3 -> v0, setv03, , { };
|
||||
v3 -> v3, enter3, , { };
|
||||
v3 -> v1, setv1, , { };
|
||||
v3 -> v2, setv2, , { };
|
||||
v3 -> v3, setv3, , { };
|
||||
v3 -> v4, setv4, , { };
|
||||
v3 -> v5, setv5, , { };
|
||||
v3 -> v6, setv6, , { };
|
||||
v3 -> v7, setv7, , { };
|
||||
|
||||
v4 -> v0, setv04, , { };
|
||||
v4 -> v4, enter4, , { };
|
||||
v4 -> v1, setv1, , { };
|
||||
v4 -> v2, setv2, , { };
|
||||
v4 -> v3, setv3, , { };
|
||||
v4 -> v4, setv4, , { };
|
||||
v4 -> v5, setv5, , { };
|
||||
v4 -> v6, setv6, , { };
|
||||
v4 -> v7, setv7, , { };
|
||||
|
||||
v5 -> v0, setv05, , { };
|
||||
v5 -> v5, enter5, , { };
|
||||
v5 -> v1, setv1, , { };
|
||||
v5 -> v2, setv2, , { };
|
||||
v5 -> v3, setv3, , { };
|
||||
v5 -> v4, setv4, , { };
|
||||
v5 -> v5, setv5, , { };
|
||||
v5 -> v6, setv6, , { };
|
||||
v5 -> v7, setv7, , { };
|
||||
|
||||
v6 -> v0, setv06, , { };
|
||||
v6 -> v6, enter6, , { };
|
||||
v6 -> v1, setv1, , { };
|
||||
v6 -> v2, setv2, , { };
|
||||
v6 -> v3, setv3, , { };
|
||||
v6 -> v4, setv4, , { };
|
||||
v6 -> v5, setv5, , { };
|
||||
v6 -> v6, setv6, , { };
|
||||
v6 -> v7, setv7, , { };
|
||||
|
||||
v7 -> v0, setv07, , { };
|
||||
v7 -> v7, enter7, , { };
|
||||
v7 -> v1, setv1, , { };
|
||||
v7 -> v2, setv2, , { };
|
||||
v7 -> v3, setv3, , { };
|
||||
v7 -> v4, setv4, , { };
|
||||
v7 -> v5, setv5, , { };
|
||||
v7 -> v6, setv6, , { };
|
||||
v7 -> v7, setv7, , { };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
reach {
|
||||
mutualexclusion_p1p2 { crit1@proc1 crit2@proc2 };
|
||||
mutualexclusion_p1p3 { crit1@proc1 crit3@proc3 };
|
||||
mutualexclusion_p1p4 { crit1@proc1 crit4@proc4 };
|
||||
mutualexclusion_p1p5 { crit1@proc1 crit5@proc5 };
|
||||
mutualexclusion_p1p6 { crit1@proc1 crit6@proc6 };
|
||||
mutualexclusion_p1p7 { crit1@proc1 crit7@proc7 };
|
||||
mutualexclusion_p2p3 { crit2@proc2 crit3@proc3 };
|
||||
mutualexclusion_p2p4 { crit2@proc2 crit4@proc4 };
|
||||
mutualexclusion_p2p5 { crit2@proc2 crit5@proc5 };
|
||||
mutualexclusion_p2p6 { crit2@proc2 crit6@proc6 };
|
||||
mutualexclusion_p2p7 { crit2@proc2 crit7@proc7 };
|
||||
mutualexclusion_p3p4 { crit3@proc3 crit4@proc4 };
|
||||
mutualexclusion_p3p5 { crit3@proc3 crit5@proc5 };
|
||||
mutualexclusion_p3p6 { crit3@proc3 crit6@proc6 };
|
||||
mutualexclusion_p3p7 { crit3@proc3 crit7@proc7 };
|
||||
mutualexclusion_p4p5 { crit4@proc4 crit5@proc5 };
|
||||
mutualexclusion_p4p6 { crit4@proc4 crit6@proc6 };
|
||||
mutualexclusion_p4p7 { crit4@proc4 crit7@proc7 };
|
||||
mutualexclusion_p5p6 { crit5@proc5 crit6@proc6 };
|
||||
mutualexclusion_p5p7 { crit5@proc5 crit7@proc7 };
|
||||
mutualexclusion_p6p7 { crit6@proc6 crit7@proc7 };
|
||||
};
|
||||
354
netfiles/fischer8p.aut
Normal file
354
netfiles/fischer8p.aut
Normal file
@@ -0,0 +1,354 @@
|
||||
#######################################
|
||||
# Fischer's mutual exclusion protocol #
|
||||
# dla 8 procesow #
|
||||
#######################################
|
||||
# #
|
||||
# przy setv1, setv2 - duza delta #
|
||||
# przy enter1, enter2 - mala delta #
|
||||
# #
|
||||
# wzajemne wykluczanie przy: #
|
||||
# #
|
||||
# mala delta >= duza delta #
|
||||
# #
|
||||
#######################################
|
||||
|
||||
net {
|
||||
actions {
|
||||
start1;
|
||||
setv1;
|
||||
enter1;
|
||||
setv01;
|
||||
|
||||
start2;
|
||||
setv2;
|
||||
enter2;
|
||||
setv02;
|
||||
|
||||
start3;
|
||||
setv3;
|
||||
enter3;
|
||||
setv03;
|
||||
|
||||
start4;
|
||||
setv4;
|
||||
enter4;
|
||||
setv04;
|
||||
|
||||
start5;
|
||||
setv5;
|
||||
enter5;
|
||||
setv05;
|
||||
|
||||
start6;
|
||||
setv6;
|
||||
enter6;
|
||||
setv06;
|
||||
|
||||
start7;
|
||||
setv7;
|
||||
enter7;
|
||||
setv07;
|
||||
|
||||
start8;
|
||||
setv8;
|
||||
enter8;
|
||||
setv08;
|
||||
};
|
||||
|
||||
automaton proc1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
idle1 { init; };
|
||||
try1;
|
||||
wait1;
|
||||
crit1;
|
||||
};
|
||||
trans {
|
||||
idle1 -> try1, start1, , { x1; };
|
||||
try1 -> wait1, setv1, x1 < 1, { x1; };
|
||||
wait1 -> crit1, enter1, x1 > 2, { };
|
||||
crit1 -> idle1, setv01, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
idle2 { init; };
|
||||
try2;
|
||||
wait2;
|
||||
crit2;
|
||||
};
|
||||
trans {
|
||||
idle2 -> try2, start2, , { x2; };
|
||||
try2 -> wait2, setv2, x2 < 1, { x2; };
|
||||
wait2 -> crit2, enter2, x2 > 2, { };
|
||||
crit2 -> idle2, setv02, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc3 {
|
||||
clocks {
|
||||
x3;
|
||||
};
|
||||
locations {
|
||||
idle3 { init; };
|
||||
try3;
|
||||
wait3;
|
||||
crit3;
|
||||
};
|
||||
trans {
|
||||
idle3 -> try3, start3, , { x3; };
|
||||
try3 -> wait3, setv3, x3 < 1, { x3; };
|
||||
wait3 -> crit3, enter3, x3 > 2, { };
|
||||
crit3 -> idle3, setv03, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc4 {
|
||||
clocks {
|
||||
x4;
|
||||
};
|
||||
locations {
|
||||
idle4 { init; };
|
||||
try4;
|
||||
wait4;
|
||||
crit4;
|
||||
};
|
||||
trans {
|
||||
idle4 -> try4, start4, , { x4; };
|
||||
try4 -> wait4, setv4, x4 < 1, { x4; };
|
||||
wait4 -> crit4, enter4, x4 > 2, { };
|
||||
crit4 -> idle4, setv04, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc5 {
|
||||
clocks {
|
||||
x5;
|
||||
};
|
||||
locations {
|
||||
idle5 { init; };
|
||||
try5;
|
||||
wait5;
|
||||
crit5;
|
||||
};
|
||||
trans {
|
||||
idle5 -> try5, start5, , { x5; };
|
||||
try5 -> wait5, setv5, x5 < 1, { x5; };
|
||||
wait5 -> crit5, enter5, x5 > 2, { };
|
||||
crit5 -> idle5, setv05, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc6 {
|
||||
clocks {
|
||||
x6;
|
||||
};
|
||||
locations {
|
||||
idle6 { init; };
|
||||
try6;
|
||||
wait6;
|
||||
crit6;
|
||||
};
|
||||
trans {
|
||||
idle6 -> try6, start6, , { x6; };
|
||||
try6 -> wait6, setv6, x6 < 1, { x6; };
|
||||
wait6 -> crit6, enter6, x6 > 2, { };
|
||||
crit6 -> idle6, setv06, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc7 {
|
||||
clocks {
|
||||
x7;
|
||||
};
|
||||
locations {
|
||||
idle7 { init; };
|
||||
try7;
|
||||
wait7;
|
||||
crit7;
|
||||
};
|
||||
trans {
|
||||
idle7 -> try7, start7, , { x7; };
|
||||
try7 -> wait7, setv7, x7 < 1, { x7; };
|
||||
wait7 -> crit7, enter7, x7 > 2, { };
|
||||
crit7 -> idle7, setv07, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton proc8 {
|
||||
clocks {
|
||||
x8;
|
||||
};
|
||||
locations {
|
||||
idle8 { init; };
|
||||
try8;
|
||||
wait8;
|
||||
crit8;
|
||||
};
|
||||
trans {
|
||||
idle8 -> try8, start8, , { x8; };
|
||||
try8 -> wait8, setv8, x8 < 1, { x8; };
|
||||
wait8 -> crit8, enter8, x8 > 2, { };
|
||||
crit8 -> idle8, setv08, , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton varV {
|
||||
locations {
|
||||
v0 { init; };
|
||||
v1;
|
||||
v2;
|
||||
v3;
|
||||
v4;
|
||||
v5;
|
||||
v6;
|
||||
v7;
|
||||
v8;
|
||||
};
|
||||
trans {
|
||||
v0 -> v0, start1, , { };
|
||||
v0 -> v0, start2, , { };
|
||||
v0 -> v0, start3, , { };
|
||||
v0 -> v0, start4, , { };
|
||||
v0 -> v0, start5, , { };
|
||||
v0 -> v0, start6, , { };
|
||||
v0 -> v0, start7, , { };
|
||||
v0 -> v0, start8, , { };
|
||||
v0 -> v1, setv1, , { };
|
||||
v0 -> v2, setv2, , { };
|
||||
v0 -> v3, setv3, , { };
|
||||
v0 -> v4, setv4, , { };
|
||||
v0 -> v5, setv5, , { };
|
||||
v0 -> v6, setv6, , { };
|
||||
v0 -> v7, setv7, , { };
|
||||
v0 -> v8, setv8, , { };
|
||||
|
||||
v1 -> v0, setv01, , { };
|
||||
v1 -> v1, enter1, , { };
|
||||
v1 -> v1, setv1, , { };
|
||||
v1 -> v2, setv2, , { };
|
||||
v1 -> v3, setv3, , { };
|
||||
v1 -> v4, setv4, , { };
|
||||
v1 -> v5, setv5, , { };
|
||||
v1 -> v6, setv6, , { };
|
||||
v1 -> v7, setv7, , { };
|
||||
v1 -> v8, setv8, , { };
|
||||
|
||||
v2 -> v0, setv02, , { };
|
||||
v2 -> v2, enter2, , { };
|
||||
v2 -> v1, setv1, , { };
|
||||
v2 -> v2, setv2, , { };
|
||||
v2 -> v3, setv3, , { };
|
||||
v2 -> v4, setv4, , { };
|
||||
v2 -> v5, setv5, , { };
|
||||
v2 -> v6, setv6, , { };
|
||||
v2 -> v7, setv7, , { };
|
||||
v2 -> v8, setv8, , { };
|
||||
|
||||
v3 -> v0, setv03, , { };
|
||||
v3 -> v3, enter3, , { };
|
||||
v3 -> v1, setv1, , { };
|
||||
v3 -> v2, setv2, , { };
|
||||
v3 -> v3, setv3, , { };
|
||||
v3 -> v4, setv4, , { };
|
||||
v3 -> v5, setv5, , { };
|
||||
v3 -> v6, setv6, , { };
|
||||
v3 -> v7, setv7, , { };
|
||||
v3 -> v8, setv8, , { };
|
||||
|
||||
v4 -> v0, setv04, , { };
|
||||
v4 -> v4, enter4, , { };
|
||||
v4 -> v1, setv1, , { };
|
||||
v4 -> v2, setv2, , { };
|
||||
v4 -> v3, setv3, , { };
|
||||
v4 -> v4, setv4, , { };
|
||||
v4 -> v5, setv5, , { };
|
||||
v4 -> v6, setv6, , { };
|
||||
v4 -> v7, setv7, , { };
|
||||
v4 -> v8, setv8, , { };
|
||||
|
||||
v5 -> v0, setv05, , { };
|
||||
v5 -> v5, enter5, , { };
|
||||
v5 -> v1, setv1, , { };
|
||||
v5 -> v2, setv2, , { };
|
||||
v5 -> v3, setv3, , { };
|
||||
v5 -> v4, setv4, , { };
|
||||
v5 -> v5, setv5, , { };
|
||||
v5 -> v6, setv6, , { };
|
||||
v5 -> v7, setv7, , { };
|
||||
v5 -> v8, setv8, , { };
|
||||
|
||||
v6 -> v0, setv06, , { };
|
||||
v6 -> v6, enter6, , { };
|
||||
v6 -> v1, setv1, , { };
|
||||
v6 -> v2, setv2, , { };
|
||||
v6 -> v3, setv3, , { };
|
||||
v6 -> v4, setv4, , { };
|
||||
v6 -> v5, setv5, , { };
|
||||
v6 -> v6, setv6, , { };
|
||||
v6 -> v7, setv7, , { };
|
||||
v6 -> v8, setv8, , { };
|
||||
|
||||
v7 -> v0, setv07, , { };
|
||||
v7 -> v7, enter7, , { };
|
||||
v7 -> v1, setv1, , { };
|
||||
v7 -> v2, setv2, , { };
|
||||
v7 -> v3, setv3, , { };
|
||||
v7 -> v4, setv4, , { };
|
||||
v7 -> v5, setv5, , { };
|
||||
v7 -> v6, setv6, , { };
|
||||
v7 -> v7, setv7, , { };
|
||||
v7 -> v8, setv8, , { };
|
||||
|
||||
v8 -> v0, setv08, , { };
|
||||
v8 -> v8, enter8, , { };
|
||||
v8 -> v1, setv1, , { };
|
||||
v8 -> v2, setv2, , { };
|
||||
v8 -> v3, setv3, , { };
|
||||
v8 -> v4, setv4, , { };
|
||||
v8 -> v5, setv5, , { };
|
||||
v8 -> v6, setv6, , { };
|
||||
v8 -> v7, setv7, , { };
|
||||
v8 -> v8, setv8, , { };
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
reach {
|
||||
mutualexclusion_p1p2 { crit1@proc1 crit2@proc2 };
|
||||
mutualexclusion_p1p3 { crit1@proc1 crit3@proc3 };
|
||||
mutualexclusion_p1p4 { crit1@proc1 crit4@proc4 };
|
||||
mutualexclusion_p1p5 { crit1@proc1 crit5@proc5 };
|
||||
mutualexclusion_p1p6 { crit1@proc1 crit6@proc6 };
|
||||
mutualexclusion_p1p7 { crit1@proc1 crit7@proc7 };
|
||||
mutualexclusion_p1p8 { crit1@proc1 crit8@proc8 };
|
||||
mutualexclusion_p2p3 { crit2@proc2 crit3@proc3 };
|
||||
mutualexclusion_p2p4 { crit2@proc2 crit4@proc4 };
|
||||
mutualexclusion_p2p5 { crit2@proc2 crit5@proc5 };
|
||||
mutualexclusion_p2p6 { crit2@proc2 crit6@proc6 };
|
||||
mutualexclusion_p2p7 { crit2@proc2 crit7@proc7 };
|
||||
mutualexclusion_p2p8 { crit2@proc2 crit8@proc8 };
|
||||
mutualexclusion_p3p4 { crit3@proc3 crit4@proc4 };
|
||||
mutualexclusion_p3p5 { crit3@proc3 crit5@proc5 };
|
||||
mutualexclusion_p3p6 { crit3@proc3 crit6@proc6 };
|
||||
mutualexclusion_p3p7 { crit3@proc3 crit7@proc7 };
|
||||
mutualexclusion_p3p8 { crit3@proc3 crit8@proc8 };
|
||||
mutualexclusion_p4p5 { crit4@proc4 crit5@proc5 };
|
||||
mutualexclusion_p4p6 { crit4@proc4 crit6@proc6 };
|
||||
mutualexclusion_p4p7 { crit4@proc4 crit7@proc7 };
|
||||
mutualexclusion_p4p8 { crit4@proc4 crit8@proc8 };
|
||||
mutualexclusion_p5p6 { crit5@proc5 crit6@proc6 };
|
||||
mutualexclusion_p5p7 { crit5@proc5 crit7@proc7 };
|
||||
mutualexclusion_p5p8 { crit5@proc5 crit8@proc8 };
|
||||
mutualexclusion_p6p7 { crit6@proc6 crit7@proc7 };
|
||||
mutualexclusion_p6p8 { crit6@proc6 crit8@proc8 };
|
||||
mutualexclusion_p7p8 { crit7@proc7 crit8@proc8 };
|
||||
};
|
||||
1
netfiles/test-empty.ta
Normal file
1
netfiles/test-empty.ta
Normal file
@@ -0,0 +1 @@
|
||||
net { };
|
||||
39
netfiles/test-zn-clockconstrs.aut
Normal file
39
netfiles/test-zn-clockconstrs.aut
Normal file
@@ -0,0 +1,39 @@
|
||||
# siec automatow z ZN, ale bez zmiennych calkowitych
|
||||
# niezmienniki lokacji i ograniczenia na przejsciach uniemozliwiaja niektore z nich
|
||||
|
||||
net {
|
||||
|
||||
actions { m; n; p; q; w; };
|
||||
|
||||
automaton automacikB1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
a { init; };
|
||||
b { inv x1 < 1; };
|
||||
};
|
||||
trans {
|
||||
a -> b , m , , { x1; };
|
||||
b -> b , q , , { };
|
||||
b -> a , n , , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton automacikB2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
d;
|
||||
c { init; };
|
||||
e { inv x2 < 3; };
|
||||
};
|
||||
trans {
|
||||
c -> d , p , , { };
|
||||
d -> e , m , x2 > 3 , { };
|
||||
e -> c , n , , { x2; };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
38
netfiles/test-zn.aut
Normal file
38
netfiles/test-zn.aut
Normal file
@@ -0,0 +1,38 @@
|
||||
# siec automatow z ZN, ale bez zmiennych calkowitych
|
||||
|
||||
net {
|
||||
|
||||
actions { m; n; p; q; w; };
|
||||
|
||||
automaton automacikB1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
a { init; };
|
||||
b { inv x1 < 1; };
|
||||
};
|
||||
trans {
|
||||
a -> b , m , , { };
|
||||
b -> b , q , , { };
|
||||
b -> a , n , , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton automacikB2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
d;
|
||||
c { init; };
|
||||
e { inv x2 < 6; };
|
||||
};
|
||||
trans {
|
||||
c -> d , p , x2 > 5 , { };
|
||||
d -> e , m , , { x2; };
|
||||
e -> c , n , , { x2; };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
50
netfiles/test-zn2.aut
Normal file
50
netfiles/test-zn2.aut
Normal file
@@ -0,0 +1,50 @@
|
||||
# siec automatow z ZN, ale bez zmiennych calkowitych
|
||||
|
||||
net {
|
||||
|
||||
actions { m; n; p; q; w; };
|
||||
|
||||
automaton automacikB1 {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
a { init; };
|
||||
b { inv x1 < 1; };
|
||||
};
|
||||
trans {
|
||||
a -> b , m , , { x1; };
|
||||
b -> b , q , , { };
|
||||
b -> a , n , , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton automacikC32 {
|
||||
clocks { x3; };
|
||||
locations {
|
||||
A { init; };
|
||||
B;
|
||||
};
|
||||
trans {
|
||||
A -> B , w , , { };
|
||||
B -> A , w , , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton automacikB2 {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
d;
|
||||
c { init; };
|
||||
e { inv x2 < 3; };
|
||||
};
|
||||
trans {
|
||||
c -> d , p , x2 > 5 , { };
|
||||
d -> e , m , , { x2; };
|
||||
e -> c , n , , { x2; };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
36
netfiles/test-zn_noConstr.aut
Normal file
36
netfiles/test-zn_noConstr.aut
Normal file
@@ -0,0 +1,36 @@
|
||||
# siec automatow z ZN, ale bez zmiennych calkowitych
|
||||
|
||||
net {
|
||||
|
||||
actions { m; n; p; q; w; };
|
||||
|
||||
automaton automacikB1 {
|
||||
clocks {
|
||||
};
|
||||
locations {
|
||||
a { init; };
|
||||
b;
|
||||
};
|
||||
trans {
|
||||
a -> b , m , , { };
|
||||
b -> b , q , , { };
|
||||
b -> a , n , , { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton automacikB2 {
|
||||
clocks {
|
||||
};
|
||||
locations {
|
||||
d;
|
||||
c { init; };
|
||||
e;
|
||||
};
|
||||
trans {
|
||||
c -> d , p , , { };
|
||||
d -> e , m , , { };
|
||||
e -> c , n , , { };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
83
netfiles/test2.aut
Normal file
83
netfiles/test2.aut
Normal file
@@ -0,0 +1,83 @@
|
||||
###
|
||||
## Plik z testowa siecia z jednym automatem.
|
||||
###
|
||||
|
||||
net {
|
||||
|
||||
automaton pierwszy1 {
|
||||
|
||||
clocks {
|
||||
x; y; z;
|
||||
};
|
||||
|
||||
locations {
|
||||
a1;
|
||||
b2 { urgent; inv x > 5; };
|
||||
lokacyjka { init; };
|
||||
c3;
|
||||
aa;
|
||||
bb;
|
||||
cc;
|
||||
};
|
||||
actions {
|
||||
reset { urgent; };
|
||||
open;
|
||||
close;
|
||||
bla;
|
||||
ble;
|
||||
blo;
|
||||
ping;
|
||||
};
|
||||
trans {
|
||||
a1 -> aa, reset, y > 3, { x; };
|
||||
aa -> bb, open, z < 2 && y = 3, { x; };
|
||||
bb -> cc, close, x >= 4 && x-y > 5, { x; y; z; };
|
||||
aa -> aa,
|
||||
bla, # akcja
|
||||
y <= 6 && x >= 2 && x-y=5, # guard
|
||||
{ }; # co resetowac
|
||||
aa -> aa, ble, y <= 5 && x >= 4 && x-y=5, { };
|
||||
aa -> aa, blo, y <= 3 && x >= 0 && x-y=5, { };
|
||||
aa -> aa, ping, y <= 2 && x >= 1 && x-y=5, { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton drugi2 {
|
||||
|
||||
clocks {
|
||||
x; y; z;
|
||||
};
|
||||
|
||||
locations {
|
||||
a1;
|
||||
b2 { urgent; inv x > 5; };
|
||||
lokacyjka;
|
||||
c3;
|
||||
aa { init; };
|
||||
bb;
|
||||
cc;
|
||||
};
|
||||
actions {
|
||||
reset { urgent; };
|
||||
open;
|
||||
close;
|
||||
bla;
|
||||
ble;
|
||||
blo;
|
||||
ping;
|
||||
};
|
||||
trans {
|
||||
a1 -> aa, reset, y > 3, { x; };
|
||||
aa -> bb, open, z < 2 && y = 3, { x; };
|
||||
bb -> cc, close, x >= 4 && x-y > 5, { x; y; z; };
|
||||
aa -> aa,
|
||||
bla, # akcja
|
||||
y <= 6 && x >= 2 && x-y=5, # guard
|
||||
{ }; # co resetowac
|
||||
aa -> aa, ble, y <= 5 && x >= 4 && x-y=5, { };
|
||||
aa -> aa, blo, y <= 3 && x >= 0 && x-y=5, { };
|
||||
aa -> aa, ping, y <= 2 && x >= 1 && x-y=5, { };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
92
netfiles/tgc-dummyClocks.aut
Normal file
92
netfiles/tgc-dummyClocks.aut
Normal file
@@ -0,0 +1,92 @@
|
||||
# Train-Gate-Controller
|
||||
|
||||
net {
|
||||
|
||||
actions {
|
||||
approach;
|
||||
in;
|
||||
out;
|
||||
exit;
|
||||
lower;
|
||||
down;
|
||||
raise;
|
||||
up;
|
||||
};
|
||||
|
||||
automaton Train {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
t0 { init; };
|
||||
t1 { inv x1 <= 500; };
|
||||
t2 { inv x1 <= 500; };
|
||||
t3 { inv x1 <= 500; };
|
||||
};
|
||||
trans {
|
||||
t0 -> t1, approach, , { x1; };
|
||||
t1 -> t2, in, x1 >= 300, { };
|
||||
t2 -> t3, out, , { };
|
||||
t3 -> t0, exit, x1 <= 500, { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton Gate {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
g0 { init; };
|
||||
g1 { inv x2 <= 100; };
|
||||
g2;
|
||||
g3 { inv x2 <= 200; };
|
||||
};
|
||||
trans {
|
||||
g0 -> g1, lower, , { x2; };
|
||||
g1 -> g2, down, x2 <= 100, { };
|
||||
g2 -> g3, raise, , { x2; };
|
||||
g3 -> g0, up, x2 >= 100 && x2 <= 200, { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton Controller {
|
||||
clocks {
|
||||
x3;
|
||||
a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y;z; # atrapy do testowania wydajnosci
|
||||
a1;b1;c1;d1;e1;f1;g1;h1;i1;j1;k1;l1;m1;
|
||||
n1;o1;p1;q1;r1;s1;t1;u1;v1;w1;x1;y1;z1;
|
||||
};
|
||||
locations {
|
||||
c0 { init; };
|
||||
c1 { inv x3 <= 100; };
|
||||
c2;
|
||||
c3 { inv x3 <= 100; };
|
||||
};
|
||||
trans {
|
||||
c0 -> c1, approach, , { x3; };
|
||||
c1 -> c2, lower, x3 = 100, { };
|
||||
c2 -> c3, exit, , { x3; };
|
||||
c3 -> c0, raise, x3 <= 100, { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton specification {
|
||||
clocks {
|
||||
x9;
|
||||
};
|
||||
locations {
|
||||
s0 { init; };
|
||||
s1;
|
||||
sErr;
|
||||
};
|
||||
trans {
|
||||
s0 -> s0, up, , { };
|
||||
s0 -> s1, down, , { x9; };
|
||||
s1 -> sErr, up, x9 > 700, { };
|
||||
s1 -> s0, up, x9 <= 700, { };
|
||||
s1 -> s1, down, x9 <= 700, { };
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
92
netfiles/tgc.aut
Normal file
92
netfiles/tgc.aut
Normal file
@@ -0,0 +1,92 @@
|
||||
# Train-Gate-Controller
|
||||
|
||||
net {
|
||||
|
||||
actions {
|
||||
approach;
|
||||
in;
|
||||
out;
|
||||
exit;
|
||||
lower;
|
||||
down;
|
||||
raise;
|
||||
up;
|
||||
};
|
||||
|
||||
automaton Train {
|
||||
clocks {
|
||||
x1;
|
||||
};
|
||||
locations {
|
||||
t0 { init; };
|
||||
t1 { inv x1 <= 500; };
|
||||
t2 { inv x1 <= 500; };
|
||||
t3 { inv x1 <= 500; };
|
||||
};
|
||||
trans {
|
||||
t0 -> t1, approach, , { x1; };
|
||||
t1 -> t2, in, x1 >= 300, { };
|
||||
t2 -> t3, out, , { };
|
||||
t3 -> t0, exit, x1 <= 500, { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton Gate {
|
||||
clocks {
|
||||
x2;
|
||||
};
|
||||
locations {
|
||||
g0 { init; };
|
||||
g1 { inv x2 <= 100; };
|
||||
g2;
|
||||
g3 { inv x2 <= 200; };
|
||||
};
|
||||
trans {
|
||||
g0 -> g1, lower, , { x2; };
|
||||
g1 -> g2, down, x2 <= 100, { };
|
||||
g2 -> g3, raise, , { x2; };
|
||||
g3 -> g0, up, x2 >= 100 && x2 <= 200, { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton Controller {
|
||||
clocks {
|
||||
x3;
|
||||
#a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y;z; # atrapy do testowania DBM-ow
|
||||
#a1;b1;c1;d1;e1;f1;g1;h1;i1;j1;k1;l1;m1;
|
||||
#n1;o1;p1;q1;r1;s1;t1;u1;v1;w1;x1;y1;z1;
|
||||
};
|
||||
locations {
|
||||
c0 { init; };
|
||||
c1 { inv x3 <= 100; };
|
||||
c2;
|
||||
c3 { inv x3 <= 100; };
|
||||
};
|
||||
trans {
|
||||
c0 -> c1, approach, , { x3; };
|
||||
c1 -> c2, lower, x3 = 100, { };
|
||||
c2 -> c3, exit, , { x3; };
|
||||
c3 -> c0, raise, x3 <= 100, { };
|
||||
};
|
||||
};
|
||||
|
||||
automaton specification {
|
||||
clocks {
|
||||
x9;
|
||||
};
|
||||
locations {
|
||||
s0 { init; };
|
||||
s1;
|
||||
sErr;
|
||||
};
|
||||
trans {
|
||||
s0 -> s0, up, , { };
|
||||
s0 -> s1, down, , { x9; };
|
||||
s1 -> sErr, up, x9 > 700, { };
|
||||
s1 -> s0, up, x9 <= 700, { };
|
||||
s1 -> s1, down, x9 <= 700, { };
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user