And here’s a significantly worse counterexample, showing that there need not be any B′ near B such that limf(A<T,B′)<f(A∞,B):
There are three candidates X, Y, Z and there are three voters: one only likes X, one has u(X) = 2 and u(Y) = 3, one has u(X) = 2 and u(Z) = 3.
B puts all of its mass on X.
A<T puts 1⁄3 of its mass on X, 1⁄3 of its mass on a lottery between Y and Z with the probability of Y approaching 2⁄3 from above as T→∞, and 1⁄3 on a lottery between Y and Z with the probability of Y approaching 1⁄3 from below.
Under these conditions:
A∞ puts 1⁄3 of its mass on X, 1⁄3 on (2/3 Y, 1⁄3 Z), and 1⁄3 on (1/3 Y, 2⁄3 Z).
We can compute that A∞ never beats B, and loses 4⁄9 of the time.
On the other hand, every A<T beats B2⁄9 of the time (and still loses 4⁄9 of the time).
If B′ puts any mass on gambles where X doesn’t get 100% of the probability, it loses the X-loving voter.
As a result, any B′ near B must lose against A<T at least 2⁄9 of the time, and can win at most 5⁄9 of the time.
So there’s no way for it to match f(A∞,B)=−4/9.
In light of that example I think the basic proof strategy is probably no good. It may be tough to construct a concrete example where the algorithm fails, but if it works it would have to be due to some property other than the fact that no continuous B can beat infinitely many A<T, which is all I really wanted to do.
And here’s a significantly worse counterexample, showing that there need not be any B′ near B such that limf(A<T,B′)<f(A∞,B):
There are three candidates X, Y, Z and there are three voters: one only likes X, one has u(X) = 2 and u(Y) = 3, one has u(X) = 2 and u(Z) = 3.
B puts all of its mass on X.
A<T puts 1⁄3 of its mass on X, 1⁄3 of its mass on a lottery between Y and Z with the probability of Y approaching 2⁄3 from above as T→∞, and 1⁄3 on a lottery between Y and Z with the probability of Y approaching 1⁄3 from below.
Under these conditions:
A∞ puts 1⁄3 of its mass on X, 1⁄3 on (2/3 Y, 1⁄3 Z), and 1⁄3 on (1/3 Y, 2⁄3 Z).
We can compute that A∞ never beats B, and loses 4⁄9 of the time.
On the other hand, every A<T beats B 2⁄9 of the time (and still loses 4⁄9 of the time).
If B′ puts any mass on gambles where X doesn’t get 100% of the probability, it loses the X-loving voter.
As a result, any B′ near B must lose against A<T at least 2⁄9 of the time, and can win at most 5⁄9 of the time.
So there’s no way for it to match f(A∞,B)=−4/9.
In light of that example I think the basic proof strategy is probably no good. It may be tough to construct a concrete example where the algorithm fails, but if it works it would have to be due to some property other than the fact that no continuous B can beat infinitely many A<T, which is all I really wanted to do.
(I’ll retract the original proposal.)