Documentation

Complexitylib.Models.TuringMachine.Subroutines.ResetBinaryMany.Internal

Resetting several binary work tapes — proof internals #

theorem Complexity.TM.resetBinaryWorkManyTime_le_internal {n : } (targets : List (Fin n)) (bits : Fin nList Bool) (headBound : Fin n) (maxHead maxWidth : ) (hhead : itargets, headBound i maxHead) (hwidth : itargets, (bits i).length maxWidth) :
resetBinaryWorkManyTime bits headBound targets targets.length * (maxHead + 2 * maxWidth + 9) + 1
theorem Complexity.TM.resetBinaryWorkManyResult_parked_internal {n : } (work₀ : Fin nTape) (targets : List (Fin n)) (hwork : ∀ (i : Fin n), Parked (work₀ i)) (i : Fin n) :
Parked (resetBinaryWorkManyResult work₀ targets i)
theorem Complexity.TM.resetBinaryWorkManyResult_eq_of_not_mem_internal {n : } (work₀ : Fin nTape) (targets : List (Fin n)) (idx : Fin n) (hidx : idxtargets) :
resetBinaryWorkManyResult work₀ targets idx = work₀ idx
theorem Complexity.TM.resetBinaryWorkManyResult_eq_blank_of_mem_internal {n : } (work₀ : Fin nTape) (targets : List (Fin n)) (idx : Fin n) (hidx : idx targets) :
theorem Complexity.TM.resetBinaryWorkManyTime_congr_headBound_internal {n : } (targets : List (Fin n)) (bits : Fin nList Bool) (left right : Fin n) (heq : itargets, left i = right i) :
resetBinaryWorkManyTime bits left targets = resetBinaryWorkManyTime bits right targets
theorem Complexity.TM.resetBinaryWorkManyTM_hoareTime_frame_internal {n : } (targets : List (Fin n)) (bits : Fin nList Bool) (headBound : Fin n) (inp₀ : Tape) (work₀ : Fin nTape) (out₀ : Tape) (hnodup : targets.Nodup) (htarget : itargets, (work₀ i).HasBinaryContent (bits i)) (htargetStart : itargets, (work₀ i).cells 0 = Γ.start) (htargetHead : itargets, (work₀ i).head headBound i) (hinput : Parked inp₀) (hwork : ∀ (i : Fin n), Parked (work₀ i)) (houtput : Parked out₀) :
(resetBinaryWorkManyTM targets).HoareTime (fun (inp : Tape) (work : Fin nTape) (out : Tape) => inp = inp₀ work = work₀ out = out₀) (fun (inp : Tape) (work : Fin nTape) (out : Tape) => inp = inp₀ work = resetBinaryWorkManyResult work₀ targets out = out₀) (resetBinaryWorkManyTime bits headBound targets)