Math Mapgenerated 2026-10-25 · a354234
PUBLIC BUILD

run 086Falsified

The census has 63 patterns and 49 crossing polynomials; the 14 extra patterns share a polynomial with another, in eight groups of two to four, and the completed census measured one member of each. Within a group the one-block map, λ, y₉, the pivotal sum and the ring share are identical. Each pair below differs by moving four or eight removed cells among D4-symmetric positions: in two pairs (#33/#37, #58/#60) both members stay connected with the same bond count; in two (#23/#24, #62/#63) one member's move cuts cells off from everything — islands, dead at every generation — where the other keeps them attached but off every level-1 crossing, so the polynomial cannot tell the two apart while at generation 2 the attached cells are blocks a crossing can enter and leave through one shared edge. Inside a polynomial fibre, is the lattice exponent the same number; and are attached-but-crossing-dead cells live on the lattice?

slug
polynomial-twins
state
run
created
2026-10-01
sealed
2026-10-01
builds_on
[080, 063, 068]
concepts
[fractal-dimension]
programme
PG-01
statistic
Cloud session (the container used for runs 070 and 081), after run 081 completes; perc.c unchanged; graphs built with gen.py write exactly as the census runs built theirs (cen<i>_g). Four unmeasured patterns, with their measured twins: #37 (twin #33; removed cells differ at (2,2),(2,6),(6,2),(6,6) against (3,3),(3,5),(5,3),(5,5); M = 88 both; no islands), #58 (twin #60; eight cells moved; M = 92 both; no islands), #23 (twin #24; #23 removes (3,3),(3,5),(5,3),(5,5), #24 removes (3,4),(4,3),(4,5),(5,4) and so isolates the centre; M = 84 against 80; #24 the island member), #62 (twin #63; #62 removes (2,4),(4,2),(4,6),(6,4), #63 removes (3,3),(3,5),(5,3),(5,5); M = 92 against 96; #62 the island member). Each new pattern at generations 2, 3, 4 (L = 81, 729, 6561), 8,000 samples per graph as the census, perc seeds 8601 + 3·j + (g − 2) for pattern j in the order #37, #58, #23, #62 (8601–8612); thread count as the machine allows. Output samples086/cen<i>_<g>.txt; each file force-added and committed as it completes, as run 081 did. No statistic of any samples086 file is computed until all twelve are complete. Per graph: p_med (the median of t = k/M, the record's p*(L)), t_mean (the mean), w = q₀.₈ − q₀.₂, by the census's estimator (census080.json's method); per pattern 1/ν as the census's endpoint slope over 81→6561 and the two local slopes; errors by bootstrap, 2,000 replicates, numpy.random.default_rng(259001 + 3·j + (g − 2)) per graph, resampling rng.integers(0, 8000, 8000), the slope errors from the replicate widths; every error the replicate standard deviation (ddof = 1). The measured twins' values are the record's: #33 (1/ν 0.5326 ± 0.0040; p*₇₂₉ 0.71042 ± 0.00011; w₇₂₉ 0.01408 ± 0.00018), #60 (0.5486 ± 0.0038; 0.64510 ± 0.00014; 0.01646 ± 0.00020), #24 (0.5012 ± 0.0039; 0.72237 ± 0.00015; 0.01633 ± 0.00020), #63 (0.5794 ± 0.0040; 0.62079 ± 0.00012; 0.01414 ± 0.00017). A combined error is the quadrature sum of the fresh and the recorded error. The scored quantities: for the no-island pairs, z_pair = (1/ν(new) − 1/ν(twin))/combined error and Q = z₃₇/₃₃² + z₅₈/₆₀²; for the island pairs, the signed difference δ = p_med(attached member) − p_med(island member) at L = 729 in combined errors, the attached members being #23 and #63. Seeds checked against every perc seed (49–8549, plus 490, 510, 530, 7002) and bootstrap range (up to 249049) in the carpet_perc scripts and runs 051–085: none reused. Controls, checked first, any failure withdrawing the run: (i) construction: gen.py check passes on each of the twelve new graphs as the census runs ran it (bond and kept-cell counts against the pattern; terminal flags on exactly the left and right columns); (ii) the analysis script applied to the measured twins' stored samples (#33, #60, #24, #63, three sizes) reproduces their recorded p*, w and 1/ν to 1e-6; (iii) islands are islands: for #62 (new) and #24 (stored graphs), one deterministic pass adding every bond in index order leaves each island component disconnected from both terminals at generations 2, 3 and 4. Script twins086.py; output twins086.json with a top-level rows list (docs/DATABASE.md; every statistic name a row of lab/db/statistics.json, added if missing) and RESULTS086.md.
script
R27_tree_groups/carpet_perc/twins086.py (cloud session)
artifacts
[R27_tree_groups/carpet_perc/RESULTS086.md, R27_tree_groups/carpet_perc/twins086.json, R27_tree_groups/carpet_perc/samples086/]
outcome
falsified
source
../lab/runs/086-polynomial-twins.md

Prediction(A) The boundary datum is real and small. Over the two no-island pairs, Q ≥ 6 (the two differences are jointly inconsistent with zero at the 5% level), and each |1/ν(new) − 1/ν(twin)| is below 0.020. (B) Attached cells are live. On both island pairs the attached member crosses earlier: δ < 0 by more than 3 combined errors, at L = 729. Confirmed if both hold.

Falsifier(A) Q ≤ 2: the two pairs are consistent with equal exponents (the median of Q under equality is 1.4) — the polynomial, with its pivotal structure, fixes the lattice exponent at these sizes and the boundary datum is below the census's resolution; falsified. Either |difference| at or above 0.020: the datum is not small; falsified in the other direction, and the twin pairing is re-read before anything is concluded. Q between 2 and 6 with both differences below 0.020: unanticipated. (B) either island pair within 3 combined errors, or either with the attached member crossing later (δ > 0 by more than 3 errors): falsified — the attached cells are as dead on the lattice as on the block, or they hinder. Both the right sign, one of them between 2 and 3 errors: unanticipated. The run is falsified if either clause is falsified, confirmed if both hold, otherwise unanticipated. A falsified A (equal) with a confirmed B says the one-block structure fixes the exponent at L ≤ 6561 while the threshold still moves with cells the block cannot see — the datum is in the threshold, not the exponent; a confirmed A with a falsified B says the exponent moves inside a fibre by something other than attached cells, and the no-island rearrangement is where to look.

Sealed 2026-10-01, the night P-050 was filed, before any sample of a second member of any polynomial fibre exists (codifier). Known at sealing: the eight twin groups and their members' census068 numbers (removed cells, M, components, ring share, pivotal sum); the measured representatives' 1/ν, p*(L) and w(L) (068, 071, 080); the cut twins of run 063 (X1 0.015 below X, X2 0.030, Z1 0.039, Y1 0.005 — different polynomials, y₉ within 0.001).

What this run is for. The census measured one pattern per polynomial, so nothing in the record says how much 1/ν varies inside a fibre of the finest invariant we have. The one-block map, λ, y₉, the pivotal sum and the ring share are all functions of the polynomial, so they are identical across a group; whatever differs on the lattice is what the map does not see, with nothing else varying. That is PG-01's conjecture — "a finite number of boundary bits, and that number is small" — measured directly rather than through the ladder. The island pairs put a second question that the reductio turned up: the connected member's extra cells carry no level-1 crossing (hence the same polynomial) but at generation 2 they are blocks attached along one shared edge, which a crossing can enter at one cell of that edge and leave at another — a route the one-block map cannot represent, run 083's kind. If those cells are live, the attached member crosses earlier.

The codifier's lead, held with conviction. The no-island pairs differ by about 0.010 each — two census errors, a third to a half of what the cut twins showed, because the cut twins differ in the polynomial too and these do not — so Q near 6, at the margin. The attached members cross earlier by 0.001 to 0.005 at 729, ten or more combined errors: the detours are real and cheap to see. Where it breaks: if Q comes in near 1 the datum is below 0.004 and the ladder's job becomes finding which bits, not how many.

Power, stated. Census errors on 1/ν are 0.004, a combined error 0.0057; a difference of 0.010 per pair gives Q ≈ 6. Under equality Q is χ² with two degrees of freedom: P(Q ≥ 6) = 0.05, P(Q ≤ 2) = 0.63, so A's "equal" verdict is the likely outcome under equality and the "real" verdict is a 5% false positive. B's errors on p_med at 729 are about 0.00015 each, 0.0002 combined; 3 errors is 0.0006, far below the lead. Two comparisons at 3σ each: a correct null fails at least one with probability 0.005.

The reductio this seal passed first. By construction: the island members' dead bonds are in the random bond order, so t = k/M counts dead bonds added before the crossing. That does not shift the median of t — the dead bonds are a uniform dilution of the order — and adds independent variance p(1 − p)·f/M (f the dead fraction, a few percent): a standard deviation near 2 × 10⁻⁴ at L = 729 and 1.3 × 10⁻³ at L = 81, which enters the width in quadrature (an increase of about 0.15% at 81, a local-slope shift under 0.001). So B is on p_med, and the island pairs' widths and exponents are reported with this bound beside them. A is not forced: two fresh samples against two stored ones at 8,000 each is an honest two-sample comparison, and Q's null distribution is known. Negation: if the boundary datum were zero, Q sits near 1.4; if it were the cut twins' size, a difference crosses 0.020. If attached cells were dead on the lattice, δ sits within 3 errors of zero on both pairs. Lone clauses are in the falsifier line. Cost: three sizes for four patterns; one L = 6561 graph per pattern took 45 minutes on the M5 at 8 threads (run 080) and the cloud container is about four times slower on four cores, so about twelve hours after run 081; the 729 and 81 graphs minutes. Each samples file is committed as it completes because the container is disposable.

Reported, not scored. - The full twelve-graph table: p_med, t_mean, w, g₁ at every size; the local slopes; 1/ν with errors; beside the measured twin's recorded values and the differences in combined errors; Q and the two z values. - The island pairs' widths and endpoint 1/ν, with the dilution bound beside them; δ at 81 and 6561. - The no-island pairs' δ at 729 (a sign to compare with B's). - The gap G_med = p*_map − p_med at 729 for all four, against the measured twins' (P-050's item 1 inside a fibre: the ring share is identical across a group, so any difference in G is unordered by it). - Control (ii)'s reproduction differences, and (iii)'s component counts.

Reviewed before commit by a second reader (OPS.md); its edits are folded in: clause A restated on the joint statistic with every outcome assigned; clause B made a test of the attached cells rather than a null on the islands; the dilution bound corrected to quadrature; the cost's graph count; t_mean named throughout.

Scored 2026-10-02 — falsified

Scored by the codifier from RESULTS086.md and twins086.json (3e35fe7, merged to main at b7a7265), as written. A scoring reader (OPS.md) read the note against the results before commit; its edits are folded in.

Controls first — all three pass. (i) Construction: 64^g kept cells, M against an independent count, the g = 1 count against census068's M, terminal flags on the edge columns — on all twelve graphs. The seal named gen.py check per graph; that command takes no graph names (it checks the U, H and gasket constructions), so the lab implemented the per-graph check in twins086.py and ran gen.py check beside it — accepted, and the sighted pass now in OPS would have caught the mismatch before sealing. (ii) The twins' recorded p*, w and 1/ν reproduce to 7e−16 or better. (iii) The terminals lie in one component; every other component touches neither terminal. The dead-bond fraction is 0.055, 0.112, 0.167 at g = 2, 3, 4, not the seal's "few percent"; the dilution bound recomputed with those values still moves widths by at most 0.10% and local slopes by at most 0.0003 — the argument survives its wrong premise with room, and the premise is corrected here.

(A) Unanticipated. Q = 2.47 over the two no-island pairs (z = −0.54 for #37 vs #33, −1.48 for #58 vs #60), between the falsifier's 2 and the prediction's 6; both |differences| (0.0030, 0.0081) are below 0.020. Q = 2.47 on two degrees of freedom is p ≈ 0.29 — consistent with equal exponents, but above the falsifier's Q ≤ 2; the datum is below 0.020 on these two pairs and unresolved at the census's resolution. (B) Falsified. #23 vs #24 at 729: δ = −0.00034 ± 0.00021, −1.60 combined errors — within 3; the clause needed both island pairs beyond 3. #63 vs #62: δ = −0.00236 ± 0.00016, −14.5 errors. One pair is as the lead said and one is not, and the falsifier reads "either island pair within 3 combined errors: falsified". The run is falsified on B, as written. The codifier's lead was wrong on #23/#24 and wrong on the no-island pairs' size (about 0.010 each; measured 0.003 and 0.008 with errors 0.005).

What the numbers say beyond the clauses.

  1. Reading: the polynomial fixes the exponent at these sizes on three pairs; the pattern moves the threshold on two. On three of the four pairs the endpoint 1/ν agrees with the twin's within 1.5 combined errors (#37/#33 −0.54, #58/#60 −1.48, #23/#24 +0.63); the fourth, #62/#63, differs by −3.37 (0.5610 against 0.5794). Meanwhile p_med at 729 differs by 14.8 errors on #58/#60 (new above twin) and 14.5 on #63/#62 (attached below island), and by under 2 errors on the other two pairs. The falsifier's own gloss for "A equal with B confirmed" — the datum is in the threshold, not the exponent — is the reading the numbers give even though the outcome is not that one: it holds on two pairs and not on #23/#24, where nothing moves.
  1. The two pairs that move are the risers' pairs. #60 and #63 are the two patterns run 087 is reseeding for P-050's fan (the local slopes that rise with size), and run 085 found them the census's two largest lags. Their twins #58 and #62 sit higher in p_med at 729 by 0.0028 and 0.0024 (the risers cross earlier), and their fresh local slopes read as rising (#58: 0.525 → 0.556; #62: 0.547 → 0.575; against #37 at 0.528/0.531 and #23 at 0.518 → 0.491) — RESULTS086 carries no errors on the local slopes, so this is a reading. A reading, not a result: the fan is a property of the polynomial — shared by twins — while the threshold offset is a property of the pattern. Run 087 reads #60's and #63's drift on fresh seeds; this run says their twins drift the same way on seeds that are already fresh, which 087's scoring should set beside its own.
  1. The islands are not small and do not matter. The dead fraction f is 0.055, 0.112, 0.167 at g = 2, 3, 4 — growing with generation — and the dilution bound still says they move nothing at the recorded precision. On #23/#24 the attached member crosses no earlier (δ within 2 errors at all three sizes, sign changing from +1.6 at 81 to −1.6 at 729 to −1.2 at 6561); on #63/#62 the attached member crosses earlier by 7.6, 14.5 and 45.9 errors, growing with L in error units and shrinking in value (−0.0044, −0.0024, −0.0021). A reading: the attached cells are live on one pair and dead on the other; the island count is identical by construction, so whatever differs between the pairs is which cells are attached where.
  1. Widths. The new members' widths exceed the twin's beyond 3 combined errors on #62 at 729 and 6561 (+5.0, +6.4) and on #58 at 6561 (+3.9); the other entries (#62 at 81 +1.5; #58 at 81 and 729 +1.8, +2.1; #37 and #23 all within 1.2) are within about 2 errors — the same two pairs as item 1, in the width.

What it does to PG-01. L9's question — is the boundary datum small — gets "unresolved in the exponent on the no-island pairs, large in the threshold on two of four pairs, and those two are the risers'". The falsifier's conditional reading ("the datum is in the threshold, not the exponent") is carried as a reading with #23/#24 as its counterexample. The next step under L9 is not another twin pair: it is 087, read with item 2 in hand, and then the remaining ten fibre members at 729 only (one M5-hour), scored on p_med against the twin — the quantity that moved by 15 errors — rather than on 1/ν, which moved by at most 3.4.

Lab notes. Cloud container, 4 threads; the four 6561 graphs 8,929–9,692 s each; no VM restart; files force-added as they completed; no statistic computed before all twelve existed; bootstrap seeds 259001–259012 as sealed. The branch was merged to main by the codifier (b7a7265) with statistics.json taking main's rows plus 086's three new names (gap_med was already on main) and MANIFEST.md regenerated. twins086.json carries 81 rows in row form.

generated 2026-10-25the lab index