diff --git a/docs/port/f6-what-starts-the-sweep.md b/docs/port/f6-what-starts-the-sweep.md index f8d10e2e..7571462c 100644 --- a/docs/port/f6-what-starts-the-sweep.md +++ b/docs/port/f6-what-starts-the-sweep.md @@ -104,3 +104,61 @@ by one authored value. Nothing else moves. * It does not touch the glow. A boot looks exactly as it did. * It says nothing about whether the *speed* or the *path* is right — only when it begins. + +--- + +# 🔴 Unit b, HELD: the parent-alpha refutation may be right, but its identification step cannot carry it + +**Status:** ⏸️ **the renderer is NOT changed.** The Decoder's +`f6-unit2-parent-alpha-multiplies.md` refutes `screen_view.gd`'s *"the parent's +alpha is NOT multiplied in"* using a bound. The bound's shape is sound and its +premise checks out against this export. **The step that assigns the measurement +to an element does not.** + +## The premise holds + +`pteff03`'s leaf declares `0:255 150:128 540:255 600:255` — **minimum 128**, +confirmed off `export/screens/title/title.json`. A drawn alpha below 128 cannot +come from that leaf alone. That part is right. + +## 🔴 But the two strips are the SAME SIZE, so size cannot say which is which + +The identification is stated as *"by size against the corpus's independently +measured AABB height of 1134 px"*. Measured off this export: + +| sprite | dimensions | leaf alpha range | travel | +|---|---|---|---| +| `pteff03` | **399 × 180** | **128 … 255** | left → right (−639 → 1521) | +| `pteff03a` | **399 × 180** | **0 … 255** | right → left (1721 → −839) | + +**They are byte-identical in size**, which is consistent with the two reported +rows measuring `1.38 × 3.15` and `1.39 × 3.15` — a 0.7 % difference. Size +separates the sweeps from everything else on the screen; it cannot separate them +from **each other**, and that is the distinction the argument needs. + +## Why it matters — the assignment flips the conclusion + +The quoted row that reaches **8** is the one the argument leans on. But +`pteff03a`'s leaf alpha floors at **0**, not 128, and ramps `0 → 128` across +t=0…150. Values of 8, 24, 33, 50 … are exactly what **that leaf alone** produces. +So if the 8-row is `pteff03a`, the bound is satisfied with no parent at all. + +⚠️ **And the conclusion may still be correct via the OTHER row.** The row +reported as `16 41 67 91 116 128 129 130 131` contains values below 128 *and* a +dense cluster at 128–131 — the signature of `pteff03`'s floor. If that row is +`pteff03`, then 16 < 128 refutes no-multiply exactly as claimed. **The finding +may be right and the cited row wrong.** + +## The discriminator is free and already in their capture + +The two leaves travel in **opposite directions**: `pteff03` left→right, +`pteff03a` right→left, separated by ~1 000 px for most of their run. One frame +pair settles it. Nothing needs re-capturing. + +## What the port does about it: nothing yet + +Adopting a decode whose element assignment is unresolved is how this project has +been burned before — and the port would be changing a renderer rule on it. +`screen_view.gd` keeps its current behaviour until the row is identified by +travel direction. **This is not scepticism about the conclusion**, which the +port's own flagged limit predicted would fall this way; it is about which row.