equivalences on labelled transition systems ed brinksma course 2004
TRANSCRIPT
Equivalences on Labelled Transition Systems
Ed BrinksmaCourse 2004
© Ed Brinksma/Jan Tretmans
Observable Behaviour
a aa
a
a?
?
?
“ Some transition systems are more equal than others “
© Ed Brinksma/Jan Tretmans
a
b
a
b
aa
b
b
a
Observable Behaviour
?
?
?
?
?
© Ed Brinksma/Jan Tretmans
Isomorphismp q
"p and q are exactly the same modulo state names"
Isomorphism:
aa
a
bijection : Sp Sq :
s1, s2 Sp, L {} :
s1 s2 (s1) (s2)
(s0p) = s0q
a
s0
s1
a
v
u
© Ed Brinksma/Jan Tretmans
a
b
a
b
aa
b
b
a
Isomorphism
© Ed Brinksma/Jan Tretmans
Comparing Transition Systems
S1 S2
environmente
environmente
? ?
S1 S2 e E . obs ( e, S1 ) = obs (e, S2 )
© Ed Brinksma/Jan Tretmans
Trace Equivalence
S1 S2
environment environment
s1 tr s2 traces ( s1 ) = traces ( s2 )
traces (s) = { L* | s }
© Ed Brinksma/Jan Tretmans
cb
a aa
cb
cb
a
tr
Trace Equivalence
traces = { ,a,a b,a c }
© Ed Brinksma/Jan Tretmans
Completed Trace Equivalence
p tr q traces(p) = traces (q)
p ctr q Ctraces(p) = Ctraces (q)
and traces(p) = traces (q)
Reachable states: s after = { s’ | s
s’ }
traces (s) = { L* | s }Traces:
s after refuses A s' s after : s' refuses ARefusals:
as refuses A a A : s Refusal:
Ctraces (s) = { L* | s after refuses L }
Completed traces:
Completed
trace equivalence:
Trace equivalence:
© Ed Brinksma/Jan Tretmans
Completed Trace Equivalence
a aa
a
a
tr
ctr
tr
ctr
tr
ctr
p q
p after a refuses L q after a refuses L
q after refuses Lp after refuses L
© Ed Brinksma/Jan Tretmans
a
b
a
b
aa
b
b
a
tr
ctr tr
ctr
tr
ctr
tr
ctr
Completed Trace Equivalence
© Ed Brinksma/Jan Tretmans
cb
a aa
cb
cb
a
?
(Completed) Trace Equivalence : Others ?
© Ed Brinksma/Jan Tretmans
Equivalences on Transition Systems
isomorphism
bisimulation( weak )
failure trace= refusal
failures= testing
completedtrace
trace
weak
strong
© Ed Brinksma/Jan Tretmans
Bisimulation
p b q
"p and q simulate each other and go to states from where they can simulate each other again"
Bisimulation:
a
a
Sp Sq : s0p, s0q and
s1, s2 , L* :
whenever sp s'p then sq s'q and s'p, s'q
whenever sq s'q then sp s'p and s'p, s'q
b
© Ed Brinksma/Jan Tretmans
Bisimulation
aaa
a
a
b b b
© Ed Brinksma/Jan Tretmans
a
b
a
b
aa
b
b
a
Bisimulation
b
b
b
bb
© Ed Brinksma/Jan Tretmans
cb
a aa
cb
cb
a
b
Bisimulation
© Ed Brinksma/Jan Tretmans
Comparing Systems :Testing Equivalence
S1 S2
environment environment
LTS(L) Ctraces (e||s)
S1 te S2 e E . obs ( e, S1 ) = obs (e, S2 )
? ?
© Ed Brinksma/Jan Tretmans
Testing Equivalence
S1 S2
environment environment
S1 te S2 e LTS(L) . L* .
e||S1 after refuses L e||S2 after refuses L
© Ed Brinksma/Jan Tretmans
Testing Equivalence
a aa
a
a
te te te
p q
obs(e,p) = { a
}
aEnvironment e :
obs(e,q) = { a , }
© Ed Brinksma/Jan Tretmans
S1 S2environment
a
b
environment
a
bcb
a aa
cb
teaa b aa b
S1 after a refuses {b} S2 after a refuses {b}
Testing Equivalence
a b aa a b
© Ed Brinksma/Jan Tretmans
Testing Equivalence
P te q FP(p) = FP(q)
Failure equivalence = testing equivalence :
aa
cb
FP :
a , {c}
a b , L
,
Not FP :
a , {b,c}
a a ,
, L
Failure pairs of p :
FP (p) = { , A | A L, traces(p), p afer refuses A }
© Ed Brinksma/Jan Tretmans
cb
a aa
cb
tr
b
ca
a
b
ca
a
ctr
p q
traces (p) = traces (p) = { , a, a b, a c }
Ctraces (p) = Ctraces (p) = { a b, a c }
p after a b refuses L q after a b refuses L
q after a refuses {a,c}p after a refuses {a,c}
p after a refuses L q after a refuses L
Testing Equivalence
te
© Ed Brinksma/Jan Tretmans
Testing Equivalence
cb
a aa
cb
cb
a
te
te
te
© Ed Brinksma/Jan Tretmans
Testing Equivalence
tea
tea
coincoin
bangcoffee
coffeebang
p
coffee
tea
coincoin
bangtea
coffeebang
q
p te
qBut: if you want coffee you will eventually always succeed in q but not p !?
© Ed Brinksma/Jan Tretmans
Refusal Equivalence
tea
tea
coin
coin
bangcoffee
coffeebang
p
coffee
tea
coin
coin
bangtea
coffeebang
q
coffee
coffee
coin
bang
Test t : only possible
if everything else is impossible
coin bang coffee obs ( q || t )
coin bang coffee obs ( p || t )
p rf
q
© Ed Brinksma/Jan Tretmans
Comparing Systems : Refusal Equivalence
S1 S2
environment environment
LTS( L{} ) Ctraces (e||s)
S1 rf S2 e E . obs ( e, S1 ) = obs (e, S2 )
? ?
© Ed Brinksma/Jan Tretmans
Refusal Equivalence
S1 S2
environment environment
S1 rf S2 e LTS(L{}) . L* .
e||S1 after refuses L e||S2 after refuses L
© Ed Brinksma/Jan Tretmans
Refusal Equivalence
P rf q Ftraces(p) = Ftraces
(q)
Failure trace equivalence = refusal equivalence :
( L ( L ) )* : s
Failure trace :
Failure traces of p : Ftraces (p) = { ( L ( L ) )* | p }
Failure A : A { } : s A
s s
aa
cb
Ftraces :
{b,c} a {a,c} b L
a {c} b {a} {b} {c}
a {b} {b} c
Not Ftraces :
{a,b,c} a {a,c} b L
a {c} c L
a a
© Ed Brinksma/Jan Tretmans
Refusal Equivalence
tea
tea
coin
coin
bangcoffee
coffeebang
p
coffee
tea
coin
coin
bangtea
coffeebang
q
p rf
qFtrace of p :
coin {coffee} bang {coffee} teaNot an Ftrace of p :
coin {coffee} bang coffee
An Ftrace of q :
coin {coffee} bang coffee
Not an Ftrace of q :
coin {coffee} bang {coffee} tea
© Ed Brinksma/Jan Tretmans
Equivalences on Transition Systems
isomorphism
bisimulation( weak )
failure trace= refusal
failures= testing
completedtrace
trace
weak
strong
observing sequences of actions and their end
observing sequences of actions
test an LTS with another LTS
test an LTS with another LTS, and try again (continue) after failure
test an LTS with another LTS, and undo, copy, repeat as often as you like
now you need to observe 's ……
© Ed Brinksma/Jan Tretmans
Equivalences : Examples
a aa
a
a
sb
b
tr
te
sb
b
tr
te
sb
b
tr
te
© Ed Brinksma/Jan Tretmans
cb
a aa
cb
cb
a
Equivalences : Examples
© Ed Brinksma/Jan Tretmans
a
b
a
b
aa
b
b
a
Equivalences : Examples
© Ed Brinksma/Jan Tretmans
bb
dc
a
Equivalence of Transition Systems
aa
bb
c ddc
b
a
© Ed Brinksma/Jan Tretmans
d
a
b
c
p
dc d
a
bbb
c
s
aa
bb
dc
r
bb
dc
a
q
Equivalences : Examples
© Ed Brinksma/Jan Tretmans
Equivalences : Examples
tea
tea
coincoin
bangcoffee
coffeebang
p
coffee
tea
coincoin
bangtea
coffeebang
q