Documentation

Complexitylib.RationalHitting.PolynomialTime.Internal

Canonical polynomial time for the rational hitting-list generator #

The source machine is bundled with its binary alphabet codec, guarded by the five-state unary validator, and translated through the reusable TM0 bridge.

Each validator step preserves its prefix interpretation.

The validator state records the shape of the complete input.

theorem Complexity.RationalHitting.Internal.input_shape {w : List Bool} (hw : w ∈ inputDFA.accepts) :
∃ (n : ℕ) (s : ℕ), w = binaryInput (n + 1) (s + 1)

Every accepted word has exactly the required two positive unary blocks.

True bits stay within the corresponding unary block.

Both positive unary parameters pass the validator.

Reading the first block recovers its unary parameter.

Reading the second block recovers its unary parameter.

Literal unary input length is the sum of its parameters and one separator.

The binary input maps to the source's literal unary tape word.

@[reducible, inline]

Bundle a source machine with its faithful binary alphabet codec.

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

    Bundling changes neither source configurations nor finite runs.

    The source's complete-output theorem is exactly the bundled contract.

    Literal positive unary inputs yield the source's exact encoded hitting list.

    The total source-compatible generator belongs to canonical polynomial time.