Documentation

Complexitylib.Classes.PPoly.Uniform.Unrolling.Generator.Transition.Step.Internal.Emitted

Exact output of the direct packed-step generator #

This file proves that the direct generator emits the canonical numeric step schedule byte for byte. The intermediate results identify each nested enumeration with its contiguous slice of the global configuration-atom order.

The canonical formula-block size function specialized to one machine.

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

    One canonical formula block specialized to one machine and choice wire zero.

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

      One canonical delayed packed-copy gate specialized to one machine.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.indexedGateBlocks_group_internal (width count : ) (blockAt : CircuitCode.RawCircuit) :
        indexedGateBlocks (width * count) blockAt = indexedGateBlocks count fun (group : ) => indexedGateBlocks width fun (offset : ) => blockAt (width * group + offset)

        The specialized numeric size oracle agrees with the state-formula polynomial at every canonical state index.

        Exact encoded prefix for the state-atom formula subroutine.

        First flattened configuration index for the four symbols at a tape cell.

        Equations
        Instances For
          theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitStepHeadTapeFormulas_emitted_internal {k : } (tm : NTM k) (tape : TapeSlot k) (values : BinaryValues WorkCount) (hclean : MovedHeadFormulaClean values) (hhorizon : 0 < values Work.horizon) (hposition : values Work.position = 0) (hlimit : values Work.limit₁ = values Work.horizon + 1) (stepAvailable : ) (havailable : values Work.available = stepAvailable + prefixSize (stepFormulaSizeAtSpecializedInternal tm (values Work.horizon)) (Fintype.card tm.Q + tape.index * (values Work.horizon + 1))) :
          (emitStepHeadTapeFormulas tm tape).emitted values = List.flatMap CircuitCode.RawGate.encode (indexedGateBlocks (values Work.horizon + 1) fun (position : ) => stepFormulaBlockSpecializedInternal tm (values Work.horizon) (values Work.configBase) stepAvailable (Fintype.card tm.Q + tape.index * (values Work.horizon + 1) + position))

          Exact global atom slice for one tape's head-formula loop.

          theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitStepImmutableCellPosition_emitted_internal {k : } (tm : NTM k) (tape : TapeSlot k) (values : BinaryValues WorkCount) (hclean : MovedHeadFormulaClean values) (hposition : values Work.position < values Work.horizon + 2) (hcopy : tape = TapeSlot.input values Work.position = 0) (stepAvailable : ) (havailable : values Work.available = stepAvailable + prefixSize (stepFormulaSizeAtSpecializedInternal tm (values Work.horizon)) (Fintype.card tm.Q + (k + 2) * (values Work.horizon + 1) + (tape.index * (values Work.horizon + 2) + values Work.position) * 4)) :
          (emitStepImmutableCellPosition tm tape).emitted values = List.flatMap CircuitCode.RawGate.encode (indexedGateBlocks 4 fun (symbolIndex : ) => stepFormulaBlockSpecializedInternal tm (values Work.horizon) (values Work.configBase) stepAvailable (Fintype.card tm.Q + (k + 2) * (values Work.horizon + 1) + (tape.index * (values Work.horizon + 2) + values Work.position) * 4 + symbolIndex))

          Exact four-atom slice for one immutable cell position.

          theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitStepWritableCellPosition_emitted_internal {k : } (tm : NTM k) (tape : WritableSlot k) (values : BinaryValues WorkCount) (hclean : MovedHeadFormulaClean values) (hposition : values Work.position < values Work.horizon + 2) (stepAvailable : ) (havailable : values Work.available = stepAvailable + prefixSize (stepFormulaSizeAtSpecializedInternal tm (values Work.horizon)) (Fintype.card tm.Q + (k + 2) * (values Work.horizon + 1) + (tape.toTapeSlot.index * (values Work.horizon + 2) + values Work.position) * 4)) :
          (emitStepWritableCellPosition tm tape).emitted values = List.flatMap CircuitCode.RawGate.encode (indexedGateBlocks 4 fun (symbolIndex : ) => stepFormulaBlockSpecializedInternal tm (values Work.horizon) (values Work.configBase) stepAvailable (Fintype.card tm.Q + (k + 2) * (values Work.horizon + 1) + (tape.toTapeSlot.index * (values Work.horizon + 2) + values Work.position) * 4 + symbolIndex))

          Exact four-atom slice for one writable cell position.

          theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitStepStateCopies_emitted_internal {k : } (tm : NTM k) (values : BinaryValues WorkCount) (stepAvailable : ) (hgateCount : values Work.gateCount = stepAvailable) (hreference : values Work.reference₀ = 0) (htemporary : values Work.temporary₃ = 0) :

          Exact packed-copy prefix for the state atoms.

          theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitStepImmutableCellCopies_emitted_internal (values : BinaryValues WorkCount) (sizeAt : ) (start stepAvailable : ) (hgateCount : values Work.gateCount = stepAvailable + prefixSize sizeAt start) (hreference : values Work.reference₀ = 0) (htemporary : values Work.temporary₃ = 0) (hsize : ∀ (index : Fin 4), sizeAt (start + index) = 1) :

          Four fixed one-gate delayed copies traverse four consecutive formulas.

          theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitStepWritableCellCopies_emitted_internal {k : } (tm : NTM k) (tape : WritableSlot k) (values : BinaryValues WorkCount) (hposition : values Work.position < values Work.horizon + 2) (stepAvailable : ) (hgateCount : values Work.gateCount = stepAvailable + prefixSize (stepFormulaSizeAtSpecializedInternal tm (values Work.horizon)) (stepCellStart tm (values Work.horizon) tape.toTapeSlot (values Work.position))) (hreference : values Work.reference₀ = 0) (htemporary : values Work.temporary₃ = 0) :

          Exact four-copy slice for one writable cell position.

          theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitStepCellTapeFormulas_emitted_internal {k : } (tm : NTM k) (tape : TapeSlot k) (values : BinaryValues WorkCount) (hclean : MovedHeadFormulaClean values) (hpositionZero : values Work.position = 0) (hlimit : values Work.limit₁ = values Work.horizon + 2) (stepAvailable : ) (havailable : values Work.available = stepAvailable + prefixSize (stepFormulaSizeAtSpecializedInternal tm (values Work.horizon)) (Fintype.card tm.Q + (k + 2) * (values Work.horizon + 1) + tape.index * (values Work.horizon + 2) * 4)) :
          (emitStepCellTapeFormulas tm tape).emitted values = List.flatMap CircuitCode.RawGate.encode (indexedGateBlocks (4 * (values Work.horizon + 2)) fun (offset : ) => stepFormulaBlockSpecializedInternal tm (values Work.horizon) (values Work.configBase) stepAvailable (Fintype.card tm.Q + (k + 2) * (values Work.horizon + 1) + tape.index * (values Work.horizon + 2) * 4 + offset))

          Exact global atom slice for one tape's cell-formula loop.

          theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitStepHeadTapeCopies_emitted_internal {k : } (tm : NTM k) (tape : TapeSlot k) (values : BinaryValues WorkCount) (hposition : values Work.position = 0) (hlimit : values Work.limit₁ = values Work.horizon + 1) (stepAvailable : ) (hgateCount : values Work.gateCount = stepAvailable + prefixSize (stepFormulaSizeAtSpecializedInternal tm (values Work.horizon)) (Fintype.card tm.Q + tape.index * (values Work.horizon + 1))) (hreference : values Work.reference₀ = 0) (htemporary : values Work.temporary₃ = 0) :
          (emitStepHeadTapeCopies tm tape).emitted values = List.flatMap CircuitCode.RawGate.encode (indexedGateBlocks (values Work.horizon + 1) fun (position : ) => [stepPackedCopySpecializedInternal tm (values Work.horizon) stepAvailable (Fintype.card tm.Q + tape.index * (values Work.horizon + 1) + position)])

          Exact delayed-copy slice for one tape's head atoms.

          theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitStepCellTapeCopies_emitted_internal {k : } (tm : NTM k) (tape : TapeSlot k) (values : BinaryValues WorkCount) (hposition : values Work.position = 0) (hlimit : values Work.limit₁ = values Work.horizon + 2) (stepAvailable : ) (hgateCount : values Work.gateCount = stepAvailable + prefixSize (stepFormulaSizeAtSpecializedInternal tm (values Work.horizon)) (Fintype.card tm.Q + (k + 2) * (values Work.horizon + 1) + tape.index * (values Work.horizon + 2) * 4)) (hreference : values Work.reference₀ = 0) (htemporary : values Work.temporary₃ = 0) :
          (emitStepCellTapeCopies tm tape).emitted values = List.flatMap CircuitCode.RawGate.encode (indexedGateBlocks (4 * (values Work.horizon + 2)) fun (offset : ) => [stepPackedCopySpecializedInternal tm (values Work.horizon) stepAvailable (Fintype.card tm.Q + (k + 2) * (values Work.horizon + 1) + tape.index * (values Work.horizon + 2) * 4 + offset)])

          Exact delayed-copy slice for one tape's cell atoms.