Mermin-Peres Magic Square Game Strategy #
This module defines the layout for the Mermin-Peres magic square Linear Constraint System (LCS) game and provides a valid quantum strategy for it using observables.
It verifies the commutativity requirements
(both local within equations and global bipartite commutativity)
necessary to define a valid ObservableStrategy.
Layout #
This section defines the layout/geometry of the Mermin-Peres magic square game.
The layout of the Mermin-Peres magic square game. It consists of 6 equations (3 rows and 3 columns) over 9 variables (the cells of the 3x3 grid).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The support-style magic square game, with the final column equation having odd parity.
Equations
- MIPRE.LCS.MagicSquare.game = { b := fun (i : Fin MIPRE.LCS.MagicSquare.layout.r) => if i = ⟨5, MIPRE.LCS.MagicSquare.game._proof_1⟩ then 1 else 0 }
Instances For
Grid #
This section defines a strategy for the game from the previous section, given as a grid of observables.
The 9 observables for the Mermin-Peres magic square, defined as Kronecker products of Pauli matrices (X, Y, Z) and the identity (I).
Equations
- MIPRE.LCS.MagicSquare.grid 0 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) MIPRE.LCS.Pauli.X MIPRE.LCS.Pauli.I
- MIPRE.LCS.MagicSquare.grid 1 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) MIPRE.LCS.Pauli.I MIPRE.LCS.Pauli.X
- MIPRE.LCS.MagicSquare.grid 2 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) MIPRE.LCS.Pauli.X MIPRE.LCS.Pauli.X
- MIPRE.LCS.MagicSquare.grid 3 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) MIPRE.LCS.Pauli.I MIPRE.LCS.Pauli.Y
- MIPRE.LCS.MagicSquare.grid 4 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) MIPRE.LCS.Pauli.Y MIPRE.LCS.Pauli.I
- MIPRE.LCS.MagicSquare.grid 5 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) MIPRE.LCS.Pauli.Y MIPRE.LCS.Pauli.Y
- MIPRE.LCS.MagicSquare.grid 6 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) MIPRE.LCS.Pauli.X MIPRE.LCS.Pauli.Y
- MIPRE.LCS.MagicSquare.grid 7 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) MIPRE.LCS.Pauli.Y MIPRE.LCS.Pauli.X
- MIPRE.LCS.MagicSquare.grid 8 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) MIPRE.LCS.Pauli.Z MIPRE.LCS.Pauli.Z
Instances For
Each observable in the Mermin-Peres grid is a self-adjoint involution.
Commutativity #
This section proves the commutativity properties of the magic square grid.
These properties are required for the strategy to be valid.
A tactic for proving pairwise commutativity within one row or column of the square.
Equations
- MIPRE.LCS.MagicSquare.tacticSolve_line_comm = Lean.ParserDescr.node `MIPRE.LCS.MagicSquare.tacticSolve_line_comm 1024 (Lean.ParserDescr.nonReservedSymbol "solve_line_comm" false)
Instances For
Strategy #
This section shows that the grid strategy is a valid strategy for the magic square game.
The Mermin-Peres strategy for the magic square game.
This strategy uses BipartiteObservableStrategy to lift the 9 grid observables to a
valid bipartite observable strategy on a 16x16 space. It relies on
grid_sameEquation_comm to satisfy the commutativity constraints for each equation.
Equations
- One or more equations did not get rendered due to their size.