Documentation

Complexitylib.Metacomplexity.MINCKT

Minimum conditional time-bounded Kolmogorov complexity #

This module exposes canonical (x, y, 1^t) instances for machine-relative conditional time-bounded Kolmogorov complexity. Conditions use the library's faithful random-access oracle convention. Universality and paper-specific evaluator equivalence remain explicit future obligations. The depth-adjusted GapMINCKT promise follows Hirahara's 2022 Definition 6.1.

@[simp]

The unary clock has exactly the represented length.

@[simp]

Every canonical conditional MinKT instance decodes exactly.

theorem Complexity.MINCKT.Instance.decode?_eq_some_iff (bits : List Bool) (inst : Instance) :
decode? bits = some inst bits = inst.encode

Successful decoding characterizes canonical instance encodings.

Decoding fails exactly on noncanonical strings.

Canonical conditional MinKT encoding is injective.

@[simp]

Exact code length for the right-associated tuple (x, y, 1^t).

theorem Complexity.MINCKT.Instance.isAtMost_iff_hasProgramAtMost {tapes : } (inst : Instance) (machine : OracleTM tapes) (threshold : ) :
inst.IsAtMost machine threshold inst.HasProgramAtMost machine threshold

A conditional complexity threshold is equivalent to a direct bounded program witness.

theorem Complexity.MINCKT.Instance.IsAtMost.withTime_mono {tapes : } (inst : Instance) (machine : OracleTM tapes) (threshold : ) {first second : } (hclock : first second) (hsmall : (inst.withTime first).IsAtMost machine threshold) :
(inst.withTime second).IsAtMost machine threshold

Giving the conditional evaluator more time preserves an upper threshold.

theorem Complexity.MINCKT.Instance.IsAtMost.threshold_mono {tapes : } (inst : Instance) (machine : OracleTM tapes) {first second : } (hthreshold : first second) (hsmall : inst.IsAtMost machine first) :
inst.IsAtMost machine second

Increasing the description threshold preserves membership.