----------------------------- MODULE RealTime ------------------------------- (***************************************************************************) (* This standard module is described in Chapter 9 of the book "Specifying *) (* Systems". The type of specification described there cannot be handled *) (* by the TLC model checker. *) (***************************************************************************) EXTENDS Reals VARIABLE now RTBound(A, v, D, E) == LET TNext(t) == t' = IF <>_v \/ ~(ENABLED <>_v)' THEN 0 ELSE t + (now'-now) Timer(t) == (t=0) /\ [][TNext(t)]_<> MaxTime(t) == [](t \leq E) MinTime(t) == [][A => t \geq D]_v IN \EE t : Timer(t) /\ MaxTime(t) /\ MinTime(t) ----------------------------------------------------------------------------- RTnow(v) == LET NowNext == /\ now' \in {r \in Real : r > now} /\ UNCHANGED v IN /\ now \in Real /\ [][NowNext]_now /\ \A r \in Real : WF_now(NowNext /\ (now'>r)) =============================================================================