Documentation

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

Direct-unrolling transition-case generator -- proof internals #

theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseRead_sound_internal (stateCount workCount tapeIndex symbolIndex : ) :
(emitCaseRead stateCount workCount tapeIndex symbolIndex).Sound
theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseMembers_sound_internal (stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex : ) (choiceValue : Bool) (workSymbolIndexAt : ) :
(emitCaseMembers stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex choiceValue workSymbolIndexAt).Sound
theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseFormula_sound_internal (stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex : ) (choiceValue : Bool) (workSymbolIndexAt : ) :
(emitCaseFormula stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex choiceValue workSymbolIndexAt).Sound

Register state used to begin reading one transition case.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseRead_effect_internal (stateCount workCount tapeIndex symbolIndex : ) (values : BinaryValues WorkCount) (hclean : ReadFormulaClean values) :
    (emitCaseRead stateCount workCount tapeIndex symbolIndex).effect values = Function.update (caseReadStartValues values tapeIndex symbolIndex) Work.available (values Work.available + caseReadSize (values Work.horizon))
    theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseRead_emitted_internal (stateCount workCount tapeIndex symbolIndex : ) (values : BinaryValues WorkCount) (hclean : ReadFormulaClean values) :
    (emitCaseRead stateCount workCount tapeIndex symbolIndex).emitted values = List.flatMap CircuitCode.RawGate.encode (readFormulaSchedule stateCount (workCount + 2) (values Work.horizon) (values Work.configBase) (values Work.available) tapeIndex symbolIndex)
    theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseRead_requires_internal (stateCount workCount tapeIndex symbolIndex : ) (values : BinaryValues WorkCount) (hclean : ReadFormulaClean values) :
    (emitCaseRead stateCount workCount tapeIndex symbolIndex).requires values
    theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseMembers_effect_internal (stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex : ) (choiceValue : Bool) (workSymbolIndexAt : ) (values : BinaryValues WorkCount) (hclean : CaseFormulaClean values) :
    (emitCaseMembers stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex choiceValue workSymbolIndexAt).effect values = Function.update (caseReadStartValues values (workCount + 1) outputSymbolIndex) Work.available (values Work.available + caseFormulaMembersSize workCount (values Work.horizon) choiceValue)
    theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseMembers_requires_internal (stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex : ) (choiceValue : Bool) (workSymbolIndexAt : ) (values : BinaryValues WorkCount) (hclean : CaseFormulaClean values) :
    (emitCaseMembers stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex choiceValue workSymbolIndexAt).requires values
    theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseMembers_emitted_internal (stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex : ) (choiceValue : Bool) (workSymbolIndexAt : ) (values : BinaryValues WorkCount) (hclean : CaseFormulaClean values) :
    (emitCaseMembers stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex choiceValue workSymbolIndexAt).emitted values = List.flatMap CircuitCode.RawGate.encode (caseFormulaMemberGates stateCount workCount (values Work.horizon) (values Work.configBase) (values Work.reference₀) (values Work.available) stateIndex inputSymbolIndex outputSymbolIndex choiceValue workSymbolIndexAt)
    theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseFormula_effect_internal (stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex : ) (choiceValue : Bool) (workSymbolIndexAt : ) (values : BinaryValues WorkCount) (hclean : CaseFormulaClean values) :
    (emitCaseFormula stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex choiceValue workSymbolIndexAt).effect values = Function.update values Work.available (values Work.available + caseFormulaScheduleSize workCount (values Work.horizon) choiceValue)
    theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseFormula_requires_internal (stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex : ) (choiceValue : Bool) (workSymbolIndexAt : ) (values : BinaryValues WorkCount) (hclean : CaseFormulaClean values) :
    (emitCaseFormula stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex choiceValue workSymbolIndexAt).requires values
    theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseFormula_emitted_internal (stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex : ) (choiceValue : Bool) (workSymbolIndexAt : ) (values : BinaryValues WorkCount) (hclean : CaseFormulaClean values) :
    (emitCaseFormula stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex choiceValue workSymbolIndexAt).emitted values = List.flatMap CircuitCode.RawGate.encode (caseFormulaSchedule stateCount workCount (values Work.horizon) (values Work.configBase) (values Work.reference₀) (values Work.available) stateIndex inputSymbolIndex outputSymbolIndex choiceValue workSymbolIndexAt)
    theorem Complexity.CircuitUnrolling.Serializer.DirectGenerator.emitCaseFormula_spaceBoundByWidth_internal (stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex : ) (choiceValue : Bool) (workSymbolIndexAt : ) {initialSpace : } {values : BinaryValues WorkCount} {width : } (hclean : ∀ (inputLength : ), CaseFormulaClean (values inputLength)) (hvalues : ∀ (inputLength : ) (index : Fin WorkCount), values inputLength index width inputLength) (hinputSymbol : inputSymbolIndex < 4) (houtputSymbol : outputSymbolIndex < 4) (hworkSymbols : index < workCount, workSymbolIndexAt index < 4) (hcap : ∀ (inputLength tapeIndex symbolIndex position : ), tapeIndex workCount + 1symbolIndex < 4position values inputLength Work.horizonvalues inputLength Work.available + caseFormulaScheduleSize workCount (values inputLength Work.horizon) choiceValue + transitionStateRef (values inputLength Work.configBase) stateIndex + (transitionHeadRef stateCount (values inputLength Work.horizon) (values inputLength Work.configBase) tapeIndex position + tapeIndex + values inputLength Work.horizon + 1) + (transitionCellRef stateCount (workCount + 2) (values inputLength Work.horizon) (values inputLength Work.configBase) tapeIndex position symbolIndex + (tapeIndex * (values inputLength Work.horizon + 2) + position) + (values inputLength Work.horizon + 2) + (workCount + 2) + tapeIndex + 4) + caseReadSize (values inputLength Work.horizon) + values inputLength Work.horizon width inputLength) :
    (emitCaseFormula stateCount workCount stateIndex inputSymbolIndex outputSymbolIndex choiceValue workSymbolIndexAt).SpaceBoundByWidthAt initialSpace values width