Documentation

Complexitylib.Models.TuringMachine.Experimental.BinaryRoutine.InputLength.Internal

Fresh-input entry for proof-carrying binary routines -- proof internals #

theorem Complexity.BinaryRoutine.Sound.afterInputLength_hoareTimeSpace_internal {n : } {routine : BinaryRoutine n} (hsound : routine.Sound) (lengthIdx : Fin n) (input : List Bool) (hrequires : routine.requires (inputLengthValues lengthIdx input.length)) :
(afterInputLength lengthIdx routine).HoareTimeSpace (fun (inp : Tape) (work : Fin nTape) (out : Tape) => inp = Tape.init (List.map Γ.ofBool input) (work = fun (x : Fin n) => Tape.init []) out = Tape.init []) (fun (x : Tape) (x_1 : Fin nTape) (out : Tape) => out.HasOutput (afterInputLengthFunction lengthIdx routine input)) (afterInputLengthTime lengthIdx routine input.length) input.length (afterInputLengthSpace lengthIdx routine input.length)
theorem Complexity.BinaryRoutine.Sound.afterInputLength_computesInSpace_internal {n : } {routine : BinaryRoutine n} (hsound : routine.Sound) (lengthIdx : Fin n) (hrequires : ∀ (length : ), routine.requires (inputLengthValues lengthIdx length)) :
(afterInputLength lengthIdx routine).ComputesInSpace (afterInputLengthFunction lengthIdx routine) (afterInputLengthSpace lengthIdx routine)
theorem Complexity.BinaryRoutine.afterInputLengthSpace_bigO_log_internal {n : } (lengthIdx : Fin n) (routine : BinaryRoutine n) (hroutine : BigO (fun (length : ) => routine.spaceBound (TM.binaryLengthSpace length) (inputLengthValues lengthIdx length)) fun (length : ) => Nat.log 2 length) :
BigO (afterInputLengthSpace lengthIdx routine) fun (length : ) => Nat.log 2 length