Native query ranks and the finite ExactTriangle chunks #
The native scanner uses Nat.count on flat positions. The finite splitting construction uses
Matrix.rankIn on pairs. These lemmas identify their counts and ranks through the existing
row-major indexing; they introduce no alternative notion of a residue class or chunk.
Main results #
QuerySpec.card_residueClass: the native count is the finite class cardinality.QuerySpec.rank_residueClass: native prefix rank is the existing finite rank.QuerySpec.mem_chunkOf: consecutive native query slices are the existing chunks.QuerySpec.query_readback: every occupied native query slot names exactly one class member.QuerySpec.chunk_readback: each local chunk slot names its unique existing finite member.QuerySpec.before_eq_totalChunks: the native catalogue count is the existing finite count.
The count emitted by the native class scanner equals the existing finite class size.
The concatenation controller's final counter is exactly the existing total chunk count.
The native table uses Nat.count; card_residueClass identifies each summand.
Iterating every actual catalogue entry over every piece creates exactly the existing finite instance set's cardinality. This is the multiplier used by the native matrix caller.
Prefix rank agrees with the existing row-major rank used to split query chunks.
Dividing the actual prefix rank by the query capacity gives precisely chunkOf.
Every occupied native query slot names exactly one member of the existing residue class.
The readback premise is precisely the rank-indexed conclusion of Classes.exec; in particular,
this rules out unspecified or duplicate pairs below the computed count.
Every occupied position of a native chunk names exactly one member of the existing finite chunk. The local position is translated to its actual global class rank; the scanner's readback premise is unchanged, so no list or ordering certificate is assumed.