Observable-based Strategy for LCS Games #
This module defines the data structure for a strategy in a Linear Constraint System (LCS) game using the observable formalism. In this formalism, players choose observables (self-adjoint involutive operators) instead of projectors.
Key Definitions #
ObservableStrategy: The data representing an observable strategy, including:alice_obs,bob_obs: The observables for Alice and Bob.sameEquation_comm: The local commutativity of Alice's observables within an equation.alice_bob_commute: The global commutativity between Alice's and Bob's observables.
structure
ObservableStrategy
(R : Type u_1)
[Ring R]
[StarRing R]
[Algebra ℂ R]
[StarModule ℂ R]
(G : LCSLayout)
:
Type u_1
- alice_observable (j : Fin G.s) : IsObservable (self.alice_obs j)
- bob_observable (j : Fin G.s) : IsObservable (self.bob_obs j)
Instances For
Equations
- bipartiteAliceLift M = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) M 1
Instances For
Equations
- bipartiteBobLift M = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) 1 M
Instances For
theorem
bipartiteAliceLift_observable
{n : Type u_1}
[Fintype n]
[DecidableEq n]
{M : Matrix n n ℂ}
(h : IsObservable M)
:
theorem
bipartiteBobLift_observable
{n : Type u_1}
[Fintype n]
[DecidableEq n]
{M : Matrix n n ℂ}
(h : IsObservable M)
:
theorem
bipartite_alice_bob_commute
{n : Type u_1}
[Fintype n]
[DecidableEq n]
(M N : Matrix n n ℂ)
:
theorem
bipartiteAliceLift_commute
{n : Type u_1}
[Fintype n]
[DecidableEq n]
{M N : Matrix n n ℂ}
(h : Commute M N)
:
structure
BipartiteObservableStrategy
(n : Type u_1)
[Fintype n]
[DecidableEq n]
(G : LCSLayout)
:
Type u_1
- is_observable (j : Fin G.s) : IsObservable (self.obs j)
Instances For
noncomputable def
BipartiteObservableStrategy.toObservableStrategy
{n : Type u_1}
[Fintype n]
[DecidableEq n]
{G : LCSLayout}
(strat : BipartiteObservableStrategy n G)
:
ObservableStrategy (Matrix (n × n) (n × n) ℂ) G
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
BipartiteObservableStrategy.alice_obs_eq
{n : Type u_1}
[Fintype n]
[DecidableEq n]
{G : LCSLayout}
(strat : BipartiteObservableStrategy n G)
(j : Fin G.s)
:
@[simp]
theorem
BipartiteObservableStrategy.bob_obs_eq
{n : Type u_1}
[Fintype n]
[DecidableEq n]
{G : LCSLayout}
(strat : BipartiteObservableStrategy n G)
(j : Fin G.s)
:
@[simp]
theorem
BipartiteObservableStrategy.alice_observable_eq
{n : Type u_1}
[Fintype n]
[DecidableEq n]
{G : LCSLayout}
(strat : BipartiteObservableStrategy n G)
(j : Fin G.s)
:
@[simp]
theorem
BipartiteObservableStrategy.bob_observable_eq
{n : Type u_1}
[Fintype n]
[DecidableEq n]
{G : LCSLayout}
(strat : BipartiteObservableStrategy n G)
(j : Fin G.s)
:
@[simp]
theorem
BipartiteObservableStrategy.sameEquation_comm_eq
{n : Type u_1}
[Fintype n]
[DecidableEq n]
{G : LCSLayout}
(strat : BipartiteObservableStrategy n G)
(i : Fin G.r)
(j k : ↥(G.V i))
(hjk : j ≠ k)
: