Machine-relative Kolmogorov complexity #
This definitions layer introduces plain and time-bounded description complexity for every deterministic machine. Universality is deliberately not a precondition: it is relevant to invariance and upper bounds, not to the minimum itself. Extended naturals distinguish a genuine zero-length description from the absence of any description.
Prefix-free complexity is restricted to a machine carrying a proof that its halting domain is prefix-free. The library's ordinary input convention does not provide that property automatically.
Main definitions #
TM.plainKolmogorovComplexity-- machine-relative plain complexityC_UTM.timeBoundedKolmogorovComplexity-- whole-output bounded complexityC_U^tTM.HasPrefixFreeDomain-- prefix-freeness of the raw halting domainTM.PrefixFreeMachine-- a machine bundled with that domain certificateTM.prefixKolmogorovComplexity-- prefix-free complexityK_U
Plain machine-relative Kolmogorov complexity. The value is ⊤ exactly
when no program makes machine produce output.
Equations
- machine.plainKolmogorovComplexity output = sInf ((fun (size : ℕ) => ↑size) '' machine.producingProgramSizes output)
Instances For
Whole-output time-bounded machine-relative Kolmogorov complexity. The
primitive clock is explicit, and the value is ⊤ if no program produces the
output within it.
Equations
- machine.timeBoundedKolmogorovComplexity output time = sInf ((fun (size : ℕ) => ↑size) '' machine.timeBoundedProducingProgramSizes output time)
Instances For
The raw halting domain of machine is prefix-free: two halting programs
related by the list-prefix order must be equal.
Equations
Instances For
A deterministic machine bundled with a proof that its halting domain is
prefix-free. This certificate is what licenses K_U terminology.
- machine : TM n
The underlying deterministic machine.
- prefixFree : self.machine.HasPrefixFreeDomain
Its raw halting domain is prefix-free.
Instances For
Prefix-free Kolmogorov complexity for a certified prefix-free machine.
Equations
- Complexity.TM.prefixKolmogorovComplexity machine output = machine.machine.plainKolmogorovComplexity output