# CV Multiplicativity

An objective of this software is to identify when parallel quantum channels have a communication value greater than the product of its constituents.

This super-multiplicativity is a nonclassical feature of quantum communication systems that results from the entanglement across the input and output Hilbert spaces of the two parallel channels. We define the communication value of two quantum channels $\;\mathcal{N}$ and $\;\mathcal{M}$ as super-multiplicative when

$$$\text{cv}(\mathcal{N})\text{cv}(\mathcal{M}) < \text{cv}(\mathcal{N}\otimes\mathcal{M}).$$$

For classical channels, the input and output Hilbert spaces are separable, hence, the communication value is always found to be multiplicative (equality holds for the above expression).

## Certifying Super-Multiplicativity

To numerically verify that the communication value of two (or more) channels is super-multiplicative we take the following approach:

1. Use the dual of pptCV to evaluate an upper bound for $\;\text{cv}(\mathcal{N})$.
2. Use the seesawCV to evaluate a lower bound for $\;\text{cv}(\mathcal{N}\otimes\mathcal{N})$.
3. Super-multiplicativity is confirmed if $\;\text{pptCV}(\mathcal{N}, \text{:dual})^2 < \text{seesawCV}(\mathcal{N}\otimes\mathcal{N})$.

Since the :dual of pptCV and seesawCV loosely bound the communication value. A confirmation of super-multiplicativity is certain however, false negatives may occur. For channels satisfying $\;\text{SEP}(A\;:\;B) = \text{PPT}(A\;:\;B)$ the pptCV method computes the exact communication value. For this case, we provide the following utility:

CVChannel.pptCVMultiplicativityFunction
pptCVMultiplicativity(
channel1 :: Choi,
channel2 :: Choi;
singular_method::Symbol = :primal,
parallel_method::Symbol = :dual
) :: Vector

This function takes the Choi operators of two channels channel1 ($\mathcal{N}_{A_{1} \to B_{1}}$) and channel2 ($\mathcal{M}_{A_{2} \to B_{2}}$) and returns as an array:

[
pptCV( channel1 ),
pptCV( channel2 ),
pptCV( channel1 ⊗ channel2 ),
pprt( channel1 ⊗ channel2 ) - pptCV( channel1 ) * pptCV( channel2 )
]

By default, it uses pptCVPrimal for the single channel uses, as this provides a lower bound, and pptCVDual for the parallel case, as this is always an upper bound. These defaults can be overridden with the keyword args singular_method and parallel_method which each accept the symbol values :primal and :dual.

pptCVMultiplicativity(
JN :: Matrix,
Ndin :: Int,
Ndout :: Int,
JM :: Matrix,
Mdin :: Int,
Mdout :: Int;
step1isdual = false :: Bool,
step2isprimal = false :: Bool
) :: Vector

This function takes the Choi operators of two channels $\mathcal{N}_{A_{1} \to B_{1}}$ and $\mathcal{M}_{A_{2} \to B_{2}}$ along with their input and output dimensions and returns $\text{pptCV}(\mathcal{N})$, $\text{pptCV}(\mathcal{M})$, and $\text{pptCV}(\mathcal{N}\otimes \mathcal{M})$. By default, it uses pptCVPrimal for the single channel values, as this provides a lower bound, and pptCVDual for the parallel case, as this is always an upper bound. If the dimension is such that the dual can't be used, there is an optional argument for using pptCVPrimal. There is also an optional argument to use pptCVDual for single channel values.

## N-Fold Werner-Holevo Channel

CVChannel.wernerHolevoCVPPTFunction
wernerHolevoCVPPT(
n :: Int64
d :: Int64,
A :: Matrix{Float64},
B :: Matrix{Float64},
g :: Matrix{Float64},
a :: Matrix{Float64}
):: Tuple{Float64, Matrix{Float64}}

This function evaluates the linear program for the PPT relaxation of the communication value of the Werner-Holevo channel. The LP is written

$$$\max \{\langle a, v \rangle : Ax \geq 0 , Bx \geq 0 , \langle g , v \rangle = 1 \}$$$

This function takes as inputs: $n$, the number of Werner-Holevo channels, $d$, the dimension of every Werner-Holevo Channel, and the constraints $A,B,g,a$ which are obtained from generalWHLPConstraints outputs. It returns the cvPPT value and the optimizer.

Warning

For $n \geq 10$ the solver may be slow.

CVChannel.generalWHLPConstraintsFunction
generalWHLPConstraints(
n :: Int,
d :: Int,
λ_vec :: Union{Vector{Float64},Vector{Int64}}
) :: Tuple{Matrix{Float64},Matrix{Float64},Matrix{Float64},Matrix{Float64}}

This function returns the linear program constraints for calculating the PPT communication value of the Werner-Holevo channels run in parallel for arbitrary $n$. $n$ is the number of Werner-Holevo channels, $d$ is the dimension of every Werner-Holevo channel (assumed to be the same), and $\lambda_{\text{vec}}$ is such that $\lambda_{\text{vec}}[i]$ is the λ parameter for the $i^{th}$ Werner-Holevo channel. The returned matrices represent the linear maps enforcing the constraints on the optimizer. $A$ is the poistivity constraint, $B$ is the PPT constraint, $g$ is the trace constraint, and $a$ defines the objective function.

Warning

It takes $O(n2^{2n})$ steps to generate. If one wants a large dimension, we suggest you save the resulting constraints.

CVChannel.WHIDLPFunction
WHIDLP(
d1 :: Int64,
d2 :: Int64,
λ :: Union{Int,Float64}
) :: Float64

This function implements the linear program (LP) to determine the communication value of the Werner-Holevo channel tensored with the identity channel, when the problem is relaxed to optimizing over the PPT cone. (See cite for derivation). d1,d2 are the input-output dimensions of the Werner-Holevo and identity channel respectively. λ is the parameter defining the Werener-Holevo channel.