Skip to main content

Follow the source behind the result.

Search the paper sections, open their original context and follow the checks they actually cite. The knowledge atlas explains the result; this library locates its source.

v746_phys_gnet_local_functor.py

verification/v746_phys_gnet_local_functor.py

This is a registered verification module. Read its original code and the paper sections that cite it, then follow the linked claim to its present classification.

Read the publication code on this page

The registered Python source is shown as text. Displaying it does not execute the code.

#!/usr/bin/env python3
"""v746 -- GNET.LOCALNET.01: the G_net local net functor -- net axioms exact, Watatani index locally exactly 4, Ramond as half-line/bond defect (GNET-LOCAL-FUNCTOR-ALIVE).

PROVENANCE: discovery probe phys_gnet_local_functor_probe.py (2026-08-04, 16/16, verdict GNET-LOCAL-FUNCTOR-ALIVE; 4 must-fail controls fire).  Promoted verbatim; numbers unchanged.

PHYS T2-B -- the LOCALITY FUNCTOR test for the G_net reading:
is I |-> (A(I), E_I) a net of algebras with expectations (isotony,
graded locality, clock covariance), is the Watatani index 4 LOCAL
(every interval), and is the Ramond/Klein dressing locally
implementable?  Kill (GPT council T2-B): "no functor from intervals
to subgroupoids" would end the network reading of G_net.

DESIGN DECISION (documented, with must-fail): the mu4 average
E = (1/4) sum_j Ad(Gamma(H))^j, H = S^{N/2}, maps an interval algebra
into itself ONLY if "interval" means the H-orbit window
    I-hat = I u (I + N/2)  over the BASE circle of N/2 sites --
the net lives on the mu4/half-turn QUOTIENT circle (the orbifold
structure; v679 frame).  A naive single-arc interval is NOT E-stable:
must-fail MF3.  Likewise the deck mu3 average would need TRIPLE
windows: must-fail MF2.  So the doubling is forced, not chosen.

CHECKS
  F1a ISOTONY + expectation compatibility (Fock-exact, ambient
      window J-hat, N = 48): for I subset J the inclusion
      A(I-hat) subset A(J-hat) holds by construction, and
      E_J|_{A(I-hat)} == E_I exactly (battery of monomials + random
      elements; E_I represented ambiently via the partial Bogoliubov
      unitary V_I = H P_I-hat + (1 - P_I-hat)); E_J maps A(I-hat)
      into itself.
  F1b GRADED LOCALITY (Fock-exact): disjoint base intervals =>
      disjoint doubled windows; homogeneous elements satisfy
      a b = (-1)^{|a||b|} b a exactly.  MF1: the UNGRADED commutator
      of odd x odd elements does NOT vanish -- the fermionic grading
      is load-bearing (control fires).
  F1c CLOCK COVARIANCE (one-particle exact, sufficient at the
      Bogoliubov level): [L, H] = 0, [L, C] = 0, L maps the window
      of I to the window of I + N/12 (support sets, unit-modulus
      entries), and L V_I L^{-1} = V_{I + N/12} exactly => the net
      map and the expectations are clock-covariant.
  F2  LOCAL INDEX LADDER: over N = 48/96/192, base lengths
      l = 1..4, positions p = {0, 7, N/2 - 1 (wrap)}: sector dims,
      optimal PP constant lambda* (explicit mixing minimizer),
      local Takesaki [rho_W, U] = 0, quasi-basis Watatani index
      (l <= 3).  Expected: lambda* = 1/4 and Ind = 4*1 for EVERY
      interval with l >= 2 at EVERY position including the wrap;
      l = 1 anomaly (3 sectors, index 3) typed as before.
      MF4: Z2-only average gives 1/2 (teeth).
  F2R RAMOND LOCALITY: the Klein dressing D = e^{i pi/2 n_0} acts on
      one-particle vectors by V_D = 1 + (e^{-i pi/2} - 1) P_{k=0}
      with P_{k=0} the DELOCALIZED zero-mode projection: the
      strictly-interval-local reading has a measured NO-GO,
      leakage delta(N, l) = sqrt(2/N) * sqrt(1 - 2l/N) > 0 (exact
      closed form, verified; rate N^{-1/2} on the ladder).  BUT the
      dressing IS boundary-anchored: the half-line string
      sigma = diag(-1 on j < j0, +1 else) conjugates the NS shift
      EXACTLY into the R shift with one bond defect at j0
      (sigma S_NS sigma = S_R-defect, machine-exact) -- the v679
      "twist sector = bond defect" reproduced: R sectors are
      SOLITONIC (half-line/boundary) defects, not interval-local
      operators, with vanishing local footprint ~ N^{-1/2}.

VERDICT ENUM: GNET-LOCAL-FUNCTOR-ALIVE / PARTIAL / DEAD.

CIRCULARITY: H derived from the clock (L^6, order 4 forced by NS,
as in phys_car_pp_index_probe); the doubling is forced by MF2/MF3,
not inserted; state = declared chiral Dirac sea, C = f(S).

Exploration only (tfpt-experiment firewall): NOT wired into
run_all.py, no ledger row, no paper claim, no marker move.  Run:
    experiments/tfpt-discovery/.venv/bin/python \
        experiments/tfpt-discovery/phys_gnet_local_functor_probe.py
"""

import sys

import numpy as np

TOL = 1e-10
CHECKS = []


def check(name, ok, detail=""):
    CHECKS.append((name, bool(ok)))
    print(("PASS " if ok else "FAIL ") + name + ("  -- " + detail if detail else ""))
    return ok


# ---------------- one-particle layer ----------------

def shift(N, ns=True):
    S = np.zeros((N, N))
    for j in range(N - 1):
        S[j + 1, j] = 1.0
    S[0, N - 1] = -1.0 if ns else 1.0
    return S


def covariance(N, ns=True):
    sigma = 0.5 if ns else 0.0
    th = 2 * np.pi * (np.arange(N) + sigma) / N
    th = np.mod(th + np.pi, 2 * np.pi) - np.pi
    th[np.isclose(th, -np.pi)] = np.pi
    F = np.exp(1j * np.outer(np.arange(N), th)) / np.sqrt(N)
    occ = (th < 0).astype(float)
    if not ns:
        occ[np.isclose(th, 0.0)] = 0.5
    return (F * occ) @ F.conj().T


def window(N, p, l):
    return [(p + i) % N for i in range(l)] + \
           [(p + N // 2 + i) % N for i in range(l)]


# ---------------- Fock layer ----------------

def jw_ops(n):
    sm = np.array([[0, 1], [0, 0]], dtype=complex)
    sz = np.array([[1, 0], [0, -1]], dtype=complex)
    I2 = np.eye(2, dtype=complex)
    ops = []
    for j in range(n):
        m = np.array([[1.0]], dtype=complex)
        for l in range(n):
            m = np.kron(m, sz if l < j else (sm if l == j else I2))
        ops.append(m)
    return ops


def gamma_partial(Hsub, idx, cops):
    """implementer of the Bogoliubov unitary acting as Hsub on the modes
    idx (subset of the ambient modes) and as identity elsewhere.
    Hsub must be skew-real with Hsub^2 = -1 restricted (eigenvalues +-i)."""
    mu, V = np.linalg.eigh(1j * Hsub)
    dim = cops[0].shape[0]
    U = np.eye(dim, dtype=complex)
    for i in range(len(idx)):
        d = sum(np.conj(V[j, i]) * cops[idx[j]] for j in range(len(idx)))
        n_i = d.conj().T @ d
        ev = -1j * mu[i]
        U = U @ (np.eye(dim) + (ev - 1) * n_i)
    return U


def gaussian_rho(CW, cops):
    lam, V = np.linalg.eigh(CW)
    lam = np.clip(lam.real, 0.0, 1.0)
    dim = cops[0].shape[0]
    rho = np.eye(dim, dtype=complex)
    for i in range(len(cops)):
        d = sum(np.conj(V[j, i]) * cops[j] for j in range(len(cops)))
        rho = rho @ ((1 - lam[i]) * np.eye(dim)
                     + (2 * lam[i] - 1) * (d.conj().T @ d))
    return rho


def sector_projs(U):
    return [sum((1j ** (-q * j)) * np.linalg.matrix_power(U, j)
                for j in range(4)) / 4 for q in range(4)]


def lam_of(B, Efun):
    A = Efun(B)
    a, W = np.linalg.eigh((A + A.conj().T) / 2)
    keep = a > 1e-11 * max(a.max(), 1.0)
    Ws = W[:, keep] / np.sqrt(a[keep])
    M = Ws.conj().T @ B @ Ws
    top = float(np.linalg.eigvalsh((M + M.conj().T) / 2).max().real)
    return 1.0 / top


def onb_of(P):
    w, W = np.linalg.eigh((P + P.conj().T) / 2)
    return W[:, w > 0.5]


def quasi_basis(Ps):
    onbs = [onb_of(P) for P in Ps]
    dims = [o.shape[1] for o in onbs]
    vs = [np.eye(Ps[0].shape[0], dtype=complex)]
    for q in range(4):
        for qp in range(4):
            if q == qp or dims[q] == 0 or dims[qp] == 0:
                continue
            for a in range(dims[q]):
                for b in range(dims[qp]):
                    vs.append(np.outer(onbs[q][:, a], onbs[qp][:, b].conj())
                              / np.sqrt(dims[qp]))
    return vs


def rnd_elem(gens, rng, terms=6, maxdeg=3):
    dim = gens[0].shape[0]
    x = np.zeros((dim, dim), dtype=complex)
    for _ in range(terms):
        deg = rng.integers(1, maxdeg + 1)
        m = np.eye(dim, dtype=complex)
        for _ in range(deg):
            m = m @ gens[rng.integers(0, len(gens))]
        x += (rng.standard_normal() + 1j * rng.standard_normal()) * m
    return x


def main():
    rng = np.random.default_rng(20260804)
    print("phys_gnet_local_functor_probe -- net axioms for the mu4 seam net\n")

    # ================= F1a isotony + expectation compatibility ==========
    N = 48
    S = shift(N)
    H = np.linalg.matrix_power(S, N // 2)
    baseJ = [0, 1, 2, 3]
    ambJ = window(N, 0, 4)                       # 8 sites
    cops = jw_ops(len(ambJ))
    pos = {s: i for i, s in enumerate(ambJ)}
    HJ = H[np.ix_(ambJ, ambJ)]
    UJ = gamma_partial(HJ, list(range(len(ambJ))), cops)

    def EJ(x):
        return sum(np.linalg.matrix_power(UJ, j) @ x
                   @ np.linalg.matrix_power(UJ, j).conj().T
                   for j in range(4)) / 4

    for baseI in ([0, 1], [1, 2], [0, 1, 2]):
        ambI = window(N, baseI[0], len(baseI))
        idxI = [pos[s] for s in ambI]
        HI = H[np.ix_(ambI, ambI)]
        UI = gamma_partial(HI, idxI, cops)       # V_I = H on I-hat, 1 else

        def EI(x, UI=UI):
            return sum(np.linalg.matrix_power(UI, j) @ x
                       @ np.linalg.matrix_power(UI, j).conj().T
                       for j in range(4)) / 4

        gens = []
        for i in idxI:
            gens += [cops[i], cops[i].conj().T]
        batt = [cops[idxI[0]],
                cops[idxI[0]].conj().T @ cops[idxI[1]],
                cops[idxI[0]] @ cops[idxI[1]],
                cops[idxI[0]].conj().T @ cops[idxI[0]]]
        batt += [rnd_elem(gens, rng) for _ in range(4)]
        dev = max(np.abs(EJ(x) - EI(x)).max() for x in batt)
        check(f"F1a isotony: E_J|A(I-hat) == E_I exactly, base I = {baseI} "
              f"in J = {baseJ}", dev < TOL, f"max dev = {dev:.2e}")

    # ================= F1b graded locality ==============================
    baseI, baseK = [0, 1], [3, 4]
    ambU = window(N, 0, 5)                       # contains both, 10 sites
    copsU = jw_ops(10)
    posU = {s: i for i, s in enumerate(ambU)}
    iI = [posU[s] for s in window(N, 0, 2)]
    iK = [posU[s] for s in window(N, 3, 2)]
    # homogeneous battery: (element, parity)
    def hbatt(idx, cs):
        return [(cs[idx[0]], 1), (cs[idx[0]].conj().T, 1),
                (cs[idx[0]] @ cs[idx[1]], 0),
                (cs[idx[0]].conj().T @ cs[idx[1]], 0),
                (cs[idx[0]].conj().T @ cs[idx[1]] @ cs[idx[2]], 1)]
    dev, worst_ug = 0.0, 0.0
    for a, pa in hbatt(iI, copsU):
        for b, pb in hbatt(iK, copsU):
            g = a @ b - ((-1) ** (pa * pb)) * b @ a
            dev = max(dev, np.abs(g).max())
            if pa == 1 and pb == 1:
                worst_ug = max(worst_ug, np.abs(a @ b - b @ a).max())
    check("F1b graded locality: a b = (-1)^{|a||b|} b a exactly for "
          "disjoint base intervals {0,1}, {3,4}", dev < TOL,
          f"max dev = {dev:.2e}")
    check("MF1 fires: UNGRADED commutator of odd x odd does NOT vanish "
          "(fermionic grading is load-bearing)", worst_ug > 0.5,
          f"max |[odd,odd]| = {worst_ug:.3f}")

    # ================= F1c clock covariance =============================
    ok_all = True
    det = []
    for NN in (48, 96, 192):
        SS = shift(NN)
        LL = np.linalg.matrix_power(SS, NN // 12)
        HH = np.linalg.matrix_power(SS, NN // 2)
        CC = covariance(NN)
        step = NN // 12
        ok = (np.abs(LL @ HH - HH @ LL).max() < TOL
              and np.abs(LL @ CC - CC @ LL).max() < 1e-8)
        # window transport + expectation intertwining at one-particle level
        for (p, l) in ((0, 2), (7, 3)):
            w0, w1 = window(NN, p, l), window(NN, p + step, l)
            img = [np.argmax(np.abs(LL[:, j])) for j in w0]
            ok &= sorted(img) == sorted(w1)
            P0 = np.zeros((NN, NN))
            P0[w0, w0] = 1.0
            V0 = HH @ P0 + (np.eye(NN) - P0)
            P1 = np.zeros((NN, NN))
            P1[w1, w1] = 1.0
            V1 = HH @ P1 + (np.eye(NN) - P1)
            det.append(np.abs(LL @ V0 @ LL.conj().T - V1).max())
            ok &= det[-1] < TOL
        ok_all &= ok
    check("F1c clock covariance: [L,H] = 0, [L,C] = 0, L(window(I)) = "
          "window(I + N/12), and L V_I L^-1 = V_{I+N/12} exactly "
          "(one-particle/Bogoliubov level, N = 48/96/192)", ok_all,
          f"max intertwining dev = {max(det):.2e}")

    # ================= F2 local index ladder ============================
    print("\n-- F2: local index over N x length x position --")
    print(f"{'N':>4} {'l':>2} {'p':>3} {'sector dims':>18} {'lambda*':>13} "
          f"{'[rho,U]':>9} {'Ind':>7}")
    ok_lam, ok_ind, ok_anom, ok_tak = True, True, True, True
    for NN in (48, 96, 192):
        SS = shift(NN)
        HH = np.linalg.matrix_power(SS, NN // 2)
        CC = covariance(NN)
        for l in (1, 2, 3, 4):
            for p in (0, 7, NN // 2 - 1):
                win = window(NN, p, l)
                HW = HH[np.ix_(win, win)]
                CW = CC[np.ix_(win, win)]
                cs = jw_ops(2 * l)
                U = gamma_partial(HW, list(range(2 * l)), cs)
                Ps = sector_projs(U)
                dims = [int(round(np.trace(P).real)) for P in Ps]
                m = sum(1 for d in dims if d > 0)

                def E(x, Ps=Ps):
                    return sum(P @ x @ P for P in Ps)

                v = np.zeros(2 ** (2 * l), dtype=complex)
                for P in Ps:
                    o = onb_of(P)
                    if o.shape[1]:
                        v += o[:, 0]
                v /= np.linalg.norm(v)
                lam = lam_of(np.outer(v, v.conj()), E)
                rho = gaussian_rho(CW, cs)
                tak = np.abs(rho @ U - U @ rho).max()
                ind_s = "-"
                if l <= 3:
                    vs = quasi_basis(Ps)
                    ind = sum(vv @ vv.conj().T for vv in vs)
                    d_ind = np.abs(ind - m * np.eye(2 ** (2 * l))).max()
                    ind_s = f"{m}*1" if d_ind < 1e-7 else "BAD"
                    ok_ind &= d_ind < 1e-7 and ((m == 4) if l >= 2 else (m == 3))
                if l >= 2:
                    ok_lam &= abs(lam - 0.25) < 1e-8 and m == 4
                else:
                    ok_anom &= abs(lam - 1 / 3) < 1e-8 and m == 3
                ok_tak &= tak < 1e-8
                print(f"{NN:>4} {l:>2} {p:>3} {str(dims):>18} "
                      f"{lam:>13.10f} {tak:>9.1e} {ind_s:>7}")
    check("F2 local index: lambda* == 1/4 and 4 sectors for EVERY interval "
          "l >= 2, every position (incl. wrap), every N", ok_lam)
    check("F2 local index: Watatani quasi-basis Ind == m*1 scalar for every "
          "tested interval (4 for l >= 2)", ok_ind)
    check("F2 l = 1 anomaly stable at all positions/N: 3 sectors, "
          "lambda = 1/3 (single-site window cannot see |mu4| = 4)", ok_anom)
    check("F2 local Takesaki: [rho_W, U] = 0 on every interval", ok_tak)

    # MF4: Z2-only control (one instance)
    win = window(48, 0, 2)
    HW = np.linalg.matrix_power(shift(48), 24)[np.ix_(win, win)]
    cs = jw_ops(4)
    U = gamma_partial(HW, list(range(4)), cs)
    Ps = sector_projs(U)
    v = np.zeros(16, dtype=complex)
    for P in Ps:
        o = onb_of(P)
        if o.shape[1]:
            v += o[:, 0]
    v /= np.linalg.norm(v)

    def E2(x, U=U):
        U2 = U @ U
        return (x + U2 @ x @ U2.conj().T) / 2

    lam2 = lam_of(np.outer(v, v.conj()), E2)
    check("MF4 fires: Z2-only average gives lambda = 1/2 != 1/4 "
          "(the probe measures mu4, not mu2)", abs(lam2 - 0.5) < 1e-8,
          f"lambda_Z2 = {lam2:.10f}")

    # ================= MF2/MF3: the doubling is forced ==================
    NN = 48
    SS = shift(NN)
    Dk = np.linalg.matrix_power(SS, NN // 3)
    win = set(window(NN, 0, 2))
    img = {np.argmax(np.abs(Dk[:, j])) for j in win}
    check("MF2 fires: the deck mu3 average does NOT preserve the doubled "
          "window (Dk support leaves I-hat: mu3 would need triple windows)",
          not img.issubset(win), f"Dk(window) = {sorted(img)}")
    HH = np.linalg.matrix_power(SS, NN // 2)
    bad = [0, 1, 24, 26]                          # misaligned second arc
    imgH = {np.argmax(np.abs(HH[:, j])) for j in bad}
    check("MF3 fires: a misaligned window I u (I + N/2 + shift) is not "
          "H-stable (the exact doubling is forced)",
          not imgH.issubset(set(bad)), f"H(bad) = {sorted(imgH)}")

    # ================= F2R Ramond locality ==============================
    print("\n-- F2R: Ramond/Klein dressing locality --")
    l = 2
    deltas = {}
    ok_form = True
    for NN in (48, 96, 192):
        k0 = np.ones(NN) / np.sqrt(NN)            # R zero mode (delocalized)
        VD = np.eye(NN, dtype=complex) + (np.exp(-1j * np.pi / 2) - 1) \
            * np.outer(k0, k0.conj())
        win = window(NN, 0, l)
        Pw = np.zeros((NN, NN))
        Pw[win, win] = 1.0
        d = max(np.linalg.norm(((np.eye(NN) - Pw) @ (VD - np.eye(NN)))[:, j])
                for j in win)
        deltas[NN] = d
        pred = np.sqrt(2.0 / NN) * np.sqrt(1 - 2 * l / NN)
        ok_form &= abs(d - pred) < 1e-12
    r1 = np.log2(deltas[48] / deltas[96])
    r2 = np.log2(deltas[96] / deltas[192])
    check("F2R strict-locality NO-GO: dressing leakage delta(N) = "
          "sqrt(2/N) sqrt(1 - 2l/N) > 0 exactly (closed form verified)",
          ok_form and all(v > 0 for v in deltas.values()),
          f"delta = {deltas[48]:.6f}/{deltas[96]:.6f}/{deltas[192]:.6f}")
    check("F2R leakage rate == N^{-1/2} on the ladder (local footprint of "
          "the R defect vanishes)", abs(r1 - 0.5) < 0.05 and abs(r2 - 0.5) < 0.05,
          f"rates = {r1:.4f}, {r2:.4f}")
    ok = True
    for NN in (48, 96, 192):
        Sns = shift(NN, ns=True)
        j0 = NN // 2
        sg = np.where(np.arange(NN) < j0, -1.0, 1.0)
        Sc = np.diag(sg) @ Sns @ np.diag(sg)
        Sr_def = shift(NN, ns=False).copy()
        Sr_def[j0, j0 - 1] = -1.0                 # one bond defect at j0
        ok &= np.abs(Sc - Sr_def).max() < 1e-14
    check("F2R bond-defect identity: the HALF-LINE string sigma conjugates "
          "the NS shift exactly into the R shift with ONE bond defect "
          "(v679 'twist = bond defect' reproduced; the dressing is "
          "boundary-anchored, solitonic -- not interval-local)", ok)

    # ================= verdict ==========================================
    n_pass = sum(1 for _, ok in CHECKS if ok)
    all_ok = n_pass == len(CHECKS)
    verdict = "GNET-LOCAL-FUNCTOR-ALIVE" if all_ok else "PARTIAL-OR-DEAD"
    print(f"\n{n_pass}/{len(CHECKS)} checks pass -- VERDICT: {verdict}")
    print("""
typed consequence if ALIVE: I |-> (A(I-hat), E_I) is a genuine net of
CAR algebras with clock-covariant index-4 expectations on the mu4
quotient circle; the R sector is a SOLITONIC (half-line/bond) defect
with N^{-1/2} local footprint, not an interval-local operator --
exactly the DHR/solitonic structure the seam-Calderon identification
needs.  MISSING CONTINUUM THEOREMS (named, not claimed):
  (1) uniform bounds + tightness => GNS limit net (the v679 formal
      residual);
  (2) index continuity along the inductive limit (Pimsner-Popa /
      Longo heredity) => Jones index 4 of the limit inclusion;
  (3) identification of the limit fixed-point net with the Longo
      Q-system extension of GATE.METRIC.11 (simple-current direction);
  (4) solitonic sector construction from the bond defect (twisted
      DHR/Longo-Roberts) for the R sectors;
  (5) Haag duality/split for the quotient-circle net (index =
      statistical dimension reading).
No marker moves; exploration only.""")
    return 0 if all_ok else 1


run = main


if __name__ == "__main__":
    sys.exit(main())
Recorded source fingerprint

464d00726d312d88e9cfd07b8edaff2e38104fbbd9f0788be5cd4f26309753d7

Paper sections that cite this module

What this source index covers

The public registry includes 116 document views, 6,693 section records and 985 physical LaTeX sources. Active publication documents, research material and archives retain their recorded roles. This is source navigation, not a new semantic review or proof run.