Documentation

Complexitylib.Classes.PPoly.Uniform.Unrolling.Generator.Transition.WrittenCell.Internal

Direct-unrolling written-cell generator -- proof internals #

This dependency-independent layer verifies the bounded numeric head test used on both sides of a written-cell formula. The enclosing effect-formula proof is intentionally deferred until that generator's public contracts are available.

Pointwise all-prefix width certificates #

theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitWrittenCellFormula_spaceBoundByWidth_internal {k : } (tm : NTM k) (tape : WritableSlot k) (symbol : Γ) {initialSpace : } {values : BinaryValues WorkCount} {width : } (hclean : ∀ (inputLength : ), WrittenCellFormulaClean (values inputLength)) (hvalues : ∀ (inputLength : ) (index : Fin WorkCount), values inputLength index width inputLength) (hposition : ∀ (inputLength : ), values inputLength Work.position values inputLength Work.horizon + 1) (hcap : ∀ (inputLength stateIndex tapeIndex symbolIndex position : ), stateIndex < Fintype.card tm.QtapeIndex k + 1symbolIndex < 4position values inputLength Work.horizon + 1values inputLength Work.available + writtenCellScheduleSize (transitionCases tm).length k (values inputLength Work.horizon) (writtenCellEffectSelectedAt tm tape symbol) (effectCaseChoiceAt tm) + transitionStateRef (values inputLength Work.configBase) stateIndex + (transitionHeadRef (Fintype.card tm.Q) (values inputLength Work.horizon) (values inputLength Work.configBase) tapeIndex position + tapeIndex + values inputLength Work.horizon + 1) + (transitionCellRef (Fintype.card tm.Q) (k + 2) (values inputLength Work.horizon) (values inputLength Work.configBase) tapeIndex position symbolIndex + (tapeIndex * (values inputLength Work.horizon + 2) + position) + (values inputLength Work.horizon + 2) + (k + 2) + tapeIndex + 4) + caseReadSize (values inputLength Work.horizon) + values inputLength Work.horizon width inputLength) :
(emitWrittenCellFormula tm tape symbol).SpaceBoundByWidthAt initialSpace values width