Closed fferreira closed 2 years ago
The following protocol is equivalent (explicit choice instead of par) and gives the same error:
global Borked1(role A, role B, role C, role D) {
choice {
A() from A to B;
B() from C to D;
} or {
B() from C to D;
A() from A to B;
}
}
The following protocol gives an error, but a different one:
global Borked2(role A, role B, role C, role D) {
choice {
A() from A to B;
} or {
B() from C to D;
A() from A to B;
}
}
The projection on A differs only in a trailing tau in the first alternative (present in Borked1
, absent in Borked2
).
Hypothesis based on these two examples: there's an issue with trailing taus in the computation of ==>
.
Borked and Borked1 are accepted now.
For the last one: My understanding is that Borked2 is not C2-well behaved because for D, it can weakly step to the end, and the start and end states are not weakly bisimilar (the start can receive or end). Question 1: is this understanding correct? Question 2: this is also a C1 violation, no?
Solved a while ago. This issue is stale
This should not be a violation because the states are weakly bisimilar