Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Uncomputability of the quantum game value: no algorithm separates value 1 from value at most 1/2

Proved
MIPRE.Halting.quantumValue_uncomputable

by thomasvidick · Oct 15, 2026 · Mathlib 0df444a (Lean v4.33.1)

computabilityentangled-strategiesgame-valuemip-remipre-formalizationundecidability

A game description g=(nX,nA,w,acc)g = (n_X, n_A, w, \mathrm{acc})g=(nX​,nA​,w,acc) consists of two natural numbers, a list www of weighted question pairs and a list acc\mathrm{acc}acc of accepted answer tuples; it determines a game Gg\mathcal{G}_gGg​ on questions {0,…,nX}\{0, \dots, n_X\}{0,…,nX​} and answers {0,…,nA}\{0, \dots, n_A\}{0,…,nA​} whose question distribution is www normalized (a point mass at (0,0)(0,0)(0,0) if the total weight is zero) and whose predicate accepts exactly the tuples in acc\mathrm{acc}acc, except that unequal answers to equal questions lose. The quantum value val∗(G)\mathrm{val}^*(\mathcal{G})val∗(G) is the supremum, over tensor-product strategies (a unit vector ψ∈CdA⊗CdB\psi \in \mathbb{C}^{d_A} \otimes \mathbb{C}^{d_B}ψ∈CdA​⊗CdB​ and projective measurements {Aax}\{A^x_a\}{Aax​}, {Bby}\{B^y_b\}{Bby​} on the factors), of ∑x,y,a,bμ(x,y)D(x,y,a,b)⟨ψ∣Aax⊗Bby∣ψ⟩\sum_{x,y,a,b} \mu(x,y) D(x,y,a,b) \langle \psi | A^x_a \otimes B^y_b | \psi \rangle∑x,y,a,b​μ(x,y)D(x,y,a,b)⟨ψ∣Aax​⊗Bby​∣ψ⟩. The corollary states that no total computable Boolean function of game descriptions answers true on every description of quantum value 111 and false on every description of quantum value at most 12\tfrac1221​:

¬ ∃ f:GameData→{true,false} computable:(∀d, val∗(Gd)=1⇒f(d)=true) ∧ (∀d, val∗(Gd)≤12⇒f(d)=false).\neg\, \exists\, f : \mathtt{GameData} \to \{\mathrm{true}, \mathrm{false}\} \text{ computable}:\quad \bigl(\forall d,\ \mathrm{val}^*(\mathcal{G}_d) = 1 \Rightarrow f(d) = \mathrm{true}\bigr) \ \wedge\ \bigl(\forall d,\ \mathrm{val}^*(\mathcal{G}_d) \le \tfrac12 \Rightarrow f(d) = \mathrm{false}\bigr).¬∃f:GameData→{true,false} computable:(∀d, val∗(Gd​)=1⇒f(d)=true) ∧ (∀d, val∗(Gd​)≤21​⇒f(d)=false).

Nothing is required of fff on descriptions whose value lies strictly between 12\tfrac1221​ and 111: the statement is the undecidability of the promise problem for the entangled value, the second clause of blueprint cor:value-uncomputable; the first, for the synchronous value, is MIPRE.Halting.gameValue_uncomputable.

Formalization Note. The statement is a negated existential over total functions f : HaltingGameValue.GameData → Bool, with Computable f Mathlib's predicate through the Primcodable instance of GameData. The value is MIPRE.quantumValue d.game, where d.game is HaltingGameValue.GameData.game (MIPRE/Foundations/GameDescription.lean), the description read as a two-player MIPRE.Game on Fin (nX + 1) and Fin (nA + 1) with the same distribution and predicate as GameData.toGame, and quantumValue is the real iSup over MIPRE.TensorProductStrategy of the Born-rule value. The equality is =1= 1=1 and the inequality ≤1/2\le 1/2≤1/2 in R\mathbb{R}R. On the platform the proof is a sketch resting on the open leaf Nonempty (MIPRE.AnswerReduction 5); in the repository the theorem is proved in full.

Preamble
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
Formal statement
theorem MIPRE.Halting.quantumValue_uncomputable :
    ¬ ∃ f : HaltingGameValue.GameData → Bool, Computable f ∧
      (∀ d, quantumValue d.game = 1 → f d = true) ∧
      (∀ d, quantumValue d.game ≤ 1 / 2 → f d = false) := by sorry
Source
https://github.com/vidick/MIPRE-formalization/blob/70cbf1c52e3d5e1dff1162fdf952c9a9f4bd99ed/MIPRE/MainTheorem.lean#L59-L63; blueprint cor:value-uncomputable, https://vidick.github.io/MIPRE-formalization/blueprint/; [JNVWY20] Z. Ji, A. Natarajan, T. Vidick, J. Wright, H. Yuen, MIP* = RE, arXiv:2001.04383 (2020, revised 2022)

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me