Math Mapgenerated 2026-10-25 · a354234
PUBLIC BUILD

run 094Settled

Run 084 scored rung 3 of the ladder on S₃ = {1, 4, 7}: X's local slope over 729→6561 is below T's by 0.131 ± 0.007 where the carpet has it above by 0.18. The score's caveat blamed the rows: S₃ designates neither of the two interior rows X keeps whole (2 and 6). The masks do not bear that out at level 1. The shortest path from a W terminal to the nearest E terminal is 10, 10, 10 bonds on T and 10, 11, 10 on X at S₃ — the set does not place X's terminals visibly worse — and the one position where the two patterns differ is the midpoint: on T the cell (4,0) opens onto the spoke (4,1); on X (4,1) is removed and (4,0) is a corridor cell. The midpoint is in every rung whose state closes, and above level 1 every join lands on the midpoint terminal of a sub-block whatever the set is. S₃′ = {2, 4, 6} keeps the midpoint and moves the two outer terminals onto X's whole rows and onto T's corridor cells ((2,0) and (6,0) have degree 2 on T and 3 on X; the level-1 path lengths become 12, 10, 12 on T and 8, 10, 8 on X). Does the carpet's order of T and X return when the outer rows favour X, or does the reversal survive the move?

slug
rung-three-on-rows-246
state
run
created
2026-10-03
sealed
2026-10-03
builds_on
[084, 082, 073]
concepts
[fractal-dimension]
programme
PG-01
statistic
Run 084's construction, scripts and procedure with one change, the designated set: S₃′ = (2, 4, 6) in place of S₃ = (1, 4, 7), k = 3, on T (#26) and X (#6). gen.py gains a rung key "3b" → (2, 4, 6) with k = 3 (lattices lad3b_<P>_<g>; its name parser, which reads the key as an integer today, returns the key and the bond count separately); the recursion script is rung084.py with the set passed as a parameter (rung094.py); nothing else in either is touched. The state closes as at S₃ (the set contains the midpoint 4 and is symmetric under c ↦ 8 − c): a level-g block's 12 terminals are the midpoint terminals of its sub-blocks at positions 2, 4, 6 of each side; the level-1 terminals are the ring cells at rows (columns) 2, 4, 6 of each side. R is the probability that some W terminal is connected to some E terminal, in both computations; p* is R's median, w its 20%–80% quantile width (084's w), g₁ and g₂ its Stieltjes moments. Stage 1, committed before any stage-2 draw: 084's coarse pass on this one rung (2 × 10⁴ draws per grid point, step 0.0025, levels with coarse width below 8 steps re-run at step w/10), giving p*(g), w(g), G(g) = (1 − p*)/w at levels 1–4; the run proceeds only if G(3) ≥ 3.1 and G(4) ≥ 3.1 on both patterns, and is otherwise withdrawn as "wall-bound at S₃′" with the guards reported. Stage 2: the recursion Monte Carlo as 084's (10⁶ draws per grid point per level; the grid built by 084's rule from this run's own stage-1 curves, with 084's extension rule; Stieltjes moments), with B = 10 replicate chains (084 had 20; the margin below is 4.5 of 084's errors); and the lattice Monte Carlo as 084's on lad3b_T_<g>, lad3b_X_<g>, g = 2, 3, 4, perc.c unchanged, 8,000 samples. Streams: recursion default_rng(430001 + 1000·b + 100·g + i), i = 0 for T and 1 for X, b = 0 the point estimate and 1 … 10 the replicates, stage 2's b = 0 stream continuing after the coarse pass as in 084 (the block is what 084's formula gives at k = 2, which was never run); perc seeds 9401 + 3·i + (g − 2), i.e. 9401–9406; lattice bootstrap default_rng(450001 + n), n = 0 … 5 in graph order (T2, T3, T4, X2, X3, X4), 1,000 resamples. Per-level quantities as 084: p*, w, g₁, g₂, G; local slopes s₂₃ and s₃₄ = −Δln w/ln 9. The scored quantity, by the recursion, on the b = 0 point estimate, its error the two patterns' replicate SDs (b = 1 … 10) in quadrature, as in 084: gap′ = s₃₄(X) − s₃₄(T). Its value on S₃, from run 084: −0.1313 ± 0.0067. Controls: (i) identity, on the b = 0 chain, as in 084: over the level-1 grid the column-to-column crossing from the draws against R_P(p) of poly075.json has rms z in [0.90, 1.10] and no |z| above 4.5, and the designated-terminal crossing is at or below it at every point, both patterns (084's grids had 1,083 and 1,358 points when its control ran; should a grid have fewer than 450 the band is 1 ± 3/√(2N)); (ii) construction — on all six lad3b lattices, exactly 3 bonds on every aligned segment between kept blocks at every level, at the designated positions; 84 bonds in every level-1 block; terminal flags on exactly the three designated cells of the left side and of the right side, rows 22, 40, 58 at g = 2; 202, 364, 526 at g = 3; 1822, 3280, 4738 at g = 4 — and in the recursion script, which reads the set from gen.py's LADDER_S so that both computations share one definition, asserted and printed before any draw, the level-1 terminals at ring cells 2, 4, 6 of each side and the promoted sub-blocks at positions 2, 4, 6 of each side with the promoted terminal the sub-block's midpoint; (iii) agreement of recursion and lattice within 3 combined errors, both patterns: g₁ and w at levels 2 and 3, and w at level 4 (a level-2 comparison counts only if stage 1's G(2) ≥ 3.1 on that pattern, and is otherwise reported; g₁ at level 4 is reported with its difference); a comparison beyond 3 is re-read once on 8,000 further samples of that lattice (perc seeds 9411–9416 in the same graph order, bootstrap 450011 + n) pooled with the first, and withdraws the run if still beyond 3; (iv) regression, run before any S₃′ draw: the parametrised script with S = (1, 4, 7) on 084's stage-1 streams (default_rng(530001 + 100·g + i), 2 × 10⁴ draws) reproduces stage1_084.json's eight k = 3 guards to 10 significant digits, in the environment the sighted pass recorded (numpy 2.5.3, Python 3.14.7, the M5) — the code path is 084's and only the set differs; those draws enter no estimate. A failure of (i), (ii) or (iii) withdraws the run; a failure of (iv) blocks it (no S₃′ draw is made until the regression holds; the seal stands). Outputs stage1_094.json, rung094.json, lattice094.json, RESULTS094.md, samples094/; stat rows as 084's with subject ids lad3b_<P>_<g>; any new statistic name goes into lab/db/statistics.json, never into a rows list.
script
R27_tree_groups/carpet_perc/rung094.py and gen.py (Claude Code session on the M5)
artifacts
[R27_tree_groups/carpet_perc/RESULTS094.md, R27_tree_groups/carpet_perc/rung094.json, R27_tree_groups/carpet_perc/lattice094.json, R27_tree_groups/carpet_perc/stage1_094.json, R27_tree_groups/carpet_perc/samples094/]
outcome
confirmed
source
../lab/runs/094-rung-three-on-rows-246.md

PredictionThe reversal does not follow the outer rows. gap′ ≤ −0.03: the carpet's order of T and X does not return when the two outer terminals move onto X's whole rows. A confirm leaves the midpoint, the promotion rule (every join above level 1 lands on a sub-block's midpoint terminal) and three-bond thinning as such unseparated; this run does not separate them.

Falsifiergap′ ≥ +0.03: the order returns with the rows — the datum is which cells. Falsified. −0.03 < gap′ < +0.03: unanticipated (the rows cancel the reversal without restoring the order). Readings fixed here, which are not outcomes: the share of the reversal the rows carry is 1 − gap′/(−0.1313); at gap′ ≤ −0.066 (under a half) the reversal is mostly not the rows', above that the rows carry most of its size though not its sign; and gap′ < −0.16, more reversed than S₃ by more than the margin, confirms the sign and contradicts the narrowing the codifier expects, and the score says so.

Sealed 2026-10-03, before any quantity on S₃′ = {2, 4, 6} exists at any level beyond the mask geometry (designated rows, cell degrees, path lengths) (codifier). Known at sealing, all on S₃ from run 084 unless said: p* 0.741, 0.821, 0.847, 0.8565 (T) and 0.710, 0.794, 0.825, 0.838 (X) at levels 1–4; s₂₃, s₃₄ 0.507, 0.432 (T) and 0.440, 0.301 (X); the gap by step +0.007 (1→2, level 1 wall-bound), −0.066, −0.131, so the scored gap is one point on a drift, not a level; g₁ at level 4, 0.832 (T) and 2.556 (X), and X's excess over T by level +0.110, +0.189, +0.868, +1.724; guards 3.83, 9.97, 24.1 (T) and 5.08, 11.4, 20.4 (X) at levels 2–4; the midpoint terminals' all-separate share at threshold 0.50 on X from level 2 and 0.25–0.29 on T. Coarse passes, which are not measurements (at k = 3 the coarse gap was −0.055 against the measured −0.131): rung 1's rough slopes 0.33 (T), 0.30 (X), wall-bound; k = 5's gap −0.035. The carpet: local slope 729→6561 0.365 (T), 0.545 (X); X's excess skewness +0.003, −0.096, +0.241 at 81, 729, 6561 (run 073, lattice). No rung with X above T is on record. The masks (census068.json #26 and #6, read on disk today): 84 bonds each; T keeps column 1 at rows 0, 1, 4, 7, 8 and rows 0 and 8 whole; X keeps column 1 at rows 0, 2, 6, 8 and those four rows whole; ring-cell degrees for (r, 0), r = 1 … 7, are 3, 2, 2, 3, 2, 2, 3 on T (the 3 at rows 1 and 7 is the pocket (1,1), a loop round the corner, not a way inward) and 2, 3, 2, 2, 2, 3, 2 on X; the level-1 path lengths in the question.

What changed from the lead given when 084 was scored. The score's item 4 said the reversed order "may be the choice of S" and named this rung as the test, expecting the order to return. Reading the masks before sealing turned the lead round. At S₃ the outer terminals are not placed worse on X than on T; what differs is the midpoint, and on a closing rung the midpoint is where every higher join lands. On T that terminal is the end of the spoke into the block's interior; on X it is a corridor cell with the interior walled off beside it, and at threshold X's four midpoints are mutually disconnected half the time. So the codifier now holds that X loses on rung 3 because of where a closing rule must put its landings, and expects the move to narrow the gap (unscored: −0.13 < gap′ ≤ −0.03) without closing it.

Where it breaks. At level 1, S₃′ favours X by four bonds of path on each outer terminal (8 against 12), where S₃ favoured neither. The same geometry repeats at every level in units of sub-blocks. If path length to the far side is what the slope reads, the order returns and the run is falsified; the lead says the landing inside the sub-block outweighs it. The carpet has X above T, so some rule between three bonds and all of them restores the order; nothing on record says where.

Power, stated. The recursion's error on the gap was 0.0067 in run 084, a per-chain error; here it is of the same order if the level-4 shapes are comparable, so the margins sit about 4.5 errors either side of zero. Ten replicates give the error itself to about a quarter. If gap′ lands within 0.01 of ±0.03 the score says so and reads the lattice's gap beside it. Stage 1 yields a coarse gap′ before stage 2; it is good to about ±0.08 and is not read.

The reductio this seal passed first. By construction: nothing in the rule fixes the sign of gap′; the guard is a function of p* and w and is read before it. The F4 share stops being trivial on X (rows 2 and 6 are whole and designated, so a straight-through projection can cross) and stays identically 1 on T; the clause does not read it. Limits: the carpet has X above T and no finite rung on record does; the lead is a statement about three-bond closing rungs, not about the ladder. It expects the same sign at k = 5, where the coarse pass has −0.035, consistent and not evidence. Neighbours: the lead reads the order off the cell (4,1). Census patterns that keep (4,1) with X's cut, or remove it with T's, would test that directly; none is run here, and the converse (a kept (4,1) puts a pattern's rung above its carpet) is a new hypothesis, filed as untested. Negation: if the rows decide, gap′ is positive and X's excess skewness falls toward the carpet's (+0.24 at 6561) or below. Invariance: the guards on S₃′ need not match S₃'s (10–11 and 20–24); gap′ is read at the same levels, not at the same distance from the wall, and the guards are reported beside 084's so the score can say if the two sets sit at different points of the drift. Cost: stage 1 and control (iv), minutes; stage 2's recursion about half of run 084's (22 chains against 42), some 50 chain-hours on the M5 — by the sighted pass's estimate 8–10 hours for the 22 chains with the machine to themselves and 1–2 hours for each L = 6561 lattice. Queued behind run 087's re-sample.

What each outcome does. Confirmed: the rows are cleared, the reversal belongs to something every three-bond closing rung shares, and the next seal under L2 separates the midpoint from thinning as such. Falsified: the boundary datum of scaffold S1 is positional — which cells, chosen by the pattern's through-rows — and the ladder is rebuilt on sets fitted to the pattern. Unanticipated: both act at this size and neither is cleared.

Reported, not scored. - Stage 1 in full: p*(g), w(g), G(g), g = 1 … 4, both patterns, with the ratio of each guard to 084's. - Everything run 084 reported, on S₃′, in one table beside S₃'s values: p*, w, G, g₁, g₂ per level by recursion and lattice; s₂₃, s₃₄; the gap at each step; the lattice's gap′ with its bootstrap error. Each pattern's own movement, s₃₄(P; S₃′) − s₃₄(P; S₃), so it is visible which pattern moved. - X's excess skewness D′ = g₁(X) − g₁(T) at levels 2–4, set beside S₃'s pairs (D, gap) = (0.19, +0.007), (0.87, −0.066), (1.72, −0.131): whether S₃′ lands on the same line. - The F4 share (R − R̃)/R at p*(g), g = 2, 3, 4: expected identically 1 on T; on X, its value. - The four midpoint terminals' partition at p*(g) as in 084, with the SD over the replicate chains on the all-separate share. - Control (i)'s rms z restricted to grid points with N·R(1 − R) ≥ 10, with the count of points.

Readers, before commit (OPS.md). Sharpness reader, given the draft and run 084's record: the sign and size of gap′ are not foretold by any stored number, and gap′ is 084's clause quantity on a new set, not a renamed statistic. It flagged a second clause the draft carried (X's excess skewness at level 4 staying above half its S₃ value, falsified below zero): its falsifier was all but unreachable (the excess is positive at every level on S₃ and in the carpet at 6561) and it would move with the gap (on S₃ the two fall on one line), so it is moved to reported. It recomputed the designated rows, the mask facts, the stream ranges and the arithmetic; found the draft's step counts to hold under one definition of a through-row only, so they are replaced by shortest-path lengths; and had rung 1's gap, the gap's drift by level and the carpet's skewness excess added to what was known. Second reader, given the frontmatter alone: a confirm supports "not the outer rows", not "the midpoint" — the prediction is reworded and the three unseparated rivals named; the scored level had no control — level 4's width joins control (iii), with one pooled re-read before a withdrawal; a silent no-op (the set not reaching the code) would have reproduced 084 and confirmed — the recursion half of control (ii) prints the terminals and promoted positions; control (iv) can only fail through the environment, so it blocks and does not withdraw; the grid, the scored chain and w are stated; the guard ratios and the reading bands (the share of the reversal the rows carry) are fixed before compute. Its suggestion to move the confirm line to half of S₃'s gap is kept as a reading and not as the outcome: the clause is the order, and the share is reported under bands written here.

Sighted pass (OPS.md), before commit. R27_tree_groups/carpet_perc/SIGHTED-RUNG3B.md (8c9d8d9), a Code session on the M5, controls and references only; nothing was computed on (2, 4, 6) beyond the mask geometry. Every cited number, file and field holds. Control (iv) was run as written in a scratch copy: the eight k = 3 guards reproduce stage1_084.json as doubles, on the current kernel (stage 1 of 084 ran on the earlier one), in 121 s. Run 084's gap is −0.13131 ± 0.00671 on b = 0, the error the two patterns' replicate SDs in quadrature; w is xing(0.8) − xing(0.2); the gap by step is +0.0073, −0.0662, −0.1313 (s₁₂ computed from stored widths, no replicate error on file). Designated rows, mask facts and path lengths as cited. The perc seeds and all three default_rng ranges are unused (largest perc seed in use 8918; largest default_rng seed 730402). Folded in from its item 7: the recursion script and gen.py each held their own copy of the set, so the seal requires one definition; gen.py's parser and check_ladder read the rung key as the bond count and must take the set's length; and the F4 share's dictionary entry says "identically 1 at k = 1, 3, 5 on T and X", which the lab amends with the rows since it is no longer true of X on this set.

Scored 2026-10-03 — confirmed

Scored by the codifier from RESULTS094.md, rung094.json and lattice094.json (1e00569), as written.

Controls first — all four pass. (iv) regression: rung094.py with S₃ = (1, 4, 7) on run 084's stage-1 streams reproduces all eight k = 3 guards as doubles. (i) rms z 0.988 (T) and 0.964 (X) over 1,086 and 1,216 level-1 points, largest |z| 3.2, no grid extension. (ii) three bonds at the designated positions on every segment of all six lattices (rows 22, 40, 58 / 202, 364, 526 / 1822, 3280, 4738), 84 bonds per level-1 block; the recursion's terminals printed and asserted before any draw; a position test added to gen.py's check_ladder after step 1 (a count alone would have passed a (1, 4, 7) lattice named 3b). (iii) recursion against lattice on S₃′ within 3 combined errors on all ten counted comparisons, largest 1.81 (X's level-3 width); level-4 g₁ reported, within 0.9. No re-read needed; seeds 9411–9416 unused.

The clause — confirmed. gap′ = s₃₄(X) − s₃₄(T) = −0.1339 ± 0.0062, below −0.03. Moving the outer contacts from rows 1 and 7 to rows 2 and 6 leaves the rung's reversal where it was: on S₃ the gap was −0.1313 ± 0.0067. The seal's readings: share 1 − gap′/(−0.1313) = −0.020 ± 0.07, so the reversal is "mostly not the rows'" (bar −0.066 passed) and nothing of it is; gap′ is above −0.16, so no contradiction of the expected narrowing. The lattice gap′ is −0.142 ± 0.011, the same.

What the numbers say beyond the clause. 1. Which rows carry the contacts does not matter to the rung at all. Each pattern's own movement between row sets is within errors: T s₃₄ +0.0055 ± 0.0077, X +0.0029 ± 0.0049; s₂₃ moves by −0.010 and −0.005. On the carpet the order is the other way (run 081's fresh local slopes: T 0.349, X 0.532; gap +0.18). So rung 3 reverses the carpet's order with rows {1, 4, 7} and with rows {2, 4, 6}, and run 084's "the rows may matter as much as their number" is closed: it is the number, or the ladder's construction itself (midpoint promotion; one terminal per contact), and not the choice of rows. 2. The one-bit map's share is unchanged too. The F4 projection (R̃, straight-through rows only) is identically zero on T (no row 1–7 of T is whole) and 0.84–0.87 of R on X at every level: X's rung is mostly a straight-through object and T's is not, on either row set; the reversal does not come from it. 3. The midpoint law moves on T and sits on X (L14's reading, now at two row sets). The all-separate share N|E|S|W on T rises 0.12, 0.20, 0.23, 0.25 through the levels (S₃: 0.17, 0.25, 0.27, 0.29) and on X sits at 0.42, 0.50, 0.52, 0.53 (S₃: 0.39, 0.50, 0.50, 0.50). X's boundary law is near-stationary from level 2 under both row sets; T's is still moving at level 4. The direction it moves in is the same under both. 4. T's turn is absent on the rung. g₁ on the rung rises monotonically on both patterns at both row sets (T 0.25 → 0.63 from level 3 to 4; carpet: a fall), as on S₃. The rung does not carry the carpet's turn with any three rows. 5. Skewness excess D′ = g₁(X) − g₁(T) on S₃′: +0.21, +0.79, +1.67 by level, within 10% of S₃'s.

What it does to PG-01. Scaffold S1 stands unremoved at rung 3 by two row sets: the finite boundary state of three bits per side, however placed, neither recovers the carpet's order of T and X nor T's turn. The conjecture's "that number is small" now has a floor: three per side is too few, and the next rung (five) is the recursion's cost times about four. The lines that this makes live are L12 (P-051: contacts on a Cantor set, so that the number of bits per side grows with the level rather than being fixed), L15 (the recorder: what the lattice does at its block seams that no three terminals carry), and L14 (the midpoint law is stationary on X and not on T under both row sets, which is a difference between the two patterns the rung sees and the carpet-level slopes do not). The codifier's lead at sealing — the reversal does not follow the rows — was right, and its stronger form (that it would not move at all) is what the numbers show.

Lab notes. M5, 10 workers; b = 0 chain 41 minutes; 20 replicate chains 20–35 minutes each sharing the machine with the two 6,561 lattices (78 minutes for T's); the recorder's timing run and run 096's H8 wait on the machine, which is now free. The lab's dictionary edit was lost once to other chats' commits on statistics.json and reapplied; g1_curve_excess added, f4_share amended.

Correction (2026-10-03, night; codifier). The score above quotes "run 081's fresh local slopes: T 0.349, X 0.532; gap +0.18". 0.532 is X1's slope (pattern #27), not X's (#6). From run 083's samples (R27_tree_groups/carpet_perc/samples083; widths at 729 and 6561) the carpet's slopes are T 0.346 ± 0.007 and X 0.559 ± 0.007, a gap of +0.21. Nothing scored changes: the clause compares the rung's gap′ under two row sets, and the carpet's order (X above T) is the same with either number.

generated 2026-10-25the lab index