Native enumeration of all query chunks #
The controller reads the actual class-count table produced by Classes.program and calls the
existing native chunk writer for each class. Descriptors are concatenated without padding;
their query pointers refer to the original disjoint class arrays. No descriptor layout or
prefix table is supplied by the caller.
This composes the class and chunk loops in the pinned Theorem 17 construction.
Main definitions #
ChunkCatalogue.program: fixed thirty-two-register descriptor controller.ChunkCatalogue.before: the mathematical number of descriptors preceding a class.
Main results #
ChunkCatalogue.exec: charged enumeration of the actual class counts, exact descriptor readback and preservation outside the concatenated output.ChunkCatalogue.before_index: unique class/chunk coordinates for every occupied output slot, using Mathlib's existing finite sigma enumeration.ChunkCatalogue.before_le,ChunkCatalogue.before_add_lt: descriptor allocation bounds.
Class-count table pointer.
Instances For
Base of the class query blocks, each of capacity 2n² words.
Instances For
Matrix side length.
Instances For
Number of residue classes.
Instances For
Beginning of the contiguous output descriptor array.
Instances For
Positive maximum pairs per chunk.
Instances For
Current class.
Instances For
Total number of descriptors written so far.
Instances For
First free descriptor address.
Instances For
Constant one.
Instances For
Number of words per descriptor.
Instances For
Current count-table address.
Instances For
Capacity of one class query block, in words.
Instances For
Descriptor-length temporary.
Instances For
Query pointer passed to the chunk writer.
Instances For
Output pointer passed to the chunk writer.
Instances For
Loaded class count passed to the chunk writer.
Instances For
Chunk capacity passed to the chunk writer.
Instances For
Residue passed to the chunk writer.
Instances For
Number of descriptors returned by the chunk writer.
Instances For
Call the existing native chunk writer in the lower register bank.
Instances For
Read the current count and deliver its actual query pointer to the chunk writer.
Instances For
Advance the output heap by the number of descriptors actually written.
Instances For
One class, including empty classes.
Instances For
Initialize the concatenation cursor and run every residue class.
Instances For
The complete controller is fixed code and does not inspect physical width.
Every occupied descriptor slot names exactly one class and one chunk. This is the existing
finSigmaFinEquiv, expressed with the same prefix sum as the native concatenation loop.
At most N queries per class give at most rho * N occupied descriptors, since every
nonempty chunk contains at least one query. This bounds the actual allocation before matrix
preparation as well as the descriptor controller's own arithmetic.
Read the actual count table and concatenate every class's nonempty chunks. The controller
receives no prefix sums. Both source blocks lie before dst; all other memory is preserved.
The charged bound excludes halt.