First, the preamble, which serves to define various variables, functions and definitions that the program later needs:
- Code: Select all
Angles = seq(from = 0, to = 360, by = 7.2) * 2 * pi/360
K = length(Angles) # The total number of angles between 0 and 2pi
corrs = matrix(nrow = K, ncol = K, data = 0) # Container for correlations
Ns = matrix(nrow = K, ncol = K, data = 0) # Container for events A and B
Ls = matrix(nrow = K, ncol = K, data = 0) # Container for initial states
# A canvas of auxiliary pre-ensemble (analogous to pre-reduced phase space):
M = 10^5 # Size of the pre-ensemble. Next one can try 10^6, or even 10^7
r = runif(M, 0, 2*pi) # M uniformly distributed numbers between 0 and 2pi
z = runif(M, -1, +1) # M uniformly distributed numbers between -1 and +1
h = sqrt(1 - z^2)
x = h * cos(r)
y = h * sin(r)
e = rbind(x, y, z) # A 3xM matrix, with M columns of e-vectors representing
# the x, y, z coordinates of uniformly distributed points on an S^2. In what
# follows these M number of pre-states will define an auxiliary pre-ensemble
# Defining the metrical and topological structures on S^3:
# So far we have set the variables in R^3. We now construct a metric on S^3
s = runif(M, 0, pi) # Initial states of the spins are the pairs (e, s) within S^3
f = -1 + (2/sqrt(1 + ((3 * s)/pi))) # For details see the paper arXiv:1405.2355
g = function(u,v,s){ifelse(abs(colSums(u*v)) > f, colSums(u*v), 0)}
# g(u, v, s) is non-vanishing only if |u.v| > f(s)
# Defines an inner product on S^3, thus changing the space from R^3 to S^3
# colSums(u * v) = u.v = the standard inner product between u and v in R^3
# u and v are orthogonal to each other in S^3 when abs(colSums(u * v)) < f
t = function(u,v,s){abs(sign(g(u,v,s))) > 0} # Ensures sign(g) = +1 or -1
# The pair {g, t} defines together a metric on S^3 constraining its topology
n = function(Q,u1,v1,s1,u2,v2,s2){length(Q[t(u1,v1,s1) & t(u2,v2,s2)])}
# Calculates the number of occurrences of 'Q' while respecting the metric {g, t}
With these, the actual computation of the correlations between Alice's observations along measurement directions denoted by a, and Bob's measurements along directions denoted by b, is performed in the following part:
- Code: Select all
# Computing the "quantum" correlations:
for (i in 1:K) {
alpha = Angles[i]
a = c(cos(alpha), sin(alpha), 0) # Measurement direction 'a'
for (j in 1:K) {
beta = Angles[j]
b = c(cos(beta), sin(beta), 0) # Measurement direction 'b'
A = +sign(g(a,e,s)) # Alice's measurement results A(a, e, s) = +/-1
B = -sign(g(b,e,s)) # Bob's measurement results B(b, e, s) = -/+1
# Metric {g, t} forbids the results (0,+), (0,-), (+,0), (-,0), and (0,0)
# Probabilities for (0,+), (0,-), (+,0), (-,0), and (0,0) vanish exactly
Cuu = length((A*B)[A > 0 & B > 0]) # Coincidence count of (+,+) events
Cdd = length((A*B)[A < 0 & B < 0]) # Coincidence count of (-,-) events
Cud = length((A*B)[A > 0 & B < 0]) # Coincidence count of (+,-) events
Cdu = length((A*B)[A < 0 & B > 0]) # Coincidence count of (-,+) events
corrs[i,j] = (Cuu + Cdd - Cud - Cdu) / (Cuu + Cdd + Cud + Cdu)
# There are no "0 outcomes" within S^3: Cou = Cod = Cuo = Cdo = Coo = 0
# ----------------------------------------------------------------------
N = n((A*B),a,e,s,b,e,s) # Total number of simultaneous events observed
# corrs[i,j] = sum(A*B)/N # Alternative calculation of the correlation
# corrs[i] = sum(A)/N # Verifies < A > = 0 for all 'a' regardless of 'b'
# corrs[j] = sum(B)/N # Verifies < B > = 0 for all 'b' regardless of 'a'
# ----------------------------------------------------------------------
o = x[t(a,e,s) & t(b,e,s)]
p = y[t(a,e,s) & t(b,e,s)]
q = z[t(a,e,s) & t(b,e,s)]
w = rbind(o,p,q) # N vectors representing the complete state (e, s) within S^3
a.w = colSums(a*w) # Standard dot product in R^3 between the vectors a and w
b.w = colSums(b*w) # Standard dot product in R^3 between the vectors b and w
# corrs[i,j] = sum(-sign(a.w)*sign(b.w))/N # Another way of calculating E(a, b)
# -----------------------------------------------------------------------------
Ns[i,j] = N # Total number of simultaneous +/- events observed by Alice and Bob
Ls[i,j] = n(s,a,e,s,b,e,s) # The number of initial states w = (e, s) within S^3
}
}
Now, my problem with the program is the following. As it is, the measurement outcomes provided by the functions A(a,e,s) and B(a,e,s), where (e,s) are respectively a random unit vector sampled uniformly from the 2-sphere and an angle between zero and pi, produce zero outcomes; in fact, for each pair (e,s), there exists an a (or b) such that A(a,e,s) = 0 (or B(b,e,s) = 0). This fact is readily demonstrated by noting that the function to compute A(a,e,s) is effectively
while A(a,e,s) = 0 otherwise (as can be readily seen from inspecting the code).
Thus, for any a such that , there will be a zero outcome. The function is monotonically decreasing from 1 to 0 as s varies from 0 to pi. Hence, for any , f(s) will be a finite positive number, and there exist an infinite number of a's such that , for which thus A(a,e,s) = 0. For the case , , any a orthogonal to e will do.
However, the actual outcomes of the experiment are always equal to A(a,e,s) = +/-1. To the best of my ability to understand it, this is remedied in the simulation by considering the randomly drawn pairs (e,s) to be an unphysical pre-ensemble, from which the physical states are supposed to be determined by the properties of S^3.
My problem is now with the way this determination works in the simulation. The physical states are, in the code above, the vectors denoted w=(o,p,q)^T, whose components are calculated as follows:
- Code: Select all
o = x[t(a,e,s) & t(b,e,s)]
p = y[t(a,e,s) & t(b,e,s)]
q = z[t(a,e,s) & t(b,e,s)]
Here, the function t, defined as
- Code: Select all
t = function(u,v,s){abs(sign(g(u,v,s))) > 0} # Ensures sign(g) = +1 or -1
picks out those triples (a,e,s) such that A(a,e,s) (or B(b,e,s)) is either +1 or -1. This poses, however, a dilemma for an allegedly locally realistic model: in order to decide the physical hidden variable values, knowledge of the detector orientation is used---that is, the physical states are effectively defined as those states that do not generate a zero outcome, given the measurement direction. Using this definition, it is clear that no longer any zero outcomes occur; however, the knowledge about the detector orientations is not available at the spacetime point that the hidden variable choice must be made---for instance, the source could have produced a Bell pair four years ago on Alpha Centauri, with the experimenter only making her choice of measurement direction today. Hence, at the point the pair was produced, the information about the experimenter's choice simply didn't exist, and thus, there does not seem to be a possible way such that the hidden variable choice could have been made in such a way as to ensure no zero outcome exists.
The only way to circumvent this would seem to be to introduce explicit retrocausality, and have the future choice of the experimenter influence the hidden variable choice at the source; however, not only is this in itself a form of nonlocality in a relativistic world, it also introduces a nonlocal dependence of Bob's measurement outcomes on Alice's measurement settings, since Bob could not detect a particle if Alice's detector orientation is such that she would have gotten a zero outcome, as this particle pair is retrocausally prohibited from ever being sent out by the source. Hence, as it stands, this is not a local realistic model. (However, if I have misrepresented anything about the model, it goes without saying that I welcome any corrections.)
Now, Joy insists that my way of thinking is confused, since I'm stuck in a 'flatland' perspective and thus, fail to engage the model on its proper S^3 terms. This may well be the case, although I don't know how to make sense of it (but then, I presumably wouldn't, would I). Anyway, and this brings me at long last to my question: if there is a S^3 perspective such that the physical hidden variables, the w vectors, can be computed without knowing the measurement directions of Alice and Bob, then it should be possible to provide a formula implementing this calculation. This is what I would like to see, either as an explicit equation, or, even better, in the form of a simulation that manifestly computes the physical hidden variables without ever appealing to the measurement directions of Alice and Bob, that is, a simulation that could in principle be implemented on separate computers sharing only the list of pre-computed hidden varable values, and which each get a separate list of measurements, and show 100% detector efficiency.
Unfortunately, Joy has declared that he no longer considers me worth speaking to; I hope he'll reconsider, since this seems to be a issue that should be very simple to settle definitively. However, several other forum members, e.g. FreddiFizzx, have expressed their support of Joy's model, and thus, are presumably capable of seeing beyond the flatland perspective, so they should likewise be capable of giving an answer.
Needless to say, without a way to compute the physical hidden variables that does not depend on Alice's and Bob's measurement directions, the model as it is simply fails in its goal to produce a local realistic violation of a Bell inequality, and thus, Bell's theorem continues to stand unchallenged.