Documentation

Complexitylib.Classes.PPoly.Uniform.Unrolling.Generator.Program

Direct-unrolling generator program #

This module exposes the fixed work-vector layout and verified tagged/header prefix of the direct-unrolling generator. A later module supplies the positive tableau body and discharges its value-level entry condition.

The positive polynomial-counter and tagged-header prefix is sound.

The positive polynomial/header prefix uses logarithmic all-prefix space after the unary input length has been loaded in binary.

A sound positive tableau body composes with the verified header prefix.

A logarithmic-space positive body remains logarithmic after the verified polynomial/header prefix.

The hardwired zero-length family member is sound.

theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.program_sound {k : } (tm : TM k) (q : Polynomial ) {positiveBody : BinaryRoutine WorkCount} (hbody : positiveBody.Sound) :
(program tm q positiveBody).Sound

A sound positive tableau body yields a sound complete zero/positive generator skeleton.

A logarithmic-space positive body yields a logarithmic-space complete zero/positive generator skeleton.

The positive prefix's arithmetic/scratch obligations hold from the canonical input-length work vector.

A positive body's entry obligation for every nonzero length is exactly what the complete zero/positive generator needs at fresh-input entry.

@[simp]

Exact pure work-vector endpoint of the positive prefix.

@[simp]

Exact zero/positive word emitted by the generator skeleton.