
P1: IML/FFX P2: IML/FFX QC: IML/FFX T1: IML
MOBK015-04 MOBK015-Lynch.cls April 1, 2006 17:45
TIMED AUTOMATA 29
The algorithm is based on the exchange of physical clock values between different pro-
cesses in the system. The parameter
u determines the frequency of sending messages. Processes
in the system are indexed by the elements of the type
Index, which we assume to be predefined.
ClockSync has a physical clock physclock, which may drift from the real time with a drift
rate bounded by
r. It uses the variable maxother to keep track of the largest physical clock
value of the other processes in the system. The variable
nextsend records when it is supposed
to send its physical clock to the other processes. The logical clock
logclock is defined to be
the maximum of
maxother and physclock. Formally, logclock is a derived variable, which
is a function whose value is defined in terms of the state variables.
A
send(m,i) transition is enabled when m = physclock and nextsend =
physclock
. It causes the value of nextsend to be updated so that the next send can occur when
physclock has advanced by u time units. The transition definition for receive(m,j,i) speci-
fies theeffect of receiving amessage from another process
j inthe system.On receiving a message
m from j, i sets maxother to the maximum of m and the current value of maxother, thereby
updating its knowledge of the largest physical clock value of other processes in the system.
The trajectory specification is slightly different from that in the previous examples. In
this example, the analog variable
physclock does not change at the same rate as real time
but it drifts with a rate that is bounded by
r. The periodic sending of physical clocks to other
processes is enforced through the stopping condition in the trajectory specification. Time is not
allowed to pass beyond the point where
physclock = nextsend.
4.2 EXECUTIONS AND TRACES
We now define execution fragments, executions, trace fragments, and traces, which are used
to describe automaton behavior. An execution fragment of a timed automaton A is an (A, V )-
sequence α = τ
0
a
1
τ
1
a
2
τ
2
···, where (1) each τ
i
is a trajectory in T and (2) if τ
i
is not the
last trajectory in α, then τ
i
.lstate
a
i+1
→ τ
i+1
.fstate. An execution fragment records what happens
during a particular run of a system, including all the instantaneous, discrete state changes and
all the changes to the state that occur while time advances. We write
frags
A
for the set of all
execution fragments of A.
If α is an execution fragment, with notation as above, then we define the first state of α,
α.
fstate,tobeα.fval.Anexecution fragment of a timed automaton A from a state x of A is
an execution fragment of A whose first state is x. We write
frags
A
(x) for the set of execution
fragments of A from x. An execution fragment α is defined to be an execution if α.
fstate is a
start state, that is, α.
fstate ∈ . We write execs
A
for the set of all executions of A.Ifα is a
closed (A, V )-sequence, then we define the last state of α, α.
lstate,tobeα.lval.