Finite incompressibility -- proof internals #
The counting argument injects every compressible output into one chosen short program. Deterministic output uniqueness makes this choice injective.
theorem
Complexity.TM.mem_timeBoundedStrictlyCompressibleStrings_iff_internal
{tapes : ℕ}
(machine : TM tapes)
(outputLength time threshold : ℕ)
(output : Fin outputLength → Bool)
:
output ∈ machine.timeBoundedStrictlyCompressibleStrings outputLength time threshold ↔ machine.timeBoundedKolmogorovComplexity (List.ofFn output) time < ↑threshold
theorem
Complexity.TM.mem_timeBoundedRandomStrings_iff_internal
{tapes : ℕ}
(machine : TM tapes)
(outputLength time threshold : ℕ)
(output : Fin outputLength → Bool)
:
output ∈ machine.timeBoundedRandomStrings outputLength time threshold ↔ ↑threshold ≤ machine.timeBoundedKolmogorovComplexity (List.ofFn output) time
theorem
Complexity.TM.card_timeBoundedStrictlyCompressibleStrings_le_internal
{tapes : ℕ}
(machine : TM tapes)
(outputLength time threshold : ℕ)
:
(machine.timeBoundedStrictlyCompressibleStrings outputLength time threshold).card ≤ 2 ^ threshold - 1
theorem
Complexity.TM.exists_timeBoundedKolmogorovComplexity_ge_internal
{tapes : ℕ}
(machine : TM tapes)
(outputLength time threshold : ℕ)
(hthreshold : threshold ≤ outputLength)
:
∃ (output : Fin outputLength → Bool), ↑threshold ≤ machine.timeBoundedKolmogorovComplexity (List.ofFn output) time
theorem
Complexity.TM.mem_timeBoundedCompressibleStrings_iff_internal
{tapes : ℕ}
(machine : TM tapes)
(outputLength time bound : ℕ)
(output : Fin outputLength → Bool)
:
output ∈ machine.timeBoundedCompressibleStrings outputLength time bound ↔ machine.timeBoundedKolmogorovComplexity (List.ofFn output) time ≤ ↑bound
theorem
Complexity.TM.mem_timeBoundedIncompressibleStrings_iff_internal
{tapes : ℕ}
(machine : TM tapes)
(outputLength time bound : ℕ)
(output : Fin outputLength → Bool)
:
output ∈ machine.timeBoundedIncompressibleStrings outputLength time bound ↔ ↑bound < machine.timeBoundedKolmogorovComplexity (List.ofFn output) time