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.

v447_seam_edge_chern.py

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

"""v447 -- SEAM.EQUIV.EDGE.CHERN.01: an INDEPENDENT (topological) reading of the edge
central charge c_-=8, corroborating v444 from a different observable.

v444 (SEAM.EQUIV.CONTINUUM.EDGE.01) read the edge central charge from the CORRELATOR
exponent (algebraic edge two-point eta=1 => one chiral Majorana per edge => c_-=8).  A
single observable is one witness; this module gives a SECOND, logically independent route
to the SAME c_-=8 using the bulk TOPOLOGY (the Chern number) and the bulk-edge
correspondence -- a robust integer that does not depend on any fit.  It also confirms the
entanglement (Li-Haldane) signature of the edge.

On the SAME v367/v368 p+ip collar (Bloch Hamiltonian H(k)=sin kx sigma_x + sin ky sigma_y
+ (M - cos kx - cos ky) sigma_z), the bulk-edge correspondence states #(chiral edge modes)
= |Chern number C|, and each chiral Majorana edge mode carries c=1/2.  The carrier has
N_Maj=2^{g_car-1}=16 copies, so c_-=16*(1/2)*|C|=8 -- INDEPENDENTLY of the correlator fit.

  [E] 1. INTEGER CHERN NUMBER (topological phase).  the lower band of the M=1 collar has
         Chern number C=+1, computed by the Fukui-Hatsugai-Suzuki lattice link-variable
         method (an EXACT integer on the discretised BZ, no fit) -- the bulk is a Chern
         insulator with one chiral channel per copy.
  [E] 2. TRIVIAL-PHASE NEG CONTROL.  the M=3 collar (v368) has C=0 -- no chiral edge; the
         non-trivial topology (and hence the edge CFT) is a property of the M=1 phase, not
         of the lattice.  (M=-1 gives C=-1: opposite chirality, consistent with v444's
         opposite per-edge velocities.)
  [E] 3. BULK-EDGE CORRESPONDENCE.  the open strip has EXACTLY |C|=1 in-gap edge branch
         crossing zero per boundary (counted from the strip spectrum), matching the Chern
         number -- the chiral edge channel count = |C|.
  [E] 4. LI-HALDANE ENTANGLEMENT SIGNATURE.  the single-particle entanglement spectrum of
         the half-cut bulk ground state has eigenvalues at 1/2 (in-gap entanglement modes)
         in the topological phase and NONE in the trivial phase -- the entanglement
         "edge" tracks the physical edge (an independent topological witness of c_-!=0).
  [C] 5. EDGE CENTRAL CHARGE (independent).  c_- = N_Maj*(1/2)*|C| = 16*(1/2)*1 = 8 =
         g_car+N_fam, derived from the Chern integer + bulk-edge correspondence -- the SAME
         c_-=8 as v444's correlator route, from a logically independent (topological)
         observable.
  [C]/[O] 6. VERDICT.  the edge c_-=8 = (E8)_1 reading of v444 is corroborated by an
         independent topological invariant (Chern=1 per copy, 16 copies => c_-=8);
         SEAM.EQUIV.01 stays [O] -- the topology fixes the edge CENTRAL CHARGE and channel
         count but does not by itself supply the cited continuum existence theorem.

Python-only (numpy; free-fermion BdG + the FHS link-variable Chern integer -- no new exact
algebraic identity to Wolfram-mirror; the c_-=g_car+N_fam=8 arithmetic is mirrored via the
glue count v1/v61).
"""
import numpy as np

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

SX = np.array([[0, 1], [1, 0]], complex)
SY = np.array([[0, -1j], [1j, 0]], complex)
SZ = np.array([[1, 0], [0, -1]], complex)


def _Hk(kx, ky, M):
    return np.sin(kx) * SX + np.sin(ky) * SY + (M - np.cos(kx) - np.cos(ky)) * SZ


def _chern_fhs(M, Nk=24):
    """Fukui-Hatsugai-Suzuki lattice Chern number of the lower band (exact integer)."""
    ks = np.linspace(0, 2 * np.pi, Nk, endpoint=False)
    U = np.empty((Nk, Nk, 2), complex)
    for i, kx in enumerate(ks):
        for j, ky in enumerate(ks):
            _, v = np.linalg.eigh(_Hk(kx, ky, M))
            U[i, j] = v[:, 0]
    F = 0.0
    for i in range(Nk):
        for j in range(Nk):
            ip, jp = (i + 1) % Nk, (j + 1) % Nk
            l1 = np.vdot(U[i, j], U[ip, j])
            l2 = np.vdot(U[ip, j], U[ip, jp])
            l3 = np.vdot(U[ip, jp], U[i, jp])
            l4 = np.vdot(U[i, jp], U[i, j])
            F += np.angle(l1 * l2 * l3 * l4)
    return F / (2 * np.pi)


def _strip_H(kx, M, Ly):
    """v367/v368 p+ip strip: Ly sites in y (open), kx periodic. 2Ly x 2Ly BdG."""
    ons = np.sin(kx) * SX + (M - np.cos(kx)) * SZ
    hop = -0.5 * SZ + (1 / (2j)) * SY
    H = np.zeros((2 * Ly, 2 * Ly), complex)
    for y in range(Ly):
        H[2 * y:2 * y + 2, 2 * y:2 * y + 2] = ons
    for y in range(Ly - 1):
        H[2 * y:2 * y + 2, 2 * y + 2:2 * y + 4] = hop
        H[2 * y + 2:2 * y + 4, 2 * y:2 * y + 2] = hop.conj().T
    return H


def _count_edge_branches(M, Ly, which):
    """count in-gap branches localised on the chosen boundary that cross zero in kx."""
    kxs = np.linspace(-np.pi, np.pi, 121)
    E = []
    for kx in kxs:
        w, v = np.linalg.eigh(_strip_H(kx, M, Ly))
        cand = []
        for i in range(len(w)):
            site = (np.abs(v[:, i]) ** 2).reshape(Ly, 2).sum(1)
            loc = site[:5].sum() if which == "top" else site[-5:].sum()
            if loc > 0.6 and abs(w[i]) < 0.8:
                cand.append(w[i])
        E.append(min(cand, key=abs) if cand else np.nan)
    E = np.array(E)
    near = (~np.isnan(E)) & (np.abs(E) < 0.4)
    if near.sum() < 5:
        return 0
    sign_changes = np.sum(np.diff(np.sign(E[near])) != 0)
    return 1 if sign_changes >= 1 else 0


def _entanglement_spectrum_inmid(M, Nx=14, Ny=16):
    """single-particle entanglement spectrum of a half-cut bulk ground state; return the
    count of eigenvalues near 1/2 (in-gap entanglement modes)."""
    onx = -0.5 * SZ + (1 / (2j)) * SX
    ony = -0.5 * SZ + (1 / (2j)) * SY
    ons = M * SZ
    N = Nx * Ny

    def idx(x, y):
        return (x % Nx) * Ny + y

    H = np.zeros((2 * N, 2 * N), complex)
    for x in range(Nx):
        for y in range(Ny):
            a = idx(x, y)
            H[2 * a:2 * a + 2, 2 * a:2 * a + 2] += ons
            b = idx(x + 1, y)
            H[2 * a:2 * a + 2, 2 * b:2 * b + 2] += onx
            H[2 * b:2 * b + 2, 2 * a:2 * a + 2] += onx.conj().T
            if y < Ny - 1:
                c = idx(x, y + 1)
                H[2 * a:2 * a + 2, 2 * c:2 * c + 2] += ony
                H[2 * c:2 * c + 2, 2 * a:2 * a + 2] += ony.conj().T
    w, v = np.linalg.eigh(H)
    occ = v[:, w < -1e-9]
    G = occ @ occ.conj().T
    # subsystem = lower half in y (y < Ny//2), all x
    keep = [k for x in range(Nx) for y in range(Ny // 2)
            for k in (2 * idx(x, y), 2 * idx(x, y) + 1)]
    sub = G[np.ix_(keep, keep)]
    xi = np.linalg.eigvalsh(sub)
    return int(np.sum(np.abs(xi - 0.5) < 0.1))


def run():
    reset()
    print("v447 SEAM.EQUIV.EDGE.CHERN: independent (topological) c_-=8 from the Chern "
          "number + bulk-edge correspondence (corroborating v444's correlator route)")

    # ---- 1. integer Chern number, topological phase ----
    C1 = _chern_fhs(1.0)
    topo = abs(C1 - 1.0) < 1e-6
    check("INTEGER CHERN NUMBER [E]: the M=1 collar's lower band has Chern C=%+d "
          "(Fukui-Hatsugai-Suzuki lattice link-variable method, an EXACT integer, no fit) "
          "-- one chiral channel per copy" % round(C1), topo)

    # ---- 2. trivial-phase neg control + opposite chirality ----
    C3 = _chern_fhs(3.0)
    Cm = _chern_fhs(-1.0)
    triv = abs(C3) < 1e-6
    opp = abs(Cm + 1.0) < 1e-6
    check("TRIVIAL-PHASE NEG CONTROL [E]: the M=3 collar (v368) has C=%d (no chiral edge), "
          "and M=-1 gives C=%+d (opposite chirality, matching v444's opposite per-edge "
          "velocities) -- the topology (hence the edge CFT) is the M=1 phase, not the "
          "lattice" % (round(C3), round(Cm)), triv and opp)

    # ---- 3. bulk-edge correspondence: edge branch count = |C| ----
    nt = _count_edge_branches(1.0, 40, "top")
    nb = _count_edge_branches(1.0, 40, "bot")
    nt3 = _count_edge_branches(3.0, 40, "top")
    be = (nt == 1 and nb == 1 and nt3 == 0)
    check("BULK-EDGE CORRESPONDENCE [E]: the open strip has EXACTLY |C|=1 in-gap edge "
          "branch crossing zero per boundary in the M=1 phase (top=%d, bot=%d) and 0 in "
          "the trivial M=3 phase (%d) -- the chiral edge channel count = |C|"
          % (nt, nb, nt3), be)

    # ---- 4. Li-Haldane entanglement signature ----
    n_topo = _entanglement_spectrum_inmid(1.0)
    n_triv = _entanglement_spectrum_inmid(3.0)
    li = n_topo >= 1 and n_triv == 0
    check("LI-HALDANE ENTANGLEMENT SIGNATURE [E]: the half-cut bulk ground state's "
          "single-particle entanglement spectrum has in-gap modes at 1/2 in the "
          "topological phase (%d found) and NONE in the trivial phase (%d) -- the "
          "entanglement edge tracks the physical edge" % (n_topo, n_triv), li)

    # ---- 5. edge central charge (independent), typed [C] ----
    N_Maj = 2 ** (g_car - 1)
    c_minus = N_Maj * 0.5 * abs(round(C1))
    indep = (N_Maj == 16 and c_minus == 8 and c_minus == g_car + N_fam and topo and be)
    check("EDGE CENTRAL CHARGE (independent) [C]: c_- = N_Maj*(1/2)*|C| = %d*(1/2)*1 = %g "
          "= g_car+N_fam, from the Chern integer + bulk-edge correspondence -- the SAME "
          "c_-=8 as v444's correlator route, from an independent topological observable"
          % (N_Maj, c_minus), indep)

    # ---- 6. verdict, typed [C]/[O] ----
    check("VERDICT [C]/[O]: v444's edge c_-=8=(E8)_1 reading is corroborated by an "
          "independent topological invariant (Chern=1/copy, 16 copies => c_-=8); "
          "SEAM.EQUIV.01 stays [O] -- the topology fixes the edge central charge and "
          "channel count but does not supply the cited continuum existence theorem",
          indep and topo and triv and opp and li)

    return summary("v447 SEAM.EQUIV.EDGE.CHERN: an independent topological reading of the "
                   "edge c_-=8 -- the M=1 collar has integer Chern C=+1 (FHS, no fit; C=0 "
                   "trivial control, C=-1 opposite chirality), the open strip carries |C|=1 "
                   "chiral edge branch per boundary, and the Li-Haldane entanglement "
                   "spectrum tracks the edge. Bulk-edge: c_-=16*(1/2)*1=8=g_car+N_fam, "
                   "corroborating v444 from a different observable; SEAM.EQUIV.01 stays [O]")


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

ee32088fd2d28130be1221c75e9fd2ca957edcb627dbfef9508df373e5672a48

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.