Saving the actual frontend and parameter outputs #
The outer controller retains every shared scalar in registers outside the complete root program's write set. These are copies of computed frontend results, not inputs supplied by a caller.
Main definitions #
Saved: exact native outer metadata after the snapshot instructions.
Main results #
snapshot_exec: execute all thirteen scalar copies and constant initializations.
The native ABI and composition proof are original.
structure Cslib.Algorithms.WordRAM.ThreeSum.ChanHe.Preprocessing.Saved (κ n : ℕ) (x : WordRAM.Data 128) :
Exact computed metadata retained outside the root program's register bank.
Descriptor table and count produced by the frontend.
Exact numeric parameter outputs.
Actual index and small constants.
Instances For
theorem Cslib.Algorithms.WordRAM.ThreeSum.ChanHe.Preprocessing.snapshot_exec {κ n w : ℕ} (x : WordRAM.Data 128) (hp : Parameters.Output n ((n + 2) ^ κ) (WordRAM.Data.comap Frontend.parameterRegisters x)) (hb : x.regs Frontend.descriptorBase = (Frontend.layout κ n).descriptors) (hc : x.regs Frontend.descriptorCount = (Frontend.layout κ n).count) (he : x.regs Frontend.heapEnd = (Frontend.layout κ n).endpoint) (h6 : WordRAM.Fits w 6) :
∃ (y : WordRAM.Data 128), WordRAM.Exec w snapshot x y 13 ∧ Saved κ n y ∧ y.mem = x.mem
Saving computed scalars and initializing the outer constants changes no memory.