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.