## 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

1. Why do you pick aa and bb randomly for each iteration? What happens if you keep them fixed at two specific angles?

2. I think you are right, thanks. And still the second factor vanishes

1. And I ran the code holding lambda to +1 only and that term does not vanish then so lambda plus or minus 1 needs to be there.

2. Exactly, Fred. The term vanishes, approximately, for large N, when there are roughly equal numbers of +1 and -1. If there would be exactly equal numbers of +1 and -1, then it would vanish exactly.

3. It doesn't vanish. It approximately vanishes, if N is large. For finite N, Christian's correlations would have an "imaginary" component. Have they every been seen in experiment? I don't think so ...

Moreover, and more seriously, the assumptions with which these calculations are performed contradict the assumptions earlier in Christian's papers.

1. Has anyone done a quantum experiment with small N?

Besides, the term vanishes EXACTLY in Eq. (19) displayed by Albert Jan from my paper. The simulation of Eq.(19) necessarily requires replacing the Riemann integral by a sum over large N.

Moreover, all supposed "contradictions" by Gill are only in Gill's empty head.

2. Note also that Gill writes as if he has "read" my papers. In fact he has not read a single paper of mine to date. Not a single.

3. Has anyone ever done a Bell type experiment in which they computed correlations by dividing by bivectorial standard deviations as in http://arxiv.org/abs/1103.1879 ? See the denominator in Equation (5) of http://arxiv.org/pdf/1103.1879v1.pdf ?

Why does this recipe for computing E(a, b) differ from the recipes given in other papers by Christian?

4. By the way, very good that you are actually checking computations now! Not many people do that ...

5. (mu . a)(mu . b) = - a . b - mu^2 a x b

So you "check" the last line of the computation, assuming that the first line is correct. It isn't. That is exactly what Florin Moldoveanu tried to explain.

1. Still haven't learned geometric algebra yet, have you? Your equation is wrong.

2. Fred, you are far too polite. I wouldn't say anything, because I have nothing polite to say to Gill. Besides, the equation he has written above speaks volumes about the mathematical ability of the supposed "mathematician." Let it remain in full display.

4. Exactly. This might appear a private conversation, but it is a private conversation in a crowded bar, and bystanders listen and sometimes join in. That's why this sort of exchange actually has a lot of value. Obviously, Fred and Joy are not going to change their minds. But people with an open mind who are watching do learn from what they see.

5. For the record, mu is a trivector, so mu^2 = -1 always. Therefore the equation Gill has written above is a complete gobbledygook. It is an absolute and utter nonsense. Its LHS is not even equal to its RHS. So much for the mathematical ability of the supposed "mathematician." But we knew that already:

http://www.sciphysicsforums.com/spfbb1/viewtopic.php?f=6&t=49&p=2545&hilit=third+rate#p2545

6. OK thank you, indeed, mu = lambda I so mu^2 = -1. So (mu.a)(mu.b) = - ab = ... ?

7. "OK thank you, indeed, mu = lambda I so mu^2 = -1. So (mu.a)(mu.b) = - ab = ... ?"

Here is your opportunity, Gill, to show us --- by answering your own question --- that you can indeed do basic algebra, and that you are not algebraically challenged.

My answer to your question is already provided by me in some 15 papers, a book, and in many of the thousands of blog posts all over the Internet. It is also spelt out by Albert Jan in his blog post above.

8. It is pretty easy to find out what the geometric product is of two bivectors. Not sure why Gill is so stumpt by it. But it is also a mystery as to why none of the GA programs that I have seen so far do it correctly. Or... it could be that we are not inputting it into the program correctly.

9. All GA programs are based on a *fixed* trivector e1^e2^e3 as the fundamental volume form, whereas my model is based on two alternative trivectors such as e1^e2^e3 and e2^e1^e3.

6. Albert, try to use GA to evaluate an average over (mu.a)(mu.b) directly,, and see if it equals -a.b.

1. Which detector should Albert Jan use to evaluate the average (mu.a)(mu.b) "directly"? Again, I will refrain from saying anything more because I have nothing polite to say.

2. @Heinera

No doubts that one will get a -a.b term in the geometric product between mu.a and mu.b so kind of pointless. Anyways, I have manually verified that in GAViewer.

3. @Joy Christian

He should not use a "detector". He should use GAViewer.

4. Do you use GAViewer to do your experiments?

5. I am under the impression that Albert Jan is checking your math, not doing experiments.

6. Then he should follow my papers and do exactly what he has done, not what you instruct him to do.

7. Do you think that (mu.a)(mu.b) will not evaluate to -a.b in GAViewer?

8. Do you think that Obama will become the Queen of England?

9. So why shouldn't Albert try this in GAViewer?

10. @heinera

Think more carefully about what you asking. In order to evaluate that, you have to be able to run a more complicated simulation involving detectors. GAViewer probably cannot do the necessary arrays as it stands right now. However, the only real question was does the second term vanish? It does. Case is pretty much closed.

11. I see no reason why GAViewer should not be able to evaluate a simple expression like (mu.a)(mu.b). And then just take an average, like Albert did in his first simulation. It should be a relatively minor modification of his code.

12. Heinera seems to think, like Gill, that he is very clever, and onto something here. Fine. Let us play along.

Do you agree that

<< (mu.a)(mu.b) >> = << -a.b - mu.(a x b) >>

where << ... >> stands for "average", as in Eq.(19) above?

13. @Joy Christian
Since I don't have have time nor access to GAViewer right now, I would be very interested to see Albert's simulation in GAViewer of the average of (mu.a)(mu.b). You are making quite a fuzz about this simple question.

14. Baloney. You are refusing to answer my straightforward question because, like Gill, you have absolutely no idea how my model works. Answer the above question. Yes, or no?

15. LOL! Anyone that knows geometric algebra would say "yes". And Heinera seems to think GAViewer will do some kind of analytical computations. It's basically a number cruncher for GA. Oh... and does some pretty good visuals also.

16. This comment has been removed by the author.

17. No analytical computations requested. Number crunching of (mu.a)(mu.b) is exactly what I'm looking for.

19. The claim here is that according to Moldoveanu,
-a.b - mu.(a x b)
(mu.a)(mu.b)

In that case, showing that the average of mu.(a x b) equals zero for N->inf proves nothing. Which is why I'm interested in a direct numerical computation of (mu.a)(mu.b) in GAViever. If you two muppet characters could now stop hijacking this thread, I might actually be able to find Alfred's reply when it arrives

20. "No analytical computations requested. Number crunching of (mu.a)(mu.b) is exactly what I'm looking for."

Then keep looking.

21. "..according to Moldoveanu,
-a.b - mu.(a x b)
(mu.a)(mu.b)"

That speaks volumes. It is like saying 4 does not follow from 2 x 2.

22. Well... Heine has all the clues I'm giving out. Ya think he could have figured it out by now. He's back to being dense again.

7. I replaced the line

q = mu.t

with

q = (mu.aa)*(mu.bb) + aa.bb;

The result was interesting. It is not approaching zero, as it should be if (mu.aa)*(mu.bb) equals -aa.bb.

1. Should be "if the expectation of
(mu.aa)*(mu.bb) equals -aa.bb."

2. Pardon my French, but what you have written above is garbage.

More politely, it has nothing whatsoever to do with my model.

3. I simplly replaced one expression (i.e., mu.t) with another expression that you claim is equivalent.

4. Read what you have written before attributing anything to me.

And read what I have written in my papers even before that.

5. Frankly, I'm more interested in Albert Jan's reaction to this than yours. It's his blog, after all.

6. I don't care what *you* are interested in. But I will not allow you to misrepresent my work, or promulgate nonsense in my name.

7. So the equation (19) that Albert quotes in his post is no longer part of your work? If you can read your own equations, you will see that I only added -a.b to both sides, so that
\int{(mu.a)(mu.b) + a.b} = \int{mu.(a x b)}

Now, do you have any *specific* objections to the modification I did, beyond "nonsense"?

9. "I only added -a.b to both sides..."

10. I din't, I added a.b to both sides, as I corrected in a follow up post. So?

8. “Frankly, I'm more interested in Albert Jan's reaction to this than yours. It's his blog, after all.”
I am certainly no expert on GA, and I know from past experience one can easily misinterpret the subject. But you’re right, it looks like you can’t get the expected results the way you do it.

1. Albert Jan, there are two issues here.

First, the minor point. Heinera is using *-product,, not geometric product, as far as I can see. So he is not using my equation or geometric algebra at all.

But more importantly, what he is calculating has nothing to do with my model. One must first calculate the geometric product between mu.a and mu.b using the trivector mu. There is nothing statistical at this stage, because the correct detector has yet to be specified. Next, one can average over mu.(a x b) with respect to the detector I.(a x b). The important of this procedure is clearly discussed in the paragraphs before Eq. (18) in my paper you have cited. We are trying to simulate a physical experiment using the GAViewer. In physics one cannot arbitrarily apply some formulae and calculate things at will. If we do that, then we get nonsense. The correct thing to do in physics is to understand what is going on physically, and then apply the formulae correctly to get the correct result. For this one has to actually read my papers. Heinera and Gill have never bothered to read my papers.

2. Joy, in GAViewer the *-product is the geometric product.

3. Well, let's do a simple check on the program to see if it is working correctly. For the angle a we can just type a=aa at the console.
a = 0.68*e1 + 0.11*e2 + -0.73*e3
Then
b = -0.04*e1 + -0.94*e2 + 0.33*e3
Then A=mu.aa
A = -0.68*e2^e3 + -0.11*e3^e1 + 0.73*e1^e2
B=mu.bb
B = 0.04*e2^e3 + 0.94*e3^e1 + -0.33*e1^e2
Then the prod=A B
prod = 0.37 + 0.65*e2^e3 + 0.19*e3^e1 + 0.64*e1^e2

Who wants to manually calculate that to see if the program is working right? :-)

4. Yeah, the program is not doing the mu.a mu.b = -a.b -mu.c calculation correctly. It is doing it like Gill wants to do it.

5. So Albert Jan, the script needs a function like you did with crosspoint so that the program knows the identity that Joy is using, I.a I.b = -a.b - I.(axb). mu^2 doesn't cut it because it cancels out lambda = +/- 1.

6. Cross product, not crosspoint.

7. mu is a trivector, so mu^2 = -1 always. Therefore the equation Gill has written above is a complete gobbledygook. It is an absolute and utter nonsense. Its LHS is not even equal to its RHS. So much for the mathematical ability of the supposed "mathematician."

My manual calculation for your example gives:

prod = 0.3715 + 0.6499*e2^e3 + 0.1952*e3^e1 + 0.6348*e1^e2

8. OK, good. The program is working OK it just needs to know the proper identity for the calculation. It is only going to do what you program it to do. Anyways, I am satisfied that it will work fine since Albert Jan verified the vanishing of the second term. Thanks to Heine for highlighting this other problem in the program that had to be solved.

9. I think we are making some progress here. I am starting to really like this GAViewer program with Albert Jan's programming. There is some definite possibilities with it.

9. Very good Albert-Jan! One can verify one line of Christian's writing. It usually is (locally) correct. The problems start to come when you try to verify several lines in succession ... and especially when you try to verify a whole paper from beginning to end. You will find that definitions are not upheld but change unannounced in a slippery way. The whole construction is a sequence of non-sequiturs. Locally correct but globally wrong.

This is why I highly recommend Christian's one page paper. One can do all the checking from beginning to end, not miss anything, ... in an hour or two. http://arxiv.org/abs/1103.1879 That's why I concluded

"We can be grateful for Christian that he has had the generosity to write his one page paper with a more or less complete derivation of his key result in a more or less completely explicit context, without distraction from the author’s intended physical interpretation of the mathematics. The mathematics should stand on its own, the interpretation is “free”. My finding is that in this case, the mathematics does not stand on its own." http://arxiv.org/abs/1203.1504

1. The Elephant Keeps Walking as the Dog Keeps Barking.

10. Joy suggested that I had not read his papers. I have to say that I have read his one page paper very very carefully indeed. I have skimmed through lots of others. Florin Moldoveanu has read a lot of them very carefully. He has documented on arXiv how the basic sign error is moved about from place to place in the different papers. It's always there, like a bump under the carpet which just won't go away. In the long papers, it is well hidden under a sofa. In the short papers it stands out like a sore thumb.

1. The Elephant Keeps Walking as the Dogs Keep Barking.

2. Ah, a rather nice ancient Indian saying, full of wisdom. Keep on walking, Joy! Take no notice of the annoying little dogs barking as you go by.

On the other hand perhaps you are mistaken, you think you just hear little dogs barking, but actually they are your friends trying to warn you that you are heading straight to the edge of a ravine.

This is called "tunnel vision". In fact, it is the cleverest of people who are most vulnerable to tunnel vision. They are so smart that they can come up with reasons not to listen to anything which contradicts what they have come to believe. Read "Why People Believe Weird Things", by Michael Shermer‎.

3. The problem is that the elephant has some silly monkeys on his back who keep whispering "you are great! Take no notice of those stupid dogs". The poor elephant, who is a bit deaf, doesn't realise that the dogs are his firiends, while the silly monkeys ... are just silly monkeys having fun who don't care about the elephant at all.

Poor elephant. He may be wise but if he can't hear what his friends are saying, things will end badly fior him.

11. Here's a modification of Albert-Jan's script which starts one line earlier in Joy's paper (the subroutines at the beginning are unaltered):

batch test()
{
set_window_title("Test Joy Christian");
N=10000; //number of iterations
I=e1^e2^e3;

s=0;

aa=getRandomUnitVector();
bb=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
A = mu.aa; //"." is inner product
B = mu.bb;
q = A B;
s=s+q; //summation of second term.

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

prompt();

}

1. The above program does not respect the basic algebraic identity (mu.a)(mu.b) = -a.b - mu.(a x b), where mu is the fundamental trivector.

2. Yeah, the problem is that GAViewer does not know about that particular identity. It has to be programmed via a function call like Albert Jan did with the cross product. I'm trying to figure it out but perhaps Albert Jan will come along here with the solution soon.

3. GAviewer respects all GA operators. So this means that "the basic algebraic identity (mu.a)(mu.b) = -a.b - mu.(a x b)" is simply wrong, then (i.e., an invention of yours). In deriving this "identity" you have confused mu with I.

4. The identity (mu.a)(mu.b) = -a.b - mu.(a x b) is evidently true.

5. Fred, try two alternative trivectors like e1^e2^e3 and e2^e1^e3.

6. "GAviewer respects all GA operators. So this means that "the basic algebraic identity (mu.a)(mu.b) = -a.b - mu.(a x b)" is simply wrong, then (i.e., an invention of yours). In deriving this "identity" you have confused mu with I."

Baloney. GAViewer simply does not know about the particular identity which is perfectly valid if you actually knew GA.

7. "The identity (mu.a)(mu.b) = -a.b - mu.(a x b) is evidently true."
As both my own modification to Albert Jan's code from yesterday and Richard's from today show, it is evidently not true.

8. The identity (mu.a)(mu.b) = -a.b - mu.(a x b) is evidently true. :-)

9. "Baloney. GAViewer simply does not know about the particular identity which is perfectly valid if you actually knew GA."

Baloney. As you yourself said in an earlier comment, GAViewer does number crunching. It knows about operators; it does not need to know about identities.

(Your earlier comment was this: "And Heinera seems to think GAViewer will do some kind of analytical computations. It's basically a number cruncher for GA.")

10. It is quite evident that Heinera, like Gill, cannot do basic geometric algebra, or know what LHS = RHS means in algebra.

11. "It is quite evident that Heinera, like Gill, cannot do basic geometric algebra, or know what LHS = RHS means in algebra."

At least we find the blog owner Albert Jan's code and analysis interesting and are making contributions to that, instead of making empty comments like the one cited.

12. It would be far more productive if Heinera and Gill can do basic algebra rather than making fallacious claims about my model.

13. Now you are getting dense again.
"Baloney. As you yourself said in an earlier comment, GAViewer does number crunching. It knows about operators; it does not need to know about identities."

Think carefully about what you just said. How would it know about particular identities if it just crunches numbers? You have to program in the identity via a function call. Good God!

14. (Your earlier comment was this: "And Heinera seems to think GAViewer will do some kind of analytical computations. It's basically a number cruncher for GA.")

Please make up your mind. Which is it? And even better, please contribute with something substantial. Like code.

15. No code is needed to check that (mu.a)(mu.b) = -a.b - mu.(a x b).

16. That is right but in order for GAViewer to know that identity, one has to program it in via a function call. Otherwise it will just get the result for mu.a and the result for mu.b and take that geometric product. Not the correct operation for what we are doing.

17. Really, this is all just fluff since Albert Jan already verified that the second term on the RHS vanishes but it will be good to know how to program that identity into GAViewer for future applications.

18. No one ever claimed that mu.(a x b) does not vanish.

19. Go back to the top of this blog and read what it says. Sheeesh!

20. Hmm... I think this can only be done analytically since the summation is just over the second term and not over -a.b. Or, by a simulation.

21. In fact, what Heine did in the first place is not correct since aa.bb is getting averaged and the average is only supposed to be over the second term.

22. The simple solution to this is to just add -aa.bb to the res line.

res=-aa.bb+s/N; //calculate average of second term only

Then you get this.

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

So you get the last result for aa.bb scalar plus the vanishing of the second term in the average. Obviously if you add +aa.bb to the res line, the scalar will vanish also. :-)

23. The program is not working correctly if average of both terms in res does not give you that result, because mathematically

<< -aa.bb + s/N >> = -aa.bb + << s/N >>.

24. Well, that is the difference between analytical math and what a computer program does. The program will just give you the average of all the individual -aa.bb's. It has to spit out a number for -aa.bb somehow. It is not going to give -a.b when it is just crunching numbers. Now, Mathematica and MathCad will do some analytical math but even when I tried the GA program for Mathematica, it didn't know the identity you are using either. It has to be programmed in somehow. I just haven't quite figured out how yet.

25. Then here is what is wrong with the claims by Gill and Heinera. If what they are claiming is right, then their programs should give

<< -aa.bb - s/N >> = -aa.bb << 1 >> - << s/N >> = -aa.bb + 0.

26. What is "their programs"? A computer program will only do what it is told to do by programming. Anyways, they obviously don't know how to derive the identity I.a I.b = -a.b -I.(axb) in GA so do it here. Perhaps it will also give me a clue as to how to do the function call right for GAViewer. For some reason I can't find my GA textbook. :-( I know it is around here somewhere. It will most likely turn up when I don't need it. LOL!

27. LOL, indeed!

Yes, please show us how to derive this identity in GAviewer. I am afraid that you will need another assumption, for instance that I = e1 ^ e2 ^ e3 if lambda = +1 and I = e2 ^ e1 ^ e3 if lambda = -1. You need to include somehow Christian's magic random flipping of the handedness of the convention defining a basis of your algebra in to your model.

28. By the way, we are talking about Albert-Jan's program here, not mine and Heinera. Albert-Jan programmed a part of Christian's derivations. He reproduced one line. Then Heinera and I extended the program, just copying Christian's formula into Albert-Jan's program. So now we are talking about a computer verification of two lines taken verbatim from Christian's text.

Joy needs another assumption. He always has to smuggle in -1 = +1 somewhere. He has lots of tricks for doing that.

29. The identity is derived in Eq. (17) of my paper cited by Albert Jan: http://arxiv.org/pdf/quant-ph/0703179v3.pdf . The only assumption needed is LHS = RHS.

30. A proof then of that derivation using e1 e2, etc.

31. When Christian writes "-1 = +1" he is appealing to his deep physical insight and true understanding of the laws of nature. The only mathematical assumption he is making is LHS = RHS.

That kind of sums it all up. In a nutshell, as they say.

32. Let a = a1 e1 + a2 e2 + a3 e3.

Let b = b1 e1 + b2 e2 + b3 e3.

Let mu = e1e2e3 or e2e1e3.

Then mu.a = e1e2e3a or e2e1e3a,

and mu.b = e1e2e3b or e2e1e3b.

Now multiply through to get

(mu.a)(mu.b) = -a.b - mu.(a x b), where a^b = mu.(a x b).

33. I just meant the standard identity not with your postulate added. It is the multiplication step that I wanted to see. Can you do that?
(e1e2e3a)(e1e2e3b) = ??? in e1, e2, etc.

Thanks.

34. Let us first do the three components (note that e1, e2, and e3 are orthogonal to each other, and they are all normalized to unity):

(e1e2e3)e1 = e1e2e3e1 = - e1e2e1e3 = +e1e1e2e3 = + e2^e3.

Similarly, (e1e2e3)e2 = + e3^e1, and (e1e2e3)e3 = +e1^e2.

So we have I.a = a1 e2^e3 + a2 e3^e1 + a3 e1^e2,

and similarly I.b = b1 e2^e3 + b2 e3^e1 + b3 e1^e2.

Now (e2^e3)(e2^e3) = (e3^e1)(e3^e1) = (e1^e2)(e1^e2) = -1.

Therefore (I.a)(I.b) = -a1b1 - a2b2 - a3b3 - nine cross product like terms.

Therefore (I.a)(I.b) = -a.b - nine cross product like terms.

I am too lazy to write them all out here, but they would collect to give I.(a x b).

So we finally have (+I.a)(+I.b) = -a.b - (+I).(a x b).

If you now follow the same procedure with -I = e2e1e3, then you get the other identity, namely (-I.a)(-I.b) = -a.b - (-I).(a x b).

If we set mu = +I or -1, then we can write both of these identities as the following single identity:

(mu.a)(mu.b) = -a.b - mu.(a x b),

which remains incomprehensible to some even after eight years.

35. Ok thanks. It is actually the cross product terms that I need to see so that we can be sure that we get -I.(a x b) instead of -I^2.(a x b) for the second term and hopefully give a clue as to how to program the function call. But I will figure that out.

36. Fred, I cannot believe that you are even entertaining the possibility of I^2. That stupid error of Gill is only good for exposing his celebrated mathematical incompetence.

In any case, there are three terms in each of I.a and I.b, so when we multiply them together, we get a total of nine terms (3 x 3). Three of them will give -a.b as I showed above. The remaining six will give I.(a x b). It will be easier if you first work out a x b vector the usual way, and then identify the terms by separating out I = e1e2e3 from them.

37. Well, that is the part they are complaining about so it would be very good to show that the calculation does in fact return -I.(axb). And also help me (and maybe Albert Jan) to possibly understand how to program it. Here is what GAViewer does just taking the last values for aa and bb.

>> aa
ans = 0.78*e1 + 0.60*e2 + 0.17*e3
>> bb
ans = -0.52*e1 + -0.72*e2 + 0.45*e3
>> I.aa
ans = 0.78*e2^e3 + 0.60*e3^e1 + 0.17*e1^e2
>> I.bb
ans = -0.52*e2^e3 + -0.72*e3^e1 + 0.45*e1^e2
>> C=(0.78*e2^e3 + 0.60*e3^e1 + 0.17*e1^e2)*(-0.52*e2^e3 + -0.72*e3^e1 + 0.45*e1^e2)
C = 0.76 + -0.39*e2^e3 + 0.44*e3^e1 + 0.25*e1^e2

Now if you are feely spunky :-), maybe you can manually verify that C is the correct result. Or not. I suspect it is not the correct result if we are to use your identity.

38. My manual calculation gives

C = 0.7611 - 0.3924*e2^e3 + 0.4394*e3^e1 + 0.2496*e1^e2

39. Sorry, you have to do the manual calculation using only aa and bb. Of course you will get the same results as the program if you use,

>> I.aa
ans = 0.78*e2^e3 + 0.60*e3^e1 + 0.17*e1^e2
>> I.bb
ans = -0.52*e2^e3 + -0.72*e3^e1 + 0.45*e1^e2

40. I used

a = 0.78*e1 + 0.60*e2 + 0.17*e3,

b = -0.52*e1 + -0.72*e2 + 0.45*e3,

and I = e1e2e3 = e1^e2^e3

in the product (I.a)(I.b) to get

C = 0.7611 - 0.3924*e2^e3 + 0.4394*e3^e1 + 0.2496*e1^e2.

What am I missing?

41. You are doing the calculation like the program does instead of following your identity.

42. OK, so in the above calculation I used the LHS of the identity, namely (I.a)(I.b).

If I now use the RHS, namely -a.b - I.(a x b), then, not surprisingly, I get the same result:

C = 0.7611 - 0.3924*e2^e3 + 0.4394*e3^e1 + 0.2496*e1^e2.

43. Hmm... the program does give about the same result.

>> t=crosspr(aa,bb)
t = 0.39*e1 + -0.44*e2 + -0.25*e3
>> result=-aa.bb-I.t
result = 0.77 + -0.39*e2^e3 + 0.44*e3^e1 + 0.25*e1^e2

44. That is because the identity is one of the most basic identities of GA, and the GAViewer is based on GA. Besides, it is not difficult to check the identity:

(I.a)(I.b) = I^2 ab = -ab = -a.b - a^b = -a.b - I.(a x b).

45. OK, the identity is certainly well verified now that it is correct.

Now, I don't understand why adding aa.bb like Heine did doesn't work correctly. Back to the drawing board. But bookmark this spot as a good place to direct the naysayers for the identity.

46. BTW, I tried again in GAViewer with different angles and it works.

>> A=I.aa
A = -0.01*e2^e3 + -0.49*e3^e1 + -0.87*e1^e2
>> B=I.bb
B = 0.30*e2^e3 + -0.87*e3^e1 + -0.39*e1^e2
>> prod=A B
prod = -0.77 + 0.57*e2^e3 + 0.26*e3^e1 + -0.15*e1^e2
>> t=crosspr(aa,bb)
t = -0.57*e1 + -0.26*e2 + 0.15*e3
>> result2=-aa.bb-I.t
result2 = -0.77 + 0.57*e2^e3 + 0.26*e3^e1 + -0.15*e1^e2

Prod matches result2.

47. OK, the program does respect the basic identity but it doesn't know how to handle mu being in there as a variable. When mu is in there, it is doing mu^2 which it doesn't know how to properly handle.

48. The problem is that GA is based on a fixed convention of +I. It knows nothing about the -I convention, let alone +I to -I switch.

49. Well, that is not the problem in GAViewer since we are toggling the convention with lambda. It just needs to be programmed differently to handle your postulate properly.

50. There is more to left-handed GA than just writing -I. In fact the correct way to switch from the right-handed convention to the left-handed convention is to switch from B1B2B3 = +1 to B1B2B3 = -1 in the bivector basis, as I have explained here:

http://arxiv.org/pdf/1203.2529.pdf

See equations (6) and (9), for example.

51. I don't think it is a problem in what we are trying to do since doesn't (-I.a)(-I.b) handle the convention change?

52. It does, through the identity (-I.a)(-I.b) = -a.b - (-I).(a x b). But since the GAViewer is based on the +I convention, this identity is ambiguous in that program, unless of course one considers the RHS, as correctly done by Albert Jan. There is nothing further to be proved as far as I am concerned.

53. Ahhh...you're right. It respects the + identity but doesn't know this - one. Ok, that is probably a good clue.

54. Yes, there is nothing else to be proven. But will be good to have GAViewer work properly with your postulate.

55. As you have been suggesting, I=e2^e1^e3 does work at the command line for the minus identity, (-I.a)(-I.b) = -a.b - (-I).(a x b).

>> A=I2.aa
A = -0.89*e2^e3 + 0.30*e3^e1 + 0.35*e1^e2
>> B=I2.bb
B = 0.04*e2^e3 + 0.01*e3^e1 + -1.00*e1^e2
>> prod=A B
prod = 0.38 + 0.30*e2^e3 + 0.87*e3^e1 + 0.02*e1^e2
>> t=crosspr(aa,bb)
t = -0.30*e1 + -0.87*e2 + -0.02*e3
>> result=-aa.bb+I2.t
result = 0.38 + 0.30*e2^e3 + 0.87*e3^e1 + 0.02*e1^e2

You can see that prod = result when done at command line.

12. Here is a revealing statement by The Master Himself. "We are trying to simulate a physical experiment using the GAViewer. In physics one cannot arbitrarily apply some formulae and calculate things at will. If we do that, then we get nonsense. The correct thing to do in physics is to understand what is going on physically, and then apply the formulae correctly to get the correct result. For this one has to actually read my papers. Heinera and Gill have never bothered to read my papers."

Christian is a physicist. He has a strong physical intuition and insight - a direct link, you could say, to the mind of God. When he writes physics, one should take most notice of the words. The text. This is where he is communicating his vision. The formulas are just meant to illustrate. They are not meant to form an independent, coherent, whole. That is a hang-up of mere mathematicians. When Christian writes "x = y = z" this is some kind of parable, some kind of illustration. He means "sometimes it is useful to think of this as x being the same as y", and "sometimes it is useful to think of things as y being the same as z". If a stupid mathematician takes the formula literally and deduces "x = z" well ... they are obviously not physicists. Take no notice.

As I have said before many times, Christian's work should be thought of as poetry, or as "science fantasy". A beautiful dream. That's all.

1. I also wrote the following but never got an answer back from Gill:

"OK thank you, indeed, mu = lambda I so mu^2 = -1. So (mu.a)(mu.b) = - ab = ... ?"

Here is your opportunity, Gill, to show us --- by answering your own question --- that you can indeed do basic algebra, and that you are not algebraically challenged.

My answer to your question is already provided by me in some 15 papers, a book, and in many of the thousands of blog posts all over the Internet. It is also spelt out by Albert Jan in his blog post above.

2. Joy, I want you to show us how to do this, in GAview. As I said before, I only read your one page paper in complete detail and depth. This was enough to convince me that Christian can't do math. Since moreover his model is silly (bivectorial standard errors) it is, for me, a complete waste of time to go into more details of more papers. With the exception of the "experimental paper" where another amazing inconsistency confirms the impression the one page paper gives, of Christian's math skills.

3. So it is now second time that Gill has refused to answer my question. I wonder why.

Because I'm waiting to see your implementation of your model in GAviewer.

Or your authorisation of an implementation by someone else (Fred's, Ivica's, Heinera's, Albert-Jan's ... it doesn't matter whose).

13. Quick thought based on Fred's observation of (lack of) dynamic handling of Identity:
If GAViewer do not handle Identity properly at run time, it should at compile.
Setup 2 functions minusI and plusI identical on everything except static definition
of Identity, i.e:

minusI(...)
{
;static install of identity by compiler
I = e2^e1^e3 ;Joy's suggestion #2

... ;rest of code

}

plusI(...)
{
;static install of identity by compiler
I = e1^e2^e3 ;Joy's suggestion #1

... ;rest of code

}

Using it:

if lambda = 1 then
plusI(...) ;do Identity dependent calculation here
else
minusI(...) ;do Identity dependent calculation here
endif

--ivica

1. This seems promising. Has anyone tried this?

2. This doesn't work, just because GAViewer interprets e2^e1^e3 as -e1^e2^e3

3. Yeah and not necessary. What is needed is some kind of function call like,

function bivprod(X, Y)
{
return -a.b - mu.(crosspr(a, b));
}

4. "This doesn't work, just because GAViewer interprets e2^e1^e3 as -e1^e2^e3 "

Indeed, and this is the problem for Joy's formalism, not that "it's the programmers from GAViewer who define I to have a positive orientation." Because they don't; they don't define I at all - that is all done in your code.

On the other hand,
e2^e1^e3 = -e1^e2^e3
follows immediately from the definition of outer product in GA, so to get around this, one has to redefine the outer product somehow. But then the result is not GA.

5. "... so to get around this, one has to redefine the outer product somehow."

Complete nonsense. As I told you before, learn some geometric algebra before making such silly comments.

6. "Yeah and not necessary. What is needed is some kind of function call like,

function bivprod(X, Y)
{
return -a.b - mu.(crosspr(a, b));
}"

Where X and Y are bivectors of the form X=I.a and Y=I.b.

14. There might not be an easy proof or disproof here. I am thinking along these lines, but maybe it is rubbish ;).

It is easy to verify in GAViewer that the steps of formula 17 in Joys article holds for I and fails for -I. Now of course it's the programmers from GAViewer who define I to have a positive orientation. But nature doesn't have a +1 or -1 orientation. In Joys model nature just uses in 50% the opposite orientation, which is as good as any, and for which therefore the steps in 17 should hold as well.
So any program trying to proof or disproof Joy's model by iterations should at least respect the steps in 17 for both choices of orientation.

1. Your point is not rubbish, Albert Jan. GA and GAViewer are based on a *fixed* trivector +I, which is chosen arbitrarily, without any physical justification. My model, on the other hand, does not make such an arbitrary choice, but allows Nature to make her own choice between +I and -I, as specified by my Eq. (17).

2. Just what I said, before. Christian needs to have Nature somehow interact with the mathematical description used by the physicist, by randomly switching the physicist's chosen handedness convention. This comes down to assuming that -1 = +1. Once you have assumed -1 = +1, everything else that you say is true (conditional on your assumption).

3. Albert Jan: English: "prove or disprove", not "proof or disproof". Verb, not noun.

4. "GA and GAViewer are based on a *fixed* trivector +I, which is chosen arbitrarily, without any physical justification. My model, on the other hand, does not make such an arbitrary choice, but allows Nature to make her own choice between +I and -I, as specified by my Eq. (17)."

Isn't this what the lambda in Albert Jan's code is supposed to achieve?

7. Since I is defined by Albert Jan with the line
I=e1^e2^e3;
and not by the GAViewer programmers, it seems he should be able to manipulate I in any way he wants.

9. This comment has been removed by the author.

10. This comment has been removed by the author.

11. Please, Joy, show us how you program your theory in GAviewer

You might find it easier, as a warming up exercise, to do the theory of the "one page paper"

Alternatively, maybe Fred can do it for you.

12. plse, gill, show us how GAViewer represents GA itself.
Someone should contact the authors of GAV.

13. LOL!! Gill doesn't have much of a clue about GA let alone GAViewer. GAViewer will not completely do Joy's model since it can't do more complicated arrays. We are just trying now to get it to work with Joy's basic postulate more completely. Albert Jan already verified that the second term vanishes which is actually good enough.

14. "plse, gill, show us how GAViewer represents GA itself.
Someone should contact the authors of GAV."

By all means, do contact the authors of GAViewer. Someone would certainly make a fool of themselves.

15. "Albert Jan already verified that the second term vanishes which is actually good enough."

Nobody claimed that mu.(a x b) doesn't vanish. Moldoveanu (and a lot of others, including myself) claim it's the wrong term, so it is irrelevant if it vanishes or not.

16. And why should anyone pay any attention to some bubblehead who has not been able to publish a single paper in his entire lifetime?

17. "And why should anyone pay any attention to some bubblehead who has not been able to publish a single paper in his entire lifetime?"

Because his argument is sound, and his arxiv-paper is well-written. In particular the part where Moldoveanu points out how you misapply the Hodge duality, which is what is demonstrated in the code we are discussing in this thread.

I don't know why he didn't try to publish the paper. Probably because yourself hadn't been able to publish anything on the subject at that time. Sort of unnatural to publish a comment on a theory that has itself not been published.

18. His so-called argument has nothing whatsoever to do with my model. His so-called "argument", like Gill's, is a straw-man argument, as I have pointed out thousands of times by now:

http://arxiv.org/pdf/1110.5876.pdf

http://www.sciphysicsforums.com/spfbb1/viewtopic.php?f=6&t=49&p=2545&hilit=third+rate#p2545

http://libertesphilosophica.info/blog/

So I ask you again: Why should anyone pay any attention to some bubblehead who has not been able to publish a single paper in his entire lifetime? And, by the way, how many papers have *you* published on any subject?

19. "And, by the way, how many papers have *you* published on any subject?"
On "any subject"? Quite a few.

20. "Quite a few."

That is obviously a lie, as one can see from your comments.

21. For those waiting for me for a GAViewer version for which internally the orientation of ‘I’ can be changed: It appears not to be simple to recompile GAViewer from source, because I am not familiar with the techniques necessary (ANTLR and FLTK) and the instruction from the authors is not clear on that part. See http://geometricalgebra.org/gaviewer_download.html. So I welcome suggestions from anyone who knows about these techniques.

22. There is no need to recompile the GAViewer source code, because there is no internal hard coded representation for I.

What you could do is modify your function crosspr(a, b) so that it divides by mu instead of I. Now you should find that things work for both values of lambda.

There is only one small problem: The average of mu.(a x b) no longer goes to zero with this definition of crosspr. So the bump under the carpet is just shifter to another place.

23. There is also a much bigger problem: The above suggestions by Heinera have nothing whatsoever to do with my model. Neither do any of the comments by Gill, here and elsewhere.

For those who have a genuine interest in understanding what my model actually is and what the limitations are of the standard GAViewer program in implementing my full model, please see my detailed explanation in the paper linked below. Please read especially the discussion between equations (19) and (21):

http://arxiv.org/pdf/1203.2529.pdf

24. Joy, I'm not talking about your model, whatever that is. I'm talking about Albert Jan's code.

25. Sorry, but the source code for GAViewer does need to be modified and recompiled. As it stands right now, it cannot model everything that Nature can throw at us.

26. GAViewer can certainly model everything that GA can throw at us. If GA is somehow insufficient to describe Joy's model, someone should say so.

15. This comment has been removed by the author.

16. Bell's people (which are not Gimbaly Locked :), I & -I are just permutation away, single standard transposition...

17. Yes Ivica Kolar, it should be easy for Christian and Diether to write a GAviewer program which correctly represents the math in any of Christian's papers. Especially if they pick one of the more simple presentations. For instance the one page paper http://arxiv.org/abs/1103.1879 Why are we still waiting?

18. (+I.a)(+I.b) = -a.b - (+I).(a x b)

Therefore

(-I.a)(-I.b) = (-1)^2 (+I.a)(+I.b)= -a.b - (+I).(a x b) = -a.b + (-I).(a x b)

Is this what we want?

Or did we want

(-I.a)(-I.b) = = -a.b - (-I).(a x b) ?

Wev can have both, as long as we add the new postulate -1 = +1

19. We could also redefine "x"

20. Learn geometric algebra. There are some pretty good GA textbooks out there that will cure your ignorance. Everyone except you seems to know and realize that the right hand and left hand basis never happens at the same time so +1 and -1 never happens at the same time. So impossible to be equal to each other.

1. We are still waiting for a GAViewer program which correctly reproduces the results of Christian's theory. Use your energy on that.

2. Learn geometric algebra. There are some pretty good GA textbooks out there that will cure your ignorance. And it is not a "theory" it is a model. GAViewer has already confirmed as much of the model as it can. The fact that you don't know that, means you do in fact need to cure your ignorance about GA.

3. "GAViewer has already confirmed as much of the model as it can"

It has comfirmed a lot, indeed. It has confirmed that

(mu.aa)*(mu.bb) + aa.bb;

does not go to zero, so

<<(mu.aa)*(mu.bb)>> is not equal to -aa.bb;

4. (mu.aa)*(mu.bb) is not a valid operation in GAViewer as it stands right now which you would know if you knew GA.

5. Fred, the burden is you and Joy to write the subroutines in GAViewer which implement Joy's formulas. If Joy needs to randomly switch the handedness convention which defines the trivector I and/or the cross-product x then he should write that into code. He didn't write it into the formulas in his papers. The papers have what looks like math, but actually is gobbledygook if you read it literally. The math formulas only have a vague connection with what Christian says is the physics that they express. Locally the math might appear to make sense but globally it is incoherent.

So maybe standard mathematical notations, existing operators, etc etc, cannot express Christian's concepts. His task to make the appropriate definitions and introduce new operators etc etc in order that the math does all fit together coherently.

Equivalently: his task to write it out a computer implementation, for instance write a program in GAViewer, which does do what he wants it to do.

Till then, the whole world is basically in the dark concerning Christian's brilliant contributions to physics. We have some text, some poetry, some science fantasy. We have daring claims, pretty imagery. We have formula after formula which don't fit together into one coherent mathematical theory. Which cannot be expressed in a formal language like that of GAViewer.

6. Dogs barking, Elephant walking:

http://arxiv.org/pdf/1203.2529.pdf

http://arxiv.org/pdf/1110.5876.pdf

http://arxiv.org/pdf/1501.03393.pdf

7. Woof, woof! LOL!

8. Pretty easy to tell who knows GA enough when you make a mistake and no one says anything about it. Albert Jan saw my mistake right away. So I am pretty sure he is good with it. So these other guys should get themselves a good GA textbook and come back to the party when they can find my mistake. Or not.

9. OK, so we wait for Albert Jan to do the work which Fred and Joy are incapable of doing themselves.

Good luck, Albert Jan!

10. No luck is needed. Joy's model is correct. Easy to see from what GAViewer has already told us about its own limitations. Albert Jan doesn't really need to do anything unless he wants to. I'm totally satisfied by what he has already done and what we found out here recently.

11. "No luck is needed. Joy's model is correct. Easy to see from what GAViewer has already told us about its own limitations."

GAViewr is "limited"? It somehow does not represent the full GA? This reply shows that you are now in a state of compete denial. I suggest that you contact the experts behind GAViewer and explain the limitations in their program.

12. "Dogs keep barking; elephants keep walking."

13. "GAViewr is "limited"? It somehow does not represent the full GA? This reply shows that you are now in a state of compete denial."

That is ironic since you are the one that got us started on the path of discovering the limitations of GAViewer. But you probably won't understand until you find my mistake above and probably won't understand even then.

14. "That is ironic since you are the one that got us started on the path of discovering the limitations of GAViewer."

I showed you why Joy's calculations must be in error. There are no limitations in GAViewer, as far as GA goes. GAViewer faithfully represents GA. If you think otherwise, you should get in touch with the GA experts that programmed it, and tell them where you think they are mistaken.

15. Ya didn't find the mistake I made yet, did you? "Dogs keep barking; elephants keep walking."

16. "Ya didn't find the mistake I made yet, did you? "

I'm not quite sure what you are talking about, but you probably have made your fair share of mistakes, none of which are probably interesting.

17. It is quite simple. I made a mistake in one of the calculations above. If you find and truly understand the mistake I made from a GA perspective, you might have a chance of learning what the limitations are for GAViewer. But you probably need a good GA textbook to help you.

18. Are you referring to the post where you added I2.t, instead of subtracting?

19. Good, you found the post.

>> A=I2.aa
A = -0.89*e2^e3 + 0.30*e3^e1 + 0.35*e1^e2
>> B=I2.bb
B = 0.04*e2^e3 + 0.01*e3^e1 + -1.00*e1^e2
>> prod=A B
prod = 0.38 + 0.30*e2^e3 + 0.87*e3^e1 + 0.02*e1^e2
>> t=crosspr(aa,bb)
t = -0.30*e1 + -0.87*e2 + -0.02*e3
>> result=-aa.bb+I2.t
result = 0.38 + 0.30*e2^e3 + 0.87*e3^e1 + 0.02*e1^e2

Now, do you know why it should be subtracting I2.t instead of adding?

20. Uuuhh...look at the formula you started the original post with:

(-I.a)(-I.b) = -a.b - (-I).(a x b).

You made a trivial sign error. Rookie mistake. Nothing deep or interesting about that.

21. You didn't really explain exactly why. It is because I2=-1*e1^e2^e3. The A and B also should have been A= -I2.aa and B = -I2.bb so you actually end up with,

(-I2.aa))(-I2.bb) = (I.aa)(I.bb) = -aa.bb - I.(aaxbb)

Which is simply the main identity in the right handed bivector basis. There is no way to get to the left handed bivector basis as GAViewer is fixed to the right handed basis. And we know that Nature is in fact both left and right handed.

21. This comment has been removed by the author.

22. We are still waiting for a GAViewer program which correctly reproduces the results of Christian's theory.

1. Keep waiting. That is better than barking like a mad dog.

2. LOL! The real funny thing is that if he actually bothered to fully understand GA, he would already see that your model is correct. No waiting required!!!

3. So you two (Joy and Fred) admit that it is impossible.

We have made some major progress then in clarifying the status of Christian's model, thanks to Albert Jan and GAViewer!

23. Incidentally, it is very easy to rewrite Christian's one page paper http://arxiv.org/pdf/1103.1879v1.pdf in the language of GAViewer, and to verify the error in the derivation going from formula (5) to formula (7) ... if one makes use of the definitions of the various quantities given in (1) to (4)!

However, as Joy said, if in the transition from (5) to (7) he appears to be redefining the earlier defined quantities, he is actually making new assumptions. What he doesn't seem to realise is that making simultaneous two contradictory assumptions leads to ... nonsense. From that point on, everything he writes is both true and false, since all statements are conditional on the assumptions; the assumptions are impossible to fulfil; hence statements made which assume the truth of those assumptions are empty.

He could better have sold his book with all pages empty so that we could use it as a conventient note-pad while learning GA and GAViewer

1. http://www.sciencedirect.com/science/article/pii/S0191886914000324

2. Crackpot-baiting is indeed great fun!

Crack-pot studies are part of cognitive anthropology:

http://www.cognitionandculture.net/home/blog/35-pascals-blog/435-how-i-found-glaring-errors-in-einsteins-calculations

If crackpot baiters are sadists, then crackpots are masochists and narcissists. Constantly craving attention. Rather like Batman and the Joker, they need each other.

http://samvak.tripod.com/cognitivedeficits.html

Fred and Joy seem still baffled how to get Christian's model into GAViewer, without exposing its fallacies too obviously.

Doing the one page paper in GAViewer is an eye-opener! Everyone should try it. http://arxiv.org/abs/1103.1879

3. "The dog keeps barking; elephant keep walking."