# SymmetricInnerExtension

SymmetricInnerExtension | |

Determines whether or not an operator has a symmetric inner extension | |

Other toolboxes required | CVX |
---|---|

Related functions | IsPPT IsSeparable SymmetricExtension SymmetricProjection |

Function category | Entanglement and separability |

` SymmetricInnerExtension` is a function that determines whether or not a given positive semidefinite operator is in the cone defined in reference

^{[1]}that approximates the set of separable operators from the inside, based on operators with symmetric extensions. Importantly, if this script returns a value of

`1`then we know that the given operator is separable (if the script returns a value of

`0`, we know nothing about whether the operator is separable or entangled).

## Syntax

`EX = SymmetricInnerExtension(X)``EX = SymmetricInnerExtension(X,K)``EX = SymmetricInnerExtension(X,K,DIM)``EX = SymmetricInnerExtension(X,K,DIM,PPT)``EX = SymmetricInnerExtension(X,K,DIM,PPT,TOL)``[EX,WIT] = SymmetricInnerExtension(X,K,DIM,PPT,TOL)`

## Argument descriptions

### Input arguments

`X`: A positive semidefinite operator.`K`(optional, default 2): The number of copies of the second subsystem in the desired symmetric extension.`DIM`(optional, by default has both subsystems of equal dimension): A 1-by-2 vector containing the dimensions of the two subsystems that`X`acts on.`PPT`(optional, default 0): A flag (either 1 or 0) that indicates whether or not the desired symmetric extension must have positive partial transpose.`TOL`(optional, default`eps^(1/4)`): The numerical tolerance used throughout this script. It is recommended that this is left at the default value unless numerical problems arise and the script has difficulty determining whether or not`X`has a symmetric inner extension.

### Output arguments

`EX`: A flag (either 1 or 0) indicating that`X`does or does not have a symmetric inner extension of the desired type. A value of 1 means that`X`is separable.`WIT`(optional): A witness that verifies that the answer provided by`EX`is correct. If`EX = 1`(i.e.,`X`is in the "inner" symmetric extension cone) then`WIT`is a symmetric extension of the operator \(\sigma_{AB}\) from^{[1]}, and thus acts as a witness that verifies that`EX = 1`is correct. If`X`is not in this cone (i.e.,`EX = 0`) then`WIT`is an operator with`trace(WIT*X) = -1`but`trace(WIT*Y) >= 0`for all operators in the described cone. Note that`WIT`may not be an entanglement witness!

## Examples

The following code takes an unnormalized quantum state and shows that it is separable, since it has a symmetric inner extension.

```
>> rho = [11 4 -1 -1 -1 -1 -1 -1 -1
4 11 -1 -1 -1 -1 -1 -1 -1
-1 -1 11 -1 -1 4 -1 -1 -1
-1 -1 -1 11 -1 -1 4 -1 -1
-1 -1 -1 -1 16 -1 -1 -1 -1
-1 -1 4 -1 -1 11 -1 -1 -1
-1 -1 -1 4 -1 -1 11 -1 -1
-1 -1 -1 -1 -1 -1 -1 11 4
-1 -1 -1 -1 -1 -1 -1 4 11];
>> SymmetricInnerExtension(rho,2,[3,3],1) % we set PPT=1, since this makes the separability test stronger
ans =
1
```

If we subtract the identity from `rho`, then intuitively it becomes "less separable". We can verify this as follows, where we see that setting `K = 2` is no longer sufficient to prove that the state is separable, and instead we must set `K = 3`. In general, the higher `K` is, the stronger the test for separability is, but the longer and more memory-intensive the computation is.

```
>> SymmetricInnerExtension(rho-eye(9),2,[3,3],1)
ans =
0
>> SymmetricInnerExtension(rho-eye(9),3,[3,3],1)
ans =
1
```

## Notes

If your goal is to prove that an operator is separable, it is probably in your best interest to see the optional argument `PPT` to `1`. It only defaults to `0` to be consistent with the `SymmetricExtension` function.

## Source code

Click here to view this function's source code on github.

## References

- ↑
^{1.0}^{1.1}M. Navascués, M. Owari, and M. B. Plenio. Complete Criterion for Separability Detection.*Physical Review Letters*, 103:160404, 2009. E-print: arXiv:0906.2735 [quant-ph]