Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

MIP*_{1,1/2}(2,1) = RE: the title theorem of MIP* = RE, for the paper's class

Proved
MIPRE.Halting.mipstar_eq_re

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

complexity-theoryinteractive-proofsmip-remipre-formalizationpolynomial-timesemidecidability

A language is a set L⊆{0,1}∗L \subseteq \{0,1\}^*L⊆{0,1}∗ of bit strings; it is recursively enumerable (L∈REL \in \mathrm{RE}L∈RE) when membership in LLL is the domain of a partial computable function (Mathlib's REPred). The paper's class MIP1,1/2∗(2,1)\mathrm{MIP}^*_{1,1/2}(2,1)MIP1,1/2∗​(2,1): LLL is in it when there are a sampler program S\mathcal{S}S, a decider program D\mathcal{D}D (closed programs of the cost model) and a polynomial PPP such that for every string zzz, with B=P(∣z∣)B = P(|z|)B=P(∣z∣): on every seed r∈{0,1}Br \in \{0,1\}^Br∈{0,1}B the sampler halts within cost P(∣z∣+∣r∣)P(|z|+|r|)P(∣z∣+∣r∣) with a pair of strings of length at most BBB; on every (z,x,y,a,b)(z,x,y,a,b)(z,x,y,a,b) the decider halts within cost P(∣z∣+∣x∣+∣y∣+∣a∣+∣b∣)P(|z|+|x|+|y|+|a|+|b|)P(∣z∣+∣x∣+∣y∣+∣a∣+∣b∣), rejecting whenever one of x,y,a,bx,y,a,bx,y,a,b is longer than BBB; and the game Gz\mathcal{G}_zGz​ (questions and answers of length at most BBB, question pair the sampler's output on a uniform BBB-bit seed, predicate the decider's acceptance) has quantum value val∗(Gz)=1\mathrm{val}^*(\mathcal{G}_z) = 1val∗(Gz​)=1 if z∈Lz \in Lz∈L and val∗(Gz)≤12\mathrm{val}^*(\mathcal{G}_z) \le \tfrac12val∗(Gz​)≤21​ if z∉Lz \notin Lz∈/L, the quantum value being the supremum of the Born-rule value over tensor-product strategies. The theorem states that the two classes of languages coincide:

MIP1,1/2∗(2,1)=RE,i.e.∀L⊆{0,1}∗: L∈MIP1,1/2∗(2,1)  ⟺  L∈RE.\mathrm{MIP}^*_{1,1/2}(2,1) = \mathrm{RE}, \qquad\text{i.e.}\qquad \forall L \subseteq \{0,1\}^*:\ L \in \mathrm{MIP}^*_{1,1/2}(2,1) \iff L \in \mathrm{RE}.MIP1,1/2∗​(2,1)=RE,i.e.∀L⊆{0,1}∗: L∈MIP1,1/2∗​(2,1)⟺L∈RE.

This is the title equality of [JNVWY20]; mipstarComputable_eq_re is its computable-class form. Inclusions per the blueprint (thm:mipstar-eq-re): re_subset_mipstar and lem:mipstar-poly-sub (MIPStar.isRE).

Formalization Note. The statement is an equality MIPStar = IsRE of predicates on Set BitStr, by extensionality the pointwise equivalence displayed; BitStr is List Bool and IsRE L := REPred (· ∈ L). MIPStar L (blueprint def:mipstar) unfolds to ∃ V : PolyVerifier, (∀ z, V.Efficient z) ∧ ∀ z, (z ∈ L → quantumValue (V.game z) = 1) ∧ (z ∉ L → quantumValue (V.game z) ≤ 1 / 2), with PolyVerifier, Efficient (clauses sampler_runs, decider_time, rejects_long; the time bounds are HaltsWithin bounds of the cost model in the total input length) and V.game z (a MIPRE.Game on Answers (V.B z); a sampler output that is not a pair of strings of length at most B z is read as ([], []), a fallback never taken on an efficient verifier) as in re_subset_mipstar. 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.mipstar_eq_re : MIPStar = IsRE := by sorry
Source
https://github.com/vidick/MIPRE-formalization/blob/70cbf1c52e3d5e1dff1162fdf952c9a9f4bd99ed/MIPRE/MainTheorem.lean#L78-L79; blueprint thm:mipstar-eq-re, 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