FrediFizzx wrote:Our goal in this post is to numerically verify Joy's derivation of the Tsirel'son bound
from his original
2007 paper, and from his latest
"Reply to Gill" paper.
We will use the GAviewer program for this purpose, as we did in our
numerical verification of Joy's derivation of the EPR-B correlation from his
one-page paper.
We begin by squaring the integrand of Eq. (18) in Joy's
"Reply to Gill". We have relabelled the bivectors A's and B's to make them easier to check with GAViewer.
(A1B1 + A1B2 + A2B1 - A2B2) (A1B1 + A1B2 + A2B1 - A2B2)
= A1B1A1B1 + A1B2A1B1 + A2B1A1B1 - A2B2A1B1 + A1B1A1B2 + A1B2A1B2 + A2B1A1B2 - A2B2A1B2 + A1B1A2B1 + A1B2A2B1 + A2B1A2B1 - A2B2A2B1 - A1B1A2B2 - A1B2A2B2 - A2B1A2B2 + A2B2A2B2
Note that all of these bivectors are
standardized variables, or standard scores, as explained by Joy in this post:
viewtopic.php?f=6&t=196&start=40#p5426.
For example, A1 = +/-1 about a, B2 = +/-1 about b', etc.
Next, upon using the commutativity of A's and B's, [ Ai, Bj ] = 0 (because they are space-like separated), the terms in this expression can be collected as follows:
= A1A1B1B1 + A1A1B2B1 + A2A1B1B1 - A2A1B2B1 + A1A1B1B2 + A1A1B2B2 + A2A1B1B2 - A2A1B2B2 + A1A2B1B1 + A1A2B2B1 + A2A2B1B1 - A2A2B2B1 - A1A2B1B2 - A1A2B2B2 - A2A2B1B2 + A2A2B2B2
Note that neither A1 and A2, nor B1 and B2, commute, so their orders must not be altered.
Now, since all unit bivectors square to -1, the above expression further reduces to
= 1 - B2B1 - A2A1 - A2A1B2B1 - B1B2 + 1 + A2A1B1B2 + A2A1 - A1A2 + A1A2B2B1 +1 + B2B1 - A1A2B1B2 + A1A2 + B1B2 + 1
After some cancelations, this expression further reduces to
= 4 - A2A1B2B1 + A2A1B1B2 + A1A2B2B1 - A1A2B1B2
= 4 + [ A1, A2 ] [ B2, B1 ] ,
as shown in Joy's two papers linked above. Either of these two results can be verified using the GAViewer, with the following code:
- Code: Select all
//Adaptation of Albert Jan Wonnink's original code
//http://challengingbell.blogspot.com/2015/03/numerical-validation-of-vanishing-of.html
function getRandomLambda()
{
if( rand()>0.5) {return 1;} else {return -1;}
}
function crosspr(a, b)
{
c=a^b;
I=e1^e2^e3;
return c/I;
}
function getRandomUnitVector() //uniform random unit vector:
//http://mathworld.wolfram.com/SpherePointPicking.html
{
v=randGaussStd()*e1+randGaussStd()*e2+randGaussStd()*e3;
return normalize(v);
}
batch test()
{
set_window_title("Test of Joy Christian's CHSH derivation");
N=20000; //number of iterations (trials)
I=e1^e2^e3;
s=0;
a1=getRandomUnitVector();
b1=getRandomUnitVector();
a2=getRandomUnitVector();
b2=getRandomUnitVector();
for(nn=0;nn<N;nn=nn+1) //perform the experiment N times
{
lambda=getRandomLambda(); //lambda is a fair coin
//resulting in +1 or -1
mu=lambda * I; //calculate the lambda dependent mu
A1=-mu.a1;
A2=-mu.a2;
B1=mu.b1;
B2=mu.b2;
q=0;
if(lambda==1) {q=(-(A2 A1 B2 B1)+(A2 A1 B1 B2)+(A1 A2 B2 B1)-(A1 A2 B1 B2));}
else {q=(-(B1 B2 A1 A2)+(B2 B1 A1 A2)+(B1 B2 A2 A1)-(B2 B1 A2 A1));}
s=s+q;
}
t=crosspr(a1, a2);
u=crosspr(b2, b1);
Scalar_Part=-4*t.u;
mean_F_A_B=s/N;
print(mean_F_A_B, "f");
print(Scalar_Part, "f");
prompt();
}
A typical result produced by the code, for example, is
mean_F_A_B = -0.079826 + 0.000216*e2^e3 + 0.000055*e3^e1 + -0.000286*e1^e2
Scalar_Part = -0.079826
So we can see that the scalar part of (- A2A1B2B1 + A2A1B1B2 + A1A2B2B1 - A1A2B1B2) matches the factor -4*(a1 x a2).(b2 x a1) of Eq. (24) derived in Joy's paper. And the bivector part is vanishing.
In other words, we started with Eq. (18) of Joy's
"Reply to Gill", and have now numerically verified Eq. (24) of that paper:
.
And since simple trigonometry dictates that
we finally see that after applying many iterations and taking the square-root gives us the bound
, because (as shown in the code) the bivector part vanishes.