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 ObservableStrategyData.
Types #
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
- magic_square_game = { b := fun (i : Fin magic_square_layout.r) => if i = ⟨5, magic_square_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 (I2).
Equations
- magic_square_grid 0 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) X I2
- magic_square_grid 1 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) I2 X
- magic_square_grid 2 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) X X
- magic_square_grid 3 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) I2 Y
- magic_square_grid 4 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) Y I2
- magic_square_grid 5 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) Y Y
- magic_square_grid 6 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) X Y
- magic_square_grid 7 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) Y X
- magic_square_grid 8 = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) Z 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
- tacticSolve_line_comm = Lean.ParserDescr.node `tacticSolve_line_comm 1024 (Lean.ParserDescr.nonReservedSymbol "solve_line_comm" false)
Instances For
For every equation of the layout, the associated grid observables commute pairwise.
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 MP_observables to a
valid ObservableStrategyData on a 16x16 bipartite space. It relies on
MP_sameEquation_comm to satisfy the commutativity constraints for each equation.