bound-entangled
Reference implementations of several families of bound entangled states from the quantum information literature, as plain NumPy density matrices.
A bound entangled state is entangled yet has a positive partial transpose (PPT),
so no pure entanglement can be distilled from it. This library collects
constructions that are otherwise scattered across papers into a single, tested
package, each factory returning the density matrix rho of the state.
📖 Documentation — one page per state, with the construction written out and what is known about it.
There is a TypeScript port of this package, also called bound-entangled — see
js/README.md.
Installation
pip install bound-entangled
From a clone (the package lives in the python/ directory):
cd python && pip install -e ".[test]"
Requires Python ≥ 3.9. Depends on toqito and
NumPy.
Usage
Packages are organized by the bipartite Hilbert space the states live in
(c3_otimes_c3 = C³ ⊗ C³, cm_otimes_cn = C^m ⊗ C^n, etc.).
from bound_entangled.c3_otimes_c3 import chessboard_extremal_PPT, tiles_upb, pyramid_upb
from bound_entangled.cd_otimes_cd import yu_oh
from bound_entangled.c5_otimes_c5 import sn3_grid_state
rho = chessboard_extremal_PPT() # 9x9 PPT-entangled chessboard state
rho = yu_oh(full_dim=3, x=0.5, y=0.1) # Yu-Oh nonlocal bound entangled state
The two Horodecki states are both called horodecki, each in the package of the
space it lives in: c2_otimes_c4 and c3_otimes_c3.
States
c2_otimes_c4 — C² ⊗ C⁴
| Factory | State | Reference |
|---|---|---|
horodecki |
2×4 Horodecki bound entangled state | quant-ph/9703004 |
c3_otimes_c3 — C³ ⊗ C³
| Factory | State | Reference |
|---|---|---|
chessboard, chessboard_extremal_PPT |
Bruß–Peres chessboard states | quant-ph/9911056 |
cross_hatch |
3×3 "cross-hatch" grid state (CCNR-detected) | 1705.09261 |
horodecki |
3×3 Horodecki bound entangled state | quant-ph/9703004 |
ncomms6297 |
Rank-4 PPT entangled state from an explicit spectral decomposition | ncomms6297 |
steering_state |
Steerable bound entangled state (counterexample to the stronger Peres conjecture) | 1405.0262 |
tiles_upb, pyramid_upb |
States from the Tiles / Pyramid unextendible product bases | quant-ph/9808030 |
parametrized_upb |
Six-parameter family of UPBs generalizing Tiles / Pyramid | quant-ph/9908070 |
c4_otimes_c4 — C⁴ ⊗ C⁴
| Factory | State | Reference |
|---|---|---|
breuer |
Breuer bound-entangled state (PPT, detected by anti-linear map) | quant-ph/0605036 |
piani |
4×4 Benatti–Floreanini–Piani state | quant-ph/0411095 |
c5_otimes_c5 — C⁵ ⊗ C⁵
| Factory | State | Reference |
|---|---|---|
sn3_grid_state |
Smallest known Schmidt-number-3 PPT bound entangled state | 2402.12966 |
cd_otimes_cd — C^d ⊗ C^d
| Factory | State | Reference |
|---|---|---|
yu_oh, is_valid_yu_oh_input |
Yu–Oh family of nonlocal bound entangled states | 1509.08991 |
gen_tiles1 |
GenTiles1 UPB generalizing Tiles to d⊗d, even d≥4 | quant-ph/9908070 |
badziag_private_singlet |
Bądziąg et al. private-singlet state on C^2d ⊗ C^2d | PRResearch 3, 023101 |
orthogonal_singlet |
ρ_F2, the second family of PPT singlets | PRResearch 3, 023101 |
horodecki_2_by_d_generalized |
C² ⊗ C⁴ Horodecki state generalized to C² ⊗ C^d | 1203.3711 |
cm_otimes_cn — C^m ⊗ C^n (parametric constructions)
| Factory | State | Reference |
|---|---|---|
grid_state |
Quantum grid states from graph edges | 1705.09261 |
generalized_grid_state |
Grid states generalized to hyperedges | 2402.12966 |
gen_tiles2 |
GenTiles2 UPB generalizing Tiles to m⊗n, n>3, m≥3, n≥m | quant-ph/9908070 |
random_NPT, random_PPT, random_PPT_close_to_the_PPT_edge |
Random density matrices by PPT class (rejection sampling) | — |
multipartite — multipartite systems
| Factory | State | Reference |
|---|---|---|
smolin |
Smolin four-party unlockable bound entangled state | quant-ph/0001001 |
generalized_smolin |
Generalized Smolin state on 2n qubits (bound entangled for all even n ≥ 2) | quant-ph/0411142 |
quasi_ds |
Quasi-Dicke bound entangled state on n qubits | ncomms6297 |
utils
| Function | Description |
|---|---|
ketbra(a, b?) |
The outer product |a><b|, defaulting to |a><a|. |
upb(basis) |
The bound entangled state on the orthogonal complement of an unextendible product basis. |
Development
pip install -e ".[test]"
pytest
License
MIT
Metadata
Release files for bound-entangled 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bound_entangled-0.2.0.tar.gz | 20.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bound_entangled-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.5 kB
Release files / bound_entangled-0.2.0.tar.gz
| Download URL | bound_entangled-0.2.0.tar.gz |
|---|---|
| Size | 20.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d6d6c331f5cdf30646a4b07a3fe002e620e5125e4f896ce5e935eb0c6abd42b1
|
|
BLAKE2b-256 checksum How to use checksums |
e1bb5d7d228ca6b56209fcfe98c016658fb95c674ea0d34c83ceb21f08561c0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.
Transparency logRelease files / bound_entangled-0.2.0-py3-none-any.whl
| Download URL | bound_entangled-0.2.0-py3-none-any.whl |
|---|---|
| Size | 30.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ab05a8dd62754400d3ac54bb061726c22aa638b13827750e78bc8cafbc9911cc
|
|
BLAKE2b-256 checksum How to use checksums |
a4977782f7a67b71f98d32a82767c4a4b7ee40ac458125cff3234489a082dffa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.
Transparency log