Appendix P. Lattice origin of the proton mass and integral method

Appendix P. Lattice origin of the proton mass: This appendix assumes the following inputs are locked. The goal is to lock (i) the linkage equation for λ_C, (ii) the resistance integral Sₚ, and (iii) the closed form of the proton mass mₚ.

This appendix assumes the following inputs are locked. The goal is to lock (i) the linkage equation for λ_C, (ii) the resistance integral Sₚ, and (iii) the closed form of the proton mass mₚ. λ_C=(π/2)rₚ.

P.0 Locked inputs and goals

This appendix assumes the following inputs are locked.

  1. Realized length: a.
  2. Proton radius: rₚ (derived under §8.0.5; the locked value is its cross-check).
  3. π (pi).
  4. Lattice unit energy:
    U_{\mathrm{lat}}:=\frac{h\,c_{\mathrm{ref}}}{a}.

The goal is to lock (i) the linkage equation for λ_C, (ii) the resistance integral Sₚ, and (iii) the closed form of the proton mass mₚ.

P.1 Algebraic consequence of λ_C=(π/2)rₚ (locked linkage)

Under the same version, assume the following two links are locked.

Replacing the left-hand side of (AppP_links) by λ_C gives

\frac{r_p}{\lambda_C}=\frac{2}{\pi}.

Solving this for λ_C yields

\begin{equation} \boxed{ \lambda_C=\frac{\pi}{2}\,r_p } \end{equation}

P.2 Definition and expansion of the proton resistance integral Sₚ

Define the radial coordinate R on 0≤ R≤ λ_C, and fix the layer thickness as a.

dN(R):=\frac{dR}{a}.

Define the resistance integral as

\begin{equation} \boxed{ S_p:=\int_{0}^{\lambda_C}\frac{dR}{a} } \end{equation}

as above. Since a is a constant,

\begin{align} S_p &=\frac{1}{a}\int_0^{\lambda_C} dR =\frac{1}{a}\Bigl[R\Bigr]_0^{\lambda_C} =\frac{\lambda_C}{a}. \end{align}

Therefore

\begin{equation} \boxed{ S_p=\frac{\lambda_C}{a} } \end{equation}

Substituting (AppP_lC) gives

\begin{equation} \boxed{ S_p=\frac{\pi}{2}\,\frac{r_p}{a} } \end{equation}

P.3 Definition of the proton mass mₚ and closed form

Applying the mass=resistance axiom to the proton,

\begin{equation} \boxed{ m_p:=\frac{U_{\mathrm{lat}}}{S_p} } \end{equation}

we define it as above. Since U_lat=frachc_refa and Sₚ=λ_C/a,

\begin{align} m_p &=\frac{(h\,c_{\mathrm{ref}}/a)}{(\lambda_C/a)} =\frac{h\,c_{\mathrm{ref}}}{\lambda_C}. \end{align}

Therefore

\begin{equation} \boxed{ m_p=\frac{h\,c_{\mathrm{ref}}}{\lambda_C} =\frac{2}{\pi}\frac{h\,c_{\mathrm{ref}}}{r_p} } \end{equation}

P.4 Deterministic verification script (proton mass evaluation)

# verify_appendix_P.py
# Purpose: deterministic script that computes lambda_C, S_p, m_p using only LOCK values from registry.

import json
import hashlib
from math import pi

def sha256_file(path: str) -> str:
    h = hashlib.sha256()
    with open(path, "rb") as f:
        while True:
            b = f.read(1024 * 1024)
            if not b:
                break
            h.update(b)
    return h.hexdigest()

def read_json(path: str) -> dict:
    with open(path, "r", encoding="utf-8") as f:
        return json.load(f)

def main():
    canon = read_json("registry/canon_lock.json")
    realz = read_json("registry/realization_lock.json")
    prot  = read_json("registry/protocol_lock.json")
    snap  = read_json("registry/registry_snapshot.json")

    h_Js = canon["constants"].get("h_Js", 6.62607015e-34)
    c_ref = realz["inputs"]["c_ref_m_s"]
    a_m   = realz["inputs"]["a_m"]
    r_p   = canon["inputs"]["r_p_m"]
    assert abs(r_p/8.412e-16 - 1) < 5e-4, "canon r_p not reconciled to v0.4.1 (0.8412 fm)"
    GeV_to_J = prot["unit_conversions"]["GeV_to_J"]

    # U_lat
    U_lat_J = (h_Js * c_ref) / a_m
    U_lat_GeV = U_lat_J / GeV_to_J

    # lambda_C, S_p, m_p
    lambda_C = (pi / 2.0) * r_p
    S_p = lambda_C / a_m
    m_p_GeV = U_lat_GeV / S_p

    out = {
        "registry_snapshot_id": snap["registry_snapshot_id"],
        "locks": snap["locks"],
        "hashes": {
            "canon_lock_sha256": sha256_file("registry/canon_lock.json"),
            "realization_lock_sha256": sha256_file("registry/realization_lock.json"),
            "protocol_lock_sha256": sha256_file("registry/protocol_lock.json"),
            "registry_snapshot_sha256": sha256_file("registry/registry_snapshot.json"),
        },
        "derived": {
            "U_lat_GeV": U_lat_GeV,
            "lambda_C_m": lambda_C,
            "S_p_dimless": S_p,
            "m_p_GeV": m_p_GeV
        }
    }

    print(json.dumps(out, indent=2, ensure_ascii=False))

if __name__ == "__main__":
    main()