FABRIC.md: fix GAP-D1 through D3, close out §25.7.1

D1  The three passages still arguing from the K-denominator justification that
    §2's correction removed: §17.3's opening now cites density's need for a
    volume (§19.2); §17.5's sizing argument re-grounded on mass swamping and
    §23.1's abolition of by-reference payloads; §17.6(d)'s bullet no longer
    cites §2 for a claim §2 explicitly disavows.
D2  §19.6 #1 and #2 struck through as resolved (#1 by §23.1 with the residue
    scheduled as item 1.12; #2 by §24.3), matching §17.4's convention.
D3  §20.3's stale LEANING now points at §21's DECIDED.

§25.7.1's status updated: all fourteen findings closed. A1 ruled and applied,
B1/B2 verified against the tree and fixed into their items, B3/C1-C7/D1-D3
applied. The findings text is preserved as the record of what was found.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-03 11:34:14 -04:00
co-authored by Claude Fable 5
parent 9b61a3355e
commit 39aa54b9a4
+31 -18
View File
@@ -715,7 +715,9 @@ This is worth stating plainly because "reap" reads as "free" and here it does no
§16.3 left words as the unresolved patron. Pinning all of them resolves nothing — several §16.3 left words as the unresolved patron. Pinning all of them resolves nothing — several
hundred permanently resident, largely inert entries is the §9 screen-cell failure with a hundred permanently resident, largely inert entries is the §9 screen-cell failure with a
different label, and it wastes the bounded capacity that gives K a fixed denominator. different label, and it wastes the bounded capacity that density needs as its volume
(§19.2; this sentence originally cited the K-denominator justification that §2's
correction removed — D1).
The better reading applies §5 unchanged. Storage sits beneath the Stadium. The **full The better reading applies §5 unchanged. Storage sits beneath the Stadium. The **full
dictionary sits beneath it too**, and only **hot words are on the floor**. dictionary sits beneath it too**, and only **hot words are on the floor**.
@@ -880,10 +882,13 @@ patron, the grid is not.
#### The sizing argument, independently #### The sizing argument, independently
A framebuffer is several megabytes of fixed device memory. Making it a patron means either A framebuffer is several megabytes of fixed device memory. Making it a patron means either
blowing the bounded capacity that gives K a fixed denominator (§2), or forcing the swamping the bounded capacity (§2) — as mass, it would dwarf every other patron and make
by-reference payload path to exist for exactly one pathological object — which would decide density comparisons meaningless — or forcing a by-reference payload path to exist for
§12 Q1's payload threshold on the worst possible case. Sizing a design around its single exactly one pathological object, which §23.1 has since abolished for patrons entirely.
largest outlier is how the header ends up wrong for the other ten thousand entries. Sizing a design around its single largest outlier is how the header ends up wrong for the
other ten thousand entries. *(This paragraph originally leaned on the K-denominator
justification removed from §2 and on the pre-§23.1 payload framing; the conclusion is
unchanged — D1.)*
#### Not a patron does not mean no physics #### Not a patron does not mean no physics
@@ -941,8 +946,10 @@ Per-entry heap allocation gives that up and takes several things with it:
- **The finite state space.** Bounded capacity is what makes induction over the Stadium - **The finite state space.** Bounded capacity is what makes induction over the Stadium
straightforward and what puts model checking on the table alongside theorem proving. straightforward and what puts model checking on the table alongside theorem proving.
- **§2's hard outer wall.** Without an inescapable bound, K is bookkeeping rather than a - **§2's hard outer wall.** The bound is what gives density a volume to be dense within
conservation law — §2 says this in as many words. (§19.2) and §13 its finite index set. *(This bullet originally read "Without an
inescapable bound, K is bookkeeping — §2 says this in as many words"; §2 no longer says
that, and §20.2 established conservation is falsifiable regardless of the bound — D1.)*
- **The engine's simplicity.** This is a freestanding kernel with `kmalloc.c` / `pmm.c` - **The engine's simplicity.** This is a freestanding kernel with `kmalloc.c` / `pmm.c`
and no libc. Allocation in the reap path means the engine can fail to allocate, which and no libc. Allocation in the reap path means the engine can fail to allocate, which
means the engine needs a failure mode, which means it is no longer the thing §3 means the engine needs a failure mode, which means it is no longer the thing §3
@@ -1258,14 +1265,14 @@ noun was overloaded.
### 19.6 Open ### 19.6 Open
1. **What is mass, exactly, for each patron?** The definition is "cells occupied," which 1. ~~**What is mass, exactly, for each patron?**~~ **RESOLVED by §23.1** — the by-reference
requires §12 Q1 (payload threshold — inline versus by reference) and §12 Q2 (header loophole is closed: if the payload is in the Stadium it counts toward mass, and what is
size) to be settled first. A patron stored by reference has small mass regardless of not in the Stadium is not resident. The one residue — whether continuation cells are
payload size, which may be right or may be a loophole — a 1 MB block held by reference contiguous or linked, which shifts every large patron's mass — is §23.4 #4, scheduled as
would occupy one cell and read as dense. This needs deciding. item 1.12. (D2)
2. **Is mass constant for a patron's lifetime?** §17.4 Q4 (do patrons mutate in place) 2. ~~**Is mass constant for a patron's lifetime?**~~ **RESOLVED by §24.3** — mass changes
decides this. If mass can change while a patron is resident, density is not stable and only through an arbitrated transfer, never through traffic, so density is stable between
ranking may thrash. transfers and §13 gets a mass function that changes at enumerable points. (D2)
3. **How does traffic transfer heat between patrons, concretely?** `vm_physics_touch()` 3. **How does traffic transfer heat between patrons, concretely?** `vm_physics_touch()`
does this today for VMs, but it scales the transfer by wall-clock elapsed time does this today for VMs, but it scales the transfer by wall-clock elapsed time
(`capsule_vm_physics.c:272`), which §18.5 forbids for anything influencing patron state. (`capsule_vm_physics.c:272`), which §18.5 forbids for anything influencing patron state.
@@ -1369,7 +1376,8 @@ This does not close Q6 by itself, but it changes the question. The choice is no
between two greenfield designs; it is whether to formalise a nesting that is already half between two greenfield designs; it is whether to formalise a nesting that is already half
built, or to collapse it into a single region and discard the level that works. built, or to collapse it into a single region and discard the level that works.
**LEANING nested.** See §20.5 for what still has to be settled. ~~**LEANING nested.**~~ **DECIDED nested in §21**, written immediately after this section
(D3). See §20.5 for what still had to be settled.
### 20.4 A VM's mass is the capacity share Hera allocated it — PROPOSAL ### 20.4 A VM's mass is the capacity share Hera allocated it — PROPOSAL
@@ -2300,8 +2308,13 @@ so.*
### 25.7.1 Second review pass — 2026-08-03, pre-coding. Awaiting rulings. ### 25.7.1 Second review pass — 2026-08-03, pre-coding. Awaiting rulings.
*A full re-read of this document as it stood after the first review's corrections, looking *A full re-read of this document as it stood after the first review's corrections, looking
for what would break a lower-capability model working the punch list. Nothing here has been for what would break a lower-capability model working the punch list.*
fixed. GAP-A1 needs a ruling before item 0.8 is coded; the rest are queued for triage.*
**Status: all fourteen findings closed, 2026-08-03.** A1 ruled (virtual tick) and applied
to §16.4/§17.1/§18.4 and items 0.8/2.1. B1 verified (no DTB access; fixed into 0.3/0.6),
B2 verified (no FP restriction on any arch; fixed into 0.2/0.5), B3 applied (EL governs
the vector path; 0.4/0.5). C1C7 applied to their items; D1D3 swept. The findings below
are preserved as the record of what was found and why.
#### GAP-A1 — §16.4's central inference is unsound. ~~NEEDS RULING~~ **RULED 2026-08-03: virtual tick.** #### GAP-A1 — §16.4's central inference is unsound. ~~NEEDS RULING~~ **RULED 2026-08-03: virtual tick.**