Documentation

LeanPool.GapCVP.Part04E

GapCVP proof, part 04, continuation 05 #

noncomputable def GapCVP.OutputBoundedDependentRecordFold.boundedFoldValidScanTrace {worker : List Bool → List Bool} (computer : BitTM worker) (count : ℕ) (seed counter : List Bool) :

Scans a valid unary fold prefix and reaches dispatch within count + 1 steps.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    noncomputable def GapCVP.OutputBoundedDependentRecordFold.boundedFoldDrainTrace {worker : List Bool → List Bool} (computer : BitTM worker) (output : List (computer.tm.Γ computer.tm.k₁)) (counter scratch : List Bool) :
    StateTransition.EvalsToInTime (boundedDependentRecordFoldMachine computer).step (boundedFoldDrainConfiguration computer output counter scratch) (some (boundedFoldRestoreConfiguration computer [] counter (List.map (⇑computer.outputAlphabet) output.reverse ++ scratch))) (output.length + 1)

    Drains the worker output into scratch before restoring it as the next input.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      noncomputable def GapCVP.OutputBoundedDependentRecordFold.boundedFoldRestoreTrace {worker : List Bool → List Bool} (computer : BitTM worker) (scratch : List Bool) (input : List (computer.tm.Γ computer.tm.k₀)) (counter : List Bool) :

      Restores saved bits to the input stack and resumes fold dispatch.

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

        Transfers one worker output to the next iteration's input within a linear step bound.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          noncomputable def GapCVP.OutputBoundedDependentRecordFold.boundedFoldWorkerExecutionTrace {worker : List Bool → List Bool} (computer : BitTM worker) (input counter : List Bool) :

          Runs the worker machine from its fold configuration within its time bound.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            noncomputable def GapCVP.OutputBoundedDependentRecordFold.boundedFoldRunBudget {worker : List Bool → List Bool} (computer : BitTM worker) :
            ℕ → List Bool → ℕ

            Recursive step budget for the remaining fold iterations.

            Equations
            Instances For

              Executes all remaining fold iterations from the dispatch configuration.

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

                Runs a valid unary encoded fold input from initialization to its result.

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

                  Scans a prefix with no delimiter and enters malformed-input handling.

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

                    Clears a malformed unary prefix and halts with empty output.

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

                      Runs an input lacking a fold delimiter to empty output from initialization.

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

                        Polynomial time bound for a fold with polynomially bounded intermediate states.

                        Equations
                        Instances For
                          theorem GapCVP.OutputBoundedDependentRecordFold.boundedFoldValidTotalBudgetLe {worker : List Bool → List Bool} (computer : BitTM worker) (bound : Polynomial ℕ) (hbounded : PolynomiallyBoundedFoldStates worker bound = true) (input : List Bool) (count : ℕ) (seed : List Bool) (hparse : parseUnaryBoundedFold input = some (count, seed)) :
                          theorem GapCVP.OutputBoundedDependentRecordFold.boundedFoldMalformedTotalBudgetLe {worker : List Bool → List Bool} (computer : BitTM worker) (bound : Polynomial ℕ) (inputLength : ℕ) :
                          2 * inputLength + 2 ≤ Polynomial.eval inputLength (boundedDependentRecordFoldTimePolynomial computer bound)

                          Total execution trace of the bounded fold, including malformed inputs.

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

                            GapCVP reduction support.

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

                              Internal support shared across GapCVP continuation modules.

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

                                Internal support shared across GapCVP continuation modules.

                                Internal support shared across GapCVP continuation modules.

                                • inspected : Option Bool

                                  The inspected literal bit, when present.

                                • sign : Option Bool

                                  The literal sign bit, when present.

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

                                  Inspects the top bit of a stack and branches on whether it is present.

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

                                    Removes the top bit of a stack and continues without changing the state.

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

                                      Pushes the inspected bit, using false when no bit was inspected.

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

                                        Pushes a fixed bit onto a stack before continuing.

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

                                          Clears the inspected bit and enters the given control phase.

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

                                            Internal support shared across GapCVP continuation modules.

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

                                              Internal support shared across GapCVP continuation modules.

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

                                                Internal support shared across GapCVP continuation modules.

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

                                                  Internal support shared across GapCVP continuation modules.

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

                                                    Internal support shared across GapCVP continuation modules.

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

                                                      Internal support shared across GapCVP continuation modules.

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

                                                        Internal support shared across GapCVP continuation modules.

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

                                                          Internal support shared across GapCVP continuation modules.

                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            @[reducible, inline]

                                                            Internal support shared across GapCVP continuation modules.

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

                                                              Internal support shared across GapCVP continuation modules.

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

                                                                Executes the flatLiteralRecordStepTac machine-step simplifier.

                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_prefix_true (sign : Option Bool) (input count reversed markers suffix output : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 0 sign (true :: input) count reversed markers suffix output) = some (flatLiteralRecordConfiguration 0 sign input (true :: count) reversed markers suffix output)

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_prefix_false (sign : Option Bool) (input count reversed markers suffix output : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 0 sign (false :: input) count reversed markers suffix output) = some (flatLiteralRecordConfiguration 1 sign input count reversed markers suffix output)

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_prefix_missing (sign : Option Bool) (count reversed markers suffix output : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 0 sign [] count reversed markers suffix output) = some (flatLiteralRecordConfiguration 7 sign [] count reversed markers suffix output)

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_sign_step (oldSign : Option Bool) (sign marker : Bool) (input count reversed markers suffix output : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 1 oldSign (sign :: input) (marker :: count) reversed markers suffix output) = some (flatLiteralRecordConfiguration 2 (some sign) input count reversed markers suffix output)

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_sign_empty (sign : Option Bool) (input reversed markers suffix output : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 1 sign input [] reversed markers suffix output) = some (flatLiteralRecordConfiguration 7 sign input [] reversed markers suffix output)

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_sign_missing (sign : Option Bool) (marker : Bool) (count reversed markers suffix output : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 1 sign [] (marker :: count) reversed markers suffix output) = some (flatLiteralRecordConfiguration 7 sign [] (marker :: count) reversed markers suffix output)

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_payload_step (sign : Option Bool) (bit marker : Bool) (input count reversed markers suffix output : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 2 sign (bit :: input) (marker :: count) reversed markers suffix output) = some (flatLiteralRecordConfiguration 2 sign input count (bit :: reversed) (true :: markers) suffix output)

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_payload_finish (sign : Bool) (input reversed markers suffix output : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 2 (some sign) input [] reversed markers suffix output) = some (flatLiteralRecordConfiguration 3 (some sign) input [] reversed markers suffix (sign :: output))

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_payload_missing (sign : Option Bool) (marker : Bool) (count reversed markers suffix output : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 2 sign [] (marker :: count) reversed markers suffix output) = some (flatLiteralRecordConfiguration 7 sign [] (marker :: count) reversed markers suffix output)

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_restore_step (sign : Option Bool) (bit : Bool) (input reversed markers suffix output : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 3 sign input [] (bit :: reversed) markers suffix output) = some (flatLiteralRecordConfiguration 3 sign input [] reversed markers suffix (bit :: output))

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_restore_finish (sign : Option Bool) (input markers suffix output : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 3 sign input [] [] markers suffix output) = some (flatLiteralRecordConfiguration 4 sign input [] [] markers suffix (false :: output))

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_marker_step (sign : Option Bool) (marker : Bool) (input markers suffix output : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 4 sign input [] [] (marker :: markers) suffix output) = some (flatLiteralRecordConfiguration 4 sign input [] [] markers suffix (true :: output))

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_invalid_count (sign : Option Bool) (bit : Bool) (input count reversed markers : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 7 sign input (bit :: count) reversed markers [] []) = some (flatLiteralRecordConfiguration 7 sign input count reversed markers [] [])

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  theorem GapCVP.CNFFlatStructuralRecordWorkerTM.flatLiteralRecord_invalid_reversed (sign : Option Bool) (bit : Bool) (input reversed markers : List Bool) :
                                                                  actualFlatLiteralRecordWorker.step (flatLiteralRecordConfiguration 7 sign input [] (bit :: reversed) markers [] []) = some (flatLiteralRecordConfiguration 7 sign input [] reversed markers [] [])

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  Internal support shared across GapCVP continuation modules.

                                                                  Internal support shared across GapCVP continuation modules.