author | paulson |
Tue, 05 Sep 2000 10:16:03 +0200 | |
changeset 9841 | ca3173f87b5c |
parent 8733 | 3213613a775a |
child 10127 | 86269867de34 |
permissions | -rw-r--r-- |
6471
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
1 |
|
7299 | 2 |
Cockpit = MuIOAOracle + |
3 |
||
4 |
datatype 'a action = Alarm 'a | Info 'a | Ack 'a |
|
6471
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
5 |
datatype event = None | PonR | Eng | Fue |
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
6 |
|
7299 | 7 |
|
8 |
(*This cockpit automaton is a deeply simplified version of the |
|
9 |
control component of a helicopter alarm system considered in a study |
|
10 |
of ESG. Some properties will be proved by using model checker |
|
11 |
mucke.*) |
|
12 |
||
6471
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
13 |
automaton cockpit = |
7299 | 14 |
signature |
15 |
actions event action |
|
16 |
inputs "Alarm a" |
|
17 |
outputs "Ack a","Info a" |
|
18 |
states |
|
19 |
APonR_incl :: bool |
|
20 |
info :: event |
|
21 |
initially "info=None & ~APonR_incl" |
|
22 |
transitions |
|
23 |
"Alarm a" |
|
24 |
post info:="if (a=None) then info else a", |
|
25 |
APonR_incl:="if (a=PonR) then True else APonR_incl" |
|
26 |
"Info a" |
|
27 |
pre "(a=info)" |
|
28 |
"Ack a" |
|
29 |
pre "(a=PonR --> APonR_incl) & (a=None --> ~APonR_incl)" |
|
30 |
post info:="None",APonR_incl:="if (a=PonR) then False else APonR_incl" |
|
6471
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
31 |
|
8733 | 32 |
automaton cockpit_hide = hide_action "Info a" in cockpit |
6471
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
33 |
|
7299 | 34 |
|
35 |
(*Subsequent automata express the properties to be proved, see also |
|
36 |
Cockpit.ML*) |
|
37 |
||
6471
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
38 |
automaton Al_before_Ack = |
7299 | 39 |
signature |
40 |
actions event action |
|
41 |
inputs "Alarm a" |
|
42 |
outputs "Ack a" |
|
43 |
states |
|
44 |
APonR_incl :: bool |
|
45 |
initially "~APonR_incl" |
|
46 |
transitions |
|
47 |
"Alarm a" |
|
48 |
post APonR_incl:="if (a=PonR) then True else APonR_incl" |
|
49 |
"Ack a" |
|
50 |
pre "(a=PonR --> APonR_incl)" |
|
51 |
post APonR_incl:="if (a=PonR) then False else APonR_incl" |
|
6471
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
52 |
|
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
53 |
automaton Info_while_Al = |
7299 | 54 |
signature |
55 |
actions event action |
|
56 |
inputs "Alarm a" |
|
57 |
outputs "Ack a", "Info i" |
|
58 |
states |
|
59 |
info_at_Pon :: bool |
|
60 |
initially "~info_at_Pon" |
|
61 |
transitions |
|
62 |
"Alarm a" |
|
63 |
post |
|
64 |
info_at_Pon:="if (a=PonR) then True else (if (a=None) then info_at_Pon else False)" |
|
65 |
"Info a" |
|
66 |
pre "(a=PonR) --> info_at_Pon" |
|
67 |
"Ack a" |
|
68 |
post info_at_Pon:="False" |
|
6471
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
69 |
|
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
70 |
automaton Info_before_Al = |
7299 | 71 |
signature |
72 |
actions event action |
|
73 |
inputs "Alarm a" |
|
74 |
outputs "Ack a", "Info i" |
|
75 |
states |
|
76 |
info_at_None :: bool |
|
77 |
initially "info_at_None" |
|
78 |
transitions |
|
79 |
"Alarm a" |
|
80 |
post info_at_None:="if (a=None) then info_at_None else False" |
|
81 |
"Info a" |
|
82 |
pre "(a=None) --> info_at_None" |
|
83 |
"Ack a" |
|
84 |
post info_at_None:="True" |
|
6471
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
85 |
|
08d12ef5fc19
added translation from IOA to mucalculus and corresponding modelchecker examples;
mueller
parents:
diff
changeset
|
86 |
end |