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.

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

Our implementation of the T<strong>CTL</strong> model checker is based on the explicit-state<br />

<strong>CTL</strong> model check<strong>in</strong>g approach [8] that, start<strong>in</strong>g with the atomic propositions,<br />

recursively computes for each subformula of the desired T<strong>CTL</strong> formula the set<br />

of satisfy<strong>in</strong>g reachable states. We implemented specific procedures for a basic set<br />

of temporal modal operators and we expressed other formulas <strong>in</strong>to this canonical<br />

form. The basic set consists of the <strong>CTL</strong> modal operators E ϕ1 U ϕ2, E G ϕ,<br />

the T<strong>CTL</strong>≤≥ 10 modal operators E ϕ1 U∼r ϕ2 with ∼∈ {>, ≥}, E ϕ1 U∼r ϕ2<br />

with ∼∈ {0 ϕ2 and the T<strong>CTL</strong>cb modal operator E ϕ1 U [a,b] ϕ2.<br />

The procedures for <strong>CTL</strong> modalities follow the standard explicit algorithm [8].<br />

For T<strong>CTL</strong>≤≥ modalities, our implementation adapts the T<strong>CTL</strong>≤≥ model check<strong>in</strong>g<br />

procedure def<strong>in</strong>ed <strong>in</strong> [19] for time-<strong>in</strong>terval structures and to timed Kripke<br />

structures with time-diverg<strong>in</strong>g paths.<br />

We briefly expla<strong>in</strong> the model check<strong>in</strong>g procedure for ϕ = E ϕ1 U [a,b] ϕ2. We<br />

first compute the satisfacton set for the <strong>CTL</strong> formula ˆϕ = E ϕ1 U ϕ2, then we<br />

restrict the transition relation (which we here denote by tr) <strong>in</strong> the timed Kripke<br />

structure, to those transitions between states satisfy<strong>in</strong>g ˆϕ except transitions from<br />

¬ϕ1-states, obta<strong>in</strong><strong>in</strong>g ¯tr. We then recursively compute all the time distances from<br />

any state to some ϕ2 state up to b time units. This is computed by the operator<br />

computeDistances. The first two arguments of this operator are set of pairs of<br />

the k<strong>in</strong>d < r, s > with r a time value and s a state (represented by a natural<br />

number <strong>in</strong> the current implementation), where each pair means that it is possible<br />

to reach some ϕ2-state from state s <strong>in</strong> time r ≤ b. The first set of such pairs is<br />

the set of time distances that still have to be “visited”, that is the predecessors<br />

of s still have to be visited with the given time stamp r. The second of such sets<br />

conta<strong>in</strong>s time distances that have already been visited. The third argument is<br />

the time bound b and the fourth argument is the restricted transition relation<br />

¯tr. The operator is <strong>in</strong>itially called with<br />

computeDistances({< 0, ϕ2-state >},emptyRatNatPairSet,b, ¯tr),<br />

s<strong>in</strong>ce each ϕ2-state can obviously be reached <strong>in</strong> zero time.<br />

vars RNPS0 RNPS1 RNPS RNPS’ : RatNatPairSet .<br />

vars TIME0 TIME : Rat .<br />

var TRTKS : TransRelTKS .<br />

var N0 : Nat .<br />

op computeDistances :<br />

RatNatPairSet RatNatPairSet Rat TransRelTKS -> RatNatPairSet .<br />

ceq computeDistances(( < TIME0, N0 > RNPS), RNPS’, TIME, TRTKS) =<br />

computeDistances((RNPS1 RNPS), (< TIME0, N0 > RNPS’), TIME, TRTKS)<br />

if RNPS0 := all<strong><strong>Time</strong>d</strong>Predecessors(TRTKS,N0) /\<br />

RNPS1 := add<strong>Time</strong>AndFilter(RNPS0, TIME0, TIME) .<br />

eq computeDistances(emptyRatNatPairSet, RNPS’, TIME, TRTKS) = RNPS’ .<br />

10 We denote by T<strong>CTL</strong>≤≥ the restricted T<strong>CTL</strong> logic with time constra<strong>in</strong>ts on the<br />

temporal modalities of the form ∼ r, where ∼∈ {},

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

Saved successfully!

Ooh no, something went wrong!