Documentation

Complexitylib.Metacomplexity.Kolmogorov.Chain.Defs

Time-bounded description composition -- definitions #

A chain-rule upper bound is not valid for arbitrary unrelated machines. This module therefore isolates the operational premise that a joint machine can compose a bounded program for firstOutput with a bounded conditional program for secondOutput given firstOutput. The program compiler, both source clocks, the target clock, and both description budgets remain explicit.

The joint output uses the library's canonical pair codec. The compiled program syntax is a parameter: later evaluator constructions may use pair, its reverse orientation, or a more efficient self-delimiting code.

def Complexity.TimeBoundedProgramCompositionAt {jointTapes firstTapes secondTapes : } (jointMachine : TM jointTapes) (firstMachine : TM firstTapes) (secondMachine : OracleTM secondTapes) (compile : List BoolList BoolList Bool) (firstOutput secondOutput : List Bool) (firstTime secondTime jointTime firstBound secondBound : ) :

Under fixed description budgets and clocks, compile composes an ordinary program for firstOutput and a random-access conditional program for secondOutput into a program for their canonical pair.

This is deliberately an operational contract, not an assumption that arbitrary machines satisfy a chain rule.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def Complexity.TimeBoundedConditionalPairCompositionAt {jointTapes conditionTapes resultTapes : } (jointMachine : TM jointTapes) (conditionMachine : TM conditionTapes) (resultMachine : OracleTM resultTapes) (compile : List BoolList BoolList Bool) (result condition : List Bool) (conditionTime resultTime jointTime conditionBound resultBound : ) :

    Condition-first composition for the chain-rule orientation used by SoI. The ordinary program produces condition; the oracle program then produces result given random access to that condition; the joint output is nevertheless ordered as pair result condition.

    Keeping this contract distinct from TimeBoundedProgramCompositionAt prevents an unnoticed swap between C(y) + C(x | y) and the encoded output pair x y.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For