Joy Christian wrote:The simulation does not use the knowledge of the specific a and b to be freely selected by Alice and Bob at the time of their measurements. The simulation simply imposes the global topology of S^3 on all vectors and prepares the initial state (v, g) accordingly. The topology of S^3 constrains all vectors --- all a, all b, and all v.
In this case, it would be quite trivial to modify the program in such a way that it looks nice from this point of view.
Choose, together with a and b, also two other, completely independent, directions c and d. Then, use the test which now uses a and b with c and d. If it is as you describe, and all this is simply the preparation of the initial state (v,g), without knowledge of (a,b), to use arbitrary different (c,d) instead of (a,b) should be fine.
Joy Christian wrote:Schmelzer wrote:I would recommend you to write a variant where it is clarified which states exist without using information about the experimenters choices a and b, which are presumed to be unknown (modulo superdeterminism) at the time of the preparation of the states. This would avoid such explanations.
This is a good recommendation, but the existing simulation already accomplishes this. To be sure, a better simulation is worth considering, but this one is already good enough. As noted above, it produces the initial state (v, g) without using any information about the specific a and b to be freely selected by the experimenters.
Sorry, but the actual program uses the information about a and b. Replace a,b with random c,d in the preparation phase and this objection disappears. Then, compute the results for Alice and Bob using different random numbers to create them. Given that the preparation has been successful for some c, d, even if probably different ones, but in combination with your claim that the states are produced without using information about a, b, this should be unproblematic, and now for every a, b, one should obtain a value +1 or -1, but never 0.
Joy Christian wrote:I am not a programmer. I know very little about codes and programs. Fortunately, there are several knowledgeable people who are working to improve the simulation.
The problem is not programming - to modify this code would be simple if your claim would be true. But I think you will find people who can solve this little problem.
I would say (without having used this particular programming language, so there will be a lot of trivial syntax errors)
one would have to do the following:
-----------------
aliceAngle = RandomReal[{0, 2 π}];
aliceDeg[[i]] = aliceAngle /Degree;
bobAngle = RandomReal[{0, 2 π}];
bobDeg[[i]] = bobAngle /Degree;
aliceDet[[i]] = test[aliceAngle, eLeft, λ];
bobDet[[i]] = test[bobAngle, eRight, λ],
{i, trials}
------------------
copy this part and replace all "Alice" and "Bob" by "Charly" and "Diana" or so.
------------------
Do[
θ = Round[aliceDeg[[i]] -bobDeg[[i]]];
aliceD = aliceDet[[i]]; bobD = bobDet[[i]];
charlyD =charlyDet[[i]]; dianaD = dianaDet[[i]];
If[aliceD ⩵ 1 && bobD ⩵ 1, nPP[[θ]]++];
If[aliceD ⩵ 1 && bobD ⩵ -1, nPN[[θ]]++];
If[aliceD ⩵ -1 && bobD ⩵ 1, nNP[[θ]]++];
If[aliceD ⩵ -1 && bobD ⩵ -1, nNN[[θ]]++];
if[(aliceD = 0 or bobD = 0) and not (charlyD=0 or dianaD=0), error[[θ]]++],
{i, trials}]
of course, with the correct brackets, or, and, not and equality operators of this language. If your claim is correct, using charlyD and dianaD would be sufficient to identify if the state is valid. Thus, charlyD and dianaD being nonzero would indicate a valid state. If, nonetheless, aliceD or bobD appears zero, your claim is invalid, and the test has used the specific information about a and b to reject the state, and not some general property of the state.
Looking at the formulas, I would suspect that this modified program will give a lot of errors, but try it.