Documentation

Complexitylib.Classes.PPoly.Uniform.Unrolling.Generator.Tableau

Verified direct-tableau generator #

This module exposes the complete append-only generator for the regularly padded direct-unrolling family. Its concrete binary routine is sound, emits exactly the family's tagged circuit code (including the separate zero-length member), and has a verified logarithmic all-prefix auxiliary-space bound.

Emitting all transition layers and restoring the outer counter is sound.

theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitTransitionSteps_requires {k : } (tm : TM k) (values : BinaryValues WorkCount) (hclean : StepClean values) (hloop : values Work.loop₂ = 0) (hhorizon : 0 < values Work.horizon) :

A clean positive-horizon entry with a clear layer counter satisfies the complete transition loop's domain.

theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitTransitionSteps_emitted {k : } (tm : TM k) (values : BinaryValues WorkCount) (hclean : StepClean values) (hhorizon : 0 < values Work.horizon) (n : ) (hloop : values Work.loop₂ = 0) (hconfigBase : values Work.configBase = n) (havailable : values Work.available = n + configWidth tm.toNTM (values Work.horizon)) :

From the canonical initial configuration base and frontier, the complete transition loop emits exactly the canonical flattened step stream.

The complete positive tableau body is sound.

Every positive canonical input-length vector satisfies the tableau body's compact entry contract after the polynomial/header preamble.

On a positive input length, the tableau body emits exactly the encoded raw gate stream of the padded direct-unrolling member.

The complete zero/positive padded-tableau generator is sound.

The complete program's compact domain holds on every canonical input-length vector, including length zero.

Counting the fresh input length and running the verified serializer gives a total transducer for the once-normalized padded code map, with the exact compositional all-prefix space bound.

The complete fresh-input serializer uses logarithmic auxiliary space. Its output may have polynomial length, but the one-way output tape is never charged as reusable workspace.