|
|
|
@ -1,19 +1,20 @@ |
|
|
|
const int k; |
|
|
|
const int k; // number of tokens |
|
|
|
const int K; // number of steps |
|
|
|
|
|
|
|
// States with k tokens |
|
|
|
label "k_tokens" = num_tokens=k; |
|
|
|
// labels |
|
|
|
label "k_tokens" = num_tokens=k; // configurations with k tokens |
|
|
|
label "stable" = num_tokens=1; // stable configurations (1 token) |
|
|
|
|
|
|
|
// Stable states - where only one process has a token |
|
|
|
label "stable" = num_tokens=1; |
|
|
|
|
|
|
|
// A stable state is reached with probability 1 |
|
|
|
// From any configuration, a stable configuration is reached with probability 1 |
|
|
|
"init" => P>=1 [ F "stable" ] |
|
|
|
|
|
|
|
// Maximum expected time to reach a stable state (for all configurations) |
|
|
|
// Maximum expected time to reach a stable configuration (for all configurations) |
|
|
|
R=? [ F "stable" {"init"}{max} ] |
|
|
|
|
|
|
|
// Maximum expected time to reach a stable state (for all k-token configurations) |
|
|
|
// Maximum/minimum expected time to reach a stable configuration (for all k-token configurations) |
|
|
|
R=? [ F "stable" {"k_tokens"}{max} ] |
|
|
|
|
|
|
|
// Minimum expected time to reach a stable state (for all k-token configurations) |
|
|
|
R=? [ F "stable" {"k_tokens"}{min} ] |
|
|
|
|
|
|
|
// Minimum probability reached a stable configuration within K steps (for all configurations) |
|
|
|
P=? [ F<=K "stable" {"init"}{min} ] |
|
|
|
|