Casper FFG states that it is impossible for any two conflicting checkpoints to be finalised unless >= 1/3 of the validators violate one of the two Casper commandments. I struggle to see how this can be the case if we start from the root in the above scenario.
Given that r is both finalised and justified, we see that there can be a supermajority link from r->b1 and r->b2. Validators can publish both of these votes (r->b1 and r->b2) without violating either of the slashing condition because 1) h(b1)=1 and h(b2)=3 thus h(b1)≠h(b2), and 2) no votes are within the span of other votes.
Since both b1 and b2 are justified, then validators can also publish votes on b1->a and b2->c. Again, because 1)h(a)=2 and h(c)=4 thus h(a)≠h(c) and 2) no votes are within the span other other votes, b1 and b2 are then both finalised.
Wouldnt't there be two conflicting, finalised checkpoints, namely b1 and b2, in this case? What am I missing in my understanding?