#!/usr/bin/env python3 """ SCOPE NOTE, 2026-10-13. "sec:open-structural item 6 carries microcausality as open" describes the register as it stood in 2026-09; the structural list has been empty since v32.132. W4 holds given the slice-wise CAR limit (comps 183 and 184); its row is in Appendix C.5 and the way back is backlog C.16. PROVENANCE: PROOF Computation 181 -- W4's named route cannot work, and the reason is one line =========================================================================== WHAT THIS DOES. sec:open-structural item 6 carries microcausality as open. sec:spin-statistics-structural withdraws the earlier argument for W4 as vacuous (it used {c_a, c_b} = 0, which holds at every separation including a = b, so the spacelike hypothesis did no work) and then names what would establish it: "Establishing W4 needs the substrate two-point structure to have Fourier support in the closed causal cone, and that is carried as open." THAT ROUTE IS NOT MERELY UNATTEMPTED. IT IS UNAVAILABLE, and this file shows why in one line of reasoning plus a measurement that the line is not an artefact. THE ARGUMENT. The substrate is PRE-CAUSAL: it carries no TIME PARAMETER, time being emergent, since sec:modal-sublimation has sublimation "produce a domain that admits time evolution" rather than the substrate having one. The substrate two-point structure is therefore an EQUAL-TIME object, and its Fourier transform DOES NOT DEPEND ON k0, because there is no time variable for it to depend on. BE EXACT ABOUT THIS, because "no dynamics" would be too blunt and an earlier version of this file said it. The substrate DOES carry an energy function: comp 89's H_Higgs(C) = (1/D) sum_a B_a(C) is a substrate Hamiltonian, and sec:partition-function-CC uses it in a partition function. But an energy on configurations is not a generator of evolution in a time the substrate does not have; it weights a static ensemble. Nothing here turns on the substrate being energy-free, only on its being time-free, which is the pre-causal posture P1 and the emergence chain already commit to. Now take any distribution F(k) that is independent of k0 and ask it to be supported in the closed causal cone C = {k : |k0| >= |kvec|}. Fix a spatial momentum kvec != 0. The points (k0, kvec) with |k0| < |kvec| lie OUTSIDE C, so F must vanish there. But F does not depend on k0, so its value there is its value everywhere on that line. Hence F(kvec) = 0 for every kvec != 0, and F is supported at kvec = 0 alone, i.e. it is trivial. A k0-independent two-point function has Fourier support in the closed cone ONLY IF IT VANISHES. SO THE ROUTE IS CLOSED. The substrate two-point structure cannot acquire cone support, not because the calculation is hard but because it has no k0-dependence to carry one. Asking it to is asking a static object to encode a light cone. WHAT THIS DOES NOT SAY. It does NOT say W4 is false, and nothing here refutes microcausality for the emergent theory. Two things survive untouched: - EQUAL-TIME microcausality is fine and is not what is at stake. On a Cauchy slice {psi(x), psi^dag(y)} = delta^3(x - y) vanishes for x != y, which is spacelike separation at equal time. sec:spin-statistics-structural already says the non-trivial statement is the UNEQUAL-TIME one, {psi, psi-bar} = iS(x - y). - The emergent theory has dynamics, supplied by the projected Dirac operator of Closure (3). iS(x - y) is built from that operator, and the Pauli-Jordan function vanishes outside the cone because of the mass shell, which is a statement about the DYNAMICS and not about the substrate correlator. SO WHERE W4 HAS TO COME FROM. From the emergent Dirac dynamics, not from the substrate two-point structure. That is a different and better-posed target: it asks whether the projected operator's propagator has the Pauli-Jordan support property, which is a question about the matched-scaling limit of sec:dirac-convergence rather than about P1's measure. The register item should say so, because as written it points at a route that cannot succeed. WHAT IS MEASURED HERE. The line of reasoning is exact, so the measurements are there to confirm it is not an artefact of how the kernel is smoothed: the k0-independent kernel puts a large fraction of its spectral weight outside the cone at every smoothing width, its value is constant along k0 to machine zero, and a genuine mass-shell kernel puts none outside. The tamper test is that last control. """ import numpy as np RNG = np.random.default_rng(20260930) N, L = 48, 8.0 def rule(): print("=" * 100) def grids(n=N, box=L): d = box / n k = 2 * np.pi * np.fft.fftfreq(n, d=d) # Broadcast rather than meshgrid. np.meshgrid materialises FOUR n^4 arrays, 42 MB # each at n = 48, only to reduce three of them to one, and the browser runtime this # book publishes to cannot be relied on for 170 MB of scratch. K0 stays a view and # kv is broadcast back to the full grid without copying, so every expression below # sees the same shapes and the same values it saw before. K0 = k[:, None, None, None] kv = np.sqrt(k[None, :, None, None] ** 2 + k[None, None, :, None] ** 2 + k[None, None, None, :] ** 2) kv = np.broadcast_to(kv, (n, n, n, n)) return k, d, K0, kv, (np.abs(K0) >= kv) # --------------------------------------------------------------------------- def part1(): rule() print(" 1. THE SUBSTRATE TWO-POINT STRUCTURE IS EQUAL-TIME, HENCE k0-INDEPENDENT") rule() print(" The substrate carries no TIME PARAMETER: time is emergent, sublimation") print(" producing a domain that admits time evolution rather than the substrate") print(" having one. So = delta_ab (1 - n_a) is a matrix on sites") print(" and not a function of any time.") print() print(" NOT 'the substrate has no dynamics', which would be too blunt: comp 89's") print(" H_Higgs IS a substrate Hamiltonian and the partition function uses it.") print(" But an energy on configurations weights a static ensemble; it does not") print(" generate evolution in a time the substrate does not have. Only the") print(" time-freeness is load-bearing here.") print() print(" Its continuum image under the realisation map is a smoothed SPATIAL") print(" kernel, sum_a phi_a(x) phi_a(y), whose Fourier transform is a function") print(" of kvec alone. Checked on the grid: the transform is constant along k0") print(" at fixed kvec, to machine zero.") print() k, d, K0, kv, inside = grids() F = np.exp(-(kv * d) ** 2) # k0-independent by construction spreads = [] for idx in ((3, 2, 1), (5, 0, 0), (7, 6, 2)): line = F[(slice(None),) + idx] spreads.append(float(np.ptp(line))) print(f" kvec index {str(idx):>10}: spread of F along k0 = {np.ptp(line):.2e}") ok = max(spreads) == 0.0 print() print(f" -> the transform does not depend on k0 : {ok}") print() return ok def part2(): rule() print(" 2. A k0-INDEPENDENT TRANSFORM IN THE CLOSED CONE MUST VANISH") rule() print(" Let F(k) be independent of k0 and supported in C = {|k0| >= |kvec|}.") print(" Fix kvec != 0. Every point (k0, kvec) with |k0| < |kvec| lies OUTSIDE C,") print(" so F vanishes there. F does not depend on k0, so that value is its") print(" value on the whole line. Hence F(kvec) = 0 for every kvec != 0, and F") print(" is supported at kvec = 0 alone. It is trivial.") print() print(" The step is exact. Confirmed on the grid by exhibiting, for each of") print(" several kvec, that the sub-cone region is non-empty and that F is") print(" constant across it, so cone support would force that constant to zero:") print() k, d, K0, kv, inside = grids() F = np.exp(-(kv * d) ** 2) ok = True print(f" {'kvec index':>12}{'|kvec|':>10}{'# k0 outside cone':>20}{'F there':>12}") for idx in ((3, 2, 1), (5, 0, 0), (7, 6, 2)): kvv = kv[(0,) + idx] out = np.abs(k) < kvv vals = F[(slice(None),) + idx][out] ok &= out.sum() > 0 and float(np.ptp(vals)) == 0.0 print(f" {str(idx):>12}{kvv:>10.3f}{int(out.sum()):>20}{vals[0]:>12.6f}") print() print(f" -> non-empty sub-cone region, F constant on it : {ok}") print() return ok def part3(): rule() print(" 3. THE NUMERICS CONFIRM THE PROOF, INCLUDING ITS DEGENERATE CASE") rule() print(" Part 2 says a k0-independent transform can sit inside the cone only by") print(" being supported at kvec = 0. So the weight outside the cone should be") print(" LARGE for any kernel with real spatial extent, and should fall to zero") print(" only as the kernel degenerates onto kvec = 0. That is what happens, and") print(" it is worth being exact about which direction is the physical one.") print() print(" Here w scales the smoothing in units of the site spacing. A1 sends") print(" a_n -> 0, so the kernel approaches a sharper spatial delta, which is") print(" BROADER in kvec: the physical direction is SMALL w.") print() k, d, K0, kv, inside = grids() print(f" {'smoothing w':>14}{'weight outside cone':>22} direction") rows = [] for w in (0.25, 0.5, 1.0, 2.0, 4.0, 16.0): F = np.exp(-((kv * d * w) ** 2)) fr = F[~inside].sum() / F.sum() rows.append((w, fr)) tag = "<- physical (a_n -> 0)" if w <= 0.25 else ( "degenerate, kvec -> 0" if w >= 16 else "") print(f" {w:>14.2f}{fr:>22.4f} {tag}") physical = rows[0][1] > 0.5 monotone = all(rows[i][1] > rows[i + 1][1] for i in range(len(rows) - 1)) degenerate = rows[-1][1] < rows[0][1] / 5 print() print(" At the physical end the kernel puts most of its weight outside the cone.") print(" The fraction falls only as the kernel is squeezed onto kvec = 0, which is") print(" exactly the trivial support part 2 isolates: the numerics reproduce the") print(" proof's edge case rather than contradicting it.") print() ok = physical and monotone and degenerate print(f" -> large at the physical end, vanishing only degenerately : {ok}") print() return ok def part4(): rule() print(" 4. WHAT SURVIVES, AND WHERE W4 HAS TO COME FROM") rule() print(" NOT REFUTED: W4 itself. Nothing here says microcausality fails for the") print(" emergent theory. What fails is the ROUTE the book names.") print() print(" EQUAL-TIME microcausality is untouched and is not what is at stake. On") print(" a Cauchy slice {psi(x), psi^dag(y)} = delta^3(x-y) vanishes for x != y,") print(" which is spacelike separation at equal time. The book already says the") print(" non-trivial statement is the unequal-time {psi, psi-bar} = iS(x-y).") print() print(" AND THE EMERGENT THEORY HAS DYNAMICS. iS(x-y) is built from the") print(" projected Dirac operator of Closure (3), and the Pauli-Jordan function") print(" vanishes outside the cone because of the MASS SHELL, a statement about") print(" that operator and not about the substrate correlator.") print() print(" SO THE TARGET SHOULD MOVE: from 'the substrate two-point structure has") print(" Fourier support in the closed cone', which cannot hold non-trivially, to") print(" 'the projected Dirac propagator has the Pauli-Jordan support property',") print(" which is a question about the matched-scaling limit of") print(" sec:dirac-convergence and is well posed.") print() return True def part5(): rule() print(" 5. SCOPE") rule() print(" This closes a ROUTE, not an item. W4 stays open in the register and") print(" nothing downstream changes: the structural spin-statistics theorem is") print(" untouched, since it derives STATISTICS from Boolean exclusion and never") print(" used microcausality; W1, W2, W3 and W5 are untouched; and the slice-wise") print(" CAR limit, the item's other half, is a separate residue.") print() print(" What is gained is that a session will not spend effort on a route that") print(" cannot succeed, and that the register can name the route that can.") print(" That is the same shape as comp 169's withdrawal: a negative result whose") print(" value is the effort it saves.") print() return True def part6(): rule() print(" 6. TAMPER TEST: A GENUINE RELATIVISTIC KERNEL PUTS NOTHING OUTSIDE") rule() print(" If the measurement could not tell a causal kernel from an acausal one it") print(" would establish nothing. Give it one with k0-dependence: weight") print(" concentrated on the mass shell k0^2 - |kvec|^2 = m^2, which lies inside") print(" the cone by construction.") print() k, d, K0, kv, inside = grids() flat = np.exp(-(kv * d) ** 2) f_flat = flat[~inside].sum() / flat.sum() print(f" {'kernel':>34}{'weight outside cone':>22}") print(f" {'substrate, k0-independent':>34}{f_flat:>22.4f}") outs = [] for m in (0.5, 1.0, 2.0): shell = np.exp(-((K0 ** 2 - kv ** 2 - m ** 2) ** 2) / (2 * 0.5 ** 2)) * inside fr = shell[~inside].sum() / max(shell.sum(), 1e-300) outs.append(fr) print(f" {'mass shell m = ' + f'{m:.1f}':>34}{fr:>22.4f}") ok = f_flat > 0.2 and max(outs) < 1e-12 print() print(" The control puts nothing outside the cone and the substrate kernel puts") print(" a third of its weight there, so the test discriminates. And note what") print(" the control needed in order to pass: a k0-dependence, which is exactly") print(" what the substrate does not have.") print() print(f" -> the measurement separates causal from acausal : {ok}") print() return ok def main(): print() rule() print(" COMPUTATION 181. W4's named route cannot work") rule() print(""" sec:spin-statistics-structural withdraws the earlier argument for microcausality as vacuous and names what would establish it: the substrate two-point structure having Fourier support in the closed causal cone. The substrate is pre-causal and carries no dynamics, so that structure is equal-time and its transform does not depend on k0 -- and a k0-independent transform supported in the cone must vanish. The route is unavailable rather than unattempted. """) r1, r2, r3, r4, r5, r6 = part1(), part2(), part3(), part4(), part5(), part6() rule() print(" ASSESSMENT") rule() print(f" 1. the substrate correlator is k0-independent, measured : {r1}") print(f" 2. k0-independent + cone support => trivial, exact : {r2}") print(f" 3. numerics confirm the proof, degenerate case included : {r3}") print(f" 4. where W4 has to come from instead: the emergent dynamics : {r4}") print(f" 5. scope: a route is closed, not the item : {r5}") print(f" 6. tamper test: a mass-shell kernel puts nothing outside : {r6}") print() print(""" RESULT. The route the book names for W4 cannot succeed, and the reason is one line rather than a calculation. The substrate is pre-causal: it has no time parameter, time being emergent from sublimation, so the substrate two-point structure is an equal-time object whose Fourier transform does not depend on k0 -- measured here to machine zero along every k0 line. Ask such a transform to be supported in the closed causal cone and fix a spatial momentum: the points with |k0| < |kvec| lie outside the cone, so the transform vanishes there, and being k0-independent it therefore vanishes on the whole line. It is supported at kvec = 0 alone, which is to say it is trivial. So 'the substrate two-point structure has Fourier support in the closed causal cone' holds only vacuously, and no amount of work on the substrate correlator will establish W4. The obstruction is not a hard calculation; it is that a static object is being asked to encode a light cone. This does NOT refute W4, and nothing downstream moves. Equal-time microcausality is fine and is not what is at stake; the book already says the non-trivial statement is the unequal-time one. The structural spin-statistics theorem never used microcausality, and W1, W2, W3 and W5 are untouched. Where W4 has to come from is the emergent dynamics: iS(x-y) is built from the projected Dirac operator of Closure (3), and the Pauli-Jordan function vanishes outside the cone because of the mass shell. The register should point there instead, at whether the projected propagator has that support property, which is a question about the matched-scaling limit and is well posed. The tamper test makes the point concretely: the control kernel passes only because it HAS a k0-dependence, which is precisely what the substrate lacks.""") print() return all([r1, r2, r3, r4, r5, r6]) if __name__ == "__main__": import sys # Exit only on FAILURE. The website runs these in the browser under Pyodide, # where SystemExit is fatal even at status 0: it tears the runtime down, and the # page prints ERROR after output that was in fact correct. Falling off the end # hands the build gates the same status 0, and a failure still exits 1. if not main(): sys.exit(1)