Attack item R-4 ยท 2026-07-30 ยท harness
harness/attainable_ceiling.py
Chatterjee remark (9): with no ties in Y, the maximum attainable ฮพ is (nโ2)/(n+1).
Iteration 2 listed this as one of two mechanisms making sub-slice readings incomparable to their parent
cell โ without checking the magnitude at the scale the cascade actually runs. This iteration was
built prepared to find the loop's own earlier claim overstated.
n formula measured |diff|
12 0.769231 0.769231 1.11e-16
200 0.985075 0.985075 0.00e+00
3990 0.999248 0.999248 0.00e+00
| split | typical n | ceiling | floor n | ceiling |
|---|---|---|---|---|
| full | 3990 | 0.9992 | 50 | 0.9412 |
| quarter | 997 | 0.9970 | 12 | 0.7692 |
| fullโquarter gap | 0.0023 | 0.1719 | ||
At the cascade's typical scale the gap is 0.0023 โ 1% of the floor-scale gap, and negligible against either frozen line. So the ceiling is not a general mechanism for sub-slice disagreement. Iteration 2 was right that it exists and wrong to imply it operates at the working scale. The dominant mechanism there remains the โn SD scaling, which iteration 2 also measured.
I predicted a single blocked window starting at the admission floor. There are actually three regimes, because the full cell has a ceiling too:
line split min cell rows min bar-equiv 0.50 half 10 200 0.50 quarter 20 400 <-- PASS is never blocked 0.95 half 118 2360 0.95 third 177 3540 0.95 quarter 236 4720 <-- BAN needs 4.7x FLOOR_BARS
Run through the real xi_cell_vote_stable, on a near-perfect relation so each cell reads
as high as its own ceiling permits:
cell rows quarter n q ceiling xi_full stable? forced?
50 12 0.7692 0.9412 True -
100 25 0.8846 0.9703 False YES โ arithmetic, not evidence
236 59 0.9500 0.9873 False -
400 100 0.9703 0.9925 True -
1000 250 0.9880 0.9970 True -
| Regime | Cell size | What happens to BAN |
|---|---|---|
| 1 | < 59 rows (< 1,180 bar-equiv) | the full cell itself cannot reach 0.95 โ BAN unreachable, and no instability is flagged. The cell silently can never be BANned. |
| 2 | 59โ236 rows (1,180โ4,720) | full cell can exceed 0.95 but the quarter cannot โ forced "unstable" โ cell excluded from the vote โ BAN cannot rest on it, by arithmetic |
| 3 | โฅ 236 rows (โฅ 4,720) | quarter can reach 0.95 โ stability reflects the data |
The declared admission threshold is FLOOR_BARS = 1000 bar-equivalents. But a BAN verdict
is only data-driven above 4,720 โ 4.7ร the declared threshold. Between 1,000 and 4,720,
BAN is blocked by arithmetic, in two different ways depending on which side of 1,180 the cell sits.
The guard's docstring says "BAN can never rest on noisy thin-cell evidence", and it does achieve that. But for cells in regime 2 the exclusion is not evidence-quality filtering โ the sub-slice cannot reach the line no matter what the data shows. The stated rationale and the actual mechanism differ, and 4,720 is a threshold nobody chose: it is an emergent consequence of FLOOR_BARS=1000, the quarters construction, and the 0.95 line interacting.
The PASS line is never affected โ a quarter needs only 20 value rows to attain 0.50, well below the 50-row floor. This finding is specific to BAN.
forced? flag has an off-by-one at the boundary. At exactly 236 rows the
quarter ceiling is exactly 0.9500, so the strict < test reports "-" while the cell is
still flagged unstable. Cosmetic in the harness, but the boundary row should be read as regime 2/3
transitional, not as a clean regime-3 case.Nothing. FLOOR_BARS, the sub-slice fractions and both frozen lines are dials. The honest output is a number the operator did not previously have: the effective BAN admission threshold is 4,720 bar-equivalents, not 1,000.
Evidence: harness/attainable_ceiling_evidence.json. Reproduce:
VIRTUAL_ENV="" uv run --python 3.13 --no-project --with numpy --with pandas python3
harness/attainable_ceiling.py