Assessment154: primary proofs for indexing and scheduled work
8 October2026. Dedicated scheduled review60. Mathematical103/window5 remain unchanged; next substantive104 requires the six-result reassessment from98.
Contents
Outcome
The two complete primary mechanisms separate indexed navigation from deferred work scheduling. Neither transfers a joint prefix/width access operation with strict late-query deadlines. The dependent written argument is maintained in root docs/research-programs/indexed-preparation-readout.md: a dyadic class-slot schedule, a global FIFO counterexample, an isolated width-first preparation plan and its exact final-symbol readout failure. These are conditional work accounting and a restricted failed route, not a new native endpoint.
Sources, editions and imported mechanisms
- Chris Okasaki, Simple and efficient purely functional queues and deques, Journal of Functional Programming5(4),583–592 (1995), publisher PDF, DOI10.1017/S0956796800001489. Full ten-page argument, sections1–7 and figures1–5. SHA256
25fa029e1d33369432257d5e1a15bde77bfecce6edcf6a5ff6661928dbd26990. - Ralf Hinze and Ross Paterson, Finger trees: a simple general-purpose data structure, Journal of Functional Programming16(2),197–217 (2006), accepted manuscript, DOI10.1017/S0956796805005769. Full21-page argument, sections1–5, with author corrections. SHA256
ea957048164d71c3908e8d9ec811655a34de4e1094a8569d6f6199cb59d7edde. The older Oxford draft was compared; the accepted manuscript plus the author correction governs this review. Sources accessed8 October2026.
Primary PDFs and extracted text stay outside public source. An unsuccessful attempt to retrieve the random-access-list paper is not counted as a review. No novelty claim follows from this literature selection.
Imported queue mechanism. Lazy rotation incrementally replaces a paired list representation. A schedule suffix tracks evaluated work; its length is |L|-|R|. Advancing it on each operation finishes dependencies before the next rotation. The real-time queue can test schedule emptiness instead of explicit lengths. Deques use balanced lists, chunked rotations and two schedules, advanced once on insertion and twice on removal. The proof bounds schedule length by max(2min(|L|,|R|)+2-max(|L|,|R|),0). Memoized lazy evaluation supports the persistent efficiency claim; arbitrary recursion forcing is not constant work. This supplies worst-case abstract queue/deque operations, not arbitrary queries into unfinished computations. Before scheduling, nested rotations have logarithmic worst-case forcing depth because the source sizes decrease geometrically. Fusing append and reversal makes each rotation increment bounded; scheduling then eliminates that dependency depth. Deque balancing uses a fixed ratio and bounded chunks, not an unbounded batch reversal.
Imported finger-tree mechanism. Digits of one to four elements surround a nested tree of two/three-element nodes. Safe digits absorb propagation, and lazy debit accounting supports persistent amortized constant-time end operations. Concatenation recurses to the shallower tree. Cached monoidal measures guide splitting in logarithmic distance from an end, assuming cheap measure operations; a monotone predicate identifies the first crossing. The author correction computes a new cached measure from existing measures without forcing the recursive middle update. Blind use of the smart constructor would destroy the intended laziness. These are amortized container bounds, not constant-time arbitrary indexed access. In concatenation, the bridge remains bounded while two/three-element nodes are formed at each level, giving O(log min(n1,n2)) work. In splitting, cached prefix/middle totals choose a recursive branch; rebuilding end digits accounts for the matching logarithmic bound. The nonmonotone specification promises a false-to-true crossing, not necessarily the first one.
Proof-contract comparison and attempted transfer
| Dimension | Queue/deque proof | Finger-tree proof | FPRD obligation |
|---|---|---|---|
| Demand order | Ends of a sequence; next rotation has a proved service horizon | End operations and measure-guided splits | Late pins choose ordinary names and width only as they arrive |
| Persistence | Shared memoized lazy evaluation | Shared suspensions and persistent debit accounting | Old nodes immutable; no free cache mutation or thunk forcing |
| Granularity | Incremental rotation with ready source dependencies | Local digit changes, recursive middle and cached annotation | Every native symbol gets bounded old-top work |
| Bounds | Worst-case constant abstract end operation | Amortized end operations; logarithmic split/concatenation | Strict per-symbol and final-symbol deadlines, including routing |
| Payload | Sequence elements | User-chosen monoid with charged measure operations | Partial-coverage union and intersection cannot be assumed constant |
| Encoding | Abstract operation stream and references | Abstract elements, measures and split predicate | Fixed finite alphabet, actual ordinary-name length N, paid initialization |
| Quantifiers | Fixed implementation for arbitrary operation histories | Generic structure parameterized by measure algebra | One fixed machine per fixed gate, no growing control/advice |
The queue proof’s strongest reusable invariant is that each future primitive uses dependencies already made ready by earlier service. Reifying its schedule as immutable state may preserve that invariant, but an arbitrary query into a partly rotated object needs its own simulation. The explicit class-slot lemma in the maintained note establishes a related work horizon without importing mutable memoization. It deliberately leaves class routing and pending readout visible as premises. Thus it does not count as a resource-preserving native transfer of the queue theorem.
The finger-tree proof offers a useful test for proposed summaries: identify the measure, prove its combination cost, and prove the split predicate has the required monotonicity. Calling a whole partial row a measure merely relocates the hard union operation. Numeric sizes and arithmetic also need native representations. Independent logarithmic lookups on n sibling profiles give an O(n log n) container upper bound, not an O(n) preparation theorem and not a lower bound. Batch sharing might improve it; the paper does not establish the required batch operation for this workload.
In particular the profile query coordinates (prefix depth d, remaining width n-d) are coupled. A sequence index at each depth alone does not supply shared diagonal navigation. A width-first index makes the preparation traversal plausibly linear but moves exact width ahead of the query word, contrary to the given streamed input. The dependent note states the restricted reader failure even with its width root supplied free at the delimiter. This is the precise point where a second pass, early width header or prepared transpose would be a stronger operation requiring a new charged construction.
Neither argument supplies overlap counts for union. This preserves the one-hole counterexample from153: equal summary counts need not distinguish whether another operand fills the missing point. Complete levels escape because reader35 checks the entire fixed universe before OR-composing depth profiles; that gate is not available for arbitrary partial slices.
Written argument, finite experiment and audit
The author of this packet checked the draft and executable model; no independent review is claimed. The scheduling proof uses endpoint release, disjoint service intervals and persistent residual work. Its one-slot conclusion is per class, not a fixed global bound. The width-first worker shares capacity-ruler tails rather than allocating a quadratic family of fresh rulers. A proposed global publication must not overwrite a concurrently updated class root.
tools/research/check_indexed_preparation_readout.py checks class schedules exhaustively on short length histories and on long adversarial/random histories, including immutable snapshots and absence of overwrite; checks the geometric FIFO witness; and independently compares exact-width prefix counts and fullness against literal finite sets under duplicate insertion. The finite model uses dictionaries and integers as an oracle, not native ready handles or constant-cost arithmetic. It does not validate native timing or prove a new machine. General arguments and unresolved operations remain explicit in the maintained note. Exact counts and execution results are in integration state.
Seven-surface disposition and continuity
| Surface | Disposition |
|---|---|
| Custody | Two primary-source pins; maintained argument and checker in GitLab, no source PDFs |
| Claims | Imported established container results; written conditional lemma and restricted failure; CLAIMS.yaml unchanged |
| Evidence | Full primary-proof comparison, general scheduling proof, finite schedule and prefix-count oracles |
| Failure | Global FIFO backlog, late exact-width replay and uncharged summary union; each has an explicit restricted contract |
| Frontier | Joint prefix/width access, pending queries, atomic publication and complementary-coverage union remain open |
| Synthesis | Checkpoint and both agendas advanced together; all earlier positive criteria retained |
| Site | Continuation-only; reader35 and homepage unchanged, no new deployment or hosting parity claim |
Next61 is research: seek prefix-first shared residual actions with paid exact- width updates and direct pending readout; test diagonal access and complementary holes before claiming a native transfer. Preserve arbitrary name-linear rows, final-only diversity, unknown coordinate order, replay and affine/cubical/causal controls. The next dedicated multi-paper review is65. Scheduled59->60 once; last dedicated154. Mathematical103/window5/last reassessment98 unchanged.