Halting reduces to the synchronous game value, given an answer reduction stage
ProvedMIPRE.Halting.halting_reduces_to_gameValue_of_answerReductionLet be an answer reduction stage for -level normal form verifiers (MIPRE.AnswerReduction 5, blueprint thm:answer-reduction). Programs are Mathlib's Nat.Partrec.Code, and a program halts on the empty input when is defined. A GameData is a first-order description of a synchronous game: sizes , a list of weighted question pairs and a list of accepted quadruples ; toGame interprets it as the synchronous game on questions and answers with distribution normalized (a point mass on if the total weight is ), accepting exactly the listed quadruples except that unequal answers to equal questions lose. The synchronous value is the supremum, over synchronous strategies (one family of projective measurements on indexed by the questions, used by both players against the tracial state ), of the winning probability. Then there is a computable map from programs to game descriptions such that for every program :
This is blueprint thm:main, Theorem 12.2 of "MIP* = RE" with "polynomial-time" relaxed to "computable" and read in the synchronous value, with the single remaining hypothesis an AnswerReduction 5: introspection, parallel repetition and the universal machine are supplied. MIPRE/MainTheorem.lean proves the unconditional HaltingGameValue.halting_reduces_to_gameValue through it.
Formalization Note The conclusion is, word for word, the body of the proposition HaltingGameValue.HaltingReducesToGameValue, stated on top of Mathlib alone in MIPRE/HaltingGameValue.lean, with HaltsOnEmptyInput c := (c.eval 0).Dom, Computable Mathlib's and 1 / 2 : ℝ. The hypothesis A : MIPRE.AnswerReduction 5 is an explicit argument. GapCompression.ofAnswerReduction A := GapCompression.ofPipeline Introspection.seven A (repetition 7) (same file) is the compression theorem built from the supplied introspection and repetition stages, of which this is the conditional consequence. Cost.selfUniversal is the self-interpreter's universal machine. Namespace MIPRE.Halting, file MIPRE/Background/Pipeline.lean.
import Mathlib.Algebra.BigOperators.Fin import Mathlib.Algebra.BigOperators.Group.Finset.Basic import Mathlib.Algebra.BigOperators.Ring.Finset import Mathlib.Algebra.Order.Chebyshev import Mathlib.Algebra.Polynomial.Eval.Defs import Mathlib.Algebra.Polynomial.Eval.Degree import Mathlib.Algebra.Polynomial.Roots import Mathlib.Analysis.CStarAlgebra.CStarMatrix import Mathlib.Analysis.CStarAlgebra.Classes import Mathlib.Analysis.CStarAlgebra.Matrix import Mathlib.Analysis.Complex.Basic import Mathlib.Analysis.Matrix.Order import Mathlib.Analysis.Matrix.Spectrum import Mathlib.Computability.Partrec import Mathlib.Computability.PartrecBasis import Mathlib.Computability.PartrecCode import Mathlib.Computability.Primrec.List import Mathlib.Computability.RE import Mathlib.Computability.TuringMachine.Config import Mathlib.Data.Complex.Basic import Mathlib.Data.ENat.Lattice import Mathlib.Data.Fintype.BigOperators import Mathlib.Data.Fintype.Pi import Mathlib.Data.List.Basic import Mathlib.Data.List.GetD import Mathlib.Data.List.NodupEquivFin import Mathlib.Data.Nat.Bits import Mathlib.Data.Nat.Notation import Mathlib.Data.Nat.Size import Mathlib.Data.Real.Basic import Mathlib.Data.ZMod.Basic import Mathlib.LinearAlgebra.Matrix.DotProduct import Mathlib.LinearAlgebra.Matrix.Kronecker import Mathlib.LinearAlgebra.Matrix.NonsingularInverse import Mathlib.LinearAlgebra.Pi import Mathlib.LinearAlgebra.UnitaryGroup import Mathlib.Logic.Denumerable import Mathlib.Logic.Function.Iterate import Mathlib.Tactic.Linarith import Mathlib.Tactic.Ring import Definitions.Def_MIPRE_Foundations_CL_Register import Definitions.Def_MIPRE_Foundations_CL_Basic import Definitions.Def_MIPRE_Foundations_CL_Closure import Definitions.Def_MIPRE_Foundations_Cost_Basic import Definitions.Def_MIPRE_Foundations_Cost_Basic_B import Definitions.Def_MIPRE_Foundations_Cost_Encoding import Definitions.Def_MIPRE_Foundations_Cost_Encoding_B import Definitions.Def_MIPRE_Foundations_Cost_PolyTime import Definitions.Def_MIPRE_Foundations_CL_Sampler import Definitions.Def_MIPRE_Foundations_ValueApprox_RawInt import Definitions.Def_MIPRE_Foundations_Games import Definitions.Def_MIPRE_Foundations_ValueApprox import Definitions.Def_MIPRE_Foundations_ValueApprox_Cayley import Definitions.Def_MIPRE_Foundations_ValueApprox_Projective import Definitions.Def_MIPRE_Foundations_ValueApprox_Gaussian import Definitions.Def_MIPRE_Foundations_ValueApprox_Norms import Definitions.Def_MIPRE_Foundations_ValueApprox_Dense import Definitions.Def_MIPRE_Foundations_ValueApprox_Strategy import Definitions.Def_MIPRE_Foundations_GameTransport import Definitions.Def_MIPRE_HaltingGameValue import Definitions.Def_MIPRE_Foundations_GameDescription import Definitions.Def_MIPRE_Foundations_ValueApprox_RawStrategy import Definitions.Def_MIPRE_Foundations_ValueApprox_RawSemantics import Definitions.Def_MIPRE_Foundations_ValueApprox_RawComplete import Definitions.Def_MIPRE_Foundations_ValueApprox_RawPrimrec import Definitions.Def_MIPRE_Foundations_ValueApprox_RE import Definitions.Def_MIPRE_Foundations_Cost_Closure import Definitions.Def_MIPRE_Foundations_Cost_Toolkit import Definitions.Def_MIPRE_Foundations_Cost_Toolkit_B import Definitions.Def_MIPRE_Foundations_Cost_Machine import Definitions.Def_MIPRE_Foundations_Cost_Machine_B import Definitions.Def_MIPRE_Foundations_Cost_Loops import Definitions.Def_MIPRE_Foundations_Cost_Loops_B import Definitions.Def_MIPRE_Foundations_Cost_Codable import Definitions.Def_MIPRE_Foundations_Cost_Codable_B import Definitions.Def_MIPRE_Foundations_Cost_MachineData import Definitions.Def_MIPRE_Foundations_Cost_MachineData_B import Definitions.Def_MIPRE_Foundations_Cost_Interpreter import Definitions.Def_MIPRE_Foundations_Cost_Interpreter_B import Definitions.Def_MIPRE_Foundations_Cost_Unary import Definitions.Def_MIPRE_Foundations_Cost_MachineBound import Definitions.Def_MIPRE_Foundations_Cost_MachineBound_B import Definitions.Def_MIPRE_Foundations_Cost_Universal import Definitions.Def_MIPRE_Foundations_Cost_Universal_B import Definitions.Def_MIPRE_Foundations_Cost_Kleene import Definitions.Def_MIPRE_Foundations_Cost_Kleene_B import Definitions.Def_MIPRE_Foundations_Cost_FromPartrec import Definitions.Def_MIPRE_Foundations_Cost_FromPartrec_B import Definitions.Def_MIPRE_Foundations_Cost_Partrec import Definitions.Def_MIPRE_Foundations_Cost_Partrec_B import Definitions.Def_MIPRE_Foundations_Cost_Semidecide import Definitions.Def_MIPRE_Foundations_ClassMIPStarComputable import Definitions.Def_MIPRE_Foundations_GameDouble import Definitions.Def_MIPRE_Foundations_Verifier import Definitions.Def_MIPRE_Foundations_GapCompression import Definitions.Def_MIPRE_Foundations_VerifierValue import Definitions.Def_MIPRE_Foundations_Halting_Freeze import Definitions.Def_MIPRE_Foundations_Halting_Classes import Definitions.Def_MIPRE_Foundations_Halting_Descriptions import Definitions.Def_MIPRE_Foundations_Cost_Numeric import Definitions.Def_MIPRE_Foundations_Cost_Numeric_B import Definitions.Def_MIPRE_Foundations_Halting_Lists import Definitions.Def_MIPRE_Foundations_Cost_Growth import Definitions.Def_MIPRE_Foundations_Halting_Arith import Definitions.Def_MIPRE_Foundations_Halting_Wrapper import Definitions.Def_MIPRE_Foundations_Halting_Enumerate import Definitions.Def_MIPRE_Foundations_ClassMIPStar import Definitions.Def_MIPRE_Foundations_Pipeline_Budget import Definitions.Def_MIPRE_Foundations_Pipeline_AnswerReduction open MIPRE MIPRE.Cost
theorem MIPRE.Halting.halting_reduces_to_gameValue_of_answerReduction (A : MIPRE.AnswerReduction 5) :
∃ g : Nat.Partrec.Code → HaltingGameValue.GameData, Computable g ∧
∀ pc : Nat.Partrec.Code,
(HaltingGameValue.HaltsOnEmptyInput pc → HaltingGameValue.gameValue (g pc).toGame = 1) ∧
(¬ HaltingGameValue.HaltsOnEmptyInput pc →
HaltingGameValue.gameValue (g pc).toGame ≤ 1 / 2) := by sorry