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.

v100_numerology_null_mc.py

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

"""v100 -- the numerology null test: look-elsewhere-corrected hit statistics.

Executes the long-standing TODO from the legacy CMB paper ("Numerology grammar
test: enumerate every reasonable algebraic combination of the primitives;
count how many also land within the observed windows") as a machine check of
the active suite.  It answers the only statistically meaningful form of the
question "is TFPT numerology?":

    Under an EXPLICIT null model -- random formulas drawn from a declared
    grammar that is at least as expressive as TFPT's own formula shapes,
    complexity-matched per observable -- what is the probability that a
    random "theory" reproduces the TFPT data scorecard?

Four layers:

  (A) EXACT LOOK-ELSEWHERE CENSUS.  For each scored observable the full
      grammar class is counted (no sampling): hit density p_i = (#expressions
      inside the observable's honest data window) / (#expressions inside the
      declared two-decade plausibility window).  The joint formula-fishing
      probability is prod p_i.  Robustness: the census is repeated with the
      coefficient bound and the plausibility window varied; the answer must
      be stable in order of magnitude.
  (B) MONTE CARLO over random dial settings (deterministic seeds): random
      rational coefficients inside TFPT's own formula skeletons -- with the
      seed phi0 fixed (MC-A) and with a random seed phi* drawn log-uniformly
      per pseudo-theory (MC-B).  Reported: hit-count distribution, maximum
      hits over all trials (TFPT scores 13/13 by construction).
  (C) NEGATIVE CONTROLS (the test must have power): perturbing the seed phi0
      by 1%/10%/30% collapses TFPT's own hit count; shuffling which measured
      value is assigned to which formula collapses it to ~0.
  (D) THE ALPHA CUBIC CLASS: all complexity-matched variants of the F_U1
      fixed-point equation (coefficients, M, transport exponent, resolvent
      power) are root-solved; only the TFPT equation lands within the
      achieved 4e-8 window of CODATA alpha^-1 -> p_alpha <= hits/N_class.

HONEST SCOPE (do not oversell):
  * No statistical test can give absolute certainty; the result is a
    look-elsewhere-corrected null probability CONDITIONAL on the declared
    grammar.  The grammar is published in full in the CONFIG block below and
    provably contains every TFPT formula it scores (fairness checks).
  * Data windows are conservative: each window is the MAXIMUM of TFPT's
    achieved deviation, the documented experimental sigma, the quote
    resolution of the documented central value, and (for quark ratios) the
    5% scheme-spread tolerance of v18.  Tension observables (theta13, s23,
    delta_CKM, m_mu/m_tau, beta) therefore enter with their honest LARGE
    windows and contribute almost nothing to the significance.
  * Measured centrals are exactly the ones already documented in this repo
    (predictions_frozen.json "experiment" fields, v62, v88, v18, tfpt_2
    tables); nothing is imported fresh for this test.
  * This is a numerical/statistical module (floats, RNG, numpy); it is
    Python-only by the suite's convention (like v62/v64/v65) and flagged as
    such in the Wolfram README.  Complementary to v84 (pre-registration
    freeze): v84 prevents future look-elsewhere drift, v100 quantifies the
    retrospective look-elsewhere burden.
"""
import json
import math
import os
import random
from fractions import Fraction

import numpy as np
import mpmath as mp

from tfpt_constants import check, summary, reset, phi0 as phi0_mp, c3 as c3_mp

# ---------------------------------------------------------------- CONFIG ----
PHI0 = float(phi0_mp)                    # retained seed (from c3 = 1/(8 pi))
LAM = math.sqrt(PHI0 * (1.0 - PHI0))     # Cabibbo lambda_C(phi0)
PI = math.pi
C3 = float(c3_mp)

# one-term grammar G1: value = (p/q) * phi^a * lam^c * (1+lam)^d * pi^b * e^(u/w)
G1_PQ_MAX = 130          # covers TFPT's largest coefficient 55/117
G1_A = range(-2, 3)      # phi exponent
G1_C = range(-3, 4)      # lambda exponent (s13 needs lam^3)
G1_D = range(-1, 2)      # (1+lam) exponent (s23 needs -1)
G1_B = range(-1, 2)      # pi exponent (beta needs -1)
G1_EXP_NUM, G1_EXP_DEN = 6, 6   # e^(u/w), |u|<=6, w<=6 (theta13 needs -5/6)

# two-term grammar G2: value = (p1/q1)*B1 +/- (p2/q2)*B2,
#   B = phi^a * lam^c * pi^b with a,c in 0..2, b in -1..1, coefficients <= 12
G2_PQ_MAX = 12
G2_A = range(0, 3)
G2_C = range(0, 3)
G2_B = range(-1, 2)

DECADE = 10.0            # plausibility window [m/DECADE, m*DECADE]
MC_TRIALS = 200_000
RNG_SEED = 20260611


def _half_ulp(s):
    """Half a unit-in-last-place of a documented decimal quote string."""
    if "." not in s:
        return 0.5
    return 0.5 * 10.0 ** (-len(s.split(".")[1]))


# ------------------------------------------------------- scored observables ----
# Measured centrals/sigmas are the repo-documented ones (see docstring).
# fields: id, predict(phi,lam), measured-quote, sigma (or None), extra window
# floor (quark scheme spread, v18), arity (1 or 2), TFPT G1/G2 encoding.
def _obs_table():
    return [
        # ---- two-term shapes (G2) ----
        dict(id="SIN2_THETA12", arity=2, quote="0.307", sigma=0.012, floor=0.0,
             pred=lambda f, l: 1.0 / 3.0 - f / 2.0,
             g2=((1, 3, 0, 0, 0), -1, (1, 2, 1, 0, 0)),
             src="NuFIT 6.0 (v62)"),
        dict(id="OMEGA_B", arity=2, quote="0.0493", sigma=None, floor=0.0,
             pred=lambda f, l: f - (f / 4.0) / PI,
             g2=((1, 1, 1, 0, 0), -1, (1, 4, 1, 0, -1)),
             src="Planck 2018 (registry)"),
        dict(id="DELTA_CKM_RAD", arity=2, quote="1.146681", sigma=3.0 * PI / 180.0,
             floor=0.0, cap=2.0 * PI,
             pred=lambda f, l: PI / 3.0 + 3.0 * l * l,
             g2=((1, 3, 0, 0, 1), +1, (3, 1, 0, 2, 0)),
             src="gamma_PDG 65.7 +- 3.0 deg (v88)"),
        # ---- one-term shapes (G1) ----
        dict(id="SIN2_THETA13", arity=1, quote="0.02195", sigma=0.00058, floor=0.0,
             pred=lambda f, l: f * math.exp(-5.0 / 6.0),
             g1=(1, 1, 1, 0, 0, 0, -5, 6), src="NuFIT 6.0 (v62)"),
        dict(id="BETA_RAD", arity=1, quote="0.00375246", sigma=0.074 * PI / 180.0,
             floor=0.0,
             pred=lambda f, l: f / (4.0 * PI),
             g1=(1, 4, 1, 0, 0, -1, 0, 1), src="ACT DR6 0.215+-0.074 deg (v62)"),
        dict(id="LAMBDA_C", arity=1, quote="0.2245", sigma=None, floor=0.0,
             pred=lambda f, l: l,
             g1=(1, 1, 0, 1, 0, 0, 0, 1), src="PDG (tfpt_2 CKM table)"),
        dict(id="S23_CKM", arity=1, quote="0.041", sigma=None, floor=0.0,
             pred=lambda f, l: f / (1.0 + l),
             g1=(1, 1, 1, 0, -1, 0, 0, 1), src="PDG ~0.041 (registry)"),
        dict(id="S13_CKM", arity=1, quote="0.0038", sigma=None, floor=0.0,
             pred=lambda f, l: l ** 3 / 3.0,
             g1=(1, 3, 0, 3, 0, 0, 0, 1), src="PDG ~0.0038 (registry)"),
        dict(id="MMU_OVER_MTAU", arity=1, quote="0.05946", sigma=None, floor=0.0,
             pred=lambda f, l: 8.0 / 7.0 * f,
             g1=(8, 7, 1, 0, 0, 0, 0, 1), src="PDG (registry)"),
        dict(id="ME_OVER_MMU", arity=1, quote="0.004836", sigma=None, floor=0.0,
             pred=lambda f, l: 12.0 / 7.0 * f * f,
             g1=(12, 7, 2, 0, 0, 0, 0, 1), src="PDG (registry)"),
        dict(id="MU_OVER_MD", arity=1, quote="0.47", sigma=None, floor=0.05,
             pred=lambda f, l: 55.0 / 117.0,
             g1=(55, 117, 0, 0, 0, 0, 0, 1), src="lattice/FLAG ~0.47 (v18 tol 5%)"),
        dict(id="MC_OVER_MS", arity=1, quote="13.6", sigma=None, floor=0.05,
             pred=lambda f, l: 34.0 / 47.0 / f,
             g1=(34, 47, -1, 0, 0, 0, 0, 1), src="PDG MSbar ~13.6 (v18 tol 5%)"),
        dict(id="MT_OVER_MB", arity=1, quote="41", sigma=None, floor=0.05,
             pred=lambda f, l: 3.0 / 26.0 / (f * f),
             g1=(3, 26, -2, 0, 0, 0, 0, 1), src="PDG ~41 (registry)"),
    ]


def build_observables():
    """Attach measured central m and conservative relative window w to each."""
    obs = _obs_table()
    for o in obs:
        m = float(o["quote"])
        pred = o["pred"](PHI0, LAM)
        achieved = abs(pred - m) / m
        sig = (o["sigma"] / m) if o["sigma"] else 0.0
        res = _half_ulp(o["quote"]) / m
        o["m"] = m
        o["pred_val"] = pred
        o["window"] = max(achieved, sig, res, o["floor"])
    return obs


# ------------------------------------------------ layer A: exact census ----
def g1_structures(phi, lam):
    """All G1 structure factors F = phi^a lam^c (1+lam)^d pi^b e^(u/w)."""
    exps = [(0, 1)] + [(u, w) for w in range(1, G1_EXP_DEN + 1)
                       for u in range(-G1_EXP_NUM, G1_EXP_NUM + 1)
                       if u != 0 and math.gcd(abs(u), w) == 1]
    fs = []
    for a in G1_A:
        for c in G1_C:
            for d in G1_D:
                for b in G1_B:
                    base = phi ** a * lam ** c * (1 + lam) ** d * PI ** b
                    for (u, w) in exps:
                        fs.append(base * math.exp(u / w))
    return np.array(fs)


def census_one_term(F, m, window, decade, pq_max, cap=None):
    """Count G1 expressions (p/q)*F inside the hit / plausibility windows."""
    lo_h, hi_h = m * (1 - window), m * (1 + window)
    lo_d, hi_d = m / decade, m * decade
    if cap is not None:
        hi_d = min(hi_d, cap)
    hits = dec = 0
    for q in range(1, pq_max + 1):
        for lo, hi, acc in ((lo_h, hi_h, "h"), (lo_d, hi_d, "d")):
            plo = np.ceil(q * lo / F)
            phi_ = np.floor(q * hi / F)
            cnt = np.clip(np.minimum(phi_, pq_max) - np.maximum(plo, 1) + 1,
                          0, None).sum()
            if acc == "h":
                hits += cnt
            else:
                dec += cnt
    return float(hits), float(dec)


def g2_terms(phi, lam, pq_max):
    """All G2 term values r*B (sorted numpy array)."""
    rats = [p / q for q in range(1, pq_max + 1) for p in range(1, pq_max + 1)
            if math.gcd(p, q) == 1]
    vals = []
    for a in G2_A:
        for c in G2_C:
            for b in G2_B:
                B = phi ** a * lam ** c * PI ** b
                vals.extend(r * B for r in rats)
    return np.sort(np.array(vals))


def census_two_term(T, m, window, decade, cap=None):
    """Count G2 expressions t1 +/- t2 inside the hit / plausibility windows."""
    lo_h, hi_h = m * (1 - window), m * (1 + window)
    lo_d, hi_d = m / decade, m * decade
    if cap is not None:
        hi_d = min(hi_d, cap)

    def count(lo, hi):
        # plus branch: t2 in [lo - t1, hi - t1]
        n = (np.searchsorted(T, hi - T, side="right")
             - np.searchsorted(T, lo - T, side="left")).sum()
        # minus branch: t2 in [t1 - hi, t1 - lo]
        n += (np.searchsorted(T, T - lo, side="right")
              - np.searchsorted(T, T - hi, side="left")).sum()
        return float(n)

    return count(lo_h, hi_h), count(lo_d, hi_d)


def run_census(obs, pq1, pq2, decade):
    F = g1_structures(PHI0, LAM)
    T = g2_terms(PHI0, LAM, pq2)
    out = {}
    for o in obs:
        cap = o.get("cap")
        if o["arity"] == 1:
            h, d = census_one_term(F, o["m"], o["window"], decade, pq1, cap)
        else:
            h, d = census_two_term(T, o["m"], o["window"], decade, cap)
        out[o["id"]] = (h, d, h / d if d else 1.0)
    return out


# ----------------------------------------- layer B: Monte Carlo pseudo-theories ----
def _rat(rng, pmax):
    return (int(rng.random() * pmax) + 1) / (int(rng.random() * pmax) + 1)


def random_theory_values(rng, phi, lam):
    """Random rational dials inside TFPT's own 13 formula skeletons."""
    eu = int(rng.random() * (2 * G1_EXP_NUM + 1)) - G1_EXP_NUM
    ew = int(rng.random() * G1_EXP_DEN) + 1
    return [
        _rat(rng, 12) - _rat(rng, 12) * phi,                  # theta12
        _rat(rng, 12) * phi - _rat(rng, 12) * phi / PI,       # Omega_b
        _rat(rng, 12) * PI + _rat(rng, 12) * lam * lam,       # delta_CKM
        _rat(rng, 12) * phi * math.exp(eu / ew),              # theta13
        _rat(rng, 12) * phi / PI,                             # beta (rad)
        _rat(rng, 12) * lam,                                  # lambda_C
        _rat(rng, 12) * phi / (1.0 + lam),                    # s23
        _rat(rng, 12) * lam ** 3,                             # s13
        _rat(rng, 12) * phi,                                  # mmu/mtau
        _rat(rng, 12) * phi * phi,                            # me/mmu
        _rat(rng, 130),                                       # mu/md
        _rat(rng, 130) / phi,                                 # mc/ms
        _rat(rng, 130) / (phi * phi),                         # mt/mb
    ]


MC_ORDER = ["SIN2_THETA12", "OMEGA_B", "DELTA_CKM_RAD", "SIN2_THETA13",
            "BETA_RAD", "LAMBDA_C", "S23_CKM", "S13_CKM", "MMU_OVER_MTAU",
            "ME_OVER_MMU", "MU_OVER_MD", "MC_OVER_MS", "MT_OVER_MB"]


def hit_count(values, obs_by_id):
    k = 0
    for oid, v in zip(MC_ORDER, values):
        o = obs_by_id[oid]
        if abs(v - o["m"]) <= o["window"] * o["m"]:
            k += 1
    return k


def run_mc(obs_by_id, trials, seed, random_seed_constant):
    rng = random.Random(seed)
    counts = [0] * 14
    for _ in range(trials):
        if random_seed_constant:
            phi = math.exp(rng.random() * (math.log(0.5) - math.log(0.005))
                           + math.log(0.005))
        else:
            phi = PHI0
        lam = math.sqrt(phi * (1.0 - phi))
        counts[hit_count(random_theory_values(rng, phi, lam), obs_by_id)] += 1
    return counts


# --------------------------------------------- layer D: the alpha cubic class ----
def alpha_class_census():
    """Root-solve every complexity-matched F_U1 variant; count CODATA hits.

    TFPT instance: r1=2, r2=4/5, M=41, transport e^(-2a), resolvent power -5/4.
    """
    pb = 1.0 / (6.0 * PI)
    dt = 48.0 * C3 ** 4
    r1s = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
    r2s = np.array(sorted({float(Fraction(p, q))
                           for p in range(1, 11) for q in range(1, 6)}))
    Ms = np.arange(1, 61, dtype=float)
    ts = np.array([1.0, 2.0, 3.0])
    pws = np.array([-1.25, -1.0, -0.5])

    R1, R2, M, T, PW = np.meshgrid(r1s, r2s, Ms, ts, pws, indexing="ij")
    R1, R2, M, T, PW = (x.ravel() for x in (R1, R2, M, T, PW))
    n = R1.size

    lo = np.full(n, 1e-4)
    hi = np.full(n, 0.2)

    def f(a):
        Q = dt * np.exp(-T * a)
        ps = pb + Q * (1.0 - Q) ** PW
        return a ** 3 - R1 * C3 ** 3 * a ** 2 - R2 * C3 ** 6 * M * np.log(1.0 / ps)

    flo = f(lo)
    for _ in range(70):
        mid = 0.5 * (lo + hi)
        fm = f(mid)
        left = (flo * fm) <= 0
        hi = np.where(left, mid, hi)
        lo = np.where(left, lo, mid)
        flo = np.where(left, flo, fm)
    roots = 0.5 * (lo + hi)
    ainv = 1.0 / roots

    codata = 137.035999177          # CODATA 2022 (v62)
    window = 4.0e-8                 # TFPT's achieved |Delta(alpha^-1)|, >= sigma
    hits = int(np.sum(np.abs(ainv - codata) <= window))

    # fairness: the TFPT combination is in the grid and reproduces the root
    sel = ((R1 == 2.0) & (np.abs(R2 - 0.8) < 1e-12) & (M == 41.0)
           & (T == 2.0) & (PW == -1.25))
    tfpt_ainv = float(ainv[sel][0])
    return n, hits, tfpt_ainv


# ----------------------------------------------------------------- driver ----
def run():
    reset()
    print("v100 numerology null test (look-elsewhere census + MC + controls)")

    obs = build_observables()
    obs_by_id = {o["id"]: o for o in obs}

    # (0) registry lock: the scored predictions are the frozen ones
    reg_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                            "predictions_frozen.json")
    with open(reg_path) as fh:
        reg = {e["id"]: e["frozen_value"] for e in json.load(fh)["predictions"]}
    reg_map = {"SIN2_THETA12": "SIN2_THETA12_SEED", "BETA_RAD": None,
               "DELTA_CKM_RAD": "DELTA_CKM_RAD"}
    ok_reg = True
    for o in obs:
        rid = reg_map.get(o["id"], o["id"])
        if rid is None:
            continue
        ok_reg &= abs(o["pred_val"] - float(reg[rid])) <= 1e-9 * abs(float(reg[rid]))
    check("scored predictions == frozen registry values (v84 lock, 13 obs)", ok_reg)

    # (A) exact census at the declared budgets
    cen = run_census(obs, G1_PQ_MAX, G2_PQ_MAX, DECADE)
    log10_joint = 0.0
    print("  --- per-observable hit densities (exact census) ---")
    for o in obs:
        h, d, p = cen[o["id"]]
        log10_joint += math.log10(p)
        print(f"    {o['id']:<16} window {o['window']:9.2e}  "
              f"p_i = {h:>9.0f}/{d:>11.0f} = {p:9.3e}   [{o['src']}]")
    print(f"  joint formula-fishing probability prod p_i = 1e{log10_joint:.2f}")

    check("fairness: every TFPT formula is inside its declared grammar class "
          "(13/13 reconstruct)", fairness_reconstruct(obs))
    check("every per-observable density p_i < 1 (the class never trivialises)",
          all(cen[o["id"]][2] < 1.0 for o in obs))
    check("joint null probability prod p_i < 1e-12 (look-elsewhere corrected)",
          log10_joint < -12.0)

    # (A') robustness: budget and window variations stay in the same regime
    var = []
    for pq1, pq2, dec in ((80, 8, 10.0), (200, 16, 10.0),
                          (130, 12, 5.0), (130, 12, 20.0)):
        c2 = run_census(obs, pq1, pq2, dec)
        var.append(sum(math.log10(c2[o["id"]][2]) for o in obs))
    spread = max(abs(v - log10_joint) for v in var)
    print(f"  robustness: log10 joint under budget/window variation: "
          f"{[f'{v:.1f}' for v in var]} (max shift {spread:.2f} dex)")
    check("census robust: coefficient bound 80..200 and window 5x..20x shift "
          "log10(prod p_i) by < 3 dex", spread < 3.0)

    # (B) Monte Carlo pseudo-theories (deterministic seeds)
    cA = run_mc(obs_by_id, MC_TRIALS, RNG_SEED, random_seed_constant=False)
    cB = run_mc(obs_by_id, MC_TRIALS, RNG_SEED + 1, random_seed_constant=True)
    maxA = max(k for k, n in enumerate(cA) if n)
    maxB = max(k for k, n in enumerate(cB) if n)
    meanA = sum(k * n for k, n in enumerate(cA)) / MC_TRIALS
    meanB = sum(k * n for k, n in enumerate(cB)) / MC_TRIALS
    print(f"  MC-A (phi0 fixed, random dials): mean K = {meanA:.3f}, "
          f"max K = {maxA}/13 over {MC_TRIALS} trials; dist {cA[:maxA+1]}")
    print(f"  MC-B (random seed phi*):         mean K = {meanB:.3f}, "
          f"max K = {maxB}/13 over {MC_TRIALS} trials; dist {cB[:maxB+1]}")
    check(f"MC-A: no random-dial theory reaches 10/13 hits in {MC_TRIALS} "
          f"trials (TFPT: 13/13); observed max {maxA}", maxA < 10)
    check(f"MC-B: no random-seed theory reaches 10/13 hits in {MC_TRIALS} "
          f"trials; observed max {maxB}", maxB < 10)
    check("MC means are far below the scorecard (mean K < 2 in both runs)",
          meanA < 2.0 and meanB < 2.0)

    # (C) negative controls -- the test has power
    tfpt_vals = [o["pred_val"] for o in
                 (obs_by_id[i] for i in MC_ORDER)]
    check("control: TFPT's own dial settings score 13/13 (plumbing)",
          hit_count(tfpt_vals, obs_by_id), 13, exact=True)

    def k_at(eps):
        best = 0
        for s in (+1, -1):
            f = PHI0 * (1.0 + s * eps)
            l = math.sqrt(f * (1.0 - f))
            vals = [obs_by_id[i]["pred"](f, l) for i in MC_ORDER]
            best = max(best, hit_count(vals, obs_by_id))
        return best
    k001, k01, k03 = k_at(0.01), k_at(0.10), k_at(0.30)
    print(f"  seed-perturbation collapse: K(+-1%)={k001}, K(+-10%)={k01}, "
          f"K(+-30%)={k03}  (vs 13/13 at phi0)")
    check("control: perturbing phi0 by 1% collapses the scorecard (K <= 9)",
          k001 <= 9)
    check("control: perturbing phi0 by 10% collapses the scorecard (K <= 6)",
          k01 <= 6)

    rng = random.Random(RNG_SEED + 2)
    tot = mx = 0
    for _ in range(1000):
        perm = list(range(13))
        rng.shuffle(perm)
        k = sum(1 for i, j in enumerate(perm)
                if abs(tfpt_vals[i] - obs_by_id[MC_ORDER[j]]["m"])
                <= obs_by_id[MC_ORDER[j]]["window"] * obs_by_id[MC_ORDER[j]]["m"])
        tot += k
        mx = max(mx, k)
    print(f"  shuffled-data control: mean K = {tot/1000:.2f}, max K = {mx} "
          f"over 1000 permutations")
    check("control: shuffling data<->formula assignment collapses the "
          "scorecard (mean K <= 2, max K <= 6)", tot / 1000 <= 2.0 and mx <= 6)

    # (D) the alpha cubic class
    n_alpha, hits_alpha, tfpt_ainv = alpha_class_census()
    p_alpha = max(hits_alpha, 1) / n_alpha
    print(f"  alpha class: {n_alpha} F_U1 variants root-solved; "
          f"{hits_alpha} inside the 4e-8 CODATA window; p_alpha <= {p_alpha:.1e}")
    check("alpha fairness: the TFPT F_U1 instance is in the class and "
          "reproduces the frozen root", abs(tfpt_ainv - 137.0359992168407)
          < 1e-6)
    check("alpha look-elsewhere: at most 3 of the F_U1 variants hit the "
          f"4e-8 CODATA window (observed {hits_alpha})",
          1 <= hits_alpha <= 3)
    check("alpha null probability p_alpha < 1e-4", p_alpha < 1e-4)

    # headline
    log10_total = log10_joint + math.log10(p_alpha)
    print(f"  HEADLINE: P(random complexity-matched theory reproduces the "
          f"scorecard incl. alpha) <= 1e{log10_total:.1f}")
    print(f"            = {-log10_total * math.log2(10):.0f} bits of "
          f"look-elsewhere-corrected surprise (conditional on the declared "
          f"grammar; never 'certainty')")
    check("headline: joint null probability (13 obs + alpha) < 1e-16",
          log10_total < -16.0)

    return summary("v100 numerology null test")


def fairness_reconstruct(obs):
    """Re-evaluate every TFPT formula from its declared grammar encoding."""
    ok = True
    for o in obs:
        if o["arity"] == 1:
            p, q, a, c, d, b, u, w = o["g1"]
            ok &= (1 <= p <= G1_PQ_MAX and 1 <= q <= G1_PQ_MAX
                   and a in G1_A and c in G1_C and d in G1_D and b in G1_B
                   and abs(u) <= G1_EXP_NUM and 1 <= w <= G1_EXP_DEN)
            v = (p / q) * PHI0 ** a * LAM ** c * (1 + LAM) ** d * PI ** b \
                * math.exp(u / w)
        else:
            (p1, q1, a1, c1, b1), sgn, (p2, q2, a2, c2, b2) = o["g2"]
            ok &= all(1 <= x <= G2_PQ_MAX for x in (p1, q1, p2, q2))
            ok &= (a1 in G2_A and c1 in G2_C and b1 in G2_B
                   and a2 in G2_A and c2 in G2_C and b2 in G2_B)
            v = ((p1 / q1) * PHI0 ** a1 * LAM ** c1 * PI ** b1
                 + sgn * (p2 / q2) * PHI0 ** a2 * LAM ** c2 * PI ** b2)
        ok &= abs(v - o["pred_val"]) <= 1e-12 * max(abs(o["pred_val"]), 1e-30)
    return ok


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

8eeee76c7fc3789f8ce7777ff62835d2cf4aa37dc2e28cb5850480faf72f94f5

Paper sections that cite this module

=150 2026-08-27 (CXXXI) (the external deep-review round — dimension / dynamics / gravity firewalls and the 4D construction ladder: the review diagnosis ``chiral [formula in source] D seam net [formula in source] local, interacting [formula in source] D quantum world'' is implemented as eight new contract IDs in tfpt_research_contracts plus one new load-bearing module. (1) DIMENSION.UPLIFT.FIREWALL.01 (standing rule, in force): no [formula in source] D theorem closes a [formula in source] D claim; every contract closure states the spacetime dimension of hypotheses AND conclusion; audit census recorded (SEAM.EQUIV.01 is [formula in source] D in and out — even fully proved it is a boundary building block, not the 4D theory; the v957 kinematic uplift does not close it; the anomaly-inflow bulk is invertible/topological, never to be silently equated with physical spacetime); the realistic route ordering (seam as boundary module [formula in source] genuine 4D Euclidean lattice [formula in source] OS package [formula in source] chirality/no-mirror [formula in source] only then BW/CHM [formula in source] entanglement gravity [formula in source] bulk–seam equivalence) is registered as the programme skeleton. (2) SEAM.BULK4D.RECON.01 : the previously implicit seam [formula in source] bulk theorem made explicit (4D local algebras/Schwinger functions; locality/microlocality, Poincar\'e covariance [formula in source] spectrum condition, spin-statistics [formula in source] CPT, both helicities, clustering, nontrivial S-matrix, unique operator dictionary). (3) the dynamics split DYN.MARKOV.EMBED.01 / DYN.UNITARY.DILATION.01 (``three meanings of dynamics'': relaxation [formula in source] / dissipative semigroup [formula in source] / unitary [formula in source] ): the finite kernel half of MARKOV.EMBED is executed \ as v971_markov_embedding_generator.py ( [formula in source] , sympy-exact) — [formula in source] of the v221 seam kernel is an EXACT classical Markov generator: [formula in source] by spectral calculus, row sums symbolically zero, off-diagonals exactly [formula in source] (the reviewer's independently verified numbers), uniformization certificate [formula in source] entrywise [formula in source] [formula in source] positivity-preserving doubly stochastic for all [formula in source] , [formula in source] (gap [formula in source] ), negative control: second eigenvalue [formula in source] gives [formula in source] — provably NOT embeddable; the field level and the local size-consistent unitary dilation (Stinespring [formula in source] Lieb–Robinson [formula in source] OS continuation) stay ; binding precision: the shared F_transfer relaxation shape is a universal CONTRACTION CLASS, not one physical clock (v723/v724/v777). (4) QFT4D.OS.RECON.01 \ (the genuine 4D Euclidean lattice OS package) with the binding phrasing rule: the v381 all-orders leg is a local perturbative construction under the stated EG/BRST hypotheses (Duch weak adiabatic limit cited, hypotheses unverified for the concrete model; no confinement / mass gap / asymptotic charged states / nonperturbative Higgs vacuum / full S-matrix follows) — tfpt_2 and tfpt_5 phrasing restricted accordingly. (5) CHIRAL4D.NOMIRROR.01 \ (explicit GW/overlap chiral lattice operator; local gauge-invariant measure, perturbative [formula in source] global anomaly freedom, no Witten [formula in source] anomaly, no mirrors, correct index/charges, stable continuum limit; Mastropietro arXiv:2303.02790 as calibration). (6) GRAV.NONCIRCULAR.01 (standing rule, in force): BW is a theorem WITHIN a local Poincar\'e-covariant QFT (Mund/Morinelli counterexample landscape cited), never a generator of Lorentz spacetime from a modular flow; every BW/CHM use declares assumption-vs-result; audit census: the entanglement-equilibrium Einstein derivation (v323/v358/v359) is typed ASSUMPTION (conditional on the 4D package, never citable as evidence for it), QG.AMB.01 correctly declared, the seam KMS [formula in source] chain dimension-typed, the intrinsic-BW programme the honest result-direction attempt. (7) OBS.TRANSDUCTION.01: the transduction principle (internal eigenvalue [formula in source] nonvanishing projection [formula in source] [formula in source] physical coupling [formula in source] observable signature; without the middle arrow neither non-observation falsifies nor observation confirms; minimal model machine-checked at exploration level in fo01, uniform functional blind to [formula in source] , character channel recovers [formula in source] to [formula in source] ; the ACT [formula in source] Planck birefringence proximity typed coincidence-level pending the shared-action proof). (8) PRED.JOINTLIKELIHOOD.01 : evidence reorganized from hit-counting into overdetermined relation bundles (flavor sum rule; [formula in source] , [formula in source] ; one normalized axion action; character-resolved transfer) with the statistical demand (joint likelihood, atom-induced covariance, effective dof, prespecified null [formula in source] formula grammar, real holdout); the v100 ``13/13, [formula in source] '' statement retyped as a look-elsewhere quantifier under its declared null — the 2026-06-09 freeze protects FUTURE measurements, it does not retroactively make historically known data blind. Docs corrected in the same change: docs/OPEN_PROBLEMS.md (the Einstein-derivation overstatement rewritten to the conditional Jacobson-route typing with the explicit does-NOT-follow list; ``zero open internal mechanisms'' fixed to match the contract scope fence — ledger wins; the all-orders phrasing restricted) and docs/FALSIFICATION.md (the null-model section retitled and rescoped, freeze and kill tests unchanged). Ledger [formula in source] rows; suite [formula in source] modules; bash build.sh audit and the manifest regeneration are the joint exit gate)

The module’s catalogue entry retains all 23 section references.

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.