First commit

This commit is contained in:
Yorick Barbanneau 2023-03-01 21:40:15 +01:00
commit b7a1213f91
29 changed files with 1312 additions and 0 deletions

28
tank.spe Normal file
View file

@ -0,0 +1,28 @@
with SystemPerfect, System do
// propriétés universelles
deadlock := any_s - src(any_t - self_epsilon);
notResettable := any_s - coreach(initial, any_t);
// Systèmes réactifs
control := any_t & label action;
uncontrol := any_t & label time;
SR := any_s & ([T.level=0] | [T.level=4] | deadlock);
LossCtrl := src(control) & SR;
WinCtrl := src(control) - SR;
LossEnv := src(uncontrol) - SR;
WinEnv := src(uncontrol) & SR;
/* Classical equations for
* - winning strategy (| for lfp and to reach winning states)
* - controller synthesis (& for gfp and to avoid loosing states)
Winning = Win |& src(WinningStep);
WinningStep = Step & rtgt(Loosing);
Loosing = Loss |& (src(LoosingStep) - src(NotLoosingStep));
LoosingStep = Step & rtgt(Winning);
NonLoosingStep = Step - rtgt(Winning);
*/
WinningCtrl -=
control &
rtgt(LossEnv &
(src(uncontrol & rtgt(WinCtrl & src(WinningCtrl))) -
src(uncontrol - rtgt(WinCtrl & src(WinningCtrl)))));
project(any_s, (WinningCtrl|uncontrol,empty_t), 'Ctrl_$NODENAME', true,C) > 'Ctrl_$NODENAME.alt';
done