Documentation

Complexitylib.Metacomplexity.Kolmogorov.Symmetry

Time-bounded symmetry of information #

This module exposes a non-vacuous machine-relative version of Hirahara's SoI hypothesis. The lower-chain inequality is separate from the unconditional upper chain rule: SoI is a substantive hypothesis, while upper composition follows from an evaluator contract.

The polynomial package quantifies an identity-dominating, polynomially bounded clock and retains an explicit additive constant next to its base-two logarithmic loss. Later results must instantiate the ordinary and conditional evaluators; no universality or Heuristica consequence is assumed here.

The identity transform is an admissible Kolmogorov clock.

theorem Complexity.TimeBoundedSymmetryOfInformation.conditional_ne_top {ordinaryTapes conditionalTapes : } {ordinaryMachine : TM ordinaryTapes} {conditionalMachine : OracleTM conditionalTapes} {clock loss : } (hsoi : TimeBoundedSymmetryOfInformation ordinaryMachine conditionalMachine clock loss) {first condition : List Bool} {time : } (hsize : first.length + condition.length time) :
conditionalMachine.randomAccessConditionalTimeBoundedKolmogorovComplexity first condition (clock time)

Non-vacuous SoI forces the transformed conditional description to exist on every admissible pair.

theorem Complexity.TimeBoundedSymmetryOfInformation.condition_ne_top {ordinaryTapes conditionalTapes : } {ordinaryMachine : TM ordinaryTapes} {conditionalMachine : OracleTM conditionalTapes} {clock loss : } (hsoi : TimeBoundedSymmetryOfInformation ordinaryMachine conditionalMachine clock loss) {first condition : List Bool} {time : } (hsize : first.length + condition.length time) :
ordinaryMachine.timeBoundedKolmogorovComplexity condition (clock time)

Non-vacuous SoI also forces the transformed ordinary description of the condition to exist.

theorem Complexity.TimeBoundedSymmetryOfInformation.weaken_loss {ordinaryTapes conditionalTapes : } {ordinaryMachine : TM ordinaryTapes} {conditionalMachine : OracleTM conditionalTapes} {clock firstLoss secondLoss : } (hsoi : TimeBoundedSymmetryOfInformation ordinaryMachine conditionalMachine clock firstLoss) (hloss : ∀ (time : ), firstLoss time secondLoss time) :
TimeBoundedSymmetryOfInformation ordinaryMachine conditionalMachine clock secondLoss

Increasing the permitted loss preserves a fixed-clock SoI theorem.

theorem Complexity.TimeBoundedSymmetryOfInformation.weaken_clock {ordinaryTapes conditionalTapes : } {ordinaryMachine : TM ordinaryTapes} {conditionalMachine : OracleTM conditionalTapes} {firstClock secondClock loss : } (hsoi : TimeBoundedSymmetryOfInformation ordinaryMachine conditionalMachine firstClock loss) (hclock : ∀ (time : ), firstClock time secondClock time) :
TimeBoundedSymmetryOfInformation ordinaryMachine conditionalMachine secondClock loss

Giving both left-hand descriptions more time preserves SoI.

theorem Complexity.TimeBoundedSymmetryOfInformation.conditional_le_of_pair_upper {ordinaryTapes conditionalTapes alternativeTapes : } {ordinaryMachine : TM ordinaryTapes} {conditionalMachine : OracleTM conditionalTapes} {alternativeMachine : OracleTM alternativeTapes} {clock loss : } (hsoi : TimeBoundedSymmetryOfInformation ordinaryMachine conditionalMachine clock loss) {first condition : List Bool} {time conditionTime alternativeTime upperLoss : } (hsize : first.length + condition.length time) (hclock : conditionTime clock time) (hpairUpper : ordinaryMachine.timeBoundedKolmogorovComplexity (pair first condition) time alternativeMachine.randomAccessConditionalTimeBoundedKolmogorovComplexity first condition alternativeTime + ordinaryMachine.timeBoundedKolmogorovComplexity condition conditionTime + upperLoss) :
conditionalMachine.randomAccessConditionalTimeBoundedKolmogorovComplexity first condition (clock time) alternativeMachine.randomAccessConditionalTimeBoundedKolmogorovComplexity first condition alternativeTime + ordinaryMachine.computationalDepthBetween condition conditionTime (clock time) + upperLoss + (loss time)

The algebraic depth-loss bridge used by conditional meta-complexity reductions. If a paired description is upper-bounded by an alternative conditional description plus an earlier-clock description of the condition, SoI cancels the later-clock condition term. The exact remainder is the condition's two-clock depth plus the operational and SoI losses.

The paired-description upper bound remains an explicit premise; constructing it is an evaluator theorem, not an algebraic consequence of SoI.

theorem Complexity.TimeBoundedSymmetryOfInformation.conditional_le_of_composition {ordinaryTapes conditionalTapes alternativeTapes : } {ordinaryMachine : TM ordinaryTapes} {conditionalMachine : OracleTM conditionalTapes} {alternativeMachine : OracleTM alternativeTapes} {compile : List BoolList BoolList Bool} {clock loss : } (hsoi : TimeBoundedSymmetryOfInformation ordinaryMachine conditionalMachine clock loss) {first condition : List Bool} {time conditionTime alternativeTime conditionBound alternativeBound constant : } (hsize : first.length + condition.length time) (hclock : conditionTime clock time) (hcompose : TimeBoundedConditionalPairCompositionAt ordinaryMachine ordinaryMachine alternativeMachine compile first condition conditionTime alternativeTime time conditionBound alternativeBound) (hlength : ∀ (conditionProgram alternativeProgram : List Bool), conditionProgram.length conditionBoundalternativeProgram.length alternativeBound(compile conditionProgram alternativeProgram).length alternativeProgram.length + conditionProgram.length + constant) (hconditionFinite : ordinaryMachine.timeBoundedKolmogorovComplexity condition conditionTime ) (halternativeFinite : alternativeMachine.randomAccessConditionalTimeBoundedKolmogorovComplexity first condition alternativeTime ) (hconditionBound : ordinaryMachine.timeBoundedKolmogorovComplexity condition conditionTime conditionBound) (halternativeBound : alternativeMachine.randomAccessConditionalTimeBoundedKolmogorovComplexity first condition alternativeTime alternativeBound) :
conditionalMachine.randomAccessConditionalTimeBoundedKolmogorovComplexity first condition (clock time) alternativeMachine.randomAccessConditionalTimeBoundedKolmogorovComplexity first condition alternativeTime + ordinaryMachine.computationalDepthBetween condition conditionTime (clock time) + constant + (loss time)

Fully composed evaluator-to-depth bridge. A condition-first operational compiler with additive program length supplies the paired upper bound required by SoI, yielding the target conditional-complexity inequality without any additional algebraic premise. All finiteness, clock, and description-budget requirements remain visible until a concrete universal evaluator discharges them.

theorem Complexity.PolynomialTimeBoundedSymmetryOfInformation.enlarge_clock {ordinaryTapes conditionalTapes : } {ordinaryMachine : TM ordinaryTapes} {conditionalMachine : OracleTM conditionalTapes} (hsoi : PolynomialTimeBoundedSymmetryOfInformation ordinaryMachine conditionalMachine) {largerClock : } (hlargerAdmissible : IsAdmissibleKolmogorovClock largerClock) (hlarger : ∀ (clock : ) (additive : ), IsAdmissibleKolmogorovClock clock(TimeBoundedSymmetryOfInformation ordinaryMachine conditionalMachine clock fun (time : ) => Nat.log 2 (clock time) + additive)∀ (time : ), clock time largerClock time) :
IsAdmissibleKolmogorovClock largerClock ∃ (additive : ), TimeBoundedSymmetryOfInformation ordinaryMachine conditionalMachine largerClock fun (time : ) => Nat.log 2 (largerClock time) + additive

Any polynomial SoI witness remains valid at an admissible larger clock, with the logarithmic loss recalculated at that clock. The premise quantifies over witnesses because the existential clock is intentionally opaque.