# 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:

- Use the dual of
`pptCV`

to evaluate an upper bound for $\;\text{cv}(\mathcal{N})$. - Use the
`seesawCV`

to evaluate a lower bound for $\;\text{cv}(\mathcal{N}\otimes\mathcal{N})$. - 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.pptCVMultiplicativity`

— Function```
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.wernerHolevoCVPPT`

— Function```
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.

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

`CVChannel.generalWHLPConstraints`

— Function```
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.

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

`CVChannel.WHIDLP`

— Function```
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.