Alexandre Duret-Lutz
mars 2009
¯
r1
¯
r2¯
d
1
¯
d
2
¯
r
1
¯
r2 d1
¯
d
2
¯
r1¯
r2¯
d
1 d
2
¯
r1
¯
r2¯
d1
¯
d2
¯
r1
¯
r2d1d2
¯
r1
¯
r2¯
d1
¯
d2
r
1
¯
r2¯
d
1
¯
d
2
¯
r1¯
r2¯
d
1 d
2
¯
r
1
¯
r2 d1
¯
d
2
¯
r
1 r
2
¯
d
1
¯
d
2
r
1
¯
r2¯ ¯
r1r
2
¯
q0
q
1
q
2
q3 q4 q5
q6 q
7
q
8
q9
q
10
q
11
G
(
d1→
Fr1)
.⊤
d
1
∧ ¬
r1¬
r1q
C
q
D
q0
,
qCq1
,
q Cq2
,
q Cq3
,
qC q4,
qCq5
,
qCq6
,
qC q7,
q Cq8
,
q Cq9
,
qCq10
,
qC q11,
qCq0
,
qDq1
,
qD q2,
qDq3
,
qDq4
,
qD q5,
qDq6
,
q Dq7
,
qD q8,
qDq9
,
qD, ,
1
On-the-Fly EmptinessCheks for Generalized Bühi Automata
2
UsingPartialOrders to Reduethe State Spae
On-the-Fly Emptiness Cheks for GBA
Jean-Mihel Couvreur,Alexandre Duret-Lutz, Denis Poitrenaud
A(transition-based) Bühi automatonhas:
Aset of states, with a designated initial state,
Aset of transitions between states,
Aset of aepting transitions.
Aninnite runof this automatonis aepting ifit visits an aepting
transitioninnitely often.
s
4 s
5
A(transition-based) Bühi automatonhas:
Aset of states, with a designated initial state,
Aset of transitions between states,
Aset of aepting transitions.
Aninnite runof this automatonis aepting ifit visits an aepting
transitioninnitely often.
s
4 s
5
Emptiness Chek =Does an automaton have noaepting run?
= ⇒
Searh for an aepting yle reahable from the initial state.nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Shwoon & Esparza '04
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
Found!
s
1
s
2
s
3 s
4 s
5
Found!
AGeneralized (transition-based) Bühi automaton has:
Aset of states, with a designated initial state,
Aset of transitions between states,
Aset of aepting sets of transitions.
Aninnite runof this automatonis aepting ifit visits a transition
fromeah aepting set innitely often.
s
4 s
5
AGeneralized (transition-based) Bühi automaton has:
Aset of states, with a designated initial state,
Aset of transitions between states,
Aset of aepting sets of transitions.
Aninnite runof this automatonis aepting ifit visits a transition
fromeah aepting set innitely often.
s
4 s
5
Ageneralized automaton with
n states
m aeptane onditions
an be degeneralized into an automaton with
nm states at worst
1aeptane ondition
entries in hash tablesize searh stak states
hash table in bits depth traversed
n n
(
s+
2)
n 2nn states,
s bits per state.
entries in hash tablesize searh stak states
hash table in bits depth traversed
nm nm
(
sd+
2)
nm 2nmn states, m aeptane onditions,
s
d
bits per degeneralized state.
entries in hash tablesize searh stak states
hash table in bits depth traversed
nm nm
(
sd+
2)
nm 2nmn n
(
sg+
2m)
nm 2nmn states, m aeptane onditions,
s
d
bits perdegeneralized state, s
g
bits pergeneralized state (s
g
≤
sd).nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Shwoon & Esparza '04
degeneralized generalized
nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Shwoon & Esparza '04
degeneralized generalized
nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Shwoon & Esparza '04
Tauriainen '03
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
s
1
s
2
s
3 s
4 s
5
Found!
s
1
s
2
s
3 s
4 s
5
Found!
degeneralized generalized
nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Shwoon & Esparza '04
Tauriainen '03
degeneralized generalized
nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Shwoon & Esparza '04
Tauriainen '03
Couvreur et al. '05
Mergemore reent optimizations of Gastin et al. ('04) and
Shwoon & Esparza ('04) into Taurainen's algorithm.
Introdue another optimization: weighted blue stak.
s
4 s
5
without
Mergemore reent optimizations of Gastin et al. ('04) and
Shwoon & Esparza ('04) into Taurainen's algorithm.
Introdue another optimization: weighted blue stak.
s
4 s
5
without
Mergemore reent optimizations of Gastin et al. ('04) and
Shwoon & Esparza ('04) into Taurainen's algorithm.
Introdue another optimization: weighted blue stak.
s
4 s
5
without
Mergemore reent optimizations of Gastin et al. ('04) and
Shwoon & Esparza ('04) into Taurainen's algorithm.
Introdue another optimization: weighted blue stak.
s
4 s
5
without
Mergemore reent optimizations of Gastin et al. ('04) and
Shwoon & Esparza ('04) into Taurainen's algorithm.
Introdue another optimization: weighted blue stak.
s
4 s
5
without
Mergemore reent optimizations of Gastin et al. ('04) and
Shwoon & Esparza ('04) into Taurainen's algorithm.
Introdue another optimization: weighted blue stak.
s
4 s
5
without
Mergemore reent optimizations of Gastin et al. ('04) and
Shwoon & Esparza ('04) into Taurainen's algorithm.
Introdue another optimization: weighted blue stak.
s
4 s
5
without
Mergemore reent optimizations of Gastin et al. ('04) and
Shwoon & Esparza ('04) into Taurainen's algorithm.
Introdue another optimization: weighted blue stak.
s
4 s
5
Mergemore reent optimizations of Gastin et al. ('04) and
Shwoon & Esparza ('04) into Taurainen's algorithm.
Introdue another optimization: weighted blue stak.
s
4 s
5
1
with
Mergemore reent optimizations of Gastin et al. ('04) and
Shwoon & Esparza ('04) into Taurainen's algorithm.
Introdue another optimization: weighted blue stak.
s
4 s
5
1
with
degeneralized generalized
nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Shwoon & Esparza '04
Tauriainen '03
Couvreur et al. '05
degeneralized generalized
nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Shwoon & Esparza '04
Tauriainen '03
Couvreur et al. '05
SCC Lihtenstein & Pnueli '83 Couvreur '99
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
s
4 s
5
s
1
s
2
s
3
Found!
s
4 s
5
s
1
s
2
s
3
Found!
entries in hash table size searh stak states
s
4 s
5
s
1
s
2
s
3
Found!
entries in hash table size searh stak states
degeneralized generalized
nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Shwoon & Esparza '04
Tauriainen '03
Couvreur et al. '05
SCC Lihtenstein & Pnueli '83 Couvreur '99
degeneralized generalized
nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Shwoon & Esparza '04
Tauriainen '03
Couvreur et al. '05
SCC Lihtenstein & Pnueli '83 Couvreur '99
degeneralized generalized
nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Shwoon & Esparza '04
Tauriainen '03
Couvreur et al. '05
SCC Lihtenstein & Pnueli '83 Couvreur '99
H1: visit transitions that goto visited states rst.
s
1
s
2
s
3
s
4
H1: visit transitions that goto visited states rst.
s
1
s
2
s
3
s
4
H1: visit transitions that goto visited states rst.
s
1
s
2
s
3
s
4
H2: H1 + onsider the DFS in term of SCC when hoosing a
H1: visit transitions that goto visited states rst.
s
1
s
2
s
3
s
4
H2: H1 + onsider the DFS in term of SCC when hoosing a
Upper bounds easyto have.
Objetive : evaluateall these algorithms on the average, on
non-empty automata.
degeneralized generalized
nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Tauriainen '03
Upper bounds easyto have.
Objetive : evaluateall these algorithms on the average, on
non-empty automata.
degeneralized generalized
nested DFS Couroubetis et al. '90
Godefroid & Holzmann'93
Holzmann et al. '96
Gastin et al. '04
Tauriainen '03
nested DFS
Shwoon & Esparza '04
Tauriainen '03
Couvreur et al. '05
SCC Geldenhuys & Valmari '04 Couvreur et al. '05
uniquestatesvisited
transitionsvisited
searhstaksize
generalized vs. non-generalized:
generalizedalgorithmsrequire lessmemory
generalizedalgorithmsprodue more meaningful
ounterexamples
weak fairnessexpressibleusinggeneralizedonditions
non-generalizedNDFSsprodue ounterexamplesdiretly
NDFS vs. SCC algorithms:
SCCalgorithms hekemptiness faster
SCCalgorithms saleto generalizedonditions andfairness
onditionseasily
Partial Order Methods
Mostly based onSetion 4of:
MarkoRauhamaa
Aomparative study of methods for eient reahability analysis.
¯
r
1
¯
r2¯
d
1
¯
d
2
¯
r1
¯
r2d
1
¯
d
2
¯
r1
¯
r2¯
d
1 d
2
¯
r1¯
r2¯
d1
¯
d2
¯
r
1
¯
r2 d1d2¯
r
1
¯
r2¯
d1
¯
d2
r1
¯
r2¯
d
1
¯
d
2
¯
r1
¯
r2¯
d
1 d
2
¯
r1¯
r2d
1
¯
d
2
¯
r1r2
¯
d
1
¯
d
2
r
1
¯
r2¯
d1d2
¯
r1 r2
d1
¯
d2
Wewantto verify G
(
d1→
Fr1)
.Onthis formula, the following twoexeutions areequivalent:
lient C
1
sends a request
lient C
2
sends a request
otherevents...
lient C
2
sends a request
lient C
1
sends a request
otherevents (in sameorder)
Theorder between the two requests does not make anydierene.
Some notes:
¯
r
1
¯
r2¯
d
1
¯
d
2
¯
r1
¯
r2d
1
¯
d
2
¯
r1
¯
r2¯
d
1 d
2
¯
r1¯
r2¯
d1
¯
d2
¯
r
1
¯
r2 d1d2¯
r
1
¯
r2¯
d1
¯
d2
r1
¯
r2¯
d
1
¯
d
2
¯
r1
¯
r2¯
d
1 d
2
¯
r1¯
r2d
1
¯
d
2
¯
r1r2
¯
d
1
¯
d
2
r
1
¯
r2¯
d1d2
¯
r1 r2
d1
¯
d2
¯
r
1
¯
r2¯
d
1
¯
d
2
¯
r1
¯
r2d
1
¯
d
2
¯
r1
¯
r2¯
d
1 d
2
¯
r
1
¯
r2 d1d2¯
r
1
¯
r2¯
d1
¯
d2
r1
¯
r2¯
d
1
¯
d
2
¯
r1
¯
r2¯
d
1 d
2
¯
r1¯
r2d
1
¯
d
2
¯
r1r2
¯
d
1
¯
d
2
r
1
¯
r2¯
d1d2
¯
r1 r2
d1
¯
d2
a
0 b
0
t
a t
b
a
1
b
1
00 10
01 11
t
a
t
b t
b
t
a
a
0 b
0
t
a t
b
a
1
b
1
0
t
1
000 100
010 110
001 101
t
a
t
b t
b
t
a t
t
t
t
b t
a
t
b
t
a
t
a
0 b
0
t
a t
b
a
1
b
1
0
t
1
000 100
010 110
001 101
t
a
t
b t
b
t
a t
t
t
t
b t
a
t
b
t
a
t
a
0 b
0
t
a t
b
a
1
b
1
0
t
1
000 100
010 110
t
a
t
b t
b
t
a
t
a
0 b
0
t
a t
b
a
1
b
1
0
t
1
000 100
110 t
a
t
b
t
Away to redue state spae with a priori knowledge.
Theanalyst manually supplies a partialordering of the events.
E.g. t
a
≺
tb≺
t.Thisorderingis used whenever thereis a hoie between events.
Theinformationis stati.
What kindof property does it preserves?
(assuming the partial ordering has been setproperly)
Away to redue state spae with a priori knowledge.
Theanalyst manually supplies a partialordering of the events.
E.g. t
a
≺
tb≺
t.Thisorderingis used whenever thereis a hoie between events.
Theinformationis stati.
What kindof property does it preserves?
(assuming the partial ordering has been setproperly)
Reahability ofa state?
Away to redue state spae with a priori knowledge.
Theanalyst manually supplies a partialordering of the events.
E.g. t
a
≺
tb≺
t.Thisorderingis used whenever thereis a hoie between events.
Theinformationis stati.
What kindof property does it preserves?
(assuming the partial ordering has been setproperly)
Reahability ofa state? Notall, obviously
Away to redue state spae with a priori knowledge.
Theanalyst manually supplies a partialordering of the events.
E.g. t
a
≺
tb≺
t.Thisorderingis used whenever thereis a hoie between events.
Theinformationis stati.
What kindof property does it preserves?
(assuming the partial ordering has been setproperly)
Reahability ofa state? Notall, obviously
Deadlok detetion?
Away to redue state spae with a priori knowledge.
Theanalyst manually supplies a partialordering of the events.
E.g. t
a
≺
tb≺
t.Thisorderingis used whenever thereis a hoie between events.
Theinformationis stati.
What kindof property does it preserves?
(assuming the partial ordering has been setproperly)
Reahability ofa state? Notall, obviously
Deadlok detetion? Yes
Away to redue state spae with a priori knowledge.
Theanalyst manually supplies a partialordering of the events.
E.g. t
a
≺
tb≺
t.Thisorderingis used whenever thereis a hoie between events.
Theinformationis stati.
What kindof property does it preserves?
(assuming the partial ordering has been setproperly)
Reahability ofa state? Notall, obviously
Deadlok detetion? Yes
Away to redue state spae with a priori knowledge.
Theanalyst manually supplies a partialordering of the events.
E.g. t
a
≺
tb≺
t.Thisorderingis used whenever thereis a hoie between events.
Theinformationis stati.
What kindof property does it preserves?
(assuming the partial ordering has been setproperly)
Reahability ofa state? Notall, obviously
Deadlok detetion? Yes
h
S,
T,
W,
M0i
whereS is the setof states,
T is the setof transitions,
W
: (
S×
T) ∪ (
T×
S) → N
is the ar weight funtion,M
0
:
S→ N
is the initial marking.For x
∈
S×
T wedenote•
x= {
y|
W(
y,
x) >
0}
.For x
∈
T×
S wedenote x• = {
y|
W(
x,
y) >
0}
.Amarking is a S
→ N
funtion.Atransition t
∈
T is enabled at marking M (denoted M− →
t ) ifThereahability graph of a Petri net
h
S,
T,
W,
M0i
isa pairh
V,
Ei
where
V (verties) is a set of markings,
E
⊂
V×
T×
V (edges)and the followinghold
M
0
∈
V,ifM
∈
V and M− →
t M′
then M′ ∈
V and(
M,
t,
M′ ) ∈
E,For
σ =
t1t2· · ·
tn∈
T⋆
wedenote M− → σ
is there existsM1, M2,...M
n
−
1 suh that Mt
− →
1 M1− →
t2 M2· · ·
Mn−
1− →
tn .Similarly M
− σ
→
M′
ifthere additionallyexists M′
suh that
M t
− →
1 M1− →
t2 M2· · ·
Mn−
1− →
tn M′
ThePetri net is split in two parts: a blakbox and an environment,
suh that the transitions of the two sets areindependent.
Inthe following we assume that t is a blak box transition while
σ
isa sequene of transitions from the environment.
Priniple 1 If
¬
M− →
T and M− → σ
,then¬
M−→ σ
t .In other words, ring transitions in the environment
annot enable a disabled transition ofthe blak box.
− →
T− → σ −→ σ
t−→
tσ
P
1
If
¬
M− →
T and M− → σ
, then¬
M−→ σ
t .P
2 If M
− →
T and M− → σ
, then M−→ σ
t and M−→
tσ
.When looking for dead states, we an simplify the reahability graph
by ring anyblak box transitions (t) before environmenttransitions
(
σ
).Letthere be an enabled transition r in the blakbox and a path
π
leading to a dead marking.
Then
π
must ontain some transitiont from the blakbox.π
P
1
If
¬
M− →
T and M− → σ
, then¬
M−→ σ
t .P
2 If M
− →
T and M− → σ
, then M−→ σ
t and M−→
tσ
.When looking for dead states, we an simplify the reahability graph
by ring anyblak box transitions (t) before environmenttransitions
(
σ
).Letthere be an enabled transition r in the blakbox and a path
π
leading to a dead marking.
Then
π
must ontain some transitiont from the blakbox.π
Looser Priniples
⇒
Stubborn SetsAgaint is a transition fromthe blak box (stubborn set T
M
),and
σ
isa sequeneof transitions from the environment(T
\
TM).Priniple 1* If M
σ
t−→
,then M−→
tσ
.Transitions of the stubborn setan be movedbefore
those of the environment.
Priniple 2* If M
− σ
→
, then M−→ σ
t′
for some xed transition t′ ∈
TM.In other words the stubborn setis never empty and the
environment annot disable its transitions.
P
∗
1 If M
σ
t−→
, then M−→
tσ
.P
∗
2 If M
− σ
→
, then M−→ σ
t′
.LetM
− π
→
M′
bea transitionsequene to a dead marking M′
.π
neessarily ontain a transitionfrom the stubborn set. (If it doesnot,P
∗
2
implies that M
′ − →
t′
and M′
annot be dead.)Therefore
π = σ
tπ ′
and by P∗
1
we have M t
σπ ′
−−→
M′
.P
∗
1 If M
σ
t−→
, then M−→
tσ
.P
∗
2 If M
− σ
→
, then M−→ σ
t′
.LetM
− π
→
M′
bea transitionsequene to a dead marking M′
.π
neessarily ontain a transitionfrom the stubborn set. (If it doesnot,P
∗
2
implies that M
′ − →
t′
and M′
annot be dead.)Therefore
π = σ
tπ ′
and by P∗
1
we have M t
σπ ′
−−→
M′
.a
0 b
0
t
a t
b
a
1
b
1
0
t
1
000 100
010 110
0-1 1-1
t
a
t
b t
b
t
a t
t
t
a
a
0 b
0
t
a t
b
a
1
b
1
0
t
1
000 100
010 110
0-1 1-1
t
a
t
b t
b
t
a t
t
t
a
a
0 b
0
t
a t
b
a
1
b
1
0
t
1
000 100
010 110
0-1 1-1
t
a
t
b t
b
t
a t
t
t
a
a
0 b
0
t
a t
b
a
1
b
1
0
t
1
000 100
010 110
0-1 1-1
t
a
t
b t
b
t
a t
t
t
a
a
0 b
0
t
a t
b
a
1
b
1
0
t
1
000 100
010 110
0-1 1-1
t
a
t
b t
b
t
a t
t
t
a
a
0 b
0
t
a t
b
a
1
b
1
0
t
1
000 100
010 110
0-1 1-1
t
a
t
b t
b
t
a t
t
t
a
Anabbreviation:
∆(
t,
s) =
W(
t,
s) −
W(
s,
t)
.Oneway to ompute a stubborn set for a non-dead marking M:
1
Pika transition t enabled in M (i.e. M
−
t→
) and set TM= {
t}
.2
For any transitiont in (and lateradded to) T
M :
If M
−
t→
Addto TM anytransition that an disable t.If
¬
M− →
t Pika plae s∈ •
t so that M(
s) < ∆(
t,
s)
.∆( , ) >
A
C
D
F
G
t
a
t
b
t
t
d
Some words about about verifying innitebehaviors.
A
B
C
D t
a
t
b
t
t
d
T
AC
= {
ta}
and TB= {
tb}
implies that{
t,
td}
are neverred.1 2 s
r
Client C
1
2 3
r
1
s
1
r
2
s
2
Server S
− ×
a
d
Canal B
Synhronizationrule forsystem
h
C,
C,
S,
B,
B,
B,
Bi
:(
1) h
s , . , . , . , . , a , .i
(
2) h
. , s , . , . , . , . , ai
(
3) h
r , . , . ,d , . , . , .i
(
4) h
. , r , . , . , d , . , .i
111
− − −−
211
− − ×−
121
− − −×
212
− − −−
221
− − ××
123
− − −−
211
× − −−
222
− − −×
223
− − ×−
121
− × −−
221
× − −×
221
− × ×−
q0
q1 q2
q
3
q
4
q
5
q
6
q7 q8
q
9
q10 q11
¯
r
1
¯
r2¯
d
1
¯
d
2
¯
r1
¯
r2d
1
¯
d
2
¯
r1
¯
r2¯
d
1 d
2
¯
r1¯
r2¯
d1
¯
d2
¯
r
1
¯
r2 d1d2¯
r
1
¯
r2¯
d1
¯
d2
r1
¯
r2¯
d
1
¯
d
2
¯
r1
¯
r2¯
d
1 d
2
¯
r1¯
r2d
1
¯
d
2
¯
r1r2
¯
d
1
¯
d
2
r
1
¯
r2¯
d1d2
¯
r1 r2
d1
¯
d2
¯
r
1
¯
r2¯
d
1
¯
d
2
¯
r1
¯
r2d
1
¯
d
2
¯
r1
¯
r2¯
d
1 d
2
¯
r
1
¯
r2 d1d2¯
r
1
¯
r2¯
d1
¯
d2
r1
¯
r2¯
d
1
¯
d
2
¯
r1
¯
r2¯
d
1 d
2
¯
r1¯
r2d
1
¯
d
2
¯
r1r2
¯
d
1
¯
d
2
r
1
¯
r2¯
d1d2
¯
r1 r2
d1
¯
d2