Entry and return assertions for the native node induction #
Main definitions #
PrunedQuery.NodeReady: the actual stored frame and timestamped query representation.PrunedQuery.NodeResult: register, value and spatial conclusions after returning.
Main results #
PrunedQuery.exec_ready_zero: the terminal induction case for arbitrary supplied arrays.
Neither assertion contains execution, time or fit fields. Width and magnitude assumptions are ordinary numerical input bounds, and execution is proved in the existing native semantics.
Entry to one node, as established by the native root scan or a native child push.
- regs : KernelRegs L f a0 b0 x
The computed workspace pointers and constant registers.
The two tuple lengths agree with the original depth.
The leaf prefix is within its already processed digit space.
The actual cursor points to this frame.
This node has not begun its entry phase.
The traversal is still active.
Current actual timestamp generation.
Four stored words: count, prefix, stride and first term.
- requests : ScanMemory x.mem (f + 4 * (L + 1) + d * 10 ^ L) (f + 4 * (L + 1) + 2 * (L + 1) * 10 ^ L) E (10 ^ L) (Finset.image (fun (q : MatrixMultiplication.Schonhage.OutStr n) => ↑(queryIndex q)) S)
The actual list and directory represent exactly the requested numerical codes.
Instances For
The spatial and mathematical result of one node. This is a postcondition on the actual data, with no execution or time claim embedded in it.
- regs : KernelRegs L f a0 b0 y
Constant parameters remain unchanged.
Return to the parent, keeping zero at the root.
A parent resumes accumulation after a non-root node.
Only returning from the root stops traversal.
Timestamp generations do not go backwards.
All fresh generations are covered by the remaining-depth allowance.
The directory is ready for the next fresh-generation scan.
- values (q : MatrixMultiplication.Schonhage.OutStr n) : q ∈ S → y.mem (f + 4 * (L + 1) + (L + 1) * 10 ^ L + d * 10 ^ L + ↑(queryIndex q)) = WordRAM.Signed.encode (MatrixMultiplication.Schonhage.Pruned.result n a b S q)
Every requested cell holds the existing pruned result, in its original code position.
- frame : WordRAM.Modifies (nodeWrites L f d) x.mem y.mem
Caller memory, including ancestor rows, is preserved outside the concrete node frame.
Instances For
A ready frame's stored count cannot exceed its actual list row capacity.
The occupied words of the actual row encode exactly the requested output strings.
Every occupied source-list word comes from one of the requested mathematical outputs.
Actual query words fit the remaining query space, not only the original workspace row.
Every requested output occurs at a concrete occupied position of the native list.
Distinct occupied positions cannot name the same parent query.
Each strided input address remains inside the original input block below the workspace.
The terminal node proof obtains its signed fits from the common original magnitude envelope. The same returned memory satisfies the result and the charged native continuation.