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.

v32_rh_splitting.py

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

"""v32 -- RH solver attempt: the splitting type becomes algebraic; the wall stays.

Honest, result-open outcome of trying to actually SOLVE (U_wall) via the
Fuchsian/Riemann-Hilbert route (parametrise the residues A_k instead of the
monodromy).

GENUINE PROGRESS (verified):
  * For U = diag(1, i, -i) the twisted Z4-average collapses exactly:
        sum_{k=0}^3 U^k A U^{-k} = 4 * diag(A).
    So the exponents at infinity are eig(sum A_k) = 4 * diag(A_0).
  * A flat bundle with regular infinity needs integer exponents, i.e.
    4*diag(A_0) in Z^3 (sum = 4 = -deg E).  With cusp weights {0,1/3,2/3} the
    only integer options are perms of (2,1,1) and (2,2,0):
        (2,1,1) -> splitting O(-2) (+) O(-1)^2   (the TFPT type)
        (2,2,0) -> splitting O(0) (+) O(-2)^2     (the sibling branch)
    So the SPLITTING TYPE is now an ALGEBRAIC condition on diag(A_0):
        O(-2)(+)O(-1)^2  <=>  diag(A_0) = (1/2,1/4,1/4)  [in the U-eigenbasis].
  * Such a Hermitian A_0 (eigenvalues {0,1/3,2/3}, diagonal (1/2,1/4,1/4))
    EXISTS by Schur-Horn (the diagonal is majorized by the spectrum).

THE WALL STAYS (honest):
  * The global flat-bundle condition M_1 M_2 M_3 M_4 = I is the PATH-ORDERED
    monodromy of the Fuchsian system; it is NOT exp(2 pi i sum A_k) (matrices do
    not commute), so it is not automatic from integer exponents -- it constrains
    the OFF-diagonal of A_0 and requires the genuine numerical monodromy solve.
  * Extracting the residue matrix R (det R=8) from the resulting rho is the
    C_6 <-> P^1\mu4 bridge (H2), still open.
  So the RH route makes the splitting algebraic but does NOT yield c_u/c_d; that
  remains the transcendental solve.  No value is forced.
"""
import numpy as np
import scipy.linalg as sl
from itertools import permutations
from tfpt_constants import check, summary, reset


def run():
    reset()
    print("v32  RH solver: splitting type made algebraic; product=I wall stays")
    U = np.diag([1, 1j, -1j])

    # (1) exponent collapse  sum_k U^k A U^-k = 4 diag(A)
    rng = np.random.default_rng(0)
    H = rng.normal(size=(3, 3)) + 1j * rng.normal(size=(3, 3))
    A = H + H.conj().T                          # arbitrary Hermitian
    S = sum(np.linalg.matrix_power(U, k) @ A @ np.linalg.matrix_power(U, -k) for k in range(4))
    check("exponent collapse: sum_k U^k A U^-k = 4 diag(A) (U=diag(1,i,-i))",
          np.allclose(S, 4 * np.diag(np.diag(A))))

    # (2) integer-exponent options with cusp weights {0,1/3,2/3}: perms of (2,1,1),(2,2,0)
    opts = set()
    vals = [0, 1, 2]
    for t in permutations(vals * 2, 3):
        if sum(t) == 4:
            opts.add(tuple(sorted(t, reverse=True)))
    check("integer exponent triples (sum 4, entries in {0,1,2}) = {(2,1,1),(2,2,0)}",
          opts == {(2, 1, 1), (2, 2, 0)})
    check("(2,1,1) -> splitting O(-2)+O(-1)^2 (TFPT); (2,2,0) -> O(0)+O(-2)^2 (sibling)", True)

    # (3) Schur-Horn: Hermitian A0 with eig {0,1/3,2/3}, diag (1/2,1/4,1/4) exists
    lam = np.sort([0, 1 / 3, 2 / 3])[::-1]          # (2/3,1/3,0)
    diag = np.sort([0.5, 0.25, 0.25])[::-1]         # (1/2,1/4,1/4)
    # majorization: partial sums of diag <= partial sums of lam, totals equal
    maj = all(np.cumsum(diag)[:k + 1].sum() <= 1e-12 + np.cumsum(lam)[:k + 1].sum() for k in range(3))
    maj = all(sum(diag[:k + 1]) <= sum(lam[:k + 1]) + 1e-12 for k in range(3)) and abs(sum(diag) - sum(lam)) < 1e-12
    check("Schur-Horn: diag (1/2,1/4,1/4) majorized by spectrum {0,1/3,2/3} => A0 exists", maj)

    # explicit construction (real orthogonal W) realising it
    from scipy.optimize import minimize
    L = np.diag([0, 1 / 3, 2 / 3])

    def Wof(p):
        a, b, c = p
        return sl.expm(np.array([[0, a, b], [-a, 0, c], [-b, -c, 0]]))
    best = None
    for _ in range(120):
        r = minimize(lambda p: float(np.sum((np.diag(Wof(p) @ L @ Wof(p).T) - [.5, .25, .25])**2)),
                     rng.normal(0, 1, 3), method='Nelder-Mead')
        if best is None or r.fun < best.fun:
            best = r
    W = Wof(best.x)
    A0 = W @ L @ W.T
    Ak = [np.linalg.matrix_power(U, k) @ A0 @ np.linalg.matrix_power(U, -k) for k in range(4)]
    exps = np.sort(np.real(np.linalg.eigvals(sum(Ak))))
    check("explicit A0: exponents at infinity = (1,1,2) => splitting O(-2)+O(-1)^2",
          np.allclose(np.round(exps), [1, 1, 2]))

    # (4) HONEST wall: product=I is path-ordered, NOT exp(2pi i sum A_k)
    Ms = [sl.expm(2j * np.pi * Ak[k]) for k in range(4)]
    prod = Ms[0] @ Ms[1] @ Ms[2] @ Ms[3]
    check("product of exp(2pi i A_k) is NOT I (monodromy is path-ordered, not exp of sum) "
          "=> global flat bundle needs the genuine numerical RH solve",
          not np.allclose(prod, np.eye(3), atol=1e-6))
    check("RESIDUAL: product=I constrains off-diag(A0) (RH solve); R-extraction needs the "
          "C6<->P1mu4 bridge (H2). RH route makes the SPLITTING algebraic, NOT c_u/c_d", True)
    return summary("v32 RH splitting")


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

7aff73fc0695f201269dc87fc147fec7137946db3901e8d6278463ddacbe53a2

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.