Local isometries between ancilla extensions #
The introspection analysis moves a strategy between extensions of one bipartite model by finite
registers (BipartiteModel.expand): it splits a register into two, relabels one, adjoins one on
which the strategy does nothing, reads a register on the other player's side, and adjoins the
answer register of a Naimark dilation. In the tensor-product model each of these is a
permutation of computational basis labels of ℂ^{register} ⊗ ℂ^{d}
(MIPRE.Introspection.registerOp, registerParty, registerExtend). In a bipartite model each
is a local isometry (BipartiteModel.LocalIsometry) carrying the state of one extension exactly
to the state of the other, so that it carries every Born probability and state norm over
(LocalIsometry.bornProb_of_W_ψ, LocalIsometry.stateSqNorm_of_W_ψ). Four of them generate the
rest:
- an inert ancilla (
BipartiteModel.inert):MintoM.expand efor a unit vectore, the players' operators acting asX ⊗ 1; - a relabelling of the registers (
BipartiteModel.relabel); - associativity (
BipartiteModel.assoc): an extension of an extension is an extension by the product registers, the players' block matrices of block matrices becoming block matrices (Matrix.comp); - the exchange of the players (
BipartiteModel.swapExpand): the extension of the exchanged model is the exchanged extension.
The entrywise action of an extension's operators (expand_π_πA_apply, expand_π_πB_apply) is
what every intertwining identity here reduces to.
Isometries of ℓ² sums #
The isometry of ℓ² sums induced by a bijection of the index sets: (v ↦ v ∘ e).
Equations
Instances For
The ℓ² sum of ℓ² sums, as one ℓ² sum over the pairs of indices.
Equations
- One or more equations did not get rendered due to their size.
Instances For
One ℓ² sum over the pairs of indices, as the ℓ² sum of ℓ² sums.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Matrices over a star ring as ⋆-homomorphisms #
The constant diagonal X ↦ X ⊗ 1, as a ⋆-homomorphism.
Equations
- MIPRE.diagHom = { toFun := fun (X : R) => Matrix.diagonal fun (x : α) => X, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯, map_star' := ⋯ }
Instances For
Block matrices of block matrices as block matrices over the pairs (Matrix.comp), as a
⋆-homomorphism.
Equations
- MIPRE.compHom = { toFun := fun (X : Matrix α' α' (Matrix α α R)) => (Matrix.comp α' α' α α R) X, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯, map_star' := ⋯ }
Instances For
Block matrices over pairs as block matrices of block matrices, the inverse of compHom.
Equations
- MIPRE.uncompHom = { toFun := fun (X : Matrix (α' × α) (α' × α) R) => (Matrix.comp α' α' α α R).symm X, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯, map_star' := ⋯ }
Instances For
The action of an extension, entry by entry #
A vector of an extension is a vector of the ℓ² sum Ampl (α × β) M.H, definitionally but not
syntactically; BipartiteModel.ampl is that identification, as an isometry, so that the
components of a vector of an extension can be read and rewritten.
The Hilbert space of an extension is the ℓ² sum.
Equations
- M.ampl e = LinearIsometryEquiv.refl ℂ (MIPRE.OperatorMatrix.Ampl (α × β) M.H)
Instances For
Two vectors of an extension are equal if their components are.
The first player's operators of an extension act on the first register.
The second player's operators of an extension act on the second register.
An inert ancilla #
The vector e ⊗ v of the ℓ² sum.
Equations
- M.tensorLeft e = { toFun := fun (v : M.H) => WithLp.toLp 2 fun (p : α × β) => e p • v, map_add' := ⋯, map_smul' := ⋯ }
Instances For
v ↦ e ⊗ v, an isometry into the extension for a unit vector e.
Equations
- M.ancillaIsometry e he = (M.ampl e).symm.toLinearIsometry.comp (let __LinearMap := M.tensorLeft e; { toLinearMap := __LinearMap, norm_map' := ⋯ })
Instances For
An inert ancilla in the unit vector e: M into its extension, the players' operators
acting as X ⊗ 1. It carries the state of M to the state of the extension.
Equations
- M.inert e he = { W := M.ancillaIsometry e he, ΦA := MIPRE.diagHom, ΦB := MIPRE.diagHom, intertwineA := ⋯, intertwineB := ⋯ }
Instances For
Relabelling the registers #
The isometry of the extensions relabelling the registers along f and g.
Equations
- M.relabelIsometry e e' f g = (M.ampl e').symm.toLinearIsometry.comp ((MIPRE.OperatorMatrix.amplReindex (f.prodCongr g)).comp (M.ampl e).toLinearIsometry)
Instances For
A relabelling of the registers, along bijections f and g, from the extension in e
to the extension in the relabelled vector e'.
Equations
- M.relabel e e' f g = { W := M.relabelIsometry e e' f g, ΦA := MIPRE.submatrixHom f, ΦB := MIPRE.submatrixHom g, intertwineA := ⋯, intertwineB := ⋯ }
Instances For
Associativity #
The isometry of an extension of an extension onto the extension by the product registers.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Associativity: the extension in e' of the extension in e into the extension by the
product registers, in any vector e'' that is the product of the two.
Equations
- M.assoc e e' e'' = { W := M.assocIsometry e e' e'', ΦA := MIPRE.compHom, ΦB := MIPRE.compHom, intertwineA := ⋯, intertwineB := ⋯ }
Instances For
Exchanging the players #
The isometry of the exchanged extension onto the extension of the exchanged model.
Equations
- M.swapIsometry e e' = (M.swap.ampl e').symm.toLinearIsometry.comp ((MIPRE.OperatorMatrix.amplReindex (Equiv.prodComm β α)).comp (M.ampl e).toLinearIsometry)
Instances For
The exchange of the players: the exchanged extension into the extension of the exchanged model, in the exchanged vector.
Equations
- M.swapExpand e e' = { W := M.swapIsometry e e', ΦA := NonUnitalStarAlgHom.id ℂ (Matrix β β ℬ), ΦB := NonUnitalStarAlgHom.id ℂ (Matrix α α 𝒜), intertwineA := ⋯, intertwineB := ⋯ }