Wednesday, 10 June 2015

A flatlanders view on Joy Christian's simulations


Flatlanders living in the plane below are witnessing something strange. Normally any object of any form that rotates in their world spans the surface of a perfect circle. But in the current experiment they measure something rotating in their world that spans an oval instead. So in their 2d system they try to simulate what they see to understand the process. But they don't succeed unless, for example, they use a loophole where they change the size of the object during rotation.
 
For us being privileged 3d persons it is easy to understand that the flatlanders are witnessing a projected effect from our world.

This example illustrates the discussions about Joy Christian's theory and simulations. In a nutshell Joy's theory postulates that an object has to undergo a 4pi rotation  to return to its original state (1) (and not 2pi). Currently all attempts to simulate this in an event by event Monte Carlo simulation have been done in an algebraic system that doesn't support this 4pi constraint. The simulations that have been carried out by Joy (2) and others are based on the analytic proof of the theory. But transferred our 'flat' 3d space algebra this means that results falling into the 'green area' should be rejected, because, like in the flatlander's case, these outcomes do not exist.




Joy might be right. But to completely support this by an event by event simulation, I think the total EPR process should be calculated using an algebra that naturally incorporates this 4pi feature. Quaternions? Multivectors? Or maybe yet something else?



  1. Macroscopic Observability of Spinorial Sign Changes under 2π Rotation, Joy Christian, http://link.springer.com/article/10.1007/s10773-014-2412-2 The arxiv text: http://arxiv.org/pdf/1211.0784.pdf     
  2. Joy about his latest simulation: http://www.sciphysicsforums.com/spfbb1/viewtopic.php?f=6&t=168&p=4172#p4172

Wednesday, 20 May 2015

Further Numerical Validation of Joy Christian’s Local-realistic Model based on Geometric Algebra:

This thread is a continuation of Albert Jan's excellent work using the GAViewer computer program to prove Joy Christian's classical local realistic model that contradicts Bell's theorem.  Albert Jan has kindly given me this blog space to post my version of his GAViewer script which is now tailored to Joy Christian’s much discussed (and somewhat controversial) one-page paper at  arXiv:1103.1879. For a theoretical understanding of how Joy’s local model and this computer script works, the reader may also wish to consult the appendix of Joy’s latest paper on the subject.  Otherwise feel free to ask for more explanation on this thread.  Now for the GAViewer script.

function getRandomLambda() 
{
   if( rand()>0.5) {return 1;} else {return -1;}
}

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 arXiv:1103.1879 paper");
  N=20000; //number of iterations (trials)
  I=e1^e2^e3;
  s=0;

  a=getRandomUnitVector();
  b=getRandomUnitVector();
   minus_cos_a_b=-1*(a.b);

  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
    C=-I.a;  //C = {-a_j B_j}
    D=I.b;   //D = {b_k B_k}
     E=mu.a;  //E = {a_k B_k(L)}
     F=mu.b;  //F = {b_j B_j(L)}
     A=C E;  //eq. (1) of arXiv:1103.1879, A(a, L) = {-a_j B_j}{a_k B_k(L)} 
     B=F D;  //eq. (2) of arXiv:1103.1879, B(b, L) = {b_j B_j(L)}{b_k B_k}
     q=0;
     if(lambda==1) {q=((-C) A B (-D));} else {q=((-D) B A (-C));} //eq. (6)
    s=s+q; //summation of all terms.
   }
  mean_mu_a_mu_b=s/N;
print(mean_mu_a_mu_b); //print the result
   print(minus_cos_a_b);
prompt();
}
//Typical result is:
//mean_mu_a_mu_b = 0.87 + 0.00*e2^e3 + 0.00*e3^e1 + 0.00*e1^e2
//minus_cos_a_b = 0.87
//The scalar parts match and others vanish!  Proving the result is -a.b.
//Thus Dr. Christian's arXiv:1103.1879 paper is a classical local
//realistic counter-example that in fact contradicts Bell's theorem.

Here are equations (1) and (2) from the paper.







And equation (6).






What the "if else" line does for eq. (6) is to correct for GAViewer being in a fixed right handed bivector basis. And is also Joy's main physics' postulate. When lambda = 1, the particle pairs are in the right handed basis; when lambda = -1 (else), they are in the left handed basis. What do you see when looking at a left handed system from a right handed only perspective? The geometric order is reversed. Very simple.

More explanations for the GAViewer program and Joy's model can be found in previous threads on this blog.

And for further reading you may find some of the key papers by Joy at this link: http://arxiv.org/find/all/1/au:+Christian_Joy/0/1/0/all/0/1.

Best regards,

Fred Diether

PS.  Have a good day and have much fun!


Update 22-5-15:

G=a.b was taken out of the script above as it has been pointed out to me that since a and b have the same values for each iteration in the loop there is no advantage to doing that part in the process.

So the result now includes the scalar part that represents -a.b and now we have added the result for the scalar part in the next line so that one can see that they match.

Michel Fodje has translated the above GAViewer code to Python so here it is:

from __future__ import division
import numpy
from clifford import *
layout, blades = Cl(3,0)
e0, e1, e2 = [blades['e%i'%k] for k in range(3)]
I = (e0^e1^e2)

def randVec3d(lo=0, hi=2*numpy.pi):
    theta = numpy.random.uniform(lo, hi)
    z = numpy.random.uniform(-1, 1)
    sn = numpy.sqrt(1-z**2)
    y = sn*numpy.sin(theta)
    x = sn*numpy.cos(theta)
    return (x^e0) + (y^e1) + (z^e2)

N = 20000
s = 0
a = randVec3d()
b = randVec3d()

for i in range(N):
    L = numpy.random.choice([-1., 1.])
    mu = L&I
    C = (-I)*a
    D = I*b
    E = mu*a
    F = mu*b
    A = C&E
    B = F&D
    q = ((-C)&A&B&(-D)) if L == 1 else ((-D)&B&A&(-C))
    s = s+q

print s^(1./N)
print -(a*b)

# Typical Run
#
# 0.44353 - (0.00776^e01) - (0.0068^e02) + (0.00131^e12) # Model
# 0.44353 # -a.b

Thursday, 2 April 2015

Joy Christian for dummies (like me)



Over the last decade, Joy Christian has published many articles on his theory that involves a local realistic solution for the EPR type experiment, that is intended to demonstrate entanglement. This solution heavily relies on geometric algebra (GA), a mathematical framework that is not so commonly known. The reason however for using this is that it seems to handle rotations in a more natural way. Furthermore the framework defines a product that does not commute (two objects A and B for which A x B is unequal to B x A), which Joy uses to describe the strong quantum correlations found in EPR type experiments in a local realistic way.


Geometric Algebra (GA)


Geometric algebra is said to extend the concept of vector algebra. It starts with the definition of orthogonal base vectors, usually called e1, e2 and e3 (here used in 3 dimensions, similar to calling them x, y and z). So any vector can be defined as ae1+be2+ce3, where a, b and c are real numbers. Such a vector can of course as well be written as (a, b, c), which means a times in the e1 direction, b times in the e2 direction and c times in the e3 direction.





Bivector

Then GA goes on extending the possible objects. Next in line is a bivector, which can somewhat be seen as a combination of two vectors. Is is an oriented part of a plane, and in the same plane as the vectors. The size or weight of the bivector can be calculated as the surface of the parallelogram spanned by the vectors.

The sequence of the vectors indicate the rotational orientation. Therefore the bivector below is different, although constructed from the same vectors.



 
However a bivector is not a parallelogram. It can as well be drawn as a circle with the same surface. The rotational orientation is now indicated by the lines sticking out from the circle:

To get the bivector spanned by two vectors the wedge product (^) must be used. So when having two vector a and b, a bivector v can be a^b. When the vectors a and b are written in components as


a1e1 + a2e2+a3e3 

and 

b1e1 + b2e2+b3e3

then the wedge product is
 
(a1e1 + a2e2+a3e3)^(b1e1 + b2e2+b3e3)

and can be expressed as fractions of the bivectors between the base vectors:

(a1b1-a2b2)(e1^e2) + (a3b1-a1b3)(e3^e1)+(a2b3-a3b2)(e2^e3)

Trivector

The bivector is a plane, the trivector a volume. It is made of the wedge product between all three of the base vectors: e1^e2^e3.  Now the size of the volume spanned by the three vectors is called the weight. Like the bivecor, the trivector has also rotational orientation (handedness), which is either clockwise or anti-clockwise.




Again it is of no importance how the trivector is drawn. There is no such thing like for example a trivector multiplied in the e1 direction, because one can only multiply its weight.
The same trivector can thus be drawn as sphere, where lines pointing in or outwards indicate the sense of rotational orientation:

The unit trivector, having a weight of 1, is often called 'I' in GA.


Multivector and operations

In a way, the objects in GA look like calculating with complex numbers or quaternions. A complex number like a+bi, where a and b are real numbers, cannot further be simplified. However one can add two complex numbers by adding their components: (a+bi) + (c+di)= (a+c)+(b+d)i;
The real number, the vector, the bivector and the trivector can all be seen as special cases of a multivector (now a1 to a8 are real numbers): 

a1 + a2e1 + a3e2 + a4e3 + a5e1^e2 + a6e2^e3 + a7e3^e1 + a8e1^e2^e3

Another special multivector is the rotor (which is similar to the quaternion):

a1 + a5e1^e2 + a6e2^e3 + a7e3^e1


Adding or subtracting multivectors is by adding or subtracting its components, just like we did with the imaginary numbers. Also its worth remembering that a normal multiplication of one of the base vectors e1, e2 or e3 with itself results in -1, just as  i-squared is in complex numbers.

But in GA there are several types of multiplication between its objects defined.  Here I give an explanation for two ordinary vectors. The product definitions however are usually extended to the complete algebra (1). 

Wedge product (a^b):
    (a1b1-a2b2)(e1^e2) + (a3b1-a1b3)(e3^e1)+(a2b3-a3b2)(e2^e3)
Outer or cross product (a X b):
    (a2b3-a3b2)(e1) + (a1b3-a3b1)(e2)+(a1b2-a2b1)(e3)  
Inner product (a.b):
  a1b1 + a2b2 +a3b3
Geometric product (ab):
  (a1 * b1 + a2 * b2 + a3 * b3)+ 
  (a1 * b2 - a2 * b1)e1^e2 +
  (a2 * b3 - a3 * b2)e2^e3 -
  (a1 * b3 - a3 * b1)e3^e1  


For multivectors some product definitions can be expressed in terms of other product definitions, like:
 a b = a . b + a ^ b (for vectors) 

Dependent on the grade of the multivector (scalar is grade 0, vector grade 1, bivector grade 2 etc.) the geometric product may or may not be commutative.In the previous post one can see that the non-commutativity between bivectors is responsable for the effect Joys describes in his paper.
 
I like to conclude by referring again to the program GAViewer (3), which was used to create all the images in this post.
  1.  Wikipedia: http://en.wikipedia.org/wiki/Geometric_algebra#Extensions_of_the_inner_and_outer_products
  2.  https://chortle.ccsu.edu/VectorLessons/vch07/vch07_14.html
  3.  GAViewer: http://geometricalgebra.org/gaviewer_download.html



    Monday, 30 March 2015

    Numerical validation of vanishing of the second term in the proof of Joy Christian: The prequel



    My previous post, and the code there, successfully showed that in the formula 19 from the article from Joy Christian (1) the second term in the second line vanishes (the integral having the outer product).
    In the discussion that followed it became clear that the step from line 1 to line 2 is not obvious. This step is explained earlier by Joy in the article in formula 17, where µ can be either I or -I.



    However, when using -I in GAViewer, 17 does not hold. The reason for this seems to be that in GA and GAViewer the I has a fixed handedness. So more in detail, a positive value of I always corresponds with a right handed coordinate system, and a negative I with a left handed coordinate system.



    The situation can somewhat be compared with a (fixed) transparent clock. As in GA one can look from both sides to get the desired result, in this case the time. But on one side one has to calculate the dots from the top clockwise to the hand to get the correct time, on the other side counter-clockwise.
    So if nature is able to randomly change the front and the back of the clock, as in Joy's model, the persons looking at it have to compensate their calculation of the time accordingly. 

    So the code below checks for the handedness specified in lambda, and then adapts the calculation. It shows again that the second term vanishes, and the expectation value E(a,b) equals -a.b for different randomly chosen unit vectors for a and b.


    A typical result in GAViewer from the program below



    Addendum: Joy added appendix A to Macroscopic Observability of Spinorial Sign Changes: A Reply to Gill,  http://arxiv.org/abs/1501.03393, in which the findings from this simulation are explained.



    function getRandomLambda()
    {
        if( rand()>0.5)
        {
            return 1;
        }
        else
        {
            return -1;
        }
    }

    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 Joy Christian");
        N=10000;
        I=e1^e2^e3;
        s=0;
        aa=getRandomUnitVector();
        bb=getRandomUnitVector();

        minus_cos_a_b=-1*(aa.bb);

        for(nn=0;nn<N;nn=nn+1) //perorm the experiment N times
        {
            lambda=getRandomLambda(); //lambda is a fair coin, resulting in +1 or -1
           

            v=I.aa ;
            w=I.bb;
            q=0;
            if(lambda==1)
            {
                q=v w;
            }
            else
            {
                q=w v;
            }
           
            s=s+q; //summation of second term. "." is inner product,
                   //"op(aa,bb)" is outer product
           
        }
        mean_mu_a_mu_b=s/N;
        print(mean_mu_a_mu_b); //print the result
        print(minus_cos_a_b);
        prompt();

    }




    1. Disproof of Bell’s Theorem by Clifford Algebra Valued Local Variables, Joy Christian, 2010, http://arxiv.org/pdf/quant-ph/0703179v3.pdf


    Sunday, 22 March 2015

    Numerical validation of vanishing of the second term in the proof of Joy Christian

    In the 2010 publication (1) Joy uses the vanishing of the second term a formula in his proof, which can be seen here:



    Florin Moldoveanu has argued that this was not correct because of an illegal use of a minus (2). This argument has later been used by other opponents:


    The issue can now easily be verified by using a GA based programming tool GAViewer (3). This tool interprets e1, e2, e3 etc. as the unit vectors that forms the orthogonal base of space. Furthermore it can naturally calculate with geometric objects like bivectors and trivectors, which are used in Joy Christians framework.
    The e1, e2 and e3 base, and a bivector in gaviewer.

    The code I use is quite easy and listed below. It can be checked by saving it in a text file with the extension '.g', open it with the GAViewer and type 'test()' in the console window. The calculated term is

    After a few seconds the result will be something like 

                 res = -0.00*e2^e3 + -0.01*e3^e1 + -0.00*e1^e2

    , a bivector that has a weight of almost 0, and thereby verifies Joy's assumtion.



    Code of the .g test file:
     


    function crosspr(a, b)
    {
        c=a^b;
        I=e1^e2^e3;
        return c/I;
    }

    function getRandomLambda()
    {
        if( rand()>0.5)
        {
            return 1;
        }
        else
        {
            return -1;
        }
    }

    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 Joy Christian");
        N=10000;               //number of iterations
        I=e1^e2^e3;

        s=0;


        aa=getRandomUnitVector();
        bb=getRandomUnitVector();

        t=crosspr(aa,bb);      //"crosspr(aa,bb)" is cross product
     
        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

            q=mu.t;            //"." is inner product
            s=s+q;             //summation of second term. 
                  

        }
        res=s/N;               //calculate average
        print(res);            //print the result

        prompt();

    }




    Addendum: The code above doesn’t yet cover the full relevant analysis of Joy in (1), say equation 17 to 19, as some of the commentators correctly indicated. So there is still more to be done to disproof Florin Moldoveanu.



    1. Disproof of Bell’s Theorem by Clifford Algebra Valued Local Variables, Joy Christian, 2010, http://arxiv.org/pdf/quant-ph/0703179v3.pdf
    2. Disproof of Joy Christian’s “Disproof of Bell’s theorem”, Florin Moldoveanu , 2011 , http://arxiv.org/abs/1109.0535v1
    3. GAViewer: http://geometricalgebra.org/gaviewer_download.html

    Monday, 16 March 2015

    Recent activity




    I like to mention some recent activity on the subject of this blog. First I like to refer to a (type A) simulation from Michel Fodje in python (1), which very neatly shows how CSHS violation could be obtained in practice while having detectors that operate on 100%. Just like in real experiments one has to match the detector countings afterwards using some timestamp algorithm. Michel shows that just a fraction of  0.01% of single particles leaving the emitter and obscuring the countings can result in a CHSH of 2.828, which is equal to the QM value.

     

    Current discussions on Joy Christians work can be found on the Blog of Paul Snively (2). Paul is intrigued by the theory from Joy, and suggests to validate the formulas Joy uses in 'CAS': software that can resolve (simplify) formulas that contains variables and symbols. Richard Gill, one of the most active opponents of Joy, is recently blocked on the Blog. Paul Snively somewhat motivates this in one of the discussion posts - and of course he owns the blog - but I would say one normally is not expelled from a discussion for the given reasons. 
    Anyway, the discussions are interesting.



    1) https://github.com/minkwe/epr-clocked
    2)  Blog of Paul Snively http://psnively.github.io/blog/2015/01/22/Fallacy