Documentation

Complexitylib.Models.RandomAccessMachine.Simulation.RegisterStore.Machine.Instruction.DenseStore

Dense-overlay indirect store #

theorem Complexity.RAM.RegisterStore.Machine.denseIndirectStoreInstructionTM_hoareTime_frame {n : } (tapes : BinaryInstructionTapes n) (input : List Bool) (overlay : Store) (addressRegister source : ) (emittedBits : List Bool) (initialWork : Fin nTape) (out₀ : Tape) (hvalid : DenseOverlay.Valid overlay) (hinitial : EntryLookupStaticReady tapes.lhsLookup overlay initialWork) (hrhs₀ : (initialWork tapes.rhs).HasBinaryNat 0) (hreplacement : (initialWork tapes.update.replacement).HasBinaryNat 0) (houtput : out₀.HasBinaryPrefix emittedBits) :
(denseIndirectStoreInstructionTM tapes addressRegister source).HoareTime (fun (inp : Tape) (work : Fin nTape) (out : Tape) => inp = (Tape.init (List.map Γ.ofBool input)).move Dir3.right work = initialWork out = out₀) (fun (inp : Tape) (work : Fin nTape) (out : Tape) => inp = (Tape.init (List.map Γ.ofBool input)).move Dir3.right DenseIndirectStoreInstructionResult tapes input overlay addressRegister source initialWork work out.HasBinaryPrefix (emittedBits ++ List.flatMap Entry.encode (DenseOverlay.write overlay (DenseOverlay.read input overlay addressRegister) (DenseOverlay.read input overlay source)))) (denseIndirectStoreInstructionTime tapes input overlay addressRegister source)

Exact semantic and time contract for one dense-overlay indirect store.