Documentation

Complexitylib.Models.RandomAccessMachine.Simulation.RegisterStore.Machine.Program.Initialization

Sparse RAM public-input initialization #

The concrete initializer streams nonzero public-input bits into a canonical sparse store, installs the optional length register, and produces the exact clean work-tape image consumed by the reusable RAM program controller.

The concrete initializer's sparse store is the streamed nonzero input entries followed by the optional nonzero length register.

The concrete initializer emits one entry per true input bit and one more exactly when the input is nonempty.

The sparse store produced from public input is canonical.

The initializer's pure sparse snapshot represents the RAM public-input configuration exactly.

theorem Complexity.RAM.RegisterStore.Machine.programInitTM_hoareTime {n : } (tapes : ControlInstructionTapes n) (input : List Bool) :
(programInitTM tapes).HoareTime (fun (inp : Tape) (work : Fin (n + 1)Tape) (out : Tape) => inp = Tape.init (List.map Γ.ofBool input) (work = fun (x : Fin (n + 1)) => Tape.init []) out = Tape.init []) (fun (inp : Tape) (work : Fin (n + 1)Tape) (out : Tape) => inp.HasBinarySuffix [] work = programSnapshotWork tapes (programInitialSnapshot input) out = TM.resetBinaryBlank) (programInitTime tapes input)

Complete public-input initialization reaches the exact sparse snapshot image consumed by the reusable program loop.