Projector-based Strategy for LCS Games #
This module defines the standard formalism for LCS game strategies using projector measurement systems. In this formalism, players' strategies are represented by families of projectors $\{E_{i,x}\}$ and $\{F_{j,y}\}$.
Key Definitions #
ProjectorStrategy: The core structure representing a projector-based strategy.ProjectorStrategy.aliceObs,ProjectorStrategy.bobObs: Derived observables extracted from the projector measurements.
Key Lemmas #
ProjectorStrategy.isObservable_aliceObs,ProjectorStrategy.isObservable_bobObs: Proves that the derived operators are observables.ProjectorStrategy.aliceObs_commute,alice_bob_commute: Verification of commutation relations.
A projector-based strategy for the LCS layout G: Alice has one measurement per
equation, with outcomes the local assignments; Bob has one binary measurement per
variable; and every projector of Alice commutes with every projector of Bob.
- E (i : Fin G.r) : G.Assignment i → R
Alice's measurement for equation
i, indexed by local assignments. Bob's binary measurement for each variable.
- alice_ms (i : Fin G.r) : IsMeasurementSystem (self.E i)
Alice's families are measurement systems.
- bob_ms (j : Fin G.s) : IsMeasurementSystem (self.F j)
Bob's families are measurement systems.
- alice_bob_commute (i : Fin G.r) (j : Fin G.s) (α : G.Assignment i) (β : ZMod 2) : self.E i α * self.F j β = self.F j β * self.E i α
Every projector of Alice commutes with every projector of Bob.
Instances For
Alice's derived observable for variable j in equation i: the ±1-observable of
the marginal of her equation-i measurement on the j-th coordinate.
Equations
- strat.aliceObs i j = MIPRE.LCS.observableOfMeasurementSystem (MIPRE.LCS.inducedMeasurementSystem (strat.E i) fun (x : G.Assignment i) => x j)
Instances For
Bob's derived observable F j 0 - F j 1 for variable j.
Equations
- strat.bobObs j = MIPRE.LCS.observableOfMeasurementSystem (strat.F j)
Instances For
The product of Alice's observables for all variables in equation i.
Equations
- strat.aliceRowProd i = (G.V i).attach.noncommProd (fun (j : ↥(G.V i)) => strat.aliceObs i j) ⋯