Math Mapgenerated 2026-10-25 · a354234
PUBLIC BUILD

run 091Settled

Each sample's threshold is a minimax — the lowest level at which some crossing path is fully open — and its two tails are set by two different optimizations: crossing far below threshold needs the cheapest path, the ring, of length ∝ L; failing to cross far above it needs the cheapest blocking cut, of size ∝ C₁^g = L^(ln C₁/ln 9). With ξ ∝ |p − p_c|^(−ν) and the width w ∝ L^(−1/ν), both tails in the standardized variable y = (t − p_med)/w are predicted (a heuristic, not a theorem) to be stretched exponentials far out, ln S ≈ −c·y^α, with α₋ = ν below and α₊ = ν·ln C₁/ln 9 above. The predicted ratio α₊/α₋ = ln C₁/ln 9 < 1 says the upper tail is the heavier one on every carpet, more so the smaller the cut — which is the sign and the ordering of the map's limiting skewness (g∞ against C₁ at −0.81, run 075), and the square's zero skewness by self-duality (run 072). Across the census, does the tail asymmetry order with ln C₁/ln 9?

slug
tail-asymmetry-reseal
state
run
created
2026-10-02
sealed
2026-10-02
builds_on
[090, 085, 083, 075, 073, 072, 054]
concepts
[fractal-dimension]
programme
PG-01
statistic
A Claude Code session; stored samples only, no sampling. The 47 scored members are the 49 completed census members at L = 729 less T (#26) and X (#6), whose tails were glimpsed before sealing (below); for the 35 census-measured, their measuring run's 729 file (census068 / bands071 / census080, 8,000 each; two columns "k p_c" as perc.c writes them); for the 12 remaining named carpets, the file run 073 read at 729 (cumulant073.json's files, 8,000 each, same two columns). In every two-column file t = k/M, k the first column and M the graph's bond count at 729 as the measuring run's JSON records it (run 051's estimator, analyze071.py); the second column, perc.c's Beta-drawn p_c, is not used. #16 (cen16_3) was glimpsed before run 090 and its value under this run's rule was computed by run 090's control; it is kept in the 47 with both recorded below. Per member: t as the file carries it; p_med the median, w = q₀.₈ − q₀.₂; the standardized upper survival S₊(y) = P(t − p_med > y·w) and lower S₋(y) = P(p_med − t > y·w) on the grid y ∈ {0.50, 0.75, 1.00, 1.25, 1.50}; α₊ and α₋ the least-squares slopes of ln(−ln S) against ln y over the grid points whose tail holds at least 10 samples (the three smallest y always do; a member with fewer than three usable points in a tail is excluded from the count and named); r = α₊/α₋. On this grid α is a bulk-slope statistic, not the asymptotic stretched exponent: a Gaussian gives α = 1.055 on both tails, so α± are read against 1.055 and only their ratio and ordering are scored. Errors by bootstrap: member of rank i = 0 … 46 (ascending pattern index among the 47) uses numpy.random.default_rng(292001 + i), 2,000 replicates of rng.integers(0, n, n), the standardization recomputed per replicate; every error the replicate standard deviation (ddof = 1); the error of α₊ − α₋ and of r from the replicates directly. Seeds checked against every bootstrap range in the carpet_perc scripts and runs 051–090 (run 090's 291001–291047 were named and never drawn; this block avoids them): none reused; no perc seed is used. The scored quantity: Spearman(r, ln C₁/ln 9) over the scored members by midranks (C₁ takes four values). Reported, not scored: the count of members with α₊ − α₋ < 0 by more than 2 of its error (positive skewness at 729 is already known for every member, so this count is close to a restatement of it). Controls, checked first, any failure withdrawing the run: (i) the standardization reproduces the record: p_med and w for each census member agree with the measuring run's recorded p* (the median) and w at 729 to 1e−9 under numpy's default quantile, and for the named carpets with their measuring run's JSON record (perc051, perc053, perc055, perc063 — the records run 090's diagnostic matched 14 of 14 on k/M; the lab database's v_size_series carries no p_med or w for them at 729); (ii) the square at 729 is symmetric: on run 072's eight files samples056/sq729_s5601–5608 pooled (64,000 samples, t in the second column), |α₊ − α₋| ≤ 0.10 — a third of the glimpsed carpet asymmetry; the self-dual lattice is the null, and an instrument that reads asymmetry there is biased (known from run 090's control, on k/M: α₊ = 1.008, α₋ = 1.014); (iii) the known values reproduce on the sealed grid under the sealed rule: run 083's T3 and C3 files (16,000 each, four columns, t = k/M with M from the graph header) give α₊ = 0.937, α₋ = 1.220 (T) and 0.900, 1.131 (X), and cen16_3 on k/M gives 0.775, 1.264 with its 3-sample point at y = 1.5 dropped by the 10-sample rule, each to three decimals, as run 090's control computed them (tails090.json). Output tails091.json (with a top-level rows list, docs/DATABASE.md; the dictionary rows alpha_plus, alpha_minus, tail_ratio exist from run 090) and RESULTS091.md.
script
R27_tree_groups/carpet_perc/tails091.py (Claude Code session; tails090.py's controls and diagnostics are the starting point)
artifacts
[R27_tree_groups/carpet_perc/RESULTS091.md, R27_tree_groups/carpet_perc/tails091.json]
outcome
unanticipated
source
../lab/runs/091-tail-asymmetry-reseal.md

PredictionThe asymmetry orders with the cut: Spearman(r, ln C₁/ln 9) ≥ +0.5 over the scored members. Confirmed if it holds.

FalsifierSpearman below +0.2: the asymmetry is not set by the cut at this size — the tails are heavier above on every carpet (known) but by an amount the cheapest cut does not order; falsified. From +0.2 up to but not including +0.5, unanticipated. One clause; the run takes its outcome. A falsified run leaves the large-deviation reading as a story about sizes we cannot reach; a confirmed one gives the shape its first mechanism and the prefactors their first look.

Resealed 2026-10-02 from run 090, withdrawn on its controls before any scored member was touched. The codifier had read the two-column files' second column as t (it is perc.c's Beta-drawn p_c; the record's p* and w are k/M), asked control (iii) to reproduce a #16 value computed without the run's own 10-sample rule, and pointed control (i) at a database column that is NULL at 729. The clause, grid, rule and members are unchanged; the three references are corrected; the seed block is new. Run 090's dictionary rows stand.

Sealed with pre-seal glimpses, recorded here before anything else was computed (codifier). While checking that the fit is feasible at 8,000–16,000 samples, the codifier computed α± on run 083's T3 and C3 files at 729 (16,000 each) and on T4 and C4 at 6561, first on a grid 0.5–1.75 (T 729: α₊ = 0.96 ± 0.02, α₋ = 1.27 ± 0.04, r = 0.75; X 729: 0.94 ± 0.02, 1.20 ± 0.03, r = 0.79; T 6561: 0.99, 1.39, r = 0.71; X 6561: 0.90, 1.18, r = 0.76; 300 replicates; the lower tail at y = 1.75 held 6 and 10 samples, which is why the sealed grid stops at 1.5), then on the sealed grid 0.5–1.5 (T 729: 0.937, 1.220, r = 0.768; X 729: 0.900, 1.131, r = 0.796), and, to see a cut-2 member, on cen16_3 (#16) at 729 on the sealed grid: 0.774, 1.343, r = 0.577 — computed on the Beta column over all five points, including a 3-sample lower-tail point at y = 1.5, which is the reason for the 10-sample rule; under that rule on k/M, run 090's control gives 0.775, 1.264, r = 0.613. T and X are therefore controls, not scored; #16 stays in the 47 with its value recorded here, because excluding it would leave the smallest class with its wall-bound members only. The glimpses say three things the seal records. The sign is foretold: positive skewness at 729 is known on every census member, and a heavier upper tail is what positive skewness means on this grid, so the sign is not a prediction and is not scored. The ordering is not foretold: the ratios run 0.61, 0.77, 0.80 for cuts 2, 3, 4 (#16 under the rule) against the predicted 0.32, 0.50, 0.63 — ordered, and compressed toward 1. The compression has two known reasons and is not scored either: α on y ≤ 1.5 is a bulk-slope statistic (a Gaussian gives 1.055 on both tails), and L/ξ at the width's scale is 2–3 at 729, so the large-deviation regime is not where these samples live. Known at sealing besides: run 090's control rows (T, X, #16 and the square on k/M; tails090.json); positive g₁ at 729 on every census member (run 085's files; T +0.363, X +0.267 from run 073), the map's g∞ ordering against C₁ (−0.81 over 63), the square's g₁ = +0.009 ± 0.011 at 729 (run 072), and the census's C₁, N₁, w and p* per member.

What this run is for. Every reading of the threshold's shape in the record is a moment — g₁, g₂ — and a moment is not the extremum of anything. The two tails are: each is the probability of an extremal event (a path fully open early; a cut fully closed late), and large-deviation theory says its logarithm is a rate function set by that event's cheapest realization. On a carpet the two cheapest realizations scale differently with L — the ring like L, the min cut like L^(ln C₁/ln 9) — and that is a reason, not a fit, for the skewness to be positive and ordered by the cut. This run reads the shape as the asymmetry between two optimizations, and scores the one thing positive skewness does not already say: whether the asymmetry is ordered by the cut's scaling exponent. If it holds, the equation under the "energy against entropy" story has its first term: ln S₊(y) ≈ −c₊ y^(ν·ln C₁/ln 9) + (prefactor), ln S₋(y) ≈ −c₋ y^ν + (prefactor), with the prefactors' growth in L the entropy of near-optimal cuts and paths — the quantity runs 054, 055 and 062 counted (N(g)) without a place to put it.

The codifier's lead, held with conviction. Spearman near +0.6: the ratio orders by cut with the glimpsed compression (0.61, 0.77, 0.80 against 0.32, 0.50, 0.63), cut 2 lowest and cut 5 highest, with the wall-bound cut-2 patterns (#38 and its kin, upper tail cut off by p = 1) the exceptions that pull the ordering down. Where it breaks: if within cut 4 the ratio spreads as widely as it does across the classes, the asymmetry is a generic property of a minimax over many routes at these sizes and the cut enters only asymptotically — falsified, and the large-deviation reading has to wait for sizes we cannot reach.

Power, stated. At 8,000 samples the glimpse's errors scale to about 0.03 on α₊ and 0.06 on α₋, so r carries an error near 0.04 per member — the size of the glimpsed cut-3/cut-4 gap, which is why the clause is an ordering over 47 members and not a per-class comparison. Spearman over 47 has null spread 0.15; +0.5 is 3.4 spreads. Control (ii) on 64,000 square samples resolves |α₊ − α₋| to about 0.02 against its 0.10 margin (run 090 measured 0.007).

The reductio this seal passed first. By construction: standardizing by the median and the inter-quintile width does not impose asymmetry; the square control is the proof, and it is a withdrawal control for that reason. On the sealed grid the thinner tail holds 12–50 samples at y = 1.5 on 8,000, but as few as 3 on a cut-2 member (#16), so a point enters a fit only with 10 or more samples behind it and the fit is on counted events, not on one or two. Negation: if the asymmetry were lattice-generic — one ratio for every minimax over many routes at these sizes — r would not order with ln C₁/ln 9 and the clause fails. Cost: minutes; 47 files of 8,000 plus the controls.

Reported, not scored. - α₊, α₋, r, with errors, for all 49 at 729 (T, X and #16 marked as glimpsed), beside C₁, ln C₁/ln 9, N₁, y₉, 1/ν, g₁(729), the ring share and G_med; Spearman of r with each, and within cut 4 against N₁ and the ring share; the count of members with α₊ − α₋ < 0 by more than 2 errors; α± − 1.055 per member; r against the predicted ln C₁/ln 9 as a scatter, and the slope of r on ln C₁/ln 9 (the compression toward 1); any member excluded by the 10-sample rule, named. - The drift with L: the 14 named carpets at 81 and 6561 too, and T and X at three sizes from run 083's files beside run 073's — whether α₋ moves toward ν and α₊ toward ν·ln C₁/ln 9 as L grows, or r stays where it is. A look, not a test; the glimpse at 6561 gives r = 0.71 and 0.76 against 0.77 and 0.80 at 729. - The prefactors: the intercepts of the two fits per member and size, against ln N₁ and ln L — the first look at the entropy term. - The empirical cumulant generating function Λ_L(θ) = ln E e^(θ(t − p_med)/w) on θ ∈ [−3, 3] for T and X at the three sizes, and its Legendre transform — the small-deviation rate function the moments are derivatives of — as curves, for the record.

Reviewed before commit by a second reader (OPS.md) as run 090; the reseal's corrections were read again against RESULTS090.md before commit.

Scored 2026-10-02 — unanticipated

Scored by the codifier from RESULTS091.md and tails091.json (18ae1bb), as written; a scoring reader (OPS.md, adopted today) read the note against the results before commit, and its edits are folded in.

Controls first — all three pass. (i) p_med and w agree with the record to 1e−9 on 49 of 49 files (largest difference 0). (ii) The square at 729, 64,000 samples: α₊ = 1.008, α₋ = 1.014, |α₊ − α₋| = 0.007 against the 0.10 margin. (iii) T3 0.937/1.220, C3 0.900/1.131, cen16_3 0.775/1.264, each as known. Two wordings the lab resolved by the statistic, both accepted: the square's t is k/M (control (ii)'s text still said "second column"; the statistic and the cited values are k/M), and T, X and the drift-with-L sizes carry point values without errors because the seal assigns seeds to the 47 scored members only.

The clause — unanticipated. Spearman(r, ln C₁/ln 9) = +0.475 over the 47, by midranks; no member excluded by the 10-sample rule. The prediction was ≥ +0.5, the falsifier below +0.2; +0.475 falls in the unanticipated band, 0.025 short of the prediction. Against the null spread of 0.15 the ordering is three spreads from zero; the run takes its outcome as written.

What the numbers say beyond the clause.

  1. The ordering is cut 2 against the rest, not a grading by ln C₁/ln 9. Mean r by class: 0.720 (cut 2, n = 13), 0.861 (cut 3, n = 5), 0.862 (cut 4, n = 27), 0.854 (cut 5, n = 2). Recomputed from the reported table: within cuts 3–5 together (n = 34), Spearman(r, ln C₁/ln 9) = −0.003; r against the indicator [C₁ ≥ 3] gives +0.53. The whole of the +0.475 is the step between cut 2 and everything else. The seal's "where it breaks" condition — the ratio spreading within cut 4 as widely as across classes — is met in part: within cut 4 r runs 0.749–0.976 (sd 0.056) against 0.586–0.983 (sd 0.102) over all 47; the within-class spread is half the total, and the rest is the cut-2 step.
  1. On this grid the tail ratio is the skewness re-measured. Spearman(r, g₁(729)) = −0.952 over the 47, and −0.93 within cut 2, −0.92 within cut 4 (recomputed from the table). The seal said the sign was foretold by positive skewness; the magnitude is too, on this reading — a slope of ln(−ln S) over y ∈ [0.5, 1.5] on 8,000 samples is a bulk-shape statistic, and the bulk shape is g₁. Run 091 therefore scored, in effect, whether g₁(729) orders with the cut: Spearman(g₁, ln C₁/ln 9) = −0.43 on the same 47, with cut 2's mean g₁ at 0.52 against 0.21 for the rest (recomputed from the table). The five members whose sign is within 2 errors — #35, #38, #45, Y, X2 — are the five least skewed (g₁ ≤ 0.10); #38, the wall-bound cut-2 pattern, is the only member whose α₊ point value lies above 1.055 (+0.052 on an error of 0.027), as the lead said it would be.
  1. The compression is 0.42 against 1, with intercept 0.60: at 729 the ratio sits near 0.86 for every class whose cut costs 3 or more bonds and drops only when the cut is two bonds. A reading, consistent with L11 and not a test of it: the cheapest cut shapes the sampled upper tail only when it is cheap enough to be reached within y ≤ 1.5 at L = 729; for C₁ ≥ 3 the cut-driven regime lies beyond the sampled tail and the upper tail is the generic one. The discriminating test is deeper tails (y to 3, 10⁵ samples per member at 729, about an M5-hour for three members at cuts 2, 3, 4): L11 predicts α₊ departing below the Gaussian value with the cut, graded, where this run saw a step.
  1. The drift with L is the turn, seen through r — a reading on point values. On run 073's files r falls from 81 to 729 on 13 of 14 named carpets (X2 is the exception); from 729 to 6561 it falls on X, U′, H, Y, Y1, X2, Z, A, V and rises on U, T, X1, B, Z1. On 12 of the 14 the sign of the point-value change in r from 729 to 6561 is opposite to the sign of g₁'s change in run 073 (A and Z1 are the exceptions): four of the five carpets whose g₁ turns down at 6561 are carpets whose r turns up. Item 2 again, at three sizes. Λ_L(θ) carries the same shape: on X (key C in tails091.json), Λ(3) − Λ(−3) grows 0.41 → 0.62 → 1.21 across 81, 729, 6561; on T it goes 0.29 → 0.82 → 0.40.
  1. Prefactors, a first look. The upper-tail intercept against ln N₁: Spearman +0.50; the lower-tail intercept −0.51 (n = 47, null spread 0.15). Against ln L over the 14 named carpets at three sizes (42 points): −0.41 upper, +0.54 lower. Opposite signs on the two tails in both comparisons; the intercept of a bulk-slope fit is a scale, not the large-deviation prefactor, so these are carried as the first numbers under L11's entropy term and nothing is read from them yet.

What it does to PG-01. On this reading L11's testable content at 729 on 8,000 samples collapses to skewness, and the cut enters as a step (two bonds against more), not a grade. The line stays open on the deep-tail seal in item 3, which is the first test that can separate "the cut sets the upper tail" from "the skewness is positive". The sharpness reader named in OPS today would have caught this before sealing — the second reader caught the sign, not the magnitude — and this run is the failure in that class; the pass is adopted when the owner says so.

Lab notes. 30 seconds on the M5; seeds 292001–292047 checked unused; 148 stat rows plus one composite row and one dictionary row (spearman_tail_ratio_cut_exponent). The CGF curves and Legendre transforms for T and X at three sizes are in tails091.json (reported.cgf) for the record.

generated 2026-10-25the lab index