yangmills.py — py

The ledger file py/yangmills.py of Yang–Mills and the Mass Gap over Finite Holographic Substrate, rendered with an anchor per line: the marked lines (# 46:C2 (p46010): a predicate and its accession key) are the checks that decide the predicates of the paper's predicate ledger — 35 of 35 checks passing; the predicates' theorems are the declarations of YangMills in the core. ▶ run the predicates on Google Colab.

46-yangmills ledgerpy/yangmills.py · 104 KByangmills.pyColab
1"""p46_yangmills — the ledger file of 46-yangmills (Phases 1–2 of the paper home, 7 November 2026; the repair of 8 November).23"Yang–Mills and the Mass Gap over Finite Holographic Substrate" (Akhtman, in preparation; 46-yangmills-20261107/reports/4study.md). The paper's predicate ledger is drafted in 46-yangmills-20261107/reports/ledger-draft-20261107.md; until the5manuscript's ledger appendix exists and the site writes docs/46-yangmills/46-yangmills-ledger.json, the table of keys below6is written by hand from the draft and this file carries no generated-table markers, so ci/make_ledgers.py leaves it alone7(Phase 3 adds the markers and lets the tool write the table, the certificates and the notebook).89The checks are EXACT or CHART, one kind per check. An EXACT check decides by finite-field, integer or rational arithmetic:10the norm-one torus of F_p[√ν] on the laboratory Subjects and its eigenvalues, the split torus's fixed lines,11the arithmetic of the centre's order formula gcd(3, q + 1) and the centre of SU(3, F_2) by elements, the residue series over12F_4 by linear algebra on SU(3, F_2) (the hadrons theme's group) and by the singlet multiplicities, the finite frame's own13moments over F_4, the Casimirs and b₀ as rationals, the discrete logarithm on the shells, the plaquette coefficients c₃ and14c₈ to order ϑ⁷ with rational coefficients and their ratio to that order; no float decides anything. A CHART check reads15a measured or lattice number, declared as a rational with its error in frc/chart_yangmills.py, against the frame's exact16value, runs the chart's one-loop law with its logarithm, reads the tensions as logarithms of the exact series, or runs the17chart's relativistic wrap operator on a grid; its label carries "[chart]".1819The Lean side: the theorems of the yangmills theme (lean/FrcCore/Theme/YangMills.lean) — the no-shell-root theorem for the20norm-one elements of the extension, the arithmetic of the centre's order formula on the sweep, the singlet-multiplicity21identities behind the glueball and the adjoint wrap (glueball_singlet, adjoint_two_sheets), the Casimir and b₀ rationals,22the drive exponent's existence and uniqueness from the frame, the arithmetic of the spectral amplitude (the plane's cycles, the23phase table, the Z[ζ₃] identities of the instance and the transfer tally's bookkeeping; spectral_amplitude, frame_cycle_trace, instance_amplitude,24instance_transfer; the Subjects' spectrum and the degree identity, subject_spectrum, degree_identity), and the frame's root elements on the three Subjects25(frame_root_elements, 46:A9) — over the extension, frame and hadrons themes. The key file and the certificate follow the26ledger's JSON in Phase 3.2728The laboratory instances are the pairs (13, 233), (173, 30089) and (1549, 2408561), with a sweep over the shells p = 4κ + 129below 200 (the author's ruling of 7 November 2026). Colour's triality is the Carrier's relation Ω ≡ 5 (mod 12), and the Subject reads30colour in its unitary frame (the author's decisions of 11 November 2026, 46:B5): SU(3) over the Subject's quadratic extension F_p[√ν],31with the centre of order three where 3 | p + 1; the Carrier has no frame and no completed extension, so no torus or group is formed over F_Ω. No numeral above Ω ∼ 10¹²³ is formed.3233    python3 -m frc.ledgers.p46_yangmills         every block, the census; exit 1 if a check fails (2–4 min: the F_4 linear algebra 12 s, the wrap spectrum 5 s, the frame's counts at q = 2, 3 about a minute, the amplitude and the transfer tally 5 s)34    python3 -m frc.ledgers.p46_yangmills A       one block (A to F)35    from frc.ledgers.p46_yangmills import R; R.predicate("46:C1")    one predicate: its blocks run once per session3637Blocks:  A  the registrations of the unitary frame: the tori, the centre, the residue series  (46:C1, C2, C3, X1, X2, P4)38         B  the Casimirs and the window rational                                                 (46:C4, C5, X4)39         C  the drive exponent                                                                   (46:C6)40         D  the tension's coefficient to order ϑ⁷, the series' window, the frame's window and multiplicities   (46:A9, C7, C14, C15, C24, C26)41         E  the chart: LEP, the one-loop run, the lattice anchors                                (46:P1, P2, X4, C8)42         F  the minimal wrap (Phase 2, D5): the adjoint wrap, the operator family, the chart's tension ratio (46:C9, C12)43         G  the two chart routes of the former task T01, both failing (8 November 2026)                 (46:C10, C11)44         H  the spectral amplitude of a plaquette, the transfer tally on the instance (9 November 2026) and on the Subjects (10 November 2026)   (46:C16, C17, C18, C19)4546Checks: 35, of them 26 EXACT and 9 CHART (E1–E4, F2–F4, G1, G2).47"""48import sys49from math import comb50from itertools import combinations, product51from fractions import Fraction as Q5253from frc.registry import Registry54from frc import arith as A55from frc import yangmills as Y56from frc import chart_yangmills as CY57from frc.extension import Ext5859# ---- generated by ci/make_ledgers.py from docs/46-yangmills/46-yangmills-ledger.json; edit the ledger, not this table ----60PAPER = "46-yangmills"61KEYS = {"A1": "p46001", "A2": "p46002", "A3": "p46003", "A4": "p46004", "A5": "p46005", "A6": "p46006", "A7": "p46031", "A8": "p46032", "A9": "p46034", "A10": "p46035", "A11": "p46039", "A12": "p46040", "A13": "p46052", "A14": "p46059", "A15": "p46060", "A16": "p46069", "A17": "p46073", "A18": "p46074", "A19": "p46075", "B1": "p46007", "B2": "p46008", "B3": "p46009", "B4": "p46055", "B5": "p46063", "B6": "p46070", "C1": "p46010", "C2": "p46011", "C3": "p46012", "C4": "p46013", "C5": "p46014", "C6": "p46015", "C7": "p46016", "C8": "p46017", "C9": "p46030", "C10": "p46037", "C11": "p46071", "C12": "p46036", "C13": "p46041", "C14": "p46051", "C15": "p46053", "C16": "p46056", "C17": "p46057", "C18": "p46058", "C19": "p46061", "C20": "p46062", "C21": "p46064", "C22": "p46065", "C23": "p46066", "C24": "p46067", "C25": "p46068", "C26": "p46072", "X1": "p46018", "X2": "p46019", "X3": "p46020", "X4": "p46021", "X5": "p46022", "P1": "p46023", "P2": "p46024", "P3": "p46043", "P4": "p46076", "Z1": "p46026"}       # every row of the ledger: its label and its accession key62LEAN = {"A9": "core", "C1": "core", "C2": "core", "C3": "core", "C4": "core, ml", "C5": "core", "C6": "core", "C7": "core", "C9": "core", "C10": "core, ml", "C11": "core, ml", "C12": "core, ml", "C13": "core, ml", "C14": "core", "C15": "core", "C16": "core", "C17": "core", "C18": "core", "C19": "core", "C20": "core", "C21": "core, ml", "C22": "core", "C23": "core", "C24": "core", "C25": "core", "C26": "core", "X1": "core", "X2": "core", "X4": "core", "P1": "core", "P2": "core, ml", "P3": "core, ml", "P4": "core"}       # the rows with a Lean declaration: the libraries whose key files prove them63# ---- end of the generated table ----6465LEAN_ONLY = ()                  # the predicates with a Lean declaration and no python check (gate G12): none6667LEDGER = {68    "A1": "46:C1, 46:X1, 46:X2", "A2": "46:C1", "A3": "46:C2", "A4": "46:C3, 46:X2", "A5": "46:C3, 46:P4", "A6": "46:C2",69    "B1": "46:C4, 46:X4", "B2": "46:C5", "B3": "46:C13",70    "C1": "46:C6",71    "D1": "46:C7", "D2": "46:C7", "D3": "46:C14", "D4": "46:C15, 46:A9", "D5": "46:C24", "D6": "46:C26",72    "E1": "46:P1, 46:X4", "E2": "46:P2", "E3": "46:C8", "E4": "46:B6",73    "F1": "46:C9", "F2": "46:C12", "F3": "46:C9", "F4": "46:P3",74    "G1": "46:C10", "G2": "46:C11",75    "H1": "46:C16", "H2": "46:C17", "H3": "46:C18", "H4": "46:C19", "H5": "46:C20", "H6": "46:C21", "H7": "46:C22", "H8": "46:C23", "H9": "46:C25",76}7778BLOCK = {"A": "the registrations of the unitary frame: the norm-one cycle without a fixed line, the split torus with two, the centre of order gcd(3, p + 1) with the Carriers' residue 5 (mod 12), the residue series on the instance, the states of residue 0 on the Subjects",79         "B": "the Casimirs of the frame, the window rational b₀ and the two rationals of the one-loop coefficient",80         "C": "the drive exponent: every winding rate is one power of the drive",81         "D": "the tension's coefficient: the single-plaquette coefficient to order ϑ⁷ with rational coefficients, the series' window — the corollary of A9 on the orders the frame fixes — and the frame's window through degree 2p − 1 with the Frobenius tensor that ends it by degree 4p − 3; the multiplicities of the frame (A9) are decided with the window",82         "E": "the chart: the LEP colour factors, the one-loop run between laboratory scales, the lattice anchors, the chart's cells",83         "F": "the minimal wrap: the adjoint plaquette coefficient is the square of the fundamental one up to the factor 9/8, with the ratio computed to order ϑ⁴; the chart's operator family against the three lattice determinations; the chart's tension ratio; the operator form's radial ratio against the lattice and the nucleon",84         "G": "the two routes of the former task T01: the short-range term collapses at the declared coupling and is the cutoff's number with the running one; the plaquette channel's series gives 4.8 or more where its orders agree",85         "H": "the spectral amplitude of a plaquette: its finite properties and singular values, its values and moments on the 216 elements of the instance, the transfer tally, the step of one plaquette with the frame's mean, with its exact spectrum 2/3, 1/6, 0, −1/3 and its annihilated trivial channel, and on the Subjects the amplitude's character expansion w = χ₁ + χ₂ − χ₃ from the generic character table with the tally's three eigenvalues 1/(q²−q+1), 1/(q³+1), −1/((q+1)²(q−1)), the tally of the ring and the gap 1/(q+1) of the transfer tally"}8687PREDICATES = {88    "46:C1": "A1", "46:X1": "A1", "46:X2": "A1", "46:C2": "A3", "46:C3": "A4",89    "46:C4": "B1", "46:X4": "B1", "46:C5": "B2", "46:C13": "B3", "46:C6": "C1", "46:C7": "D1", "46:C14": "D3", "46:C15": "D4", "46:A9": "D4", "46:C24": "D5", "46:C26": "D6",90    "46:P1": "E1", "46:P2": "E2", "46:C8": "E3", "46:B6": "E4", "46:C9": "F1", "46:C12": "F2", "46:P3": "F4", "46:P4": "A5", "46:C10": "G1", "46:C11": "G2",91    "46:C16": "H1", "46:C17": "H2", "46:C18": "H3", "46:C19": "H4", "46:C20": "H5", "46:C21": "H6", "46:C22": "H7", "46:C23": "H8", "46:C25": "H9",92}9394R = Registry("46", "yangmills", LEDGER, PREDICATES, sources=[__file__])9596LAB = Y.LAB_PAIRS97SWEEP = Y.shells_below(200)9899100def _nonsquare(p):101    return next(x for x in range(2, p) if A.legendre(x, p) == -1)102103104# ---- the multiplicities of the frame (46:A9; decision D140, 13 November 2026): the vectors that SL_3 over the plane fixes as a105#      kernel of integer matrices modulo p, four root elements of the frame, and the rank of the pairing-and-determinant tensors;106#      exact, on dicts ----------------------------------------------------------------------------------------------------------107def _rank_sparse(rows, p):108    """The rank modulo p of a list of sparse integer rows (dicts column → entry), by elimination on the dicts; exact."""109    piv = {}110    for r in rows:111        r = {c: v % p for c, v in r.items() if v % p}112        while r:113            c = min(r); q = piv.get(c)114            if q is None:115                inv = pow(r[c], -1, p); piv[c] = {k: v * inv % p for k, v in r.items()}; break116            f = r[c]117            for k, v in q.items():118                w = (r.get(k, 0) - f * v) % p119                if w: r[k] = w120                else: r.pop(k, None)121    return len(piv)122123124def _rank_sparse_plane(rows, K):125    """The rank over the plane K = F_p(√2) of a list of sparse rows with entries in K (pairs), by the same elimination; exact."""126    piv = {}; zero = (0, 0)127    for r in rows:128        r = {c: v for c, v in r.items() if v != zero}129        while r:130            c = min(r); q = piv.get(c)131            if q is None:132                inv = K.inv(r[c]); piv[c] = {k: K.mul(v, inv) for k, v in r.items()}; break133            f = r[c]134            for k, v in q.items():135                w = K.sub(r.get(k, zero), K.mul(f, v))136                if w != zero: r[k] = w137                else: r.pop(k, None)138    return len(piv)139140141def sl3_fixed_count(p, a, b, zero_weight=False):142    """46:A9(i) — the dimension of the kernel modulo p of the integer matrices D_st^(k), 1 ≤ k ≤ a + b, on the words of 3^{⊗a} ⊗ 3̄^{⊗b}:143    D_st^(k) is the coefficient of z^k in the action of 1 + zE_st (on 3 the letter t becomes s; on 3̄ the letter s becomes t, with144    the sign −1). The four pairs (s, t) = (0,1), (1,2), (1,0), (2,1) are used. Over the plane of p, which has more than a + b145    elements at every degree used here, the kernel is the space of the vectors that their elements 1 + zE_st fix; these elements146    generate SL_3 over the plane, so the kernel is the kernel of all six pairs. The rank is computed on the transposed matrix,147    one sparse row for each word. With zero_weight the words are those of weight (k, k, k), with as many letters e_l less letters148    e_l* for l = 0, 1, 2. The matrices carry a word to words of one other weight, so the kernel is the sum of its parts of each149    weight; over the plane of a Subject the diagonal elements of SL_3 fix only the words of weight (k, k, k) at the degrees150    used, so the part of weight (k, k, k) is the whole kernel there."""151    n = a + b; N = 3 ** n; rows = []; count = 0152    for w in product(range(3), repeat=n):153        if zero_weight:154            wt = [0, 0, 0]155            for i, l in enumerate(w): wt[l] += 1 if i < a else -1156            if not wt[0] == wt[1] == wt[2]: continue157        count += 1; r = {}158        for ri, (s, t) in enumerate(((0, 1), (1, 2), (1, 0), (2, 1))):159            pos = [i for i in range(a) if w[i] == t] + [i for i in range(a, n) if w[i] == s]160            for k in range(1, len(pos) + 1):161                for sub in combinations(pos, k):162                    v = list(w); sign = 1163                    for i in sub:164                        if i < a: v[i] = s165                        else: v[i] = t; sign = -sign166                    idx = 0167                    for l in v: idx = idx * 3 + l168                    r[(ri * (n + 1) + k) * N + idx] = sign169        rows.append(r)170    return count - _rank_sparse(rows, p)171172173def frame_root_elements(p):174    """Four elements of the frame SU(3, F_p) of the Hermitian form ξ₀η̄₂ + ξ₁η̄₁ + ξ₂η̄₀ over the plane F_p(√2) (46:A9(iii)):175    x(λ, μ) = 1 + λE_01 − λ̄E_12 + μE_02 with μ + μ̄ + λλ̄ = 0, at (λ, μ) = (1, −1/2 + √2) and (√2, 1 + √2), where −1/2 is the176    residue (p − 1)/2, and their transposes. The plane is F_p(√2), with 2 a nonsquare of the shell, as on the Subjects 13, 173 and177    1549. Returns the pairs (element, inverse) as 3 × 3 tuples over the plane; each is verified178    here: x x⁻¹ = 1 and xᵀ J x̄ = J for the antidiagonal J. The determinant of a triangular matrix with the diagonal 1 is 1."""179    K = Ext(p, 2); z, o = (0, 0), (1, 0); neg_half = (p - 1) // 2180    def mul(A, B): return tuple(tuple(K.add(K.add(K.mul(A[i][0], B[0][j]), K.mul(A[i][1], B[1][j])), K.mul(A[i][2], B[2][j]))181                                      for j in range(3)) for i in range(3))182    def tr(A): return tuple(tuple(A[j][i] for j in range(3)) for i in range(3))183    I3 = ((o, z, z), (z, o, z), (z, z, o)); J = ((z, z, o), (z, o, z), (o, z, z))184    out = []185    for t, u in (((1, 0), (neg_half, 1)), ((0, 1), (1, 1))):186        assert K.add(K.add(u, K.conj(u)), K.mul(t, K.conj(t))) == z187        x = ((o, t, u), (z, o, K.neg(K.conj(t))), (z, z, o)); xi = ((o, K.neg(t), K.conj(u)), (z, o, K.conj(t)), (z, z, o))188        for g, gi in ((x, xi), (tr(x), tr(xi))):189            gb = tuple(tuple(K.conj(e) for e in row) for row in g)190            assert mul(g, gi) == I3 and mul(mul(tr(g), J), gb) == J191            out.append((g, gi))192    return out193194195def frame_root_fixed_count(p, a, b):196    """46:A9(iii) — the dimension over the plane F_p(√2) of the space of vectors of 3^{⊗a} ⊗ 3̄^{⊗b} fixed by the four elements of197    frame_root_elements(p), which act on 3 as themselves and on 3̄ by the inverse transpose. The frame fixes no more vectors than198    these four elements do, and it fixes every vector that SL_3 over the plane fixes."""199    K = Ext(p, 2); n = a + b; zero = (0, 0); rows = []200    for g, gi in frame_root_elements(p):201        gd = tuple(tuple(gi[j][i] for j in range(3)) for i in range(3))202        for w in product(range(3), repeat=n):203            r = {}204            def expand(i, idx, coef):205                if i == n:206                    r[idx] = K.add(r.get(idx, zero), coef); return207                m = g if i < a else gd208                for l in range(3):209                    e = m[w[i]][l]210                    if e != zero: expand(i + 1, idx * 3 + l, K.mul(coef, e))211            expand(0, 0, (1, 0))212            own = 0213            for l in w: own = own * 3 + l214            r[own] = K.sub(r.get(own, zero), (1, 0))215            rows.append(r)216    return 3 ** n - _rank_sparse_plane(rows, K)217218219def pairing_determinant_rank(p, a, b):220    """46:A9(ii) — the rank modulo p of the pairing-and-determinant tensors of 3^{⊗a} ⊗ 3̄^{⊗b}: the products, over a partition of221    the a + b slots, of pairings Σ_l e_l ⊗ e_l* on two slots of opposite type and of determinant tensors ε, ε* on three slots of222    one type. Every such tensor is listed, as a sparse integer vector on the words, and the rank is computed by elimination."""223    perms = (((0, 1, 2), 1), ((1, 2, 0), 1), ((2, 0, 1), 1), ((0, 2, 1), -1), ((2, 1, 0), -1), ((1, 0, 2), -1))224    def split(slots, e):                                        # the ways to take e triples out of the slots: (triples, the rest)225        if e == 0: yield (), tuple(slots); return226        first = slots[0]                                        # the first slot is in a triple or stays227        for i in range(1, len(slots)):228            for j in range(i + 1, len(slots)):229                rest = slots[1:i] + slots[i + 1:j] + slots[j + 1:]230                for tr, left in split(rest, e - 1): yield ((first, slots[i], slots[j]),) + tr, left231        if len(slots) - 1 >= 3 * e:232            for tr, left in split(slots[1:], e): yield tr, (first,) + left233    def matchings(xs, ys):234        if not xs: yield (); return235        for i, y in enumerate(ys):236            for more in matchings(xs[1:], ys[:i] + ys[i + 1:]): yield ((xs[0], y),) + more237    n = a + b; rows = []238    for e in range(a // 3 + 1):239        m = a - 3 * e; f, rem = divmod(b - m, 3)240        if m > b or rem: continue241        for tv, sv in split(tuple(range(a)), e):242            for td, sd in split(tuple(range(a, n)), f):243                for match in matchings(sv, sd):244                    vec = {}245                    for letters in product(range(3), repeat=m):246                        for choice in product(perms, repeat=e + f):247                            w = [0] * n; sign = 1248                            for (i, j), l in zip(match, letters): w[i] = l; w[j] = l249                            for tri, (pm, sg) in zip(tv + td, choice):250                                sign *= sg251                                for slot, letter in zip(tri, pm): w[slot] = letter252                            idx = 0253                            for l in w: idx = idx * 3 + l254                            vec[idx] = vec.get(idx, 0) + sign255                    rows.append(vec)256    return _rank_sparse(rows, p)257258259def frame_multiplicities(p):260    """46:A9 on a Subject p on which 2 is a nonsquare, as on 13, 173 and 1549 — Proposition prop:mult decided against the compact count Y.I.su3_moment. (i) The kernel modulo p of261    the integer matrices has the compact dimension at each of the 21 pairs of degree at most 5 (sl3_fixed_count), and on the262    words of weight (k, k, k) at the seven pairs with b ≤ a and 3 | a − b of degrees 6 to 9. (ii) The pairing-and-determinant263    tensors have the compact rank at the twelve pairs with b ≤ a and 3 | a − b of degree at most 9 (pairing_determinant_rank).264    (iii) Four root elements of the frame fix as many vectors at (1, 1), (3, 0) and (2, 2) (frame_root_fixed_count). With them:265    6 is invertible on the shell; the plane has more than a + b + min(a, b) elements for every degree a + b ≤ 2p − 1; and the266    degree 9 satisfies 9 + 2 ≤ p."""267    low = [(a, d - a) for d in range(6) for a in range(d + 1)]268    wide = [(a, b) for a in range(10) for b in range(a + 1) if a + b <= 9 and (a - b) % 3 == 0]269    high = [k for k in wide if sum(k) >= 6]270    compact = {k: Y.I.su3_moment(*k) for k in low + wide}271    plane = {k: sl3_fixed_count(p, *k) for k in low}272    zero = {k: sl3_fixed_count(p, *k, zero_weight=True) for k in high}273    span = {k: pairing_determinant_rank(p, *k) for k in wide}274    roots = {k: frame_root_fixed_count(p, *k) for k in ((1, 1), (3, 0), (2, 2))}275    checks = {"plane": len(low) == 21 and all(plane[k] == compact[k] for k in low),276              "zero": len(high) == 7 and all(zero[k] == compact[k] for k in high),277              "span": len(wide) == 12 and all(span[k] == compact[k] for k in wide),278              "roots": all(roots[k] == compact[k] for k in roots), "six": (6 * pow(6, -1, p)) % p == 1,279              "size": p * p > (2 * p - 1) + (p - 1), "degree": 9 + 2 <= p}280    return {"p": p, "compact": compact, "plane": plane, "zero": zero, "span": span, "roots": roots, "checks": checks,281            "ok": all(checks.values())}282283284# ------------------------------------------------------------------------------------------------------------285@R.block("A", BLOCK["A"])286def block_A():287    """Block A — the registrations of the unitary frame."""288    # A1 the non-split torus C_{p+1} of F_p[√ν] on the laboratory Subjects: p + 1 norm-one elements, exactly two289    #    of them (the scalars ±1) with an eigenvalue in F_p; every other element's characteristic polynomial x² − 2a x + 1 has290    #    the nonsquare discriminant 4ν b², so no line of F_p² is fixed by the torus: the gluon, the residue 0, is never291    #    registered alone292    shells = [p for p, _ in LAB]                                               # the Subjects only: the frame is the Subject's (8 November 2026)293    res = {}294    ok = True295    for p in shells:296        n, k, ev = Y.fixed_lines_nonsplit(p, _nonsquare(p))297        res[p] = (n, k); ok &= n == p + 1 and k == 2 and sorted(a for a, b in ev) == [1, p - 1] and all(b == 0 for _, b in ev)298    for p in SWEEP:299        n, k, _ = Y.fixed_lines_nonsplit(p, _nonsquare(p)); ok &= n == p + 1 and k == 2300    # 46:C1 (p46010), 46:X1 (p46018), 46:X2 (p46019)301    R.check("A1", "the norm-one cycle has no shell eigenvalue: on the Subjects 13, 173, 1549 "302            "and the 21 shells below 200 the norm-one cycle of F_p[√ν], its norm-one elements, has p + 1 elements, of which exactly the two scalars ±1 "303            "have an eigenvalue in F_p; every non-scalar element's characteristic polynomial x² − 2ax + 1 has the nonsquare "304            "discriminant 4νb², so no line of F_p² is mapped to itself by every element of the circle: the gluon's residue is 0", ok,305            ", ".join(f"{p}: {n} elements, {k} with an eigenvalue" for p, (n, k) in res.items()))306307    # A2 the split torus diag(g, g⁻¹), g a generator, fixes exactly the two coordinate lines of P¹(F_p): the photon's residue 2308    ok = True; det = {}309    for p in [q for q, _ in LAB] + SWEEP:310        fl = Y.fixed_lines_split(p, A.primitive_root(p)); det[p] = len(fl); ok &= sorted(fl) == [(0, 1), (1, 0)]311    R.check("A2", "the split torus fixes exactly two lines: on the laboratory Subjects and the sweep, diag(g, g⁻¹) with g the drive "312            "fixes [1 : 0] and [0 : 1] and no other point of P¹(F_p) (g² ≠ 1), the two F_p-fixed lines that are the photon's two "313            "helicities, residue 2 (12-primer §6), against the norm-one cycle's none", ok, f"fixed lines {sorted(set(det.values()))} on {len(det)} shells")314315    # A3 the centre of SU(3, F_q) is Z_{gcd(3, q+1)}: of order three exactly when q ≡ 2 (mod 3); the Subject 173 has it, 13 and 1549 do316    #    not, and no condition on a Subject's prime follows: colour's triality is the Carrier's relation Ω ≡ 5 (mod 12) (46:B5), decided317    #    on the three laboratory Carriers318    orders = {p: Y.centre_order(p) for p, _ in LAB}319    ok = orders[13] == 1 and orders[173] == 3 and orders[1549] == 1 and Y.full_centre(173) and not Y.full_centre(13) and not Y.full_centre(1549)320    ok &= all((Y.centre_order(p) == 3) == (p % 3 == 2) == Y.full_centre(p) for p in SWEEP)321    ok &= [p for p in SWEEP if Y.full_centre(p)] == [5, 17, 29, 41, 53, 89, 101, 113, 137, 149, 173, 197]322    car = {Om: Y.carrier_triality(Om) for _, Om in LAB}323    ok &= all(c["ok"] for c in car.values()) and not any(Y.carrier_triality(p)["ok"] for p in (13, 1549))324    # 46:C2 (p46011)325    R.check("A3", "the centre of the unitary frame: |Z(SU(3, F_q))| = gcd(3, q + 1), of order three exactly on q ≡ 2 (mod 3); of the "326            "Subjects 173 has it and 13, 1549 do not; 12 of the 21 shells below 200 have it. Colour's triality is the Carrier's: the "327            "Carriers 233, 30089, 2408561 are 5 (mod 12), x² + x + 1 has no root on them, and its roots are the norm-one pairs "328            "(0, 1) and (−1, −1) of residues", ok, f"centre orders {orders}; Carriers modulo 12: {[Om % 12 for _, Om in LAB]}")329330    # A4 the residue series over F_4 on SU(3, F_2): no nonzero traceless matrix fixed by the adjoint action (gluon 0), det the one331    #    invariant of Λ³ (baryon 1), the commutant of the fundamental one-dimensional (meson 1), the commutant of the adjoint332    #    one-dimensional (glueball 1: the singlet of 8 ⊗ 8 once)333    F, G = Y.H.colour_group()334    series, content = Y.residue_series(F, G)335    ok = series == dict(gluon=0, baryon=1, meson=1, glueball=1, fundamental_commutant=1) and content == (1, 0, 0, 1) and len(G) == 216336    # 46:C3 (p46012)337    R.check("A4", "the residue series on the instance, over F_4 on the 216 elements of SU(3, F_2): the adjoint action on the "338            "eight traceless matrices fixes no nonzero vector (gluon 0), the determinant is the one invariant of Λ³ (baryon 1), the "339            "commutant of the fundamental is the scalars (meson 1, the Hermitian contraction), and the commutant of the adjoint is "340            "one-dimensional (glueball 1, the singlet of 8 ⊗ 8 once): photon 2, gluon 0, baryon 1, meson 1, glueball 1", ok,341            f"{series}, content {content}")342343    # A5 the same counts by the Weyl constant terms of SU(3): E[|χ|²] − 1 = 0, E[χ³] = 1, E[|χ|²] = 1, E[|χ|⁴] − 2E[|χ|²] + 1 = 1.344    #    The states of residue 0 (46:P4; decisions D146 (a) and D147 (a), 13 November 2026): on the three Subjects the triplet has no345    #    vector fixed by SL_3 over the plane and 3 ⊗ 3̄ has one, the pairing (the kernel of the integer matrices of 46:A9), and the346    #    frame's four root elements fix as many. The frame has no nontrivial character into the plane, so an invariant line is a347    #    fixed line, and neither the triplet nor the adjoint has one. The confrontation of P4 is the import A19.348    w, E = Y.weyl_residues()349    ok = w == dict(gluon=0, baryon=1, meson=1, glueball=1) and E == {(1, 1): 1, (3, 0): 1, (2, 2): 2}350    zero = {p: (sl3_fixed_count(p, 1, 0), sl3_fixed_count(p, 1, 1), frame_root_fixed_count(p, 1, 0), frame_root_fixed_count(p, 1, 1))351            for p, _ in LAB}352    ok &= all(v == (0, 1, 0, 1) for v in zero.values()) and Y.I.su3_moment(1, 0) == 0 and Y.I.su3_moment(1, 1) == 1353    # 46:P4 (p46076)354    R.check("A5", "the residue series by the Weyl constant terms of SU(3): the adjoint has no invariant (E[χχ̄] − 1 = 0), 3 ⊗ 3 ⊗ 3 one "355            "singlet (E[χ³] = 1), 3 ⊗ 3̄ one (E[χχ̄] = 1), 8 ⊗ 8 one (E[χ²χ̄²] − 2E[χχ̄] + 1 = 2 − 2 + 1 = 1): the finite-field counts and "356            "the singlet multiplicities of the compact reading agree; the states of residue 0: on the Subjects 13, 173, 1549 the triplet "357            "has no fixed vector and 3 ⊗ 3̄ has one, the pairing, under SL_3 over the plane and under four root elements of the frame, so "358            "the triplet and the adjoint have no frame-invariant line, and a quark and a gluon are states of residue 0", ok,359            f"moments {E}; fixed vectors of the triplet and of 3 ⊗ 3̄ under SL_3 and under the root elements, on 13: {zero[13]}")360361    # A6 the centre by elements: the three elements of the 216-element SU(3, F_2) commuting with every element are the scalars of362    #    norm one, gcd(3, 2 + 1) = 3 of them — the one enumerable instance of 27-fields Proposition su3, which A3 only evaluates363    F, G = Y.H.colour_group()364    Z = Y.H.centre(F, G)365    ok = len(Z) == 3 == Y.centre_order(2) and sorted(Z) == sorted(Y.H.colour_scalars(F))366    R.check("A6", "the centre of SU(3, F_2) by elements: exactly three of the 216 elements commute with every element, the scalars "367            "x·I with x³ = 1 — gcd(3, 2 + 1) = 3, the order formula of 27-fields Proposition su3 at its one enumerable instance", ok,368            f"|Z| = {len(Z)}")369370371# ------------------------------------------------------------------------------------------------------------372@R.block("B", BLOCK["B"])373def block_B():374    """Block B — the Casimirs and b₀."""375    c = Y.casimirs(3)376    ok = c == dict(C_F=Q(4, 3), C_A=Q(3), T_F=Q(1, 2), ratio=Q(9, 4))377    cf, sumTT, sumll, per_pair = Y.H.colour_factor(3)378    ok &= cf == Q(4, 3) and sumll == -8 and per_pair == Q(-8, 3)379    e = Y.casimirs_from_exponents()                                           # the frame's own source (round 03, 9 November 2026): the torus exponents380    ok &= e["form_F"] == (2, 2, 2) and e["form_A"] == (12, 12, 12) and e["ratio_T"] == 6 and e["T_A"] == 3381    ok &= e["C_F"] == c["C_F"] and e["C_A"] == c["C_A"] and e["ratio"] == c["ratio"] and e["singlet"] == -8382    ok &= all(Y.split_torus_exponents(p)["ratio"] == 6 for p in (13, 173, 1549))383    # 46:C4 (p46013), 46:X4 (p46021)384    R.check("B1", "the Casimirs of the unitary frame from its torus exponents: the fundamental's (a, b, −a−b) and the adjoint's six differences "385            "have second moments 2 and 12 times a² + ab + b², so T_A/T_F = 6 and, with the chart's normalisation T_F = 1/2, C_F = 4/3, C_A = 3, "386            "C_A/C_F = 9/4 — the compact values, with no lift; the singlet Σ λ·λ = −8 (−8/3 per pair; 35-hadrons C4); the identity read on the "387            "split torus (n, (p−1)n, −pn) of the Subjects 13, 173, 1549", ok, f"{c}; forms {e['form_F']}, {e['form_A']}")388389    vals = {nf: Y.b0(nf) for nf in range(0, 17)}390    ok = vals[3] == 9 and vals[4] == Q(25, 3) and vals[5] == Q(23, 3) and vals[6] == 7391    ok &= all(vals[nf] > 0 for nf in range(0, 17)) and Y.b0(17) < 0 and all(vals[nf] == 11 - Q(2 * nf, 3) for nf in vals)392    # 46:C5 (p46014)393    R.check("B2", "the window rational b₀ = (11/3) C_A − (4/3) T_F n_f = 11 − 2n_f/3: 9, 25/3, 23/3, 7 for n_f = 3, 4, 5, 6, positive "394            "for every n_f ≤ 16 (asymptotic freedom's sign for the matter content n_f ≤ 16, 27-fields Proposition af) and negative from 17",395            ok, ", ".join(f"n_f={nf}: {vals[nf]}" for nf in (3, 4, 5, 6)))396397    # B3 the two rationals of the one-loop coefficient (the push on T02, 8 November 2026). Hughes–Nielsen: b₀ = Σ (−1)^{2s}[(2s)² − 1/3] T(R)398    #    over the species, one complex scalar, one Weyl fermion, one real vector each once (46:A12, imported). The spin term (2s)² = −2 Tr(J₁₂²)399    #    with J₁₂ = e₁₂ − e₂₁ on the vector and (i/2)σ₃ on the Weyl spinor; the charge term 1/3 the leading Faulhaber coefficient of the400    #    scalar loop's midpoint sum 3 Σ_{k<N} (N − 2k − 1)² = N(N² − 1), whose complete cycle N = p vanishes on the shell401    spin = {"scalar": Q(0), "Weyl": -2 * Q(2 * (Q(1, 2) ** 2) * -1), "vector": -2 * Q(2 * -1)}            # −2 Tr(J²): J² = −1/4·I₂ on the spinor, diag(−1, −1, 0, 0) on the vector402    def species_sum(nf, ns=0): return 3 * (spin["vector"] - Q(1, 3)) - nf * (spin["Weyl"] - Q(1, 3)) - ns * Q(1, 2) * (spin["scalar"] - Q(1, 3))403    def faul(N): return sum((N - 2 * k - 1) ** 2 for k in range(N))404    ok = spin == {"scalar": 0, "Weyl": 1, "vector": 4} and all(species_sum(nf) == Y.b0(nf) for nf in range(0, 17))405    ok &= all(3 * faul(N) == N * (N * N - 1) for N in range(1, 3000))406    for p in (13, 173, 1549):407        inv3 = pow(3, -1, p)408        ok &= faul(p) % p == 0 and all(faul(N) % p == (N * (N * N - 1) * inv3) % p for N in range(1, min(p, 400)))409    # 46:C13 (p46041)410    R.check("B3", "the two rationals of the one-loop coefficient are the frame's: the spin term (2s)² = −2 Tr(J₁₂²) is 0, 1, 4 on the scalar, the "411            "Weyl spinor and the vector; the charge term 1/3 is the leading Faulhaber coefficient of the scalar loop's midpoint sum, "412            "3 Σ_{k<N} (N − 2k − 1)² = N(N² − 1) for every N (checked to 3000, and as residues on 13, 173, 1549), whose complete cycle N = p "413            "vanishes on the shell; the species sum of Hughes–Nielsen with C_A = 3, T_F = 1/2 is 11 − 2n_f/3, the window rational of C5", ok,414            f"spin terms {dict((k, str(v)) for k, v in spin.items())}; Σ_{{k<10}} = {faul(10)} = 10·99/3; Σ at N = p ≡ 0 on 13, 173, 1549; "415            + ", ".join(f"n_f={nf}: {species_sum(nf)}" for nf in (0, 3, 6)))416417418# ------------------------------------------------------------------------------------------------------------419@R.block("C", BLOCK["C"])420def block_C():421    """Block C — the drive exponent."""422    ok = True; gens = {}423    for p in [q for q, _ in LAB] + SWEEP:424        u, g = Y.drive_exponents_unique(p); ok &= u; gens[p] = g425    # the exponent of a product adds: g^(m+n) — the chart's ln(μ₁μ₂) = ln μ₁ + ln μ₂, on the Subject 173426    p, g = 173, gens[173]427    ok &= all((Y.drive_exponent(p, g, w1) + Y.drive_exponent(p, g, w2)) % (p - 1) == Y.drive_exponent(p, g, w1 * w2 % p)428              for w1 in range(1, 40) for w2 in range(1, 40))429    # 46:C6 (p46015)430    R.check("C1", "the drive exponent: on the Subjects 13, 173, 1549 and the 21 shells below 200 the powers g⁰ … g^{p−2} of the drive "431            "are a permutation of the nonzero residues, so every winding rate w has exactly one exponent n < p − 1 with gⁿ = w, and "432            "the exponent of a product is the sum of the exponents (mod p − 1) — the discrete logarithm of 26-pnp on the shells",433            ok, f"generators {dict((p, gens[p]) for p, _ in LAB)}")434435436# ------------------------------------------------------------------------------------------------------------437@R.block("D", BLOCK["D"])438def block_D():439    """Block D — the plaquette coefficient."""440    s3 = Y.c1_series(3, 8)441    ok = s3 == [Q(0), Q(1, 3), Q(1, 6), Q(0), Q(-5, 72), Q(-1, 24), Q(7, 720), Q(59, 2160)] and sum(s3) == Q(23, 54)442    # 46:C7 (p46016)443    R.check("D1", "the tension's coefficient to order ϑ⁷: the fundamental plaquette coefficient of SU(3) in the stiffness of the connection (A16), "444            "c₃(ϑ) = ϑ/3 + ϑ²/6 + 0·ϑ³ − 5ϑ⁴/72 − ϑ⁵/24 + 7ϑ⁶/720 + 59ϑ⁷/2160 modulo ϑ⁸, summing to 23/54 at channel unity, every coefficient a rational built from "445            "the singlet multiplicities of the tensor powers of the triplet (the constant terms of the Weyl character polynomial; the "446            "frame's own multiplicities agree in the degrees that enter through ϑ³, block F); 27-fields C7's β/18 + β²/216, in Wilson's coupling β = 6ϑ, continued", ok,447            ", ".join(str(c) for c in s3[1:]))448449    s2 = Y.c1_series(2, 7); s2t, tr = Y.c1_series_2T(7)450    ok = s2 == [Q(0), Q(1), Q(0), Q(-2, 3), Q(0), Q(2, 3), Q(0)] and s2t[:5] == s2[:5] and s2t[5] == Q(4, 5)451    ok &= tr == {2: 1, -2: 1, 0: 6, 1: 8, -1: 8} and s2t[5] - s2[5] == Q(2, 15)452    R.check("D2", "the exact finite instance: 2T = SU(2, F_3) from its 24 unit quaternions (traces 2, −2 once, 0 six times, ±1 eight times) "453            "gives the fundamental coefficient ϑ − 2ϑ³/3 + 4ϑ⁵/5 + …, against the multiplicity series of SU(2), ϑ − 2ϑ³/3 + 2ϑ⁵/3 + …: the same "454            "coefficients through ϑ³, the first difference 2ϑ⁵/15 (27-fields Theorem corr2T, there in Wilson's coupling 4ϑ)", ok, f"2T {[str(c) for c in s2t[1:6]]}")455456    # D3 the series' window, the corollary of A9 (the push on T06, 9 November 2026): the ϑ^k coefficient of c₃ is built from the invariant457    #    counts of degree ≤ k + 1, that of c₈ from degree ≤ k + 2 — by perturbation of the counts degree by degree — so with A9 the frame's458    #    series equal the compact ones through ϑ^{p−3}, ϑ^{p−4}: ϑ¹⁰, ϑ⁹ on 13 (the paper computes ϑ⁷). On the instance, where the equalities of A9 do not apply,459    #    the departure at degree 5 (M(4,1) = 4 against 3) puts c₃'s ϑ⁴ at 0 and c₈'s ϑ³ at 1/8.460    w = Y.series_window(8)461    ok = all(w["first_changed"][d] == ((d - 1 if d - 1 < 8 else None), d - 2) for d in range(2, 10))462    ok &= w["window"] == {13: (10, 9), 173: (170, 169), 1549: (1546, 1545)} and all(v[0] >= 7 and v[1] >= 7 for v in w["window"].values())463    inst = Y.instance_series_departure()                                       # the instance's own counts over F_4 (two nullspaces, ~10 s)464    ok &= inst["M41"] == 4 and inst["M14"] == 4 and inst["compact41"] == 3465    ok &= inst["c3_instance"][:4] == inst["c3_compact"][:4] and inst["c3_instance"][4] == 0 and inst["c3_compact"][4] == Q(-5, 72)466    ok &= inst["c8_instance"][:3] == inst["c8_compact"][:3] and inst["c8_instance"][3] == Q(1, 8) and inst["c8_compact"][3] == Q(1, 12)467    # 46:C14 (p46051)468    R.check("D3", "the series' window, the corollary of A9: the ϑ^k coefficient of c₃ depends on the invariant counts of degree ≤ k + 1 and that "469            "of c₈ on degree ≤ k + 2 (raising the counts of degree d by one moves c₃ first at ϑ^{d−1} and c₈ at ϑ^{d−2}), so the frame's coefficients "470            "are built from the compact counts through ϑ^{p−3}, ϑ^{p−4}: ϑ¹⁰, ϑ⁹ on the Subject 13, ϑ¹⁷⁰, ϑ¹⁶⁹ on 173, ϑ¹⁵⁴⁶, ϑ¹⁵⁴⁵ on 1549, all beyond the ϑ⁷ "471            "computed; on the instance SU(3, F_2), where the equalities of A9 do not apply, M(4,1) = M(1,4) = 4 against the compact 3 puts c₃'s ϑ⁴ coefficient at 0 "472            "(compact −5/72) and c₈'s ϑ³ at 1/8 (compact 1/12)", ok,473            f"first changes {w['first_changed']}; instance c₃ {[str(c) for c in inst['c3_instance']]}, c₈ {[str(c) for c in inst['c8_instance']]}")474475    # D4 the frame's window and its first departure (46:C15; the T07 pushes of 9 November 2026): for odd p the frame's invariant counts476    #    are the compact ones through degree 2p − 1 (the coordinate SU(2) subgroups and finite Schur–Weyl, imported as A13), and the477    #    Frobenius tensor v_q = Σ sgn(i,j,k) S(i^{2q−1} j^{q−2} k^{q−1}) ⊗ e_k* at (4q − 4, 1) is a frame invariant outside the478    #    pairing-and-determinant span for every q — the image of the frame's hermitian pairing under a map of GL_3(K)-modules, K the479    #    field of q² elements, whose equivariance is the row-operation identity with its binomial table. Decided here: the table by Lucas on the Subjects and the480    #    small fields, the identity word by word for every z at q = 2, 3, the diagonal multipliers, g^{(q)} = ḡ = g^{−T} on the generators,481    #    v₂ fixed by the generators of SU(3, F_2), the weights of v_q's words, the finite counts at q = 3 (the compact ones through degree 8,482    #    M(8,1) = 1 against 0 at degree 9: d_* = 9; at q = 2 the compact ones through degree 5 except M(4,1) = 4: d_* = 5), and the bounds and483    #    orders on the Subjects. The multiplicities of the frame (46:A9; decision D140, 13 November 2026) are decided here as well. On the484    #    three Subjects: the kernel modulo p of the integer matrices of the elements 1 + zE_st at every pair of degree at most 5 and, on the485    #    words of weight (k, k, k), at the pairs of degrees 6 to 9; the vectors that four root elements of the frame fix; and the rank of486    #    the pairing-and-determinant tensors through degree 9. Modulo 3 the kernel and the rank are computed at every pair of degree at487    #    most 5, the window of the field of three elements, where the proposition's division by 6 is not available; the rank is also488    #    computed modulo 2 through degree 5 and modulo 3 through degree 8.489    bt = all(Y.binomial_table(q, q) == Y.binomial_table_expected(q, q) for q in (2, 3, 13, 173, 1549))490    ri2, ri3 = Y.row_identity(2), Y.row_identity(3)491    ok = bt and ri2 == (162, 0) and ri3 == (432, 0) and Y.diagonal_multipliers(13) and Y.diagonal_multipliers(1549)492    ok &= Y.frobenius_identification(2) == (2, True) and Y.frobenius_identification(3) == (2, True)493    ok &= Y.frobenius_tensor_fixed(2) and len(Y.frobenius_tensor(2)) == 24 and len(Y.frobenius_tensor(3)) == 1008494    ok &= Y.frobenius_weights(2) == [(0, 0, 3), (0, 3, 0), (3, 0, 0)] and Y.frobenius_weights(3) == [(1, 1, 5), (1, 5, 1), (5, 1, 1)]495    M3 = Y.frame_counts_small_field(3, 9, pairs={(a, b) for a in range(10) for b in range(10) if a + b <= 8} | {(8, 1)})   # numpy, exact; ≈ 55 s496    ok &= all(M3[k] == Y.I.su3_moment(*k) for k in M3 if sum(k) <= 8) and M3[(8, 1)] == 1 and Y.I.su3_moment(8, 1) == 0497    M2 = Y.frame_counts_small_field(2, 5)                                        # the instance by the same solver: d_*(2) = 5498    ok &= M2[(4, 1)] == 4 and Y.I.su3_moment(4, 1) == 3 and all(M2[k] == Y.I.su3_moment(*k) for k in M2 if k != (4, 1))499    ok &= all(Y.first_departure_bounds(p) == (2 * p, 4 * p - 3) for p, _ in LAB) and Y.frame_window_orders(13) == (25, 24, 23)500    fm = {p: frame_multiplicities(p) for p, _ in LAB}                         # 46:A9 on the three Subjects501    ok &= all(fm[p]["ok"] for p in fm) and all(fm[p]["roots"] == {(1, 1): 1, (3, 0): 1, (2, 2): 2} for p in fm)502    ok &= all(fm[p]["plane"][(4, 1)] == 3 and fm[p]["plane"][(2, 1)] == 0 and fm[p]["zero"][(6, 3)] == 47 and fm[p]["zero"][(9, 0)] == 42 for p in fm)503    ok &= all(fm[p]["span"][(4, 4)] == 23 and fm[p]["span"][(7, 1)] == 21 and fm[p]["span"][(6, 3)] == 47 for p in fm)504    low = [(a, d - a) for d in range(6) for a in range(d + 1)]                 # the 21 pairs of degree at most 5505    wide = [(a, b) for a in range(9) for b in range(a + 1) if a + b <= 8 and (a - b) % 3 == 0]506    ok &= all(sl3_fixed_count(3, a, b) == pairing_determinant_rank(3, a, b) == Y.I.su3_moment(a, b) for a, b in low)   # the window of F_3, over F_9507    ok &= all(pairing_determinant_rank(2, a, b) == Y.I.su3_moment(a, b) for a, b in wide if a + b <= 5)508    ok &= all(pairing_determinant_rank(3, a, b) == Y.I.su3_moment(a, b) for a, b in wide)509    # 46:C15 (p46053), 46:A9 (p46034)510    R.check("D4", "the frame's window and its first departure: for odd p the frame's invariant counts are the compact ones through degree "511            "2p − 1, and the Frobenius tensor v_q at (4q − 4, 1) is a frame invariant beyond them for every q, so the first departure d_* lies "512            "in [2p, 4p − 3] — [26, 49] on the Subject 13, [346, 689] on 173, [3098, 6193] on 1549 — and the series are the compact ones "513            "through ϑ^{2p−2}, ϑ^{2p−3}: ϑ²⁴, ϑ²³ on 13; the binomial table of the row-operation identity on the Subjects and the small fields, "514            "the identity for every z (162 cases at q = 2, 432 at q = 3), the diagonal multipliers, ḡ = g^{−T} = g^{(q)} on the generators, "515            "v₂ fixed by SU(3, F_2), the weights of v_q's words a permutation of (2q − 1, q − 2, q − 2); at q = 3 the counts are the compact "516            "ones through degree 8 and M(8,1) = 1 against 0, so d_*(3) = 9; at q = 2 they are the compact ones through degree 5 except M(4,1) = 4 against 3, so d_*(2) = 5; "517            "the multiplicities of the frame (Prop. prop:mult) on the Subjects 13, 173, 1549: modulo p the integer matrices of the elements "518            "1 + zE_st have a kernel of the compact dimension at each of the 21 pairs of degree at most 5 and, on the words of weight (k, k, k), "519            "at the seven pairs of degrees 6 to 9; four root elements of the frame fix as many vectors at (1,1), (3,0), (2,2); the "520            "pairing-and-determinant tensors have the compact rank through degree 9; modulo 3 the kernel and the tensors' rank are the compact "521            "count at each of the 21 pairs of degree at most 5; the rank is the compact count modulo 2 through degree 5 and modulo 3 through degree 8", ok,522            f"row identity {ri2}, {ri3}; q = 3 counts {sorted((k, v) for k, v in M3.items() if sum(k) >= 8)}; "523            f"on 13 the kernel at degree 5 {sorted((k, v) for k, v in fm[13]['plane'].items() if sum(k) == 5)}, "524            f"on the words of weight (k, k, k) {fm[13]['zero']}, the root elements {fm[13]['roots']}")525526    # D5 what a reading keeps of the window (46:C24; round 05, 11 November 2026; the audit with the four tests, 12 November 2026):527    #    the counts of D4 are equal as integers and a residue keeps less — on 13 the pair (1, 13) has 2574 = 13 · 198 invariants (the528    #    hook formula on (5, 4, 4): 13!/(840 · 120 · 24)) and reads 0, with 52 of the 117 nonzero counts of the window; below ϑ^p the529    #    coefficients of D3's series are computed in the arithmetic of the shell, by the recursion of the quotient on residues; from530    #    ϑ^p on k! reads 0, and no reading is stated.531    w13 = Y.window_readings(13)532    ok = w13["pairs"] == 351 and w13["nonzero"] == 117 and len(w13["zero"]) == 52 and w13["zero"][:2] == [(1, 13), (13, 1)]533    ok &= w13["count"][(1, 13)] == 2574 == 13 * 198 and 6227020800 == 2574 * (840 * 120 * 24)534    ok &= w13["residues"] == ([0, 9, 11, 0, 3, 7, 4, 10, 4, 3, 2, 5, 0], [0, 0, 5, 12, 0, 7, 8, 10, 9, 6, 2, 11, 3])535    ok &= w13["agree"] and w13["bound"] and w13["shift"]536    fact = {}537    for p, _ in LAB:538        r = 1539        for j in range(2, p): r = r * j % p                                     # (p − 1)!, every product reduced at once540        fact[p] = r541        ok &= r == p - 1 and (2 * pow(2, p - 2, p)) % p == 1 and (3 * pow(3, p - 2, p)) % p == 1542    ok &= all(sum(pow(p * p, i, p) for i in range(d)) % p == 1 for p, _ in LAB for d in (1, 2, 3, 8, 2574))   # the lines of a nonzero fixed space543    # 46:C24 (p46067)544    R.check("D5", "what a reading keeps of the window: on the Subject 13 the window has 351 pairs, 117 with a nonzero count, and 52 of these "545            "counts are multiples of 13, the first at (1, 13) with 2574 = 13 · 198 invariants (13!/(840 · 120 · 24) by the hook formula on "546            "(5, 4, 4)), so the count reads 0 on a space of 2574 independent invariants; below ϑ¹³ the coefficients of c₃ and c₈ are computed "547            "in the arithmetic of the shell, by the recursion of the quotient on residues from the residues of the counts, and read 0, 9, 11, "548            "0, 3, 7, 4, 10, 4, 3, 2, 5, 0 and 0, 0, 5, 12, 0, 7, 8, 10, 9, 6, 2, 11, 3; they are the residues of the rational coefficients, "549            "whose denominators divide 3 · k! and 8 · k!, and they are the same when every count moves by a multiple of 13; on "550            "the Subjects 13, 173, 1549 the factorial (p − 1)! reads p − 1 and 2, 3 have inverses, so the factors 2, 3 and 1, …, p − 1 of the "551            "denominators below ϑ^p are units; from ϑ^p on k! holds the factor p and reads 0, and no reading is stated; the count of "552            "invariant lines of a nonzero fixed space reads 1 for the dimensions 1, 2, 3, 8 and 2574 on the three Subjects, since every "553            "term of 1 + p² + … after the first reads 0", ok,554            f"13: zero-reading pairs by degree {w13['zero'][:6]}…; c₃ below ϑ¹³ reads {w13['residues'][0]}, c₈ reads {w13['residues'][1]}; "555            f"(p − 1)! reads {fact}")556557    # D6 the series on the shell (D119, 12 November 2026; the push on T25). d_R c_R = Σ h_k ϑ^k/k! with integers h_k, whose recursion558    #    h_k = n_k − Σ_j C(k, j) d_j h_{k−j} has no division and runs on residues at every order. In the series' arithmetic every f with559    #    f(0) = 0 has f^p = 0 on the shell, so a reading that respects sums and products sends ϑ to 0; three finite expressions at channel unity differ560    c3, c8 = Y.c1_series(3, 25), Y.c_adj_series(24)561    h3 = [3 * Y._fact(k) * c for k, c in enumerate(c3)]; h8 = [8 * Y._fact(k) * c for k, c in enumerate(c8)]562    ok = all(x.denominator == 1 for x in h3 + h8) and h3[:8] == [0, 1, 1, 0, -5, -15, 21, 413] and h8[:8] == [0, 0, 2, 4, 0, -40, -148, 252]563    s = Y.shell_series(13, 25)564    ok &= s["h"] == [int(x) % 13 for x in h3] and s["product"] and not any(s["power"])        # beyond ϑ¹³ too; (3c₃)¹³ = 0565    for p, _ in LAB:                                                                           # (ϑ^k/k!)^p = Π_{i ≤ p} C(ik, k) · ϑ^{kp}/(kp)!566        for k in (1, 2, 3):567            f = 1568            for i in range(1, p + 1): f = f * comb(i * k, k) % p                                # reduced at once; k = 1 is p!569            ok &= f == 0 and comb(k * p, k) % p == 0570    inv = lambda x: pow(x % 13, 11, 13)571    a = [s["h"][k] * inv(3 * Y._fact(k)) % 13 for k in range(13)]572    N = sum(s["n"][k] * inv(3 * Y._fact(k)) for k in range(13)) % 13; D = sum(s["d"][k] * inv(Y._fact(k)) for k in range(13)) % 13573    sums = (sum(a) % 13, N * inv(D) % 13, 23 * inv(54) % 13)574    ok &= sums == (6, 4, 5)575    # 46:C26 (p46072)576    R.check("D6", "the series on the shell: d_R c_R = Σ h_k ϑ^k/k! with integers h_k through the orders 24 and 23 (0, 1, 1, 0, −5, −15, 21, 413 for c₃ and "577            "0, 0, 2, 4, 0, −40, −148, 252 for c₈); on the Subject 13 the recursion h_k = n_k − Σ_j C(k, j) d_j h_{k−j}, which has no division, gives on "578            "residues the residues of these integers through the order 24, beyond ϑ¹³, and the 13th power of 3c₃ under the binomial convolution has no "579            "nonzero coefficient; the factor Π_{i ≤ p} C(ik, k) of the p-th power of ϑ^k/k!, k = 1, 2, 3, reads 0 on 13, 173 and 1549 with its last "580            "term C(kp, k), and for k = 1 it is p!, so a reading that respects sums and products sends ϑ to 0; at channel unity on 13 the sum of the terms of c₃ below ϑ¹³ reads 6, the quotient of the two truncated sums reads 4 and "581            "the sum 23/54 of the computed terms through ϑ⁷ reads 5", ok,582            f"h(c₃) {[int(x) for x in h3[:8]]}, h(c₈) {[int(x) for x in h8[:8]]}; on 13 h_k reads {s['h']}; sums {sums}")583584585# ------------------------------------------------------------------------------------------------------------586@R.block("E", BLOCK["E"])587def block_E():588    """Block E — the chart confrontations."""589    c = Y.casimirs(3)590    ok = CY.within(c["C_A"], *CY.LEP["C_A"]) and CY.within(c["C_F"], *CY.LEP["C_F"]) and CY.within(c["ratio"], *CY.LEP["ratio"])591    ok &= not CY.within(0, *CY.LEP["C_A"]) and not CY.within(1, *CY.LEP["C_F"])          # the abelian alternative excluded592    # 46:P1 (p46023)593    R.check("E1", "[chart] the colour factors against LEP: C_A = 3 within 2.89 ± 0.21, C_F = 4/3 within 1.30 ± 0.09, C_A/C_F = 9/4 "594            "within 2.22 ± 0.11 (one standard deviation each); the abelian values C_A = 0, C_F = 1 lie outside — the frame's Casimirs "595            "are what the four-jet angular correlations measured", ok, f"LEP {CY.LEP['C_A'][0]}±{CY.LEP['C_A'][1]}, {CY.LEP['C_F'][0]}±{CY.LEP['C_F'][1]}", kind="CHART")596597    r = CY.run_to_tau(); r2 = CY.run_to_tau_two_loop()598    a_t, a_b = Q(repr(r["alpha_mtau"])), Q(repr(r["alpha_mb"]))599    a_t2 = Q(repr(r2["alpha_mtau"]))600    m, dm = CY.ALPHA_S["mtau"]601    ok = Q("0.27") < a_t < Q("0.29") and Q("0.21") < a_b < Q("0.22") and a_t < m          # one loop lies below the measured value by the known higher orders602    ok &= abs(a_t - m) < Q("0.05") and len(r["efolds"]) == 2 and Q("3.9") < Q(repr(sum(r["efolds"]))) < Q("4.0")603    ok &= abs(a_t2 - m) < dm                                                                  # the imported two-loop term closes the gap604    # 46:P2 (p46024)605    R.check("E2", "[chart] the one-loop run between laboratory scales: from α_s(M_Z) = 0.1180 the law 1/α(μ) = 1/α(μ₀) + (b₀/2π) ln(μ/μ₀) "606            "with the thresholds n_f = 5 to m_b and 4 to m_τ gives α_s(m_b) = 0.212 and α_s(m_τ) = 0.279 against the τ-decay 0.312 ± 0.015 "607            "(2.2 standard deviations below); with the imported two-loop coefficient b₁ = 102 − 38n_f/3 the run gives α_s(m_τ) = 0.313, "608            "within one standard deviation; 3.94 e-folds from M_Z to m_τ", ok,609            f"α_s(m_b) = {CY.fmt(a_b, 4)}, α_s(m_τ) = {CY.fmt(a_t, 4)} (one loop), {CY.fmt(a_t2, 4)} (two loops), e-folds {[CY.fmt(e, 3) for e in r['efolds']]}", kind="CHART")610611    det = CY.m0pp_determinations(); t, pm = CY.glueball_ladder()612    (v, dv), (r, dr), (d, dd) = det["via_Tc"], det["via_r0"], det["direct"]613    ok = Q("3.64") < v < Q("3.76") and dv < Q("0.07") and Q("3.6") < r < Q("3.66") and d == Q("3.405")614    ok &= Q("1.38") < t < Q("1.40") and Q("1.50") < pm < Q("1.51") and (v - d) > 3 * (dv + dd)      # the spread exceeds the quoted errors615    # 46:C8 (p46017)616    R.check("E3", "[chart] the lattice anchors of the pure-gauge sector, declared for the minimal-wrap row: m(0⁺⁺)/√σ by two routes — the r₀ "617            "route with two inputs, (m/T_c)(T_c/√σ) = 5.73(9) × 0.6462(30) = 3.70(6) (Hasenbusch–Necco's r₀m average through T_c r₀ = 0.7498) "618            "and r₀m/r₀√σ = 4.21(11)/1.160(6) = 3.63(10) (Morningstar–Peardon), and the direct continuum extrapolation 3.405(21) — a spread "619            "of 9 %, beyond the quoted errors; the ladder m(2⁺⁺)/m(0⁺⁺) = 1.39, m(0⁻⁺)/m(0⁺⁺) = 1.50; T_c/√σ = 0.6462(30) (SU(3)), "620            "0.7091(36) (SU(2)) — the targets λ_gb must meet, none a result of this ledger", ok,621            f"m(0⁺⁺)/√σ = {CY.fmt(v)}({CY.fmt(dv, 2)}), {CY.fmt(r)}({CY.fmt(dr, 2)}), {CY.fmt(d)}({CY.fmt(dd)}); ladder {CY.fmt(t)}, {CY.fmt(pm)}", kind="CHART")622623    # E4 the chart's cells (D111 and D112, 12 November 2026). The one-loop law is a law of powers: with W = e^{−8π²ϑ} a scale lower by gⁿ624    #    has W higher by g^{b₀n}, and W = e^{−8π²} at channel unity. The stiffness is the chart's logarithm of 1/W in the unit 8π²625    cc = CY.chart_cells(); th = {n: Q(repr(x)) for n, x in cc["cells"].items()}; step = Q(repr(cc["step"]))626    ok = cc["law"] and th[0] == 1 and Q("0.09656") < step < Q("0.09658") and th[10] > 0 > 1 - 11 * step627    ok &= Q("10.35") < Q(repr(cc["steps_to_one"])) < Q("10.36") and all(Y.drive_exponents_unique(p)[1] == 2 for p, _ in LAB)628    ok &= all((11 * n) < p - 1 for n in range(11) for p in (173, 1549)) and (11 * 10) // 12 == 9           # the exponent b₀n within one window, and its wraps on 13629    size = {n: Q(repr(cc["size"][n])) for n in (9, 0)}630    ok &= abs(size[9] - Q("1.75")) < Q("0.005") and abs(size[0] - Q("0.92")) < Q("0.005")631    # 46:B6 (p46070)632    R.check("E4", "[chart] the chart's cells: the one-loop law is a law of powers, W(w₂)/W(w₁) = (w₁/w₂)^{b₀} with W = e^{−8π²ϑ}, so a scale n "633            "drive steps below channel unity has W higher by g^{b₀n} and the stiffness ϑ_n = 1 − n b₀ ln g/8π², the chart's logarithm of 1/W in the "634            "unit 8π²; with b₀ = 11 and the drive g = 2 of the three laboratory Subjects one step is 0.0966, the stiffness is positive through n = 10 "635            "and W reaches 1 after 10.36 steps; the exponent 11n stays within one window of the drive on 173 and 1549 and wraps on 13; the cell's "636            "size a√σ on the computed terms is 1.75 at n = 9 and 0.92 at channel unity", ok,637            f"step {CY.fmt(step, 5)}; ϑ_n: " + ", ".join(f"{n}: {CY.fmt(th[n], 4)}" for n in sorted(th)) + f"; a√σ {CY.fmt(size[9])}, {CY.fmt(size[0])}", kind="CHART")638639640# ------------------------------------------------------------------------------------------------------------641@R.block("F", BLOCK["F"])642def block_F():643    """Block F — the minimal wrap (Phase 2, decision D5; the repair of 8 November): the exact adjoint identity, the chart's644    operator family against the three lattice determinations, and the chart's tension ratio."""645    # F1 the adjoint plaquette coefficient c₈ = ϑ²/8 + ϑ³/12 + 0·ϑ⁴ − ϑ⁵/24 + … and the exact ratio c₈/c₃² = (9/8)(1 − ϑ/3 +646    #    ϑ²/12 + ϑ³/12 + …): the ϑ¹ coefficient of c₈ vanishes (no singlet in 8 ⊗ 3 or 8 ⊗ 3̄) and its ϑ² coefficient is 2 · (1/2)/8647    #    — the adjoint wrap is two fundamental wraps up to the factor 9/8, with the ratio computed to order ϑ⁴; the two multiplicity identities648    #    behind it hold on the finite frame itself: the fixed vectors of 3^{⊗a} ⊗ 3̄^{⊗b} over F_4 under SU(3, F_2), a + b ≤ 4, equal649    #    the compact multiplicities (27-fields Lemma charlift at its enumerable instance)650    c8 = Y.c_adj_series(8); ratio = Y.adjoint_over_fundamental_squared(5)651    ok = c8[:6] == [Q(0), Q(0), Q(1, 8), Q(1, 12), Q(0), Q(-1, 24)]652    ok &= ratio == [Q(9, 8), Q(-3, 8), Q(3, 32), Q(3, 32), Q(7, 640)]653    ok &= [x / Q(9, 8) for x in ratio[:4]] == [Q(1), Q(-1, 3), Q(1, 12), Q(1, 12)]654    m = Y.frame_moments_f4(degree=4)655    ok &= all(fin == cpt for fin, cpt in m.values())656    E = lambda a, b: m[(a, b)][0]657    ok &= E(2, 1) + E(1, 2) - E(1, 0) - E(0, 1) == 0                                      # the ϑ¹ coefficient of c₈ on the frame658    ok &= E(3, 1) + 2 * E(2, 2) + E(1, 3) - E(2, 0) - 2 * E(1, 1) - E(0, 2) == 2        # 4 · E[(χχ̄ − 1)(Re χ)²] = 2 on the frame659    # 46:C9 (p46030)660    R.check("F1", "the adjoint wrap: the adjoint plaquette coefficient c₈(ϑ) = ϑ²/8 + ϑ³/12 − ϑ⁵/24 + … has no ϑ¹ term (no singlet "661            "in 8 ⊗ 3 or 8 ⊗ 3̄), and c₈/c₃² = (9/8)(1 − ϑ/3 + ϑ²/12 + ϑ³/12 + …) to order ϑ⁴: two fundamental wraps at leading order "662            "up to the factor 9/8; the two multiplicity identities behind the leading terms hold on the enumerable instance SU(3, F_2) "663            "over F_4 by enumeration, and every moment of the instance of degree ≤ 4 equals its compact reading", ok,664            f"c₈ {[str(c) for c in c8[2:6]]}, c₈/c₃² {[str(c) for c in ratio[:4]]}, frame moments {len(m)} agree")665666    # F2 the chart's operator family of D5 against the three lattice determinations: E₀(a|p| + ϰr) = √(aϰ)·2.232 (the chart operator's667    #    dilation symmetry, which the grid reproduces); a ∈ {1, 2} (35-hadrons' one-body form; one |p| per constituent — both the chart's668    #    kinematics), ϰ ∈ {1, 2, 9/4}; no member inside any determination's error; the ϰ-free radial ratio E₁/E₀ = 1.49 against the669    #    lattice 0⁺⁺*/0⁺⁺ = 1.54(11); the effective tension each determination would need, 2.75 / 2.64 / 2.33 (a = 1) or 1.38 / 1.32 /670    #    1.16 (a = 2), none a frame value671    spec = CY.wrap_spectrum(1, 1, 3); f = CY.wrap_family(spec)672    E0 = Q(repr(spec[0]))673    ok = Q("2.231") < E0 < Q("2.233") and not any(any(row["inside"].values()) for row in f["table"])674    e22 = next(row["E0"] for row in f["table"] if row["a"] == 2 and row["kappa"] == 2)675    e19 = next(row for row in f["table"] if row["a"] == 1 and row["kappa"] == Q(9, 4))676    ok &= Q("4.46") < Q(repr(e22)) < Q("4.47") and Q("3.34") < Q(repr(e19["E0"])) < Q("3.35")677    ok &= Q("-0.02") < Q(repr(e19["off"]["direct"])) < Q("-0.015") and Q("-0.10") < Q(repr(e19["off"]["via_Tc"])) < Q("-0.09")678    r1, r2 = (Q(repr(x)) for x in f["ratios"]); rl, drl = (Q(repr(x)) for x in f["lattice_radial"])679    ok &= Q("1.49") < r1 < Q("1.493") and abs(r1 - rl) < drl680    ke = f["kappa_eff"]; ok &= Q("2.7") < Q(repr(ke["via_Tc"][1])) < Q("2.8") and Q("2.3") < Q(repr(ke["direct"][1])) < Q("2.35")681    d21 = Q(repr(CY.wrap_spectrum(2, 1, 1)[0]))                                          # the dilation symmetry on the grid, off the identity pair:682    ok &= abs(d21 * d21 - 2 * E0 * E0) < Q("0.01")                                       # E₀(2|p| + r)² = 2 E₀(|p| + r)², in exact rationals683    # 46:C12 (p46036)684    R.check("F2", "[chart] the chart's wrap-operator family against the lattice: E₀(a|p| + ϰr) = √(aϰ)·2.232 (the dilation symmetry of the "685            "chart operator, reproduced on the grid to 10⁻³), a ∈ {1, 2}, ϰ ∈ {1, 2, 9/4}: 2.232, 3.157, 3.348, 3.157, 4.464, 4.735 — none "686            "inside the error of any determination, 3.70(6), 3.63(10), 3.405(21); the nearest, one-body with Casimir scaling, lies 1.7 % "687            "below the direct value and 10 % below the r₀ route's upper input; the two-body members with ϰ = 2, 9/4 lie 20–40 % above every "688            "determination; the ϰ-free radial ratio E₁/E₀ = 1.49 meets the lattice 0⁺⁺*/0⁺⁺ = 1.54(11); the effective tension each "689            "determination needs (2.75, 2.64, 2.33 one-body) is no frame value", ok,690            f"E = {[CY.fmt(e, 4) for e in spec]}, family {[CY.fmt(row['E0']) for row in f['table']]}, E₁/E₀ = {CY.fmt(r1, 4)} vs "691            f"{CY.fmt(rl)} ± {CY.fmt(drl)}, ϰ_eff(a=1) {', '.join(CY.fmt(ke[k][1]) for k in ('via_Tc', 'via_r0', 'direct'))}", kind="CHART")692693    # F3 the chart's tension ratio: σ₈/σ₃ = ln c₈ / ln c₃ at the chart's cells n = 10 to 5 (46:B6) lies between 1.97 and 2.03 and694    #    equals 2 at no cell — the chart reading of F1's exact ratio; the logarithm belongs here, not in F1695    vals = {n: Q(repr(v)) for n, v in CY.adjoint_ratio_table().items()}                  # the chart tier forms the floats696    ok = all(Q("1.97") < v < Q("2.03") for v in vals.values()) and all(v != 2 for v in vals.values())697    ok &= vals[9] < vals[10] and vals[9] < vals[8] < vals[7] < vals[6] < vals[5]698    ok &= all(abs(vals[n] - Q(x)) < Q("0.0005") for n, x in ((10, "1.976"), (9, "1.976"), (8, "1.982"), (7, "1.992"), (6, "2.006"), (5, "2.022")))699    R.check("F3", "[chart] the chart's tension ratio σ₈/σ₃ = ln c₈(ϑ)/ln c₃(ϑ), read on the computed terms at the chart's cells "700            "n = 10, 9, 8, 7, 6, 5 (B6): 1.976, 1.976, 1.982, 1.992, 2.006, 2.022 — within 2 % of two fundamental wraps and equal to "701            "2 at none of the six; the chart's reading of F1's ratio (9/8)(1 − ϑ/3 + …)", ok,702            ", ".join(f"n={n}: {CY.fmt(v, 4)}" for n, v in vals.items()), kind="CHART")703704    # F4 the radial ratio of the operator form (T03 resolved, 8 November 2026): E₁/E₀ and E₂/E₀ of a|p| + ϰr are free of a and ϰ (the dilation705    #    symmetry); E₁/E₀ = 1.49 against the lattice 0⁺⁺*/0⁺⁺ = 1.54(11) (Morningstar–Peardon, r₀ masses) and the nucleon's N(1440)/N(939) = 1.53;706    #    the nonrelativistic ladder p²/2 + r has the Airy ratio a₂/a₁ = 4.088/2.338 = 1.75, outside the lattice bracket707    spec1 = CY.wrap_spectrum(1, 1, 3); spec2 = CY.wrap_spectrum(2, Q(9, 4), 3)708    q1 = Q(repr(spec1[1])) / Q(repr(spec1[0])); q2 = Q(repr(spec1[2])) / Q(repr(spec1[0])); q1b = Q(repr(spec2[1])) / Q(repr(spec2[0]))709    airy = Q("4.08795") / Q("2.33811"); roper = Q(1440, 939)710    ok = Q("1.49") < q1 < Q("1.493") and abs(q1 - q1b) < Q("0.002") and Q("1.86") < q2 < Q("1.87")711    ok &= abs(q1 - rl) < drl / 2 and airy > rl + drl and Q("1.74") < airy < Q("1.76")712    r20 = CY.LATTICE["m0pp_star_direct"][0] / CY.LATTICE["m0pp_over_sqrt_sigma_direct"][0]                        # the 2020 continuum ratio 5.855(41)/3.405(21)713    dr20 = Q("0.016")                                                                                             # its quoted error: the two relative errors in quadrature, the masses taken as uncorrelated714    dr20_max = r20 * (Q(41, 5855) + Q(21, 3405))                                                                  # the largest error any correlation allows (anticorrelated): the two terms added, exact715    ok &= Q("1.715") < r20 < Q("1.725") and r20 - q1 > 14 * dr20 and r20 - q1 > 10 * dr20_max and abs(airy - r20) < 2 * dr20716    ok &= abs(roper - q1) < Q("0.03") * q1717    # 46:P3 (p46043)718    R.check("F4", "[chart] the radial ratio of the operator form: E₁/E₀ = 1.49 and E₂/E₀ = 1.86 for every a and ϰ (the dilation symmetry, the same "719            "on (1, 1) and (2, 9/4) to 10⁻³), a property of the chart's operator form and of nothing in the frame; against the lattice "720            "0⁺⁺*/0⁺⁺ = 1.54(11) it lies within half a standard deviation, while the nonrelativistic ladder's Airy ratio 1.75 lies outside the "721            "bracket; the 2020 continuum determination 5.855(41)/3.405(21) = 1.72(2) (Athenodorou–Teper) excludes 1.49 by fourteen standard "722            "deviations with the two masses taken as uncorrelated (the quoted 0.016) and by more than ten for any correlation (the "723            "anticorrelated error 0.0226 is the largest); the Airy 1.75 lies within two of it under the same assumption and from 1.3 to 21 "724            "across the correlations, a comparison the covariance decides: the one-body form fails for the glueball, for every a and ϰ; the nucleon's "725            "N(1440)/N(939) = 1.53 lies within 3 %", ok,726            f"E₁/E₀ = {CY.fmt(q1, 4)} ((2, 9/4): {CY.fmt(q1b, 4)}), E₂/E₀ = {CY.fmt(q2, 4)}, lattice 1999 {CY.fmt(rl)} ± {CY.fmt(drl)}, "727            f"2020 {CY.fmt(r20, 3)} ± {CY.fmt(dr20, 3)} (at most ± {CY.fmt(dr20_max, 4)}), Airy {CY.fmt(airy, 4)}, Roper {CY.fmt(roper, 4)}", kind="CHART")728729730# ------------------------------------------------------------------------------------------------------------731@R.block("G", BLOCK["G"])732def block_G():733    """Block G — the two chart routes of the former task T01 (the push of 8 November 2026), both failing: results about the chart's objects, not about the finite theory (round 03)."""734    # G1 route (a): a|p| + ϰr − C/max(r, r_c) with C = C_A α_s. The Herbst bound: bounded below iff C ≤ 2a/π. The declared coupling735    #    α_s(√σ) = 1.007 gives C = 3.02 > 4/π: the cutoff cannot be removed (the grid at r_c = 1 cell gives 1.8, falling as r_c shrinks; the736    #    singular operator is unbounded below by Herbst's theorem, not by the grid; with the cutoff retained the operator has a ground state737    #    above −C/r_c).738    #    The coupling run to the bound state's mass gives a fixed point only above a cutoff: 3.54, 3.08, 2.61 at r_c = 1, 1/2, 1/4739    #    (in 1/√σ) and none at 1/8 — the number is the cutoff's, and the cell's size in units of 1/√σ is set by the stiffness of the cell740    r = CY.short_range_review(); dc = r["declared"]; fp = r["fixed"]                           # every number an exact rational of the chart's float741    ok = Q("3.0") < dc < Q("3.05") and dc > r["herbst_two"] and r["collapse_rc1"] < Q("1.9")742    ok &= fp["1"] is not None and Q("3.5") < fp["1"][0] < Q("3.6")743    ok &= fp["1/2"] is not None and Q("3.0") < fp["1/2"][0] < Q("3.15")744    ok &= fp["1/4"] is not None and Q("2.55") < fp["1/4"][0] < Q("2.7")745    ok &= fp["1/8"] is None746    ok &= all(v is None or v[1] < r["herbst_two"] for v in fp.values())                        # every fixed point lies below the two-body bound747    # the review of 8 November 2026: the regularised operator has a ground state at every cutoff (bounded below by −C/r_c); the collapse is748    #    the cutoff's removal; a failing iteration is not a proof of no root — the roots by bisection, both branches, and the one-body form749    coll = r["collapse"]750    ok &= Q("0.3") < coll["1/2"] < Q("0.5") and Q("-1.6") < coll["1/4"] < Q("-1.4") and Q("-4.4") < coll["1/8"] < Q("-4.2")751    ok &= all(coll[k] > r["bound"][k] for k in coll)                                            # the elementary lower bound −C/r_c752    low = r["low"]753    ok &= all(v is not None for v in low.values()) and Q("0.8") < low["1"] < Q("0.9") and Q("1.6") < low["1/4"] < Q("1.7")754    ok &= r["scan_max"] < Q("-0.15") and r["scan_n"] == 149 and Q("2.2") <= r["scan_at"] <= Q("2.3")   # at 1/8 cell the residual stays below −0.15 on the 149-energy scan, its maximum near 2.25755    one = r["one"]756    ok &= one["1"] is None and Q("2.4") < one["2"] < Q("2.6") and Q("3.0") < one["10"] < Q("3.1")757    # 46:C10 (p46037)758    R.check("G1", "[chart] the short-range route of the chart fails: with the declared coupling α_s(√σ) = 1.007 the two-adjoint term has C = C_A α_s = "759            "3.02 above the Herbst bounds 2/π (one-body) and 4/π (two-body), so the cutoff cannot be removed (E₀ = 1.8, 0.4, −1.5, −4.3 at "760            "1, 1/2, 1/4, 1/8 cells, falling as the cutoff shrinks — the singular operator is unbounded below by Herbst's theorem, not by the grid, "761            "whose spacing 18/241 resolves no cutoff below 1/16; with the cutoff retained the operator is bounded below by −C/r_c); with the coupling "762            "run by the one-loop law to the bound state's mass each form has fixed points at the larger sampled cutoffs and none found at the smaller — "763            "two bodies: 3.54, 3.08, 2.61 at r_c = 1, 1/2, 1/4 (each with a lower second root) and none found at 1/8 on a scan of 149 energies in "764            "[0.6, 8], a sampled finding; one body: 2.5 at r_c = 2, 3.0 at r_c = 10, none found at one cell — so the eigenvalue is the cutoff's, and the "765            "cell's size in units of 1/√σ is set by the stiffness of the cell, "766            "which no row fixes", ok,767            f"C_declared = {CY.fmt(dc, 3)}, collapse {CY.fmt(r['collapse_rc1'])}, {', '.join(CY.fmt(coll[k]) for k in ('1/2', '1/4', '1/8'))} at 1/2, 1/4, 1/8; "768            f"lower roots {', '.join(CY.fmt(v) for v in low.values())}; one-body r_c = 2, 10: {CY.fmt(one['2'])}, {CY.fmt(one['10'])}; fixed points " +769            ", ".join(f"r_c={rc}: " + (f"E₀={CY.fmt(v[0])} (C={CY.fmt(v[1])})" if v else "none") for rc, v in fp.items()), kind="CHART")770771    # G2 route (b): the 0⁺⁺ channel of the strong-coupling expansion (the plaquette, the closed fundamental loop) with Münster's series772    #    to u⁷ and the tension at leading order, with u the sum of the computed terms of the frame's c₃ through ϑ⁷ at the chart's cells (46:B6). The orders 3, 5, 7 agree within 1 %773    #    at the cells n = 9 to 6; at n = 3 and at n = 2 one order alone lies in the lattice bracket 3.4–3.7; at channel unity the terms sum to u = 23/54774    pc = CY.plaquette_channel(); T = pc["table"]; U = pc["unity"]775    v = {n: {o: Q(repr(T[n]["orders"][o])) for o in (3, 5, 7)} for n in T}; sp = {n: Q(repr(T[n]["spread"])) / v[n][7] for n in T}776    u = {n: Q(repr(T[n]["u"])) for n in T}777    ok = all(abs(u[n] - Q(x)) < Q("0.00005") for n, x in ((9, "0.0465"), (8, "0.0842"), (7, "0.1246"), (6, "0.1671"), (4, "0.2553"), (3, "0.2994"), (2, "0.3425")))                              # the cells' u to four decimals778    ok &= Q("6.85") < v[9][7] < Q("6.95") and Q("6.15") < v[8][7] < Q("6.25") and Q("5.55") < v[7][7] < Q("5.65") and Q("5.05") < v[6][7] < Q("5.15")779    ok &= all(sp[n] < Q("0.01") for n in (9, 8, 7, 6)) and all(min(v[n].values()) > Q("3.7") for n in (9, 8, 7, 6, 4))780    inb = lambda x: Q("3.4") < x < Q("3.7")781    ok &= [inb(v[3][o]) for o in (3, 5, 7)] == [False, True, False] and [inb(v[2][o]) for o in (3, 5, 7)] == [True, False, False]782    ok &= all(abs(v[4][o] - Q(x)) < Q("0.05") for o, x in ((3, "4.3"), (5, "4.2"), (7, "4.2")))783    ok &= all(abs(v[n][o] - Q(x)) < Q("0.005") for n, o, x in ((3, 3, "3.98"), (3, 5, "3.60"), (3, 7, "3.79"), (2, 3, "3.64"), (2, 5, "2.87"), (2, 7, "3.36")))784    vu = {o: Q(repr(U["orders"][o])) for o in (3, 5, 7)}785    ok &= U["exact"] == Q(23, 54) and all(abs(vu[o] - Q(x)) < Q("0.005") for o, x in ((3, "2.95"), (5, "0.45"), (7, "2.82")))786    # 46:C11 (p46071)787    R.check("G2", "[chart] the plaquette channel of the chart fails: with the imported 0⁺⁺ series to u⁷ and u the sum of the computed terms of the frame's c₃ through ϑ⁷ at the chart's cells (B6), "788            "m/√σ = 6.9, 6.2, 5.6, 5.1 at the cells n = 9, 8, 7, 6 (u = 0.046, 0.084, 0.125, 0.167), the orders 3, 5, 7 agreeing within 1 %; at n = 4 "789            "the orders give 4.3, 4.2, 4.2, above the lattice bracket 3.4–3.7; at n = 3 (u = 0.299) they give 3.98, 3.60, 3.79 and at n = 2 they give "790            "3.64, 2.87, 3.36, one order alone inside and not the same one; at channel unity the terms sum to u = 23/54 and the orders give 2.95, 0.45, 2.82: the series' tail "791            "is not bounded", ok,792            ", ".join(f"n={n}: u={CY.fmt(u[n], 4)}, {CY.fmt(v[n][7])} (spread {CY.fmt(sp[n] * 100, 1)} %)" for n in sorted(T, reverse=True))793            + f"; channel unity by order: {CY.fmt(vu[3])}, {CY.fmt(vu[5])}, {CY.fmt(vu[7])}", kind="CHART")794795796# ------------------------------------------------------------------------------------------------------------797@R.block("H", BLOCK["H"])798def block_H():799    """Block H — the spectral amplitude of a plaquette (46:B4) and the transfer tally on the instance (the T09 record of 9 November800    2026): its finite properties and singular values (C16), its values and moments on the 216 elements (C17), the transfer801    tally's spectrum (C18). Every number is integer or finite-field arithmetic in Z[ζ₃] and F_4."""802    # H1 the amplitude's finite properties (46:C16): on every element of SU(3, F_2) the semisimple part by powers (U = U_s U_n, the803    #    exponent 4 for all 216), the eigenvalues of U_s in F_4, the trace's reduction Σλ_j = Tr U, the class-function property, the804    #    inverse-conjugation w(U⁻¹) = w̄(U), and on the 189 elements of even order the pattern (λ, λ, λ⁻²) with λ³ = 1 — here every such805    #    U_s is scalar, so w = 3η with η³ = 1 (2η + η⁻² = 3η); the full sum vanishes (3 | q + 1, the centre of order 3). On the Subjects806    #    the plane's cycle of p² − 1 units, its gcd with the Carrier's cycle Ω − 1, the centre of order 3 on 173 only, and the807    #    second cycle's order p² − p + 1 prime to Ω − 1 on all three: no phase of the second cycle is a Carrier phase (the order-157 amplitude808    #    ζ + ζ¹² + ζ¹⁴⁴ on the Subject 13, its paired weight 3 + six distinct nontrivial phases, not rational).809    amp = Y.spectral_amplitude_instance()810    dist, even, mom, tot = amp["distribution"], amp["even_order"], amp["moments"], amp["sum"]811    ok = sum(dist.values()) == 216 and tot == (0, 0) and amp["classes"] == 16812    ok &= sum(even.values()) == 189 and set(even) == {(3, 0), (0, 3), (-3, -3)}                 # every element of even order has w = 3η813    ok &= Y.z3_mul((0, 1), (0, 1)) == (-1, -1) and Y.z3_mul(Y.z3_mul((0, 1), (0, 1)), (0, 1)) == (1, 0)   # z² = −1 − z, z³ = 1814    tab = Y.subject_phase_table()815    ok &= [t["plane"] for t in tab] == [168, 29928, 2399400] and [t["gcd_plane_cycle"] for t in tab] == [8, 8, 40]816    ok &= [t["centre3"] for t in tab] == [False, True, False] and all(t["gcd_nonsplit_cycle"] == 1 for t in tab)817    n157, E157, pw157 = Y.nonsplit_amplitude_exponents(13)818    ok &= n157 == 157 and E157 == [1, 12, 144] and pw157 == {0: 3, 11: 1, 14: 1, 25: 1, 132: 1, 143: 1, 146: 1}819    ok &= Y.centre_order(2) == 3820    # the second cycle in the arithmetic of the plane alone (Proposition prop:amplitude(i), (ii)), for a matrix with the characteristic821    #    polynomial of a generator of that cycle: C is the companion matrix over F_p(√2) of x³ − t x² + t̄ x − 1 (a frame element with822    #    this characteristic polynomial is conjugate to it over the plane); C has the order m = p² − p + 1 and no eigenvalue on the plane823    #    (C^(p²) − C is invertible); C, D = C^(p²) and E = C^(−p) are the three roots of the polynomial: their sum is t·1, the sum of824    #    their pairwise products t̄·1 and their product 1, so C^k + D^k + E^k = Tr(C^k)·1 for every power; the powers are also run one825    #    by one over the whole cycle on 13 and 173826    z, o = (0, 0), (1, 0); pm_one = [o, z, z, z, o, z, z, z, o]; pm_scal = lambda c: [c, z, z, z, c, z, z, z, c]827    def pm_mul(Kx, P, Q):828        return [Kx.add(Kx.add(Kx.mul(P[3 * i], Q[j]), Kx.mul(P[3 * i + 1], Q[3 + j])), Kx.mul(P[3 * i + 2], Q[6 + j])) for i in range(3) for j in range(3)]829    def pm_pow(Kx, P, n):830        R = pm_one831        while n:832            if n & 1: R = pm_mul(Kx, R, P)833            P = pm_mul(Kx, P, P); n >>= 1834        return R835    pm_add = lambda Kx, P, Q: [Kx.add(a, b) for a, b in zip(P, Q)]836    cyc = {}837    for p, t in ((13, (9, 4)), (173, (166, 160)), (1549, (1275, 523))):838        Kx = Ext(p, 2); m = p * p - p + 1; tb = Kx.conj(t); C = [z, z, o, o, z, Kx.neg(tb), z, o, t]; mu = Kx.mul839        D = pm_pow(Kx, C, p * p); E = pm_pow(Kx, C, m - p)840        ok &= pm_pow(Kx, C, m) == pm_one and all(pm_pow(Kx, C, m // r) != pm_one for r in Y._factor(m))841        N = [Kx.sub(a, b) for a, b in zip(D, C)]                                # D − C, with a nonzero determinant842        det = Kx.add(Kx.sub(mu(N[0], Kx.sub(mu(N[4], N[8]), mu(N[5], N[7]))), mu(N[1], Kx.sub(mu(N[3], N[8]), mu(N[5], N[6])))),843                     mu(N[2], Kx.sub(mu(N[3], N[7]), mu(N[4], N[6]))))844        ok &= det != z and pm_add(Kx, pm_add(Kx, C, D), E) == pm_scal(t) and pm_mul(Kx, pm_mul(Kx, C, D), E) == pm_one845        ok &= pm_add(Kx, pm_add(Kx, pm_mul(Kx, C, D), pm_mul(Kx, D, E)), pm_mul(Kx, E, C)) == pm_scal(tb)846        cyc[p] = (m, None)847        if p in (13, 173):                                                        # every power of the cycle, one by one848            Pk, Qk, Rk = pm_one, pm_one, pm_one; bad = 0; tr = set()849            for k in range(m):850                tk = Kx.add(Kx.add(Pk[0], Pk[4]), Pk[8]); tr.add(tk)851                bad += pm_add(Kx, pm_add(Kx, Pk, Qk), Rk) != pm_scal(tk)852                Pk, Qk, Rk = pm_mul(Kx, Pk, C), pm_mul(Kx, Qk, D), pm_mul(Kx, Rk, E)853            ok &= bad == 0 and Pk == pm_one; cyc[p] = (m, len(tr))854    ok &= pm_pow(Ext(173, 2), [z, z, o, o, z, (7, 160), z, o, (166, 160)], 9919) == pm_scal((86, 155))   # the centre of order 3 on 173855    ok &= [cyc[p] for p in (13, 173, 1549)] == [(157, 53), (29757, 9921), (2397853, None)]856    # 46:C16 (p46056)857    R.check("H1", "the spectral amplitude's finite properties (Prop. prop:amplitude): on the 216 elements of SU(3, F_2) the semisimple part by "858            "powers (the exponent 4 for every element), the eigenvalues of U_s in F_4 with Σλ_j = Tr U, a class function with w(U⁻¹) = w̄(U); "859            "the 189 elements of even order have U_s scalar, w = 3η with η³ = 1 (2η + η⁻² = 3η), and the full sum over the group vanishes "860            "(a central element of order 3); on the Subjects the plane's cycle has p² − 1 = 168, 29928, 2399400 units with gcd(p² − 1, Ω − 1) = 8, 8, 40, a centre of "861            "order 3 on 173 only, and the order p² − p + 1 of the second cycle prime to Ω − 1 on all three: the order-157 amplitude ζ + ζ¹² + ζ¹⁴⁴ of the "862            "Subject 13 has no Carrier phase and its paired weight 3 + ζ¹¹ + ζ¹⁴ + ζ²⁵ + ζ¹³² + ζ¹⁴³ + ζ¹⁴⁶ is not rational; in the arithmetic of the "863            "plane alone the companion matrix C of x³ − t x² + t̄ x − 1, t = (9, 4), (166, 160), (1275, 523), the characteristic polynomial of a "864            "generator of the second cycle, has the order p² − p + 1 and no eigenvalue on the plane, and C, C^(p²), C^(−p) have the sum t·1, the "865            "sum of pairwise products t̄·1 and the product 1, so C^k + C^(kp²) + C^(−kp) = Tr(C^k)·1 for every power; the powers run one by one "866            "over the whole cycle on 13 and 173", ok,867            f"distribution {dict(sorted(dist.items()))}, even-order {dict(sorted(even.items()))}, sum {tot}, classes {amp['classes']}; " +868            "; ".join(f"p={t['p']}: p²−1={t['plane']}, gcd(p²−1,Ω−1)={t['gcd_plane_cycle']}, centre3={t['centre3']}, gcd(p²−p+1,Ω−1)={t['gcd_nonsplit_cycle']}" for t in tab) +869            f"; order-157 exponents {E157}, paired {dict(sorted(pw157.items()))}; the second cycle: " +870            ", ".join(f"p={p}: a cycle of {cyc[p][0]} powers, " + (f"run one by one, {cyc[p][1]} distinct traces" if cyc[p][1] else "not run one by one") for p in cyc))871872    # H2 the amplitude on the instance (46:C17): the values 3, 3ζ₃, 3ζ₃² on 64 elements each and 0 on 24; the moments μ_{1,1}, μ_{3,0},873    #    μ_{2,2} = 8, 24, 72 against the invariant counts 1, 1, 2 of the frame (block A's residue series; frame_counts_small_field);874    #    the two involutions U = antidiag(1,1,1), V = antidiag(t, 1, t²) with w = 3 and w(UV) = 0, UV of order 3: no representation875    #    of dimension 3 over Q(ζ₃) has this character (an involution of character value 3 acts as the identity)876    counts = Y.frame_counts_small_field(2, 4)877    ok = dist == {(3, 0): 64, (0, 3): 64, (-3, -3): 64, (0, 0): 24}878    ok &= mom == {(1, 1): (8, 0), (3, 0): (24, 0), (2, 2): (72, 0)}879    ok &= (counts[(1, 1)], counts[(3, 0)], counts[(2, 2)]) == (1, 1, 2)880    U, V, wU, wV, wUV, oUV = amp["involutions"]881    ok &= wU == (3, 0) and wV == (3, 0) and wUV == (0, 0) and oUV == 3882    ok &= all(Y.element_order(amp["F"], X) == 2 for X in (U, V))883    # 46:C17 (p46057)884    R.check("H2", "the spectral amplitude on the instance (Thm. thm:amplitude): on the 216 elements the values 3, 3ζ₃, 3ζ₃² on 64 elements "885            "each and 0 on 24 (the 192 nonzero values from scalar semisimple parts); the moments (1/216) Σ w^a w̄^b at (1,1), (3,0), (2,2) are "886            "8, 24, 72 against the frame's invariant counts 1, 1, 2; the involutions U, V have w = 3 and their product of order 3 has w = 0, "887            "so w is the character of no representation over Q(ζ₃)", ok,888            f"distribution {dict(sorted(dist.items()))}; moments {mom}; counts {(counts[(1, 1)], counts[(3, 0)], counts[(2, 2)])}; w(U), w(V), w(UV) = {wU}, {wV}, {wUV}, ord(UV) = {oUV}")889890    # H3 the transfer tally on the instance (46:C18): the step of one plaquette with the frame's mean, (Kf)(x) = ⟨w(x⁻¹y) f(y)⟩_y, on the891    #    216 elements. The matrix A = 216 K of the entries w(x⁻¹y) is in Z[ζ₃], by integer matrices: A(A + 72)(A − 36)(A − 144) = 0892    #    exactly, which is K(3K + 1)(6K − 1)(3K − 2) = 0; the nullities of A − λI for λ = 144, 36, 0, −72 are 9, 36, 144, 27 (modulo a893    #    prime ≡ 1 mod 3, each at least the exact one, and summing to 216 as the exact ones do), so K has the eigenvalues 2/3, 1/6, 0, −1/3894    #    with these multiplicities; tr K = 3 and tr K² = 8, the moment of 46:C17; K·1 = 0 (the trivial channel annihilated, so no ratio to895    #    it exists); the eigenvalue −1/3 and the quadratic value −1/72 at (1, −1, −1) on (I, U, V): not a positive operator896    T = Y.transfer_tally_instance(amp)897    mults = T["multiplicities"]; mean = T["mean"]898    ok = T["trace"] == (648, 0) and T["trace2"] == (373248, 0) and T["annihilated"] and T["K_one_zero"]899    ok &= mults == {144: 9, 36: 36, 0: 144, -72: 27} and sum(mults.values()) == 216900    ok &= mean["eigenvalues"] == {Q(2, 3): 9, Q(1, 6): 36, Q(0): 144, Q(-1, 3): 27}901    ok &= mean["trace"] == (3, 0) and mean["trace2"] == (8, 0) and mean["trace2"][0] == mom[(1, 1)][0]902    ok &= sum(e * m for e, m in mean["eigenvalues"].items()) == 3 and sum(e * e * m for e, m in mean["eigenvalues"].items()) == 8903    ok &= mean["quadratic"] == (Q(-1, 72), 0) and Y.transfer_annihilator_coefficients() == [0, 373248, -7776, -108, 1]904    ok &= Y.transfer_annihilator_mean() == [0, 2, -9, -27, 54]905    # 46:C18 (p46058)906    R.check("H3", "the transfer tally on the instance (Thm. thm:transfer): the step of one plaquette with the frame's mean, (Kf)(x) = ⟨w(x⁻¹y) f(y)⟩_y, "907            "on SU(3, F_2) has the eigenvalues 2/3, 1/6, 0, −1/3 with multiplicities 9, 36, 144, 27 — K(3K + 1)(6K − 1)(3K − 2) = 0, decided "908            "exactly in Z[ζ₃] on the matrix 216 K of the entries w(x⁻¹y), tr K = 3, tr K² = 8 — the trivial channel annihilated (K·1 = 0), and "909            "with the eigenvalue −1/3 and the quadratic value −1/72 on (I, U, V) it is not a positive operator", ok,910            f"eigenvalues {{{', '.join(f'{e}: {m}' for e, m in mean['eigenvalues'].items())}}}; tr K = {mean['trace'][0]}, tr K² = {mean['trace2'][0]}; annihilated {T['annihilated']}; "911            f"K·1 = 0: {T['K_one_zero']}; quadratic {mean['quadratic'][0]}; polynomial {Y.transfer_annihilator_mean()}; on 216 K: traces {T['trace']}, {T['trace2']}, multiplicities {mults}")912913914    # H4 the transfer tally on the Subjects (46:C19): the amplitude's character expansion w = χ₁ + χ₂ − χ₃ (the first members of the915    #    families of degrees q² − q + 1, q³ + 1, (q+1)²(q−1) of the generic character table, A15), by exact character sums over the eight916    #    class types on q = 3, 4, 5, 7, 13, 173, 1549 — the coefficients 1, 1, −1, the moment Σ a² = 3 (so no other character occurs),917    #    the trivial coefficient 0 (the frame's mean of w is 0); the same five sums from the explicit class list traced down from its exponent tables918    #    on q ≤ 13; the spectrum of the step with the frame's mean on the three Subjects: the eigenvalues 1/(q²−q+1), 1/(q³+1),919    #    −1/((q+1)²(q−1)) with multiplicities the squared degrees, tr K = Σ d²e = 3, tr K² = Σ d²e² = 3, a zero eigenvalue of positive920    #    multiplicity, the third eigenvalue negative; Σ a χ(1) = 3 as the identity (q² − q + 1) + (q³ + 1) = (q+1)²(q−1) + 3 on921    #    1 ≤ q ≤ 2000. The orders of the laboratory frames enter the multiplicity of the zero eigenvalue only922    frames = (3, 4, 5, 7, 13, 173, 1549)923    coef = {q: Y.amplitude_coefficients(q) for q in frames}924    ok = all(coef[q] == {"a1": 1, "a2": 1, "a3": -1, "moment": 3, "trivial": 0} for q in frames)925    direct = {q: Y.amplitude_coefficients_direct(q) for q in (3, 4, 5, 7, 13)}926    ok &= all({k: direct[q][k] for k in ("a1", "a2", "a3", "moment", "trivial")} == coef[q] for q in direct)927    ok &= [direct[q]["classes"] for q in (3, 4, 5, 7, 13)] == [14, 22, 40, 58, 184]928    spec = {p: Y.transfer_spectrum_subject(p) for p in (13, 173, 1549)}929    ok &= all(spec[p]["ok"] for p in spec)930    ok &= spec[13]["eigenvalues"] == (Q(1, 157), Q(1, 2198), Q(-1, 2352))931    ok &= spec[173]["eigenvalues"] == (Q(1, 29757), Q(1, 5177718), Q(-1, 5207472))932    ok &= spec[1549]["eigenvalues"] == (Q(1, 2397853), Q(1, 3716672150), Q(-1, 3719070000))933    ok &= spec[13]["degrees"] == (157, 2198, 2352) and spec[13]["zero"] == 800885251934    ok &= all((q * q - q + 1) + (q ** 3 + 1) == (q + 1) ** 2 * (q - 1) + 3 for q in range(1, 2001))935    ident = [Y.amplitude_identity_classwise(q) for q in (3, 4, 5, 7, 8, 9, 11, 13, 16, 17, 19, 23, 25, 27, 29, 31, 32)]936    ok &= all(i["ok"] for i in ident) and sum(i["classes"] for i in ident) == 6518937    # 46:C19 (p46061)938    R.check("H4", "the transfer tally on the Subjects (Thm. thm:subjects): w = χ₁ + χ₂ − χ₃ holds class by class on the class lists of the "939            "17 prime powers 3 ≤ q ≤ 32 (6518 classes), the identity of the proof for every q ≥ 3; on q = 3, 4, 5, 7, 13, 173, 1549 the exact character sums give "940            "w = χ₁ + χ₂ − χ₃ on the first members of the families of degrees q² − q + 1, q³ + 1, (q+1)²(q−1), with Σ a² = 3 (no other "941            "character) and the frame's mean of w equal to 0; the sums from the explicit class list agree on q ≤ 13; the step with the frame's "942            "mean has the eigenvalues 1/(q²−q+1), 1/(q³+1), −1/((q+1)²(q−1)) with multiplicities the squared degrees on 13, 173, 1549 "943            "(1/157, 1/2198, −1/2352 on 13), tr K = 3, tr K² = 3, a zero eigenvalue of positive multiplicity, the third eigenvalue negative; "944            "Σ a χ(1) = 3 on 1 ≤ q ≤ 2000", ok,945            f"identity class by class: {sum(i['classes'] for i in ident)} classes, {sum(i['failures'] for i in ident)} failures; "946            + "; ".join(f"q={q}: {coef[q]}" for q in frames) + "; direct " + "; ".join(f"q={q}: {direct[q]['classes']} classes, N={direct[q]['N']}" for q in direct)947            + "; " + "; ".join(f"p={p}: eigenvalues {', '.join(str(e) for e in spec[p]['eigenvalues'])}, zero multiplicity {spec[p]['zero']}" for p in spec))948949    # H5 the tally of the ring and the gap of the transfer tally (46:C20): the tally is the frame's mean over the rungs (46:B3), and one950    #    plaquette multiplies the terms of χ₁, χ₂, χ₃ by 1/d₁, 1/d₂, −1/d₃, the eigenvalues of 46:C19; on the seven frames d₂ = (q+1) d₁,951    #    d₃ = (q+1)(q² − 1) and d₃ − d₂ = (q+1)(q−2) > 0, so 1/d₁ > 1/d₂ > 1/d₃ and the gap is d₁/d₂ = 1/(q+1), the third ratio952    #    d₁/d₃ = (1/(q+1)) (q²−q+1)/(q²−1); the degrees are 1, 1, −1 modulo q, so the three multipliers reduce to 1; the table's953    #    characters on the classes with the eigenvalues g^k, 1, g^{−k} (g^{2k} ≠ 1) are 1, ζ^k + ζ^{−k}, 0 for every such k; the tally of954    #    one plaquette on those classes 1/d₁ + (1/d₂)(ζ^j + ζ^{−j})(ζ^k + ζ^{−k}) as an exponent table (on the Subject 13); with unit955    #    boundary links the tally is tr Kⁿ = Σ aⁿ d^{2−n}: 3, 3 and 1/d₁ + 1/d₂ − 1/d₃ for n = 1, 2, 3; the gluing identity of the ring956    #    on the instance SU(3, F_2), n = 2, by brute force over the rungs on six boundary words in Q(ζ₃), with no character table.957    #    No order of a frame enters the statements on the seven frames. On a Subject the multipliers are framed rationals with the958    #    residue 1 modulo p, so every coefficient has the residue 1 and the tally is the same for every number of plaquettes:959    #    1 + (g^j + g^{−j})(g^k + g^{−k}) on the classes above — 10, 163, 1367 at g = 2, (j, k) = (1, 2) on 13, 173, 1549 — the paired960    #    weight its square, and 3 with unit boundary links; the exact tally of one plaquette reduces to it. At any boundary classes:961    #    on every class of the table's list each value of χ₁, χ₂, χ₃ under e ↦ −e equals its value under e ↦ q·e (the seven frames,962    #    the three Subjects among them), so the reduction of the conjugate value is the p-th power of the reduced value, the reduced963    #    tally lies in the quadratic extension K of the Subject, and the paired weight reduces to its norm, a residue of the shell;964    #    with h₁ = s₁ and h₂ of the eigenvalues √2, −√2/2, −1, outside the shell, the reduced tally is −1 − (5/4)√2 in K = F_p(√2),965    #    outside the shell, and its norm is the residue of −17/8: 6, 106, 966 on the three Subjects966    step = {q: Y.ring_step(q) for q in frames}967    gap = {q: Y.ring_gap(q) for q in frames}968    ok = all(gap[q]["ok"] for q in frames)969    ok &= [gap[p]["gap"] for p in (13, 173, 1549)] == [Q(1, 14), Q(1, 174), Q(1, 1550)]970    ok &= step[13]["multipliers"] == (Q(1, 157), Q(1, 2198), Q(-1, 2352)) and all(step[p]["multipliers"] == spec[p]["eigenvalues"] for p in spec)971    regular = {}972    for q in frames:973        vals = [Y.split_torus_characters(q, k) for k in range(1, q - 1)]974        reg = [(k, v) for k, v in zip(range(1, q - 1), vals) if v is not None]975        ok &= all(v == {"chi1": (0,), "chi2": tuple(sorted((k % (q - 1), (-k) % (q - 1)))), "chi3": ()} for k, v in reg)976        ok &= all((v is None) == ((2 * k) % (q - 1) == 0) for k, v in zip(range(1, q - 1), vals))977        regular[q] = len(reg)978    ok &= regular[3] == 0 and regular[4] == 2 and regular[13] == 10979    Z1 = Y.ring_step_split(13, 1, 2)980    ok &= Z1 == {0: Q(1, 157), 11: Q(1, 2198), 3: Q(1, 2198), 9: Q(1, 2198), 1: Q(1, 2198)}981    unit = {}982    for q in frames:                                  # the unit boundary: tr Kⁿ = Σ aⁿ d^{2−n} for n = 1, 2, 3, by the step from n = 1983        d = step[q]["degrees"]; e = step[q]["multipliers"]984        term = [dd * dd * ee for dd, ee in zip(d, e)]                     # n = 1: χ(1)² a/d985        t1 = sum(term); term = [t * ee for t, ee in zip(term, e)]; t2 = sum(term); term = [t * ee for t, ee in zip(term, e)]; t3 = sum(term)986        ok &= (t1, t2) == (3, 3) and t3 == Q(1, d[0]) + Q(1, d[1]) - Q(1, d[2])987        unit[q] = t3988    glue = Y.ring_gluing_instance(amp)989    ok &= glue["ok"]990    resid = {p: Y.ring_residue(p, 1, 2) for p in (13, 173, 1549)}             # the framed rational arithmetic of the Subject, modulo p991    ok &= all(resid[p]["ok"] for p in resid)992    ok &= [resid[p]["tally"] for p in (13, 173, 1549)] == [10, 163, 1367] and [resid[p]["paired"] for p in (13, 173, 1549)] == [9, 100, 595]993    def moved(terms, N, m):                                                 # the exponent table of a value under e ↦ m·e994        t = {}995        for c, e in terms: t[(m * e) % N] = t.get((m * e) % N, 0) + c996        return {e: c for e, c in t.items() if c}997    conj_ok = {}998    for q in frames:                                                          # the conjugate value is the value with every exponent times q, class by class999        classes, N = Y.su3_class_list(q)1000        conj_ok[q] = all(moved(v, N, -1) == moved(v, N, q) for cl in classes for v in cl[2:5])1001        del classes                                                           # the list of the Subject 1549 holds 2,400,952 classes1002    ok &= all(conj_ok.values())1003    plane = {}1004    for p in (13, 173, 1549):                                                 # h₁ = s₁ and h₂ of the eigenvalues √2, −√2/2, −1, in K = F_p(√2)1005        Kx = Ext(p, 2); half = pow(2, -1, p); mu = (0, 1); e2 = Kx.inv(Kx.conj(mu)); e3 = Kx.mul(Kx.conj(mu), Kx.inv(mu))   # μ, μ^{−p}, μ^{p−1}1006        ok &= e2 == (0, (-half) % p) and e3 == ((-1) % p, 0) and Kx.mul(Kx.mul(mu, e2), e3) == (1, 0)1007        b1, b2 = e3, Kx.add(mu, e2)                                           # the reduced χ₁, χ₂ at h₂ (the table's entry of type 7; χ₃ = 0)1008        a1, a2 = (1, 0), ((2 + half) % p, 0)                                  # at s₁: 1 and g + g⁻¹, g = 21009        red = Kx.add(Kx.mul(a1, Kx.conj(b1)), Kx.mul(a2, Kx.conj(b2)))        # Σ χ̄ᵢ(h₁) χ̄ᵢ(h₂⁻¹), every coefficient reading 11010        redc = Kx.add(Kx.mul(Kx.conj(a1), b1), Kx.mul(Kx.conj(a2), b2))       # the reduction of the conjugate tally1011        ok &= red == ((-1) % p, (-5 * pow(4, -1, p)) % p) and red[1] != 0 and redc == Kx.conj(red) and Kx.pow(red, p) == Kx.conj(red)1012        ok &= Kx.mul(red, redc) == (Kx.norm(red), 0) and Kx.norm(red) == (-17 * pow(8, -1, p)) % p1013        plane[p] = (red, Kx.norm(red))1014    ok &= [plane[p] for p in (13, 173, 1549)] == [((12, 2), 6), ((172, 42), 106), ((1548, 386), 966)]1015    # 46:C20 (p46062)1016    R.check("H5", "the tally of the ring and the gap of the transfer tally (Thm. thm:ring): the tally is the frame's mean over the rungs, and one "1017            "plaquette multiplies the terms of χ₁, χ₂, χ₃ by 1/d₁, 1/d₂, −1/d₃; on q = 3, 4, 5, 7, 13, 173, 1549 the degrees have "1018            "d₂ = (q+1) d₁, d₃ = (q+1)(q² − 1) and d₃ > d₂, so the gap is d₁/d₂ = 1/(q+1) — 1/14, 1/174, 1/1550 on the Subjects — the third "1019            "ratio is (1/(q+1)) (q²−q+1)/(q²−1), and the degrees are 1, 1, −1 modulo q; on the classes with the eigenvalues g^k, 1, g^{−k} "1020            "(g^{2k} ≠ 1) the table's entry of type 7 gives the characters 1, ζ^k + ζ^{−k}, 0 for every such k (none at q = 3); the tally of one "1021            "plaquette there is 1/d₁ + (1/d₂)(ζ^j + ζ^{−j})(ζ^k + ζ^{−k}), evaluated on 13; with unit boundary links the tally is 3, 3 and "1022            "1/d₁ + 1/d₂ − 1/d₃ for one, two and three plaquettes; modulo p on the Subjects the three multipliers are framed rationals with the "1023            "residue 1, so the tally is the same for every number of plaquettes, 1 + (g^j + g^{−j})(g^k + g^{−k}) on those classes — 10, 163, 1367 "1024            "at g = 2, (j, k) = (1, 2) — and 3 with unit boundary links; at any boundary classes the reduced tally lies in the quadratic "1025            "extension K of the Subject, the reduction of the conjugate tally is its conjugate there (on every class of the table's list the "1026            "conjugate value of χ₁, χ₂, χ₃ is the value with both roots of unity raised to the power q, on the seven frames), and the paired weight reduces to its norm, a "1027            "residue of the shell — with h₁ = s₁ and h₂ of the eigenvalues √2, −√2/2, −1, outside the shell, the reduced tally is −1 − (5/4)√2 "1028            "and the paired weight reduces to −17/8: 6, 106, 966 on 13, 173, 1549; decided directly, with no character table: the gluing identity of the "1029            "ring on SU(3, F_2), n = 2, on six boundary words by brute force over the rungs in Q(ζ₃)", ok,1030            "; ".join(f"q={q}: gap {gap[q]['gap']}, third {gap[q]['third']}, {regular[q]} classes, three plaquettes {unit[q]}" for q in frames)1031            + f"; Z₁(s₁,s₂) on 13: {{{', '.join(f'{e}: {v}' for e, v in sorted(Z1.items()))}}}; instance, means: "1032            + ", ".join(f"({v['mean'][0]}, {v['mean'][1]})" for v in glue["values"])1033            + "; modulo p: " + ", ".join(f"p={p}: tally {resid[p]['tally']}, paired weight {resid[p]['paired']}" for p in resid)1034            + "; with eigenvalues outside the shell: "1035            + ", ".join(f"p={p}: reduced tally {plane[p][0][0]} + {plane[p][0][1]}√2, paired weight {plane[p][1]}" for p in plane))1036    # H6 the spectrum in 2π (46:C21): on the three Subjects the degrees, the gap and the third ratio as expressions in π = (p − 1)/2,1037    #    the residues 2π ≡ −1 and 2π + 2 ≡ 1 modulo p, the orders of the two cycles of H1 as expressions in 2π, and the chart's1038    #    numeral 0.1207 by a rational enclosure of the classical π1039    sp = {p: Y.spectrum_in_pi(p) for p in (13, 173, 1549)}1040    ok = all(sp[p]["ok"] for p in sp) and [sp[p]["pi"] for p in (13, 173, 1549)] == [6, 86, 774]1041    ok &= [sp[p]["degrees"][0] for p in (13, 173, 1549)] == [157, 29757, 2397853]1042    ok &= [sp[p]["gap"] for p in (13, 173, 1549)] == [Q(1, 14), Q(1, 174), Q(1, 1550)]1043    orders = {t["p"]: (t["plane"], t["nonsplit"]) for t in Y.subject_phase_table()}             # the two cycles of H11044    ok &= all(sp[p]["cycles"] == orders[p] for p in sp)1045    ok &= [sp[p]["cycles"] for p in (13, 173, 1549)] == [(168, 157), (29928, 29757), (2399400, 2397853)]1046    # 46:C21 (p46064)1047    R.check("H6", "the spectrum in 2π (Cor. cor:pi): with 2π = p − 1 the phase cycle of the shell, π = 6, 86, 774 on the Subjects 13, 173, "1048            "1549, the degrees are d₁ = 4π² + 2π + 1, d₂ = (2π + 2) d₁, d₃ = 8π(π + 1)², the gap of the transfer tally is 1/(2π + 2) and the "1049            "third ratio is (4π² + 2π + 1)/(8π(π + 1)²), pure numbers and one expression on every Subject; the two cycles of Def. "1050            "def:amplitude have the orders 2π(2π + 2) = p² − 1 and 4π² + 2π + 1 = p² − p + 1, the second the numeral of d₁; "1051            "2π ≡ −1 and 2π + 2 ≡ 1 modulo p, "1052            "the residue 1 of the levels; [chart] with the classical π in (3.1415926, 3.1415927) the gap lies in (0.12072, 0.12073), by "1053            "rational arithmetic", ok,1054            "; ".join(f"p={p}: π={sp[p]['pi']}, d₁={sp[p]['degrees'][0]}, gap {sp[p]['gap']}, third {sp[p]['third']}, "1055                      f"cycles {sp[p]['cycles'][0]} and {sp[p]['cycles'][1]}" for p in sp))1056    # H7 the product channels (46:C22): the fixed dimensions of 8^{⊗n} by the binomial inversion of the counts M(k, k), the compact1057    #    counts on the Subjects (the window 46:C15) and the direct three-step count on the instance, with the counts of invariant lines1058    pc = Y.product_channels()1059    # 46:C22 (p46065)1060    R.check("H7", "the product channels (Prop. prop:products): where 3 is invertible 3 ⊗ 3̄ = 1 ⊕ 8, so the frame fixes "1061            "A_n = Σ_k (−1)^{n−k} C(n, k) M(k, k) dimensions of 8^{⊗n}; on the Subjects 13, 173, 1549 the counts M(k, k) are the compact "1062            "1, 1, 2, 6, 23 (degree at most 8 ≤ 2p − 1), so A = 0, 1, 2, 8: two mesons and three gluons have d = 2 and p² + 1 = 170, 29930, "1063            "2399402 invariant lines, a meson and a glueball d = 3, two glueballs d = 8; on the 216 elements of SU(3, F_2) the diagonal torus "1064            "fixes 2, 22, 170, 1366 dimensions of 8^{⊗n}, n = 1, …, 4, the normal subgroup of order 27 fixes 0, 8, 56, 456 and the frame "1065            "0, 1, 7, 57, so M(k, k) = 1, 1, 2, 11, 92: three gluons have d = 7 and 5461 lines, a meson and a glueball d = 8, two glueballs "1066            "d = 57 — the instance departs beyond degree 4", pc["ok"],1067            "; ".join(f"{k}: d = {v[0]} on the Subjects, {v[1]} on the instance" for k, v in pc["channels"].items()))1068    # H8 the tally with the same boundary links at every step (46:C23): the boundary classes are those of t^n and b^n, read from the1069    #    table's entries at the unit, at a = −1 and on the split torus; the five powers at the regular lengths, the other lengths1070    ub = {p: Y.uniform_boundary_tally(p, 1, 2) for p, _ in Y.LAB_PAIRS}1071    more = [Y.uniform_boundary_tally(13, j, k) for j in range(1, 12) if j != 6 for k in range(1, 12) if k != 6]1072    more += [Y.uniform_boundary_tally(173, 2, 5), Y.uniform_boundary_tally(1549, 3, 1)]1073    ok = (all(u["ok"] for u in ub.values()) and all(u["ok"] for u in more)1074          and ub[13]["values"] == (10, 0, 0, 2, 5, 12, 5, 2, 0, 0, 10, 3)1075          and ub[13]["five"] == (10, 0, 1, 2, 5, 10, 5, 2, 1, 0, 10, 5) and ub[13]["paired"] == (9, 0, 0, 4, 12, 1, 12, 4, 0, 0, 9, 9)1076          and ub[13]["coefficients"] == (3, 5, 11, 5, 2, 4, 11, 4, 2, 5, 11, 5)1077          and [ub[p]["period"] for p in (13, 173, 1549)] == [12, 172, 1548] and Y.uniform_boundary_tally(13, 2, 4)["period"] == 61078          and [ub[p]["others"] for p in (13, 173, 1549)] == [(3, 6, 9, 12), (43, 86, 129, 172), (387, 774, 1161, 1548)])1079    # 46:C23 (p46066)1080    R.check("H8", "the tally with the same boundary links at every step (Prop. prop:uniform): with t and b in the classes s_j, s_k at "1081            "every step the boundary classes are those of t^n and b^n; on the Subjects 13, 173, 1549 with (j, k) = (1, 2), on 13 for "1082            "all 100 pairs j, k with g^{2j}, g^{2k} ≠ 1 and on two further pairs, the table's entries give at every regular length the residue "1083            "1 + g^{(j+k)n} + g^{−(j+k)n} + g^{(j−k)n} + g^{−(j−k)n}; the other lengths are those with g^{2jn} = 1 or g^{2kn} = 1, with "1084            "the residues 1 + c(y), −c(y), 3, 1, −1; at the length p − 1 the residue is 3; on 13 the lengths 1 to 12 read 10, 0, 0, 2, "1085            "5, 12, 5, 2, 0, 0, 10, 3, and the other lengths are the multiples of 3, 43, 387 on the three Subjects; the least period is "1086            "(p − 1)/gcd(j, k, p − 1) and a period of the paired weight, 12 for (1, 2) and 6 for (2, 4) on 13; the residue is Σ_r F_r g^{rn} "1087            "with F_r = 0 unless gcd(j, k, p − 1) divides r, and on 13 the coefficients for (1, 2) are 3, 5, 11, 5, 2, 4, 11, 4, 2, 5, 11, 5", ok,1088            "; ".join(f"p={p}: other lengths {ub[p]['others']}, least period {ub[p]['period']}" for p in ub))1089    # H9 three rings on common links (46:C25): the numbers of invariants of the triples of characters from the class lists, their1090    #    forms in q, and on the Subjects the residue of the tally on the split classes1091    powers = (3, 4, 5, 7, 8, 9, 13, 16, 19, 25, 27, 31, 37, 43, 49, 61, 64, 67, 73, 79, 81,1092              11, 17, 23, 29, 32, 41, 47, 53, 59, 71, 83, 89, 101, 107, 113, 125, 173)1093    ok = all(Y.triple_multiplicities(q) == Y.triple_multiplicity_forms(q) for q in powers)1094    ok &= sum(1 for q in powers if q >= 9 and (q + 1) % 3) >= 16 and sum(1 for q in powers if q >= 9 and (q + 1) % 3 == 0) >= 161095    cube = lambda f: (f[(1, 1, 1)] + 3 * f[(1, 2, 2)] - 6 * f[(1, 2, 3)] + 3 * f[(1, 3, 3)] + f[(2, 2, 2)] - 3 * f[(2, 2, 3)]1096                      + 3 * f[(2, 3, 3)] - f[(3, 3, 3)] + 3 * f[(1, 1, 2)] - 3 * f[(1, 1, 3)])1097    ok &= all(cube(Y.triple_multiplicity_forms(q)) == 6 for q in powers + (1549,))1098    tr = {p: Y.three_rings_tally(p, 1, 2, 3) for p, _ in Y.LAB_PAIRS}1099    more3 = [Y.three_rings_tally(13, j, k, l) for j in (1, 2, 4, 5) for k in (1, 2, 3) for l in (1, 4, 5)]1100    more3 += [Y.three_rings_tally(173, 2, 5, 7), Y.three_rings_tally(1549, 3, 1, 8)]1101    ok &= (all(t["ok"] for t in tr.values()) and all(t["ok"] for t in more3)1102           and [tr[p]["W"][0] for p in (13, 173, 1549)] == [6, 25, 616] and [tr[p]["n122"] for p in (13, 173, 1549)] == [2, 4, 2]1103           and tr[13]["W"] == (6, 0, 0, 0, 9, 1, 9, 0, 0, 0, 6, 6) and tr[13]["regular"] == (1, 5, 7, 11))1104    # 46:C25 (p46068)1105    R.check("H9", "three rings on common links (Prop. prop:triple): the numbers N(i, j, k) of invariants of the frame in the products of "1106            "three of the characters χ₁, χ₂, χ₃, from the class lists at 37 prime powers and on the Subject 173, are 1, 0, 0, e + 1, e, e, "1107            "eq, e(q + 1), e(q + 2), e(q + 1) + (e² − 1)/2 with e = gcd(3, q + 1), sixteen prime powers q ≥ 9 for each value of e; "1108            "Σ a_i a_j a_k N(i, j, k) = 6, the mean of w³; on the Subjects 13, 173, 1549, with the same boundary link at every step in the "1109            "classes s_1, s_2, s_3, the tally's residue at every length whose three classes are regular is 1 + N(1,2,2) (c_x c_y + c_x c_z + "1110            "c_y c_z), c_m = m + m⁻¹, with N(1,2,2) = 2, 4, 2 and N(2,2,2) of the residue 0; the first length reads 6, 25, 616; with unit "1111            "links the residue is 6; on 13 the lengths 1 to 12 read 6, 0, 0, 0, 9, 1, 9, 0, 0, 0, 6, 6 and the regular ones are 1, 5, 7, 11; "1112            "the same on 36 further triples of classes on 13 and on one each on 173 and 1549", ok,1113            "; ".join(f"p={p}: N(1,2,2) = {tr[p]['n122']}, first length {tr[p]['W'][0]}, {len(tr[p]['regular'])} regular lengths" for p in tr))111411151116if __name__ == "__main__":1117    args = [a for a in sys.argv[1:] if not a.startswith("--")]1118    if args:1119        for b in args: R.run_block(b)1120        ok = R.summary(write=False)1121    else: ok = R.verify_all()1122    sys.exit(0 if ok else 1)1123