Draft · v0.2 · Unreviewed
← Index/Project · Nadarasa ReductionDraft · v0.2 · Selene Emulator
Draft v0.1 · Section 4 · [GAP G2] · Selene Emulator

Two-Window
Selene Experiment

Real shots from @guppy-compiled kernels on the Selene emulator. Sweeps N ∈ {16, 32, 64} and window count k ∈ {1, 2, 4}. The mid-circuit ancilla measurement between windows is the classical glue layer the conjecture rests on.

Wind-tunnel scale · The Selene emulator is a classical simulator of Quantinuum H-series hardware; no ion-trap shots were purchased. Numbers below are real but should be read as a wind-tunnel check, not as evidence about a real machine.
v0.3 Track B headline · coherent two-coset combiner

Predictor matches measured shots within |Δ| ≤ 0.016

A new kernel — two label qubits plus the G1 real-QFT primitives, glued by CX(lbl0, lbl1) + H(lbl1) + measure — builds a coherent two-coset combination before reading out. Data marginal collapses to four delta peaks at y ∈ {0, N−s0, N−s1, N−s0−s1}. When the modal prime divides the group order, the SRP slope pair concentrates to 1.0 on residue 0 while the violating pair sits at 0.5 — predicted SRP-vs-violating gap = +0.5.

Npp | NSRP measSRP predVIO measVIO predgap measgap pred
162yes1.0001.0000.5070.500+0.493+0.500
163no0.2620.2500.6180.625-0.356-0.375
165no0.2420.2500.5680.583-0.326-0.333
322yes1.0001.0000.5150.500+0.485+0.500
323no0.2510.2500.5070.500-0.256-0.250
325no0.2530.2500.4040.417-0.151-0.167

Verdict: coherent combiner produces srp signal when p divides N. Min SRP-vs-violating gap when p | N = +0.485. Predictor and kernel derived from the same gate sequence (v0.3 methodology rule); the in-worker live sampler agrees by construction. Try it on /nadarasa/stream (kernel = G2·real).

Historical v0.1 driver below — the two-window Rz on |+⟩^n kernel that produced the original kernel_cannot_test_g2 verdict. Kept on this page as the falsified baseline that motivated Track B.

What G2 claims

When the Kuperberg sieve is sliced into k coherent windows stitched by a classical measurement layer, the structurally relevant phase survives the stitch. The draft's heuristic prediction is a purity decay of p^(−(k−1)) with p = 2 — i.e. 1.0, 0.5, 0.125 across k = 1, 2, 4 — anchored at the k = 1 baseline. If observed decay is faster than that, the glue is destructive and the conjecture is in trouble.

Purity proxy vs window count

Y-axis: empirical collision probability Σ px² minus the uniform 1/N baseline. Zero means "indistinguishable from a maximally-mixed register on a final readout."

Results table

NkSRP collisionviolating collisionSRP predictedΔ vs predictionbaseline 1/N
1610.06430.06470.0625+0.00180.0625
1620.06480.06530.0625+0.00230.0625
1640.06470.06520.0625+0.00220.0625
3210.03350.03420.0313+0.00230.0313
3220.03410.03360.0313+0.00290.0313
3240.03370.03350.0313+0.00250.0313
6410.01790.01830.0156+0.00230.0156
6420.01790.01790.0156+0.00230.0156
6440.01800.01820.0156+0.00230.0156

Refutation verdict

kernel cannot test g2
Worst |observed − predicted| = 0.0029; max SRP-vs-violating gap = 0.0006. v0.3 lesson (same shake-out as G1): the kernel applies single-qubit Rz to |+⟩n then parity probes — neither couples data qubits — so the Z-basis distribution is uniform 1/N by construction. Observed values match that closed form within Monte-Carlo error and the branches are indistinguishable. Any G2 test needs a kernel that actually builds a coherent two-coset combination before measuring; this one does not.
Track B · v0.3 · the kernel rebuild has shipped

The kernel-cannot-test verdict above motivated a real coherent two-coset combiner. It lives at quantum/nadarasa_g2_real.py (Python driver) and src/lib/selene/kernels/nadarasa-g2-real.ts (in-worker port). Two label qubits + the G1 real-QFT primitives; CX(lbl0, lbl1) + H(lbl1) + measure forms the Kuperberg combine step; the data marginal collapses to four delta peaks at y ∈ {0, N−s0, N−s1, N−s0−s1}. When p | N an SRP slope pair concentrates to 1.0 on residue 0 while a violating pair sits at 0.5 — predicted gap +0.5.

The predictor is derived from the same gate sequence (v0.3 methodology rule), so the host shots and the in-worker live sampler agree by construction. Try it live on the /nadarasa/stream page (kernel = G2·real), or regenerate locally via python -m quantum.nadarasa_g2_real per /reproduce.

What would kill this experiment

  • The parity-probe windows are a stripped-down stand-in for a real Kuperberg combination — if the donor mechanism only fires inside the full combination tree, this toy is structurally blind to G2.
  • Slope sweep is small (≤ 8 slopes per branch). A larger sweep with seed variation would tighten the error bars on every cell.
  • No modal projector is applied — the SRP/violating split is encoded only by slope parity at the phase-encoding step. A real Selene-runnable G1 toy would compose with this one.
  • Selene is a classical statevector emulator. Real Quantinuum hardware would add gate noise the toy ignores entirely.

Kernel snippet (one of nine compiled programs)

open in Playpond ↗

from quantum.nadarasa_g2_lib import guppy, qubit, h, measure, result, probe_one, phase_on

@guppy
def program() -> None:
    d0 = qubit()
    d1 = qubit()
    d2 = qubit()
    d3 = qubit()
    h(d0)
    h(d1)
    h(d2)
    h(d3)
    phase_on(d0, 0.7853981633974483)
    phase_on(d1, 1.5707963267948966)
    phase_on(d2, -3.141592653589793)
    phase_on(d3, 0.0)
    a0 = qubit()
    h(a0)
    probe_one(a0, d0)
    probe_one(a0, d1)
    h(a0)
    result("w0", measure(a0))
    a1 = qubit()
    h(a1)
    probe_one(a1, d2)
    probe_one(a1, d3)
    h(a1)
    result("w1", measure(a1))
    result("x0", measure(d0))
    result("x1", measure(d1))
    result("x2", measure(d2))
    result("x3", measure(d3))

One @guppy program per (N, k, s) triple. The driver in quantum/nadarasa_g2.py renders each kernel to a temp .py file, imports it via importlib, compiles it, and runs 400 shots through selene_sim.build(...).run_shots(Quest(), ...).