Quantum local lemma for -QSAT, function-model subspace form (Corollary 16)
ProvedQLLL.QSAT.inf_ne_bot_of_degree_leModel the state space of qubits as , the functions from bit strings to , and for a subspace write for its relative dimension. For a set of qubits and a subspace of the local space , let be the space of states all of whose -slices (obtained by fixing the bits outside ) lie in ; in tensor language this is .
Let be subspaces and sets of qubits such that:
- each is cut out on , that is, for some local subspace ;
- for every ;
- for every ;
- every qubit belongs to at most of the sets ;
- .
Then
This is the function-model form of Corollary 16 of Ambainis, Kempe and Sattath, in which the corollary is proved; the forms on Mathlib's tensor product are derived from it. In the proof, each constraint shares qubits with at most others, Lemma 11 makes the others mutually R-independent, and Theorem 4 applies. With and it recovers the corollary as stated.
The platform has four versions of Corollary 16: on Mathlib's tensor product, the operator form QLLL.PiQSAT.inf_ker_extendOp_ne_bot and the subspace form QLLL.PiQSAT.inf_extend_ne_bot; in the function model, the subspace form QLLL.QSAT.inf_ne_bot_of_degree_le, from which the others are derived, and the orthogonal-projector form QLLL.QSAT.satisfiable_of_degree_le.
Formalization Note Qubits are modelled as functions on bit strings, , rather than by Mathlib's PiTensorProduct. The identification of the two models is proved in the source project (QuantumLocalLemma/Quantum/KQSAT/QubitTensor.lean) and is used to derive QLLL.PiQSAT.inf_extend_ne_bot.
import Definitions.Def_QLLL_LocalLemma_Basic
import Definitions.Def_QLLL_Quantum_KQSAT_Basic
import Mathlib
open QLLL
open QLLL.QSAT
open Finset Module
variable {n : ℕ}theorem QLLL.QSAT.inf_ne_bot_of_degree_le {m : ℕ} {Sq : Fin m → Finset (Fin n)}
{X : Fin m → Submodule ℂ (H n)} {k D' : ℕ} {p : ℝ}
(hsupp : ∀ i, IsSupportedOn (Sq i) (X i))
(hcard : ∀ i, (Sq i).card = k)
(hX : ∀ i, 1 - p ≤ relDim (X i))
(hdeg : ∀ v : Fin n, (univ.filter fun i => v ∈ Sq i).card ≤ D' + 1)
(hp : p * Real.exp 1 * (((k * D' : ℕ) : ℝ) + 1) ≤ 1) :
univ.inf X ≠ ⊥ := by sorry