Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Timed Unfoldings For Networks
of Timed Automata
Patricia Bouyer1 Serge Haddad2 Pierre-Alain Reynier1
1LSV, CNRS & ENS Cachan, France 2LAMSADE, CNRS & Univ. Paris Dauphine, France
ULB, Bruxelles, 21 d´ecembre 2006 presented at ATVA’06
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Motivations
The general framework is this of model-checking :
Does the system
Modelization verify
|=
Model-checking algorithmϕ
the property ?Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Motivations
Our objective:
➜ Apply partial order techniques to timed systems. In this work:
Partial order techniques = unfoldings
Timed systems = Networks of timed automata (NTA)
Classical difficulties:
merge time and concurrency handle urgency (invariants in TA)
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Related Work
Partial order methods for NTA:
I Local semantics of time [Yi et al 98, Minea 99]
I Mazurkiewicz traces [Niebert et al 04, 06]
Unfoldings for time Petri nets:
I Unfolding of the underlying Petri net [Lilius 98]
I Proved to be “locally infeasible” [Aura & Lilius 00]
I Unfolding with discrete time [Fleishback & Steino 02]
I General case, introducing read arcs [Chatain & Jard 06].
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion 1 Generalities
Networks of timed automata Unfolding of discrete-event systems
2 Discrete Structure of our Unfolding
Clocks as shared variables Invariants
An example
3 Adding Time
Timed non-branching process A first timed unfolding Computation via local zones
4 Finite and complete prefix 5 Conclusion
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion 1 Generalities
Networks of timed automata Unfolding of discrete-event systems
2 Discrete Structure of our Unfolding Clocks as shared variables Invariants
An example 3 Adding Time
Timed non-branching process A first timed unfolding Computation via local zones 4 Finite and complete prefix 5 Conclusion
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Network of Timed Automata (NTA)
A NTA is a finite set of processes, defined as TA, together with a synchronization function. We allow:
invariants, shared clocks,
n-ary synchronizations.
Configuration = a vector of discrete locations + a clock valuation
Example: x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f: (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Network of Timed Automata (NTA)
x y 0 0 Example: x≤ 2 x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f: (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ bGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Network of Timed Automata (NTA)
x y 0 0 (1) −−→ 1 1 Example: x≤ 2 x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f: (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ bGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Network of Timed Automata (NTA)
x y 0 0 (1) −−→ 1 1 a2 −→ 1 1 Example: x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f: (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ bGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Network of Timed Automata (NTA)
x y 0 0 (1) −−→ 1 1 a2 −→ 1 1 (1) −−→ 2 2 Example: x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f: (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ bGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Network of Timed Automata (NTA)
x y 0 0 (1) −−→ 1 1 a2 −→ 1 1 (1) −−→ 2 2 a1 −→ 2 0 Example: x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f: (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ bGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Network of Timed Automata (NTA)
x y 0 0 (1) −−→ 1 1 a2 −→ 1 1 (1) −−→ 2 2 a1 −→ 2 0 b −→ 2 0 Example: x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f: (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ bGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Network of Timed Automata (NTA)
x y 0 0 (1) −−→ 1 1 a2 −→ 1 1 (1) −−→ 2 2 a1 −→ 2 0 b −→ 2 0 (1) −−→ 3 1 Example: x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f: (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ bGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Network of Timed Automata (NTA)
x y 0 0 (1) −−→ 1 1 a2 −→ 1 1 (1) −−→ 2 2 a1 −→ 2 0 b −→ 2 0 (1) −−→ 3 1 a3 −→ 3 1 Example: x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f: (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ bGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Unfolding of discrete-event systems
Unfolding of a system= net describing its concurrent behaviors. Usuallyinfinite,
but: existence of a finiteand completeprefix.
➜ Well kwown for discrete-event systems such as Petri Nets, or networks of automata (McMillan, Esparza et al, ...)
➜ we can decide reachability, transition enabling, deadlocks...
Remark1: Very efficient for safe Petri Nets
Remark2: Networks of Automata give safe Petri Nets!
➜ it remains to handle time!
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
`0 `1 `2 `3 `0 0 `01 `02 a1 a2 b? b? a3 b! f : (a1,⊥) 7→ a1 (⊥, a2) 7→ a2 (⊥, a3) 7→ a3 (b?, b!) 7→ b `0 `00
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
`0 `1 `2 `3 `0 0 `01 `02 a1 a2 b? b? a3 b! f : (a1,⊥) 7→ a1 (⊥, a2) 7→ a2 (⊥, a3) 7→ a3 (b?, b!) 7→ b `0 `00
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
`0 `1 `2 `3 `0 0 `01 `02 a1 a2 b? b? a3 b! f : (a1,⊥) 7→ a1 (⊥, a2) 7→ a2 (⊥, a3) 7→ a3 (b?, b!) 7→ b `0 `00 `1 a1
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
`0 `1 `2 `3 `0 0 `01 `02 a1 a2 b? b? a3 b! f : (a1,⊥) 7→ a1 (⊥, a2) 7→ a2 (⊥, a3) 7→ a3 (b?, b!) 7→ b `0 `00 `1 a1
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
`0 `1 `2 `3 `0 0 `01 `02 a1 a2 b? b? a3 b! f : (a1,⊥) 7→ a1 (⊥, a2) 7→ a2 (⊥, a3) 7→ a3 (b?, b!) 7→ b `0 `00 `1 a1 `2 a2
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
`0 `1 `2 `3 `0 0 `0 0 `01 `02 a1 a2 b? b? a3 b! f : (a1,⊥) 7→ a1 (⊥, a2) 7→ a2 (⊥, a3) 7→ a3 (b?, b!) 7→ b `0 `00 `1 a1 `2 a2
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
`0 `1 `2 `3 `0 0 `0 0 `01 `02 a1 a2 b? b? a3 b! f : (a1,⊥) 7→ a1 (⊥, a2) 7→ a2 (⊥, a3) 7→ a3 (b?, b!) 7→ b `0 `00 `1 a1 `2 a2 `0 1 a3
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
`0 `1 `2 `3 `0 0 ``0101 `02 a1 a2 b? b? a3 b! f : (a1,⊥) 7→ a1 (⊥, a2) 7→ a2 (⊥, a3) 7→ a3 (b?, b!) 7→ b `0 `00 `1 a1 `2 a2 `0 1 a3
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
`0 `1 `2 `3 `0 0 ``0101 `02 a1 a2 b? b? a3 b! f : (a1,⊥) 7→ a1 (⊥, a2) 7→ a2 (⊥, a3) 7→ a3 (b?, b!) 7→ b `0 `00 `1 a1 `2 a2 `0 1 a3 `3 `02 b
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
`0 `1 `2 `3 `0 0 ``0101 `02 a1 a2 b? b? a3 b! f : (a1,⊥) 7→ a1 (⊥, a2) 7→ a2 (⊥, a3) 7→ a3 (b?, b!) 7→ b `0 `00 `1 a1 `2 a2 `0 1 a3 `3 `02 b
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
`0 `1 `2 `3 `0 0 ``0101 `02 a1 a2 b? b? a3 b! f : (a1,⊥) 7→ a1 (⊥, a2) 7→ a2 (⊥, a3) 7→ a3 (b?, b!) 7→ b `0 `00 `1 a1 `2 a2 `0 1 a3 `3 `02 b `3 `02 b
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
`0 `1 `2 `3 `0 0 `01 `02 a1 a2 b? b? a3 b! f : (a1,⊥) 7→ a1 (⊥, a2) 7→ a2 (⊥, a3) 7→ a3 (b?, b!) 7→ b `0 `00 `1 a1 `2 a2 `0 1 a3 `3 `02 b `3 `02 b
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
Some definitions: Causal relation< if p ∈•t, then p < t if p ∈ t•, then t < p `0 `00 `1 a1 `2 a2 `0 1 a3 `3 `02 b `3 `02 b placeorcondition transitionoreventGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
Some definitions: Causal relation< if p ∈•t, then p < t if p ∈ t•, then t < p Non-branching process subnet corresponding to an execution `0 `00 `1 a1 `2 a2 `0 1 a3 `3 `02 b `3 `02 b placeorcondition transitionoreventGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
Some definitions: Causal relation< if p ∈•t, then p < t if p ∈ t•, then t < p Non-branching process subnet corresponding to an executionNbp associated with an event
minimal causal past
`0 `00 `1 a1 `2 a2 `0 1 a3 `3 `02 b `3 `02 b placeorcondition transitionorevent
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example of the unfolding of a discrete system
Some definitions: Causal relation< if p ∈•t, then p < t if p ∈ t•, then t < p Non-branching process subnet corresponding to an executionNbp associated with an event
minimal causal past
Cut of a nbpC (Min ∪ C• ) \•C `0 `00 `1 a1 `2 a2 `0 1 a3 `3 `02 b `3 `02 b placeorcondition transitionorevent
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion 1 Generalities
Networks of timed automata Unfolding of discrete-event systems 2 Discrete Structure of our Unfolding
Clocks as shared variables Invariants
An example
3 Adding Time
Timed non-branching process A first timed unfolding Computation via local zones 4 Finite and complete prefix 5 Conclusion
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Clocks as shared variables
I Clocks induce dependencies betw. a priori indep. transitions
I Examples : `0 `1 `0 0 `01 a x := 0 b x≥ 2
a and b aredependent
I Consider clocks as shared variables:
Test as reading Reset as writing
Remark: related to [ICALP’06], [Srba], [Lugiez et al]
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Clocks as shared variables
I Clocks induce dependencies betw. a priori indep. transitions
I Examples : `0 `1 `0 0 `01 a x ≤ 3 b x≥ 2
a and b areindependent
I Consider clocks as shared variables:
Test as reading Reset as writing
Remark: related to [ICALP’06], [Srba], [Lugiez et al]
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Test as reading
Read Arcs: p t1 t2 t3 p ∈ t1•∧ p ∈◦t2 ⇒ t1<t2 p ∈◦t 2∧ p ∈•t3 ⇒ t2<t3➜ Leads to another notion of unfolding: [Vogler et al, Winkovski]
I More difficult to define
I Increase significantly the concurrency relation
`0 `1 `0 0 `01 a x≤ 3 b x≥ 2 `0 x `1 `0 0 `0 1 a b ➜
aand b areconcurrent
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Reset as writing
`0 `1 `0 0 ` 0 1 a x:= 0 b x≥ 2 `0 x x `1 `0 0 `0 1 `0 1 a b b ➜I a and b aredependent,
I there are two occurrences of the transition b.
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Invariants
I An invariant of any process may affect the behavior of other
processes: `0 `1 y ≤ 2 `0 0 a x≥ 3 `0 x `1 y `0 0 a ➜
I For every clock x appearing in an invariant, and for every
event t, we require:
x∈◦
t∪•
t
I This may have bad consequences on the causal relation.
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Invariants (2)
I What happens if a transition modifies an invariant?
`0 `1 x ≤ 2 `0 0 x≤ 4 `01 a x ≥ 3 b `0 x x `1 `0 0 `0 1 `0 0 a b a ➜
I considered as a writing on clock x.
I To a condition encoding a clock x corresponds informally a
set of constraints satisfied by x.
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y xGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 y≥ 2, y:= 0 a1 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y xGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 y≥ 2, y:= 0 a1 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y x y `1 a1Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y x y `1 a1Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y x y `1 a1 x `0 1 a2Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y x y `1 a1 x `0 1 a2Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y x y `1 a1 x `0 1 a2 `00 1 a3Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? b? a2 x≥ 3 a3 b! b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y x y `1 a1 x `0 1 a2 `00 1 a3Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? b? a2 x≥ 3 a3 b! b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y x y `1 a1 x `0 1 a2 `00 1 a3 `2 `0 2 bGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y x y `1 a1 x `0 1 a2 `00 1 a3 `2 `0 2 bGeneralities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y x y `1 a1 x `0 1 a2 `00 1 a3 `2 `0 2 b `00 1 a3Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y x y `1 a1 x `0 1 a2 `00 1 a3 `2 `0 2 b `00 1 a3Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Example
x≤ 2 y≥ 2, y:= 0 a1 y= 0 b? a2 x≥ 3 a3 b! `0 `0 0 `00 0 `1 `0 1 `00 1 `2 `0 2 f : (a1,⊥, ⊥) 7→ a1 (⊥, a2,⊥) 7→ a2 (⊥, ⊥, a3) 7→ a3 (b?, b!, ⊥) 7→ b `0 `00 ` 00 0 y x y `1 a1 x `0 1 a2 `00 1 a3 `2 `0 2 b `00 1 a3 `1 y a1 b `2 `02Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion 1 Generalities
Networks of timed automata Unfolding of discrete-event systems 2 Discrete Structure of our Unfolding
Clocks as shared variables Invariants
An example 3 Adding Time
Timed non-branching process A first timed unfolding Computation via local zones
4 Finite and complete prefix 5 Conclusion
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Timed Non-branching Process
We attach timing informations to nodes: For transitions:
I d : date of firing
For locations:
I db : date of birth (= production) I de : date of end (= consumption)
For clocks:
I db : date of birth (= production) I de : date of end (= consumption)
I dr : date of last reset (to compute clock’s value)
➜ These are absolute dates
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
From timed sequences to timed nbp
A timed sequence ν = ν0 · (d, a) `0 `1 y := 0 x≥ 2, a `0 x `1 y y a p1 p2 p3 p4 p5 t1 ➜
We define dates as follows: d(t1) = d
de(p1) = de(p3) = d
db(p4) = db(p5) = dr(p5) = d
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Feasible Timed Non-branching Process
· · ·
· · · t
for any clock x, let us denote: v(x) = d(t) − dr(px−)
v0(x) = d(t) − d r(px+)
Causal (in)equations: Timed (in)equations:
- ∀p ∈ t•, d b(p) = d(t) - g (t)[{x ← v (x)}x ∈X] - ∀p ∈• t, de(p) = d(t) - V`∈L(t)Inv(`)[{x ← v (x)}x ∈X] - ∀p ∈◦ t, db(p) ≤ d(t) ≤ de(p) - Vx ∈R(t)v 0 (x) = 0 - ∀p ∈ Min, db(p) = dr(p) = 0 - Vx ∈Redefined(t)v 0 (x) = v (x)
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
A first timed Unfolding
I A timed non-branching process is feasible iff it satisfies
previous equations.
Proposition
(i ) The timed nbp associated with a timed sequence is feasible, (ii ) If a timed nbp is feasible, then it admits a timed sequence.
I If we consider the previous equations as zones (symbolic
representation for valuations), then we get:
Theorem
The resulting timed unfolding contains exactly all the timed sequences of the NTA : it defines a symbolic unfolding for NTA.
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Computation via local zones
I Drawback of the previous unfolding: the size of zones
increases while unfolding.
I Idea: keep only the part of the zone related to the cut
➜ zones of bounded size (2n + 3|X |).
I Interest: sufficient to extend a nbp.
I Drawback: not sufficient to “merge” two nbps.
. Details
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Computation via local zones (2)
I Using a topological sort, we compute local zones “slice by
slice” (slice = set of concurrent events).
I We obtain a way to compute a timed unfolding of an NTA, in
which zones attached to events are of bounded size.
Theorem
We can compute the timed unfolding T (A) with local zones (Zt)t
verifying:
t appears inT (A) iff there exists a timed sequence whose nbp
is the one of t,
Zt characterizes the set of values reachable by timed
sequences along the nbp of t
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion 1 Generalities
Networks of timed automata Unfolding of discrete-event systems 2 Discrete Structure of our Unfolding
Clocks as shared variables Invariants
An example 3 Adding Time
Timed non-branching process A first timed unfolding Computation via local zones 4 Finite and complete prefix 5 Conclusion
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Objective
I Limit the unfolding to a finite prefixwhich contains full
information about the reachable states.
I In the untimed framework:
e cut-off ⇐⇒ ∃e0 ≺ e s.t. ( λ(e) = λ(e0 ) λ(Cut(e)) = λ(Cut(e0))
Then prune the subtree rooted in e.
I In the timed framework, we have to compare zones!
(inclusion)
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
How to compare zones
I Computerelativizationof zone Zt w.r.t. date d(t) of t :
(operation : ∀d, d := d(t) − d)
I But these zones may be unbounded
➜ does not ensure termination!
I Favorable case: “bounded” TA = TA such that :
clock values are bounded,
time elapsed in any location is bounded. ➜ finitely many zones ⇒ Termination!
I General case: Enforce global synchronization to reinitialize the
unfolding, and use extrapolation on “clock zones”.
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Synchronized events
Define the clock zones Testt obtained from Zt by performing:
Relativization w.r.t. variable d(t) Projection on variables dr(.)
Extrapolation
Synchronized events: (chosen among unavoidable edges) Perform global synchronization, and reinitialize the unfolding (consume all places of the cut, and produce them back)
Lemma (Forgettable Past)
Let t ∈ SE .
It is equivalent to extend the nbp of t and to build a nbp from Cut([t]) which initially satisfies Testt.
sync
sync
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Algorithm for finite prefix
I We consider an adequate order ≺ on SE (see [Esparza et al])
I Cut-off event : e ∈ SE cut-off ⇐⇒ ∃e0 ≺ e s.t. λ(e) = λ(e0 ) λ(Cut(e)) = λ(Cut(e0)) Teste ⊆ Teste0 Theorem
This algorithm terminates and produces a finite and complete prefix.
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
1 Generalities
Networks of timed automata Unfolding of discrete-event systems 2 Discrete Structure of our Unfolding
Clocks as shared variables Invariants
An example 3 Adding Time
Timed non-branching process A first timed unfolding Computation via local zones 4 Finite and complete prefix 5 Conclusion
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Conclusion
I Definition of a timed unfolding for NTA
I Computation using “local zones”
I Construction of a finite and complete prefix
Further work:
I Reduce dependencies due to invariants
I Reduce the number of variables (db,de,dr)
I Try to avoid synchronized edges
I Extend the set of properties we can verify
I Implementation
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
A last remark
There were two papers at ATVA’06:
“Timed Unfoldings For Networks of Timed Automata” (BHR) “Symbolic Unfoldings For Networks of Timed Automata” (Cassez, Chatain, Jard)
The two contributions are close but there are important differences:
they propose a way to define the unfolding, but do not consider its “efficient” construction,
this allows them to define a “smaller” object,
they make some stronger assumptions on the system (no deadlocks, no shared clocks).
➜ We are currently trying to bring closer the two approaches.
Generalities Discrete Structure of our Unfolding Adding Time Finite and complete prefix Conclusion
Thanks for your attention!
Appendix
Extend the unfolding
e1 e2
e0
Cut(e1) Cut(e2)
Firing e1 implies d(e0) < 1
Firing e2 implies d(e0) > 1
But e0 does not appear in Cut(e
1) ∪ Cut(e2) !
➜ Taking Ze1∧ Ze2 is not enough precise...
Appendix
Computing by slices
e0 = e
1 e2
Cut(e1) Cut(e2)
1 Compute the starting event e0
2 Sort by slices (sets of concurrent events) the elements of
([e1] ∪ [e2]) \ [e0]
3 Extend Ze0, slice by slice.
. Back