Documentation

Complexitylib.Classes.PPoly.Uniform.Unrolling.Padded

Regularly padded deterministic unrolling families #

For positive input length n, the direct tableau is padded to its closed cubic gate bound and followed by one copy of its original acceptance wire. Thus the raw gate count is known before serialization, while evaluation remains exactly the deterministic bounded-run answer. The zero-length member retains the library's explicit answer-bit convention.

Main results #

The unpadded positive tableau fits within its closed padding budget.

@[simp]

Every positive padded member has exactly the closed tableau bound plus its terminal output-copy gate.

The padded gate stream is nonempty and every reference points strictly backward. In particular, the final gate may safely copy the original last gate through the dead padding.

Raw evaluation of a padded positive member is exactly deterministic bounded acceptance.

Reconstruct a positive padded raw member as a typed single-output circuit.

Equations
Instances For

    Total family of regularly padded direct-unrolling circuits.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem Complexity.TM.paddedDirectUnrollingCircuit_eval {k : } (tm : TM k) (f : ) (n : ) [NeZero n] (x : BitString n) :

      The reconstructed positive circuit computes deterministic bounded acceptance.

      The total padded family computes the same bounded deterministic trace bit at every input length.

      The zero-length code is the same explicit tagged bounded-run answer as for the direct family.

      A positive family member serializes to exactly the padded raw gate stream.

      The family codec agrees at every length with the explicit padded code map.

      A deterministic decider's padded direct family decides the same language.

      At positive length, the padded family size is exactly its closed tableau bound plus one terminal copy.

      theorem Complexity.TM.paddedDirectUnrollingCircuitFamily_size_bigO {k : } (tm : TM k) {f : } {d : } (hf : BigO f fun (x : ) => x ^ d) :
      BigO (tm.paddedDirectUnrollingCircuitFamily f).size fun (x : ) => x ^ (3 * d)

      A horizon in O(n^d) gives padded family size O(n^(3d)).

      Polynomially bounded horizons yield a polynomial-size padded family.