Documentation

Complexitylib.Metacomplexity.Kolmogorov.Oracle.Internal

Oracle-relative Kolmogorov complexity -- proof internals #

theorem Complexity.OracleTM.plainKolmogorovComplexity_le_internal {n : } {machine : OracleTM n} {oracle : BooleanOracle} {program output : List Bool} (hproduce : machine.Produces oracle program output) :
machine.plainKolmogorovComplexity oracle output program.length
theorem Complexity.OracleTM.timeBoundedKolmogorovComplexity_le_internal {n : } {machine : OracleTM n} {oracle : BooleanOracle} {program output : List Bool} {time : } (hproduce : machine.ProducesInTime oracle program output time) :
machine.timeBoundedKolmogorovComplexity oracle output time program.length
theorem Complexity.OracleTM.timeBoundedKolmogorovComplexity_eq_top_iff_internal {n : } (machine : OracleTM n) (oracle : BooleanOracle) (output : List Bool) (time : ) :
machine.timeBoundedKolmogorovComplexity oracle output time = ¬∃ (program : List Bool), machine.ProducesInTime oracle program output time
theorem Complexity.OracleTM.timeBoundedKolmogorovComplexity_witness_internal {n : } (machine : OracleTM n) (oracle : BooleanOracle) (output : List Bool) (time : ) (hfinite : machine.timeBoundedKolmogorovComplexity oracle output time ) :
∃ (program : List Bool), program.length = machine.timeBoundedKolmogorovComplexity oracle output time machine.ProducesInTime oracle program output time
theorem Complexity.OracleTM.timeBoundedKolmogorovComplexity_le_coe_iff_internal {n : } (machine : OracleTM n) (oracle : BooleanOracle) (output : List Bool) (time bound : ) :
machine.timeBoundedKolmogorovComplexity oracle output time bound ∃ (program : List Bool), program.length bound machine.ProducesInTime oracle program output time
theorem Complexity.OracleTM.timeBoundedKolmogorovComplexity_mono_internal {n : } (machine : OracleTM n) (oracle : BooleanOracle) (output : List Bool) {first second : } (hclock : first second) :
machine.timeBoundedKolmogorovComplexity oracle output second machine.timeBoundedKolmogorovComplexity oracle output first
theorem Complexity.OracleTM.polynomialTimeOverhead_kolmogorov_transfer_internal {simulatorTapes sourceTapes : } {simulator : OracleTM simulatorTapes} {source : OracleTM sourceTapes} {compile : List BoolList Bool} {constant : } {clock : TM.TimeOverhead} (hsim : simulator.SimulatesInTime source compile clock) (hlength : TM.HasAdditiveProgramOverhead compile constant) (hclock : TM.PolynomialTimeOverhead clock) :
∃ (coefficient : ) (exponent : ), ∀ (oracle : BooleanOracle) (output : List Bool) (sourceTime bound : ), source.timeBoundedKolmogorovComplexity oracle output sourceTime boundsimulator.timeBoundedKolmogorovComplexity oracle output (coefficient * (bound + sourceTime + 1) ^ exponent) ↑(bound + constant)