Slide 62
Slide 62 text
Counter example: losing processes
Output of data abstraction: 16 local states: L = {(sv, ˆ
nrcvd)
with sv ∈ {v0, v1, sent, accepted} and ˆ
rcvd ∈ {I0, I1, It+1, In−t}}
An abstract global state is (ˆ
k, ˆ
nsnt),
where ˆ
nsnt ∈ {I0, I1, It+1, In−t} and ˆ
k : L → {I0, I1, It+1, In−t}
Consider an abstract trace:
ˆ
nsnt1
= I0
ˆ
k1
( ) =
In−t , if = (v1, I0
)
I0, otherwise
ˆ
nsnt2
= I1
ˆ
k2
( ) =
In−t , if = (v1, I0
)
I1, if = (sent, I0
)
I0, otherwise
ˆ
nsnt3
= It+1
ˆ
k3
( ) =
In−t , if = (v1, I0
)
It+1, if = (sent, I0
)
I0, otherwise
Encode the last state in SMT as a conjunction T of the constraints:
resilience condition n > 3t ∧ t ≥ f ∧ f ≥ 0
zero counters (i = 4 ∧ i = 8) → 0 ≤ k3[i] < 1
non-zero counters n − t ≤ k3[4] ∧ t + 1 ≤ k3[8] < n − t
system size n − f = k3[0] + k3[1] + · · · + k3[15]
UNSAT
Igor Konnov (www.forsyte.at) Checking Fault-Tolerant Distributed Algos TMPA’14, Nov. 2014 28 / 1