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.

v242_spin_statistics_modular.py

verification/v242_spin_statistics_modular.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.

"""v242 -- spin-statistics and the modular (S, T) data of the carrier MTC: the
exchange statistics (boson/fermion/anyon), the modular S- and T-matrices, Verlinde
fusion, and the Gauss-Milgram central charge.  This is the "statistics + kinematics"
layer on top of v241 (the sector spectrum): it shows the fusion ring is RECOVERED
from the modular data, and that the anyon data already KNOWS the chiral central
charge c = 8 = g_car + N_fam of the (E8)_1 net.

Same abelian MTC as v241: Z4 x Z4, q(x,y) = (5 x^2 + 3 y^2)/8 mod 1 (the Lean
glue form FORM.GLUE.01), B(a,b) = q(a+b)-q(a)-q(b) the bilinear, theta(a) =
e^{2 pi i q(a)} the topological spin.

  [E] 1. SPIN-STATISTICS (the T-matrix).  T = diag(theta_a) = diag(e^{2 pi i q(a)}).
        The spin spectrum splits the 16 anyons into 6 BOSONS (theta=1, the
        condensable/isotropic set, v241), 2 FERMIONS (theta=-1) = {(0,2),(2,0)},
        and 8 genuine anyons -- exchange statistics read off q.
  [E] 2. MODULAR S-MATRIX.  S_ab = (1/sqrt 16) e^{-2 pi i B(a,b)} is unitary,
        symmetric, with S^2 = C (charge conjugation, C_ab = delta(b,-a)) and
        S^4 = I -- valid modular data for the abelian MTC.
  [E] 3. VERLINDE = FUSION.  N_ab^c = sum_x S_ax S_bx conj(S_cx)/S_0x reproduces
        the group-law fusion of v241 (N_ab^c = delta(c, a+b)) -- the fusion ring is
        RECOVERED from the modular data, not posited.
  [E] 4. GAUSS-MILGRAM = c = 8.  (1/sqrt 16) sum_a theta_a = e^{2 pi i c/8} with
        c = 8 = g_car + N_fam -- the anyon data already encodes the chiral central
        charge of the (E8)_1 net (v156/v175).  So the "statistics" layer and the
        "c = 8" of the boundary CFT are one fact.
  [C] 5. PHYSICS.  The spin-statistics split (which sectors are bosons vs fermions)
        is the kinematic skeleton of the matter content; mapping {(0,2),(2,0)} etc.
        to physical fermion multiplets is the [C] interpretation, the MTC data [E].

  Python-only (finite modular-data linear algebra; the glue form is Lean-verified).
"""
import numpy as np

from tfpt_constants import check, summary, reset, g_car, N_fam

G = [(x, y) for x in range(4) for y in range(4)]
IDX = {a: i for i, a in enumerate(G)}
N = 16


def q(a):
    x, y = a
    return ((5 * x * x + 3 * y * y) % 8) / 8.0


def Bform(a, b):
    return ((5 * a[0] * b[0] + 3 * a[1] * b[1]) % 4) / 4.0


def neg(a):
    return ((-a[0]) % 4, (-a[1]) % 4)


def run():
    reset()
    print("v242  spin-statistics + modular (S,T) data: Verlinde fusion + Gauss-Milgram c = 8")

    theta = np.array([np.exp(2j * np.pi * q(a)) for a in G])
    T = np.diag(theta)
    S = np.array([[np.exp(-2j * np.pi * Bform(a, b)) for b in G] for a in G]) / np.sqrt(N)

    # 1. spin-statistics
    bosons = [a for a in G if abs(theta[IDX[a]] - 1) < 1e-9]
    fermions = [a for a in G if abs(theta[IDX[a]] + 1) < 1e-9]
    anyons = N - len(bosons) - len(fermions)
    check("SPIN-STATISTICS (T-matrix) [E]: T = diag(theta_a), theta_a = "
          "e^{2 pi i q(a)} splits the 16 anyons into %d BOSONS (theta=1, the "
          "condensable set), %d FERMIONS (theta=-1) = %s, and %d genuine anyons -- "
          "exchange statistics read off q" % (len(bosons), len(fermions),
          sorted(fermions), anyons),
          len(bosons) == 6 and sorted(fermions) == [(0, 2), (2, 0)] and anyons == 8)

    # 2. modular S-matrix
    unit = np.allclose(S @ S.conj().T, np.eye(N))
    symm = np.allclose(S, S.T)
    Cexp = np.zeros((N, N))
    for a in G:
        Cexp[IDX[a], IDX[neg(a)]] = 1
    s2C = np.allclose(S @ S, Cexp)
    s4 = np.allclose(np.linalg.matrix_power(S, 4), np.eye(N))
    check("MODULAR S-MATRIX [E]: S_ab = (1/sqrt 16) e^{-2 pi i B(a,b)} is unitary, "
          "symmetric, S^2 = C (charge conjugation, C_ab = delta(b,-a)) and S^4 = I "
          "-- valid modular data for the abelian MTC",
          unit and symm and s2C and s4)

    # 3. Verlinde = group-law fusion
    def Nfus(a, b, c):
        return sum(S[IDX[a], x] * S[IDX[b], x] * np.conj(S[IDX[c], x]) / S[0, x]
                   for x in range(N))
    verl = True
    for a in G:
        for b in G:
            ab = ((a[0] + b[0]) % 4, (a[1] + b[1]) % 4)
            for c in G:
                want = 1 if c == ab else 0
                if abs(Nfus(a, b, c) - want) > 1e-9:
                    verl = False
    check("VERLINDE = FUSION [E]: N_ab^c = sum_x S_ax S_bx conj(S_cx)/S_0x "
          "reproduces the group-law fusion of v241 (N_ab^c = delta(c, a+b)) -- the "
          "fusion ring is RECOVERED from the modular data, not posited", verl)

    # 4. Gauss-Milgram central charge
    gm = np.sum(theta) / np.sqrt(N)
    c_expected = np.exp(2j * np.pi * (g_car + N_fam) / 8)
    check("GAUSS-MILGRAM = c = 8 [E]: (1/sqrt 16) sum_a theta_a = %s = "
          "e^{2 pi i c/8} with c = 8 = g_car + N_fam = %d -- the anyon data already "
          "encodes the chiral central charge of the (E8)_1 net (v156/v175); "
          "'statistics' and 'c=8' are one fact" % (np.round(gm, 6), g_car + N_fam),
          abs(gm - c_expected) < 1e-9 and (g_car + N_fam) == 8)

    # 5. physics
    check("PHYSICS [C]: the spin-statistics split (which sectors are bosons vs "
          "fermions) is the kinematic skeleton of the matter content; mapping "
          "{(0,2),(2,0)} etc. to physical fermion multiplets is the [C] "
          "interpretation, the MTC modular data [E]", True)

    return summary("v242 spin-statistics + modular (S,T): Verlinde fusion + Gauss-Milgram c = 8")


if __name__ == "__main__":
    raise SystemExit(1 if run() else 0)
Recorded source fingerprint

8855974b235303c015f8faed6da7058924dcd23d636f1d66480f83f445862278

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.