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.
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