LeavePrefixUnchanged: seqof OutputStep * nat -> seqof OutputStep
LeavePrefixUnchanged(output_l, curTime) ==
[o | o inseq output_l & let mk_(-,t) = o in t <= curTime];
MakeOutputFromPlan : nat * seqof Response -> seqof OutputStep
MakeOutputFromPlan(curTime, response) == let output = OutputAtTimeZero(response) in
[let mk_(flare,t) = o in
mk_(flare,t+curTime)
| o inseq output];
OutputAtTimeZero : seqof Response -> seqof OutputStep
OutputAtTimeZero(response) == let absTimes = RelativeToAbsoluteTimes(response) in let mk_(firstFlare,-) = hd absTimes in
[mk_(firstFlare,0)] ^
[ let mk_(-,t) = absTimes(i-1),
mk_(f,-) = absTimes(i) in
mk_(f,t) | i inset {2,...,len absTimes}];
RelativeToAbsoluteTimes : seqof Response -> seqof (FlareType * nat)
RelativeToAbsoluteTimes(ts) == if ts = [] then [] elselet mk_(f,t) = hd ts,
ns = RelativeToAbsoluteTimes(tl ts) in
[mk_(f,t)] ^
[ let mk_(nf, nt) = n in mk_(nf, nt + t) | n inseq ns] measure RespLen;
RespLen: seqof Response -> nat
RespLen(l) == len l;
Angle2MagId: Angle -> MagId
Angle2MagId(angle) == if angle < 90 then mk_token("Magazine 1") elseif angle < 180 then mk_token("Magazine 2") elseif angle < 270 then mk_token("Magazine 3") else mk_token("Magazine 4");
\end{vdm_al}
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.16Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.