30.04.2013 Views

Timed CTL Model Checking in Real-Time Maude⋆ - IfI

Timed CTL Model Checking in Real-Time Maude⋆ - IfI

Timed CTL Model Checking in Real-Time Maude⋆ - IfI

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

12 D. Lepri, E. Ábrahám, and P. Cs. Ölveczky<br />

duration 1. Let’s consider the formula ϕ = E ϕ1 U [1,1] true, where ϕ1 is the<br />

formula E F [1,1] p. The formula ϕ says that ϕ1 must hold all the way until we<br />

reach time 1. The greatest common divisor of all maximal time <strong>in</strong>crements and<br />

all time values <strong>in</strong> ϕ is still 1, so the “greatest common divisor” abstraction is<br />

equivalent to R maxDef (r) . In particular, this abstraction (i.e., the above behavior)<br />

satisfies ϕ w.r.t. the <strong>in</strong>itial state π(0). However, R, L {p}, π(0) |=c ϕ does not hold,<br />

s<strong>in</strong>ce ϕ does not hold <strong>in</strong> the timed ref<strong>in</strong>ement (where the first tick has been split<br />

<strong>in</strong>to two smaller ones)<br />

π ′ = ¬p 1/2<br />

−→ ¬p 1/2<br />

−→ ¬p <strong>in</strong>st<br />

−→ p <strong>in</strong>st<br />

−→ ¬p 1<br />

−→ · · · (¬p forever)<br />

because ϕ1 does not hold <strong>in</strong> the second state <strong>in</strong> the ref<strong>in</strong>ement.<br />

Our approach is therefore to capture all these “<strong>in</strong>termediate” states by further<br />

splitt<strong>in</strong>g the “gcd” tick steps <strong>in</strong>to two smaller tick steps. In essence, we advance<br />

time not by ¯r, but by “half” the gcd ¯r <strong>in</strong> each tick step.<br />

To formalize this notion, let us first consider the time doma<strong>in</strong>. <strong>Real</strong>-time<br />

rewrite theories are parametric <strong>in</strong> their time doma<strong>in</strong>; the time doma<strong>in</strong> must only<br />

satisfy some abstract properties given <strong>in</strong> some functional theory def<strong>in</strong>ed <strong>in</strong> [28]<br />

that def<strong>in</strong>es the time doma<strong>in</strong> abstractly as a commutative monoid (0, ≤, T ime)<br />

with some additional operators, such as monus, where x monus y denotes x − y<br />

if y < x, and 0 otherwise. The follow<strong>in</strong>g theory states that there exist functions<br />

gcd and half on the non-zero time values with the expected properties.<br />

fth GCD-TIME-DOMAIN is <strong>in</strong>clud<strong>in</strong>g LTIME-INF .<br />

sort Nz<strong>Time</strong> . subsort Nz<strong>Time</strong> < <strong>Time</strong> .<br />

cmb T:<strong>Time</strong> : Nz<strong>Time</strong> if T:<strong>Time</strong> =/= 0 .<br />

op gcd : Nz<strong>Time</strong> Nz<strong>Time</strong> -> Nz<strong>Time</strong> [assoc comm] .<br />

op _divides_ : Nz<strong>Time</strong> Nz<strong>Time</strong> -> Bool .<br />

op half : Nz<strong>Time</strong> -> Nz<strong>Time</strong> .<br />

vars T1 T2 T3 : Nz<strong>Time</strong> . vars T T’ : <strong>Time</strong> .<br />

eq T1 divides T1 = true .<br />

ceq T1 divides T2 = false if T2 < T1 .<br />

eq T1 divides (T1 + T2) = T1 divides T2 .<br />

eq gcd(T1, T2) divides T1 = true .<br />

ceq gcd(T1, T2) >= T3 if T3 divides T1 /\ T3 divides T2 .<br />

eq half(NZT) + half(NZT) = NZT .<br />

endfth<br />

In the follow<strong>in</strong>g we assume that all considered time doma<strong>in</strong>s satisfy the theory<br />

GCD-TIME-DOMAIN, and write gcd and half for the <strong>in</strong>terpretation of gcd and half,<br />

respectively. Note that the usual dense time doma<strong>in</strong>s, such as the nonnegative<br />

rationals, satisfy this theory with the standard <strong>in</strong>terpretation of division and the<br />

gcd operator.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!