Math Mapgenerated 2026-10-25 · a354234
PUBLIC BUILD

run 135Settled

On the nine blocks with no one-way pairs, is the block operator reversible in the detailed-balance sense in some diagonal metric? Equivalently, does the log-ratio ln(Q[S,S′]/Q[S′,S]) carry zero curvature on every face of a cycle basis of Q's support?

slug
curvature-on-the-faces
state
run
created
2026-10-24
sealed
2026-10-24 (committed before any operator is built for it)
builds_on
[127, 131]
concepts
[transfer-operator, reversibility, detailed-balance, kolmogorov-criterion, percolation]
programme
PG-01
line
the block as an operator (the symmetry theme's E1, step 2)
from
runs 127 and 131. One-way pairs rule out detailed balance on 56 of the 63 census generators and on 14 of the 16 fresh blocks. On the rest (census 57 to 63; fresh F14 and F15) the support is symmetric and E1 is open. The owner's note on the 23 October page (ground/returns, 2026-10-24) asked whether a loop quantity can be read through the faces it bounds, by Stokes. For a random process that is Kolmogorov's criterion on a cycle basis. The owner's ruling, 2026-10-24 14:44 ("yes to tests"). The codifier's premise on small grids is R27_tree_groups/carpet_perc/faces_premise.py and .log. Guesses: docs/walk/2026-10-21-pre-registration-symmetry.md, section of 2026-10-24 15:00.
statistic
R27_tree_groups/carpet_perc/. faces135.py imports transfer_op.build_T and generator, and faces_premise.curvature, none of them edited. The fresh masks are read from oneway_fresh_masks.json (K = all cells kept except removed), as oneway131.py reads them. Hosts: census generators 57, 58, 59, 60, 61, 62 and 63 at their p* (float(Decimal(p_star_40_digits)), asserted equal to transfer_op.json's stored p at p_label star), and fresh masks F14 and F15 at p = 0.5 (they have no computed p*). For each host, Q = T restricted to the 511 non-empty subsets. curvature(Q) builds the support graph on pairs with both entries > 0, a BFS spanning forest, the potential φ along it, and on every non-tree edge κ = ln(Q[S,S′]/Q[S′,S]) − (φ(S′) − φ(S)). Each non-tree edge closes one fundamental cycle. Detailed balance in some diagonal metric (D Q D⁻¹ symmetric) holds exactly when κ = 0 on all of them. Scored per host: K = max |κ|. Reported beside: the number of one-way pairs (must be 0), the number of non-tree edges, the count with |κ| > 1e−9, the distribution of |κ| (quantiles), the ten largest faces with their two states, whether the up–down mirror σ maps each zero-curvature face to a zero-curvature face, and build time and peak RSS. Workers: 2, with a combined RSS cap of 13e9 bytes.
outcome
confirmed
scored
2026-10-24 (blind scorer, R28_reading/135/scorer135.md)
pre_seal_glimpse
runs 127 and 131 (one-way pair counts; no entry ratios). No curvature has been computed on any census generator or fresh block.
source
../lab/runs/135-curvature-on-the-faces.md

Prediction(A) E1 is absent on every one of the nine hosts: K ≥ 1e−6 on each. Confirmed if (A) holds.

Falsifier(A) K ≤ 1e−9 on any host: there Q is reversible in the detailed-balance sense in some diagonal metric, which is E1 present. A K between 1e−9 and 1e−6 on any host, with none ≤ 1e−9, is unanticipated. Withdrawn if a control fails.

Statement

A random process obeys detailed balance when no loop of transitions has a preferred direction. Going round any closed cycle of states, the product of forward rates equals the product of backward rates. Checking every loop is hopeless, but a discrete Stokes theorem says it isn't needed. Pick a spanning tree of the transition graph, and each remaining edge closes exactly one basic loop, a "face". If every face has zero curvature, every loop does. The block operator's one-way pairs already rule out detailed balance on 70 of 79 blocks. This run checks the faces on the other nine.

Sealed 2026-10-24

As written. The lab chat reads this file above "Not part of the seal" only, plus transfer_op.py, faces_premise.py, oneway131.py (for how fresh masks are read) and oneway_fresh_masks.json.

The codifier’s lead is kept for the private site.

Scored 2026-10-24 — confirmed

A blind scorer read the seal above the line and RESULTS135.md (a66e1a0) and nothing else (R28_reading/135/scorer135.md). Scores are as written.

Controls. - (i): 0 one-way pairs on all nine hosts. - (ii): the reversible chain gives K = 4.44e−16, and the 3 × 3 grid reproduces 0.31106031541865153 exactly. - (iii): the largest row deviation and the largest |T[∅,∅] − 1| are both 1.6e−11, and the ∅ row's off-diagonal mass is 0. All are under the sealed 1e−10.

(A) Confirmed. K = max|κ| is 0.7046 on g57 to g60, 0.6857 on g61 to g63, 2.7835 on F14 and 2.8019 on F15, each far above the 1e−6 line. None of the nine hosts with symmetric support is reversible in any diagonal metric: E1 is absent on all 63 census generators, by one-way pairs on 56 (runs 127 and 131) and by curvature on these 7.

Deviations, none of which changes the score under the seal's text. - faces135.py stopped on a check stricter than the seal. faces135b.py, under the codifier's ruling of 18:40, corrected only that check and reran all nine hosts. - g61's first numbers were seen after the seal and before the rerun; the rerun matched them. - The lab chat's memory was on. - The lab chat committed with --no-verify, which bypasses the seal lint's hook. That goes to OPS.

Beyond the clause. 1. 31 faces are exactly flat on every census host, and all 31 map to tree edges under the mirror σ. 2. The largest face on g57 to g60 starts at {3}, and on g61 to g63 it runs through {2,4,5}. Within each census group the curvature quantiles are identical. 3. F14 and F15 break the mirror symmetry by 7.5e−3 and 1.8e−2. On the census generators the break is 1e−14.

Theme instance (added 2026-10-25, records). themes/symmetry.md §2.1i, written from this section. The frontmatter's theme_instance field above the line predates it and is left as sealed.

generated 2026-10-25the lab index