Draft · v0.2 · Unreviewed
← Index/Project · Nadarasa ReductionDraft · v0.2 · Selene Emulator
Draft v0.3.1 · Section 9 · [GAP G12] · Selene Emulator · via SweepRunner

Modal-Projection
Scaling

G1 fixed the basis bug at N ∈ {16, 32}. G12 asks the only follow-up that matters: does the corrected closed-form predictor — P(y | s, N) = ½[δ(y, 0) + δ(y, (N − s) mod N)] — keep matching measured shots at larger N? Same Guppy kernel as G1, driven through quantum.sweep.SweepRunner at N ∈ {64, 128} and p ∈ {2, 3, 5, 7}.

Verdict · consistent_but_residual_drift. Worst |measured − predicted| = 0.0396 across the (N, p) grid; min SRP-vs-violating gap when p | N = +0.527 (predicted +0.500). The G1 closed form survives the jump from N=32 to N=128 within Monte-Carlo error; conjecture C1 is not refuted at toy scale.

Measured vs predicted per cell

Npp | NSRP measSRP predSRP ΔVIO measVIO predVIO Δgap measgap pred
642yes1.0001.000+0.0000.4730.500-0.027+0.527+0.500
643no0.5190.500+0.0190.7650.750+0.015-0.246-0.250
645no0.4900.500-0.0100.6310.625+0.006-0.142-0.125
647no0.4980.500-0.0020.6040.625-0.021-0.106-0.125
1282yes1.0001.000+0.0000.4600.500-0.040+0.540+0.500
1283no0.4790.500-0.0210.7480.750-0.002-0.269-0.250
1285no0.5310.500+0.0310.6210.625-0.004-0.090-0.125
1287no0.4810.500-0.0190.6310.625+0.006-0.150-0.125
N = 64
worst |Δ vs predicted|
0.0271
min srp − viol gap
-0.2458
max srp conc
1.0000
N = 128
worst |Δ vs predicted|
0.0396
min srp − viol gap
-0.2688
max srp conc
1.0000

selene_run · schema v1

G12 — Modal-projection scaling (v0.3.1)

Same G1 kernel, driven through SweepRunner at N ∈ {64, 128} and p ∈ {2, 3, 5, 7}. v0.3.1 methodology: predictor derived from the real-QFT gate sequence, P(y|s,N) = ½[δ(y,0) + δ(y, (N−s) mod N)]. Tracks |measured − predicted| as N grows.

Verdict

consistent_but_residual_drift

Metrics

  • worst |measured − predicted|
    0.0396prob
  • min SRP − violating gap (p | N)
    0.5271prob
  • refutation threshold (Δ vs predicted)
    0.0500prob

P(y mod p = 0): measured vs predicted, across (N, p)

Kernel · 8 qubits · 120 shots/row


from quantum.nadarasa_g1_lib import (
    guppy, qubit, h, cx, measure, result,
    cphase_true_on,
)

@guppy
def program() -> None:
    lbl = qubit()
    d0 = qubit()
    d1 = qubit()
    d2 = qubit()
    d3 = qubit()
    d4 = qubit()
    d5 = qubit()
    h(lbl)
    h(d0)
    h(d1)
    h(d2)
    h(d3)
    h(d4)
    h(d5)
    cphase_true_on(lbl, d0, 0.0625)
    cphase_true_on(lbl, d1, 0.125)
    cphase_true_on(lbl, d2, 0.25)
    cphase_true_on(lbl, d3, 0.5)
    cphase_true_on(lbl, d4, -1.0)
    cphase_true_on(lbl, d5, 0.0)
    h(lbl)
    result("lbl", measure(lbl))
    h(d5)
    cphase_true_on(d4, d5, 0.5)
    cphase_true_on(d3, d5, 0.25)
    cphase_true_on(d2, d5, 0.125)
    cphase_true_on(d1, d5, 0.0625)
    cphase_true_on(d0, d5, 0.03125)
    h(d4)
    cphase_true_on(d3, d4, 0.5)
    cphase_true_on(d2, d4, 0.25)
    cphase_true_on(d1, d4, 0.125)
    cphase_true_on(d0, d4, 0.0625)
    h(d3)
    cphase_true_on(d2, d3, 0.5)
    cphase_true_on(d1, d3, 0.25)
    cphase_true_on(d0, d3, 0.125)
    h(d2)
    cphase_true_on(d1, d2, 0.5)
    cphase_true_on(d0, d2, 0.25)
    h(d1)
    cphase_true_on(d0, d1, 0.5)
    h(d0)
    cx(d0, d5)
    cx(d5, d0)
    cx(d0, d5)
    cx(d1, d4)
    cx(d4, d1)
    cx(d1, d4)
    cx(d2, d3)
    cx(d3, d2)
    cx(d2, d3)
    result("y0", measure(d0))
    result("y1", measure(d1))
    result("y2", measure(d2))
    result("y3", measure(d3))
    result("y4", measure(d4))
    result("y5", measure(d5))
v0.3.1 methodology rule: predictor derived from the G1 gate sequence (real QFT readout), not from a docstring heuristic. The 'violating_excess_over_uniform' field is retained for back-compat with the v0.2 schema/route but is no longer the load-bearing diagnostic — use delta_vs_predicted instead.