diff --git a/codes/eacq.yml b/codes/eacq.yml index 1bec92812..5537ac518 100644 --- a/codes/eacq.yml +++ b/codes/eacq.yml @@ -34,8 +34,8 @@ features: relations: cousins: - - code_id: oaecc - detail: 'EQ hybrid codes utilize additional ancillary subsystems in a pre-shared entangled state, but reduce to operator-algebra QECCs when said subsystems are interpreted as noiseless physical subsystems.' + - code_id: hybridqecc + detail: 'EQ hybrid codes utilize additional ancillary subsystems in a pre-shared entangled state, but reduce to hybrid QECCs when said subsystems are interpreted as noiseless physical subsystems.' # Begin Entry Meta Information diff --git a/codes/oaecc.yml b/codes/oaecc.yml index 42adce1d2..64ad754ec 100644 --- a/codes/oaecc.yml +++ b/codes/oaecc.yml @@ -5,16 +5,16 @@ code_id: oaecc -name: 'Operator-algebra QECC' +name: 'Operator-algebra QECC (OAQECC)' short_name: 'OAQECC' introduced: '\cite{arxiv:quant-ph/0608071,arxiv:0705.1574,arxiv:1005.0353,doi:10.1142/S0219749908003839,arxiv:2012.14001}' description: |- - A code that encompasses both subsystem codes and hybrid codes using an operator-algebraic framework. + A code family that encompasses ordinary (i.e., subspace) codes, subsystem codes, and hybrid codes using a unified operator-algebraic framework. - A simple example of an OAQECC encodes both a single logical qubit in a subsystem code and a single classical bit in some Hilbert space \(\mathsf{H}\). - A different quantum subsystem code \(\mathsf{A}_j\otimes\mathsf{B}_j\), with \(\mathsf{A}_j\) the logical qubit factor and \(\mathsf{B}_j\) the gauge qubit factor, is associated with each of the two values \(j\in\{0,1\}\) of the classical bit. - The corresponding decomposition is + A simple example of an OAQECC encodes a single logical qubit in a subsystem code and a single classical bit. + A different quantum subsystem code \(\mathsf{A}_j\otimes\mathsf{B}_j\), with \(\mathsf{A}_j\) the logical qubit factor, and \(\mathsf{B}_j\) the gauge qubit factor, is associated with each of the two values \(j\in\{0,1\}\) of the classical bit. + The corresponding decomposition of the Hilbert space \(\mathsf{H}\) is \begin{align} \mathsf{H}=(\mathsf{A}_{1}\otimes\mathsf{B}_{1})\oplus(\mathsf{A}_{2}\otimes\mathsf{B}_{2})\oplus\mathsf{C}^{\perp}~, \end{align} @@ -23,20 +23,20 @@ description: |- More generally, the code is determined by a finite dimensional \(C^*\) algebra \(\mathcal{A}\) of operators on \(\mathsf{H}\). This \textit{logical algebra} induces a decomposition of the Hilbert space as - \begin{align}\mathsf{H} = \bigoplus_\gamma A_\gamma \otimes B_\gamma,\end{align} + \begin{align}\mathsf{H} = \bigoplus_\gamma \mathsf{A}_\gamma \otimes \mathsf{B}_\gamma,\end{align} with respect to which \(\mathcal{A}\) takes the form - \begin{align}\mathcal{A} = \bigoplus_\gamma I_\gamma \otimes \mathcal{L}(B_\gamma),\end{align} - where \(\mathcal{L}(B_\gamma)\) denotes the full set of linear maps on \(B_\gamma\). + \begin{align}\mathcal{A} = \bigoplus_\gamma I_\gamma \otimes \mathcal{L}(\mathsf{B}_\gamma),\end{align} + where \(\mathcal{L}(\mathsf{B}_\gamma)\) denotes the full set of linear maps on \(\mathsf{B}_\gamma\). protection: | Given an error operation \(\mathcal{E}\), one says that \(\mathcal{A}\) is \textit{correctable} for \(\mathcal{E}\) if there exists a recovery operation \(\mathcal{R}\) such that - \begin{align}P_{\mathcal{A}} (\mathcal{R} \circ \mathcal{E})^\dagger(X) P_{\mathcal{A}} = X\end{align} for all \(X \in \mathcal{A}\), where \(P_{\mathcal{A}}\) is the unit projection onto \(\mathcal{A}\). + \begin{align}\Pi_{\mathcal{A}} (\mathcal{R} \circ \mathcal{E})^\dagger(X) \Pi_{\mathcal{A}} = X\end{align} for all \(X \in \mathcal{A}\), where \(\Pi_{\mathcal{A}}\) is the unit projection onto \(\mathcal{A}\). - Equivalently, \(\mathcal{A}\) is correctable for \(\mathcal{E}\) if there exists a recovery operation \(\mathcal{R}\) such that for any \(\gamma\) and density operators \(\rho_\gamma,\sigma_\gamma\) supported on \(A_\gamma\) and \(B_\gamma\), respectively, there exists a state \(\tau_\gamma\) supported on \(A_\gamma\) such that + Equivalently, \(\mathcal{A}\) is correctable for \(\mathcal{E}\) if there exists a recovery operation \(\mathcal{R}\) such that for any \(\gamma\) and density operators \(\rho_\gamma,\sigma_\gamma\) supported on \(\mathsf{A}_\gamma\) and \(\mathsf{B}_\gamma\), respectively, there exists a state \(\tau_\gamma\) supported on \(A_\gamma\) such that \begin{align}(\mathcal{R} \circ \mathcal{E})(\rho_\gamma \otimes \sigma_\gamma) = \tau_\gamma \otimes \sigma_\gamma.\end{align} An algebraic condition for correctability can be given in terms of the Kraus operators \(E_j\) of \(\mathcal{E}\). - Indeed, \(\mathcal{A}\) is correctable for \(\mathcal{E}\) if \begin{align}P_{\mathcal{A}} E_j^\dagger E_k P_{\mathcal{A}} \in \mathcal{A}'\end{align} + Indeed, \(\mathcal{A}\) is correctable for \(\mathcal{E}\) if \begin{align}\Pi_{\mathcal{A}} E_j^\dagger E_k \Pi_{\mathcal{A}} \in \mathcal{A}'\end{align} for all \(j,k\), where \(\mathcal{A}'\) is the commutant of \(\mathcal{A}\). Tradeoffs between error correction and privacy have been studied \cite{arxiv:1811.10425}. diff --git a/codes/quantum/hybridqecc.yml b/codes/quantum/hybridqecc.yml index 04f9546da..346d3fe03 100644 --- a/codes/quantum/hybridqecc.yml +++ b/codes/quantum/hybridqecc.yml @@ -12,14 +12,13 @@ introduced: '\cite{arxiv:quant-ph/0203105,arXiv:quant-ph/0311131,arxiv:quant-ph/ description: | A quantum code which encodes both quantum and classical information. - Usually denoted as \(((n,K:M))\) or \(((n,K:M,d))\), where \(K\) is the dimension of the underlying quantum code, where \(M\) is the size of the classical code, and where \(d\) is the distance. A simple example of a hybrid QECC encodes a single qubit and a single classical bit. A different quantum code \(\mathsf{C}_j\) is associated with each of the two values \(j\in\{0,1\}\) of the classical bit. The error words corresponding to correctable errors must satisfy the \term{Knill-Laflamme conditions} for each code \cite[Eq. (3)]{arxiv:1701.06963}, and error words beloning to different codes must be orthogonal to each other \cite[Eq. (4)]{arxiv:1701.06963}. - The corresponding decomposition of the hilbert space is + The corresponding decomposition of the Hilbert space \(\mathsf{H}\) is \begin{align} - \mathsf{C}_{1}\oplus\mathsf{C}_{2}\oplus\mathsf{C}^{\perp}~, + \mathsf{H} = \mathsf{C}_{1}\oplus\mathsf{C}_{2}\oplus\mathsf{C}^{\perp}~, \end{align} where \(\mathsf{C}^\perp\) is the combined error space of both codes. @@ -33,7 +32,7 @@ features: relations: parents: - code_id: oaecc - detail: 'An OAQECC which has no gauge qubits but has a block structure that corresponds to a classical code is a hybrid QECC.' + detail: 'An OAQECC which has no gauge structure (e.g., gauge qubits) but has a block structure that corresponds to a classical code is a hybrid QECC.' - code_id: quantum_into_quantum cousins: - code_id: qecc diff --git a/codes/quantum/oecc.yml b/codes/quantum/oecc.yml index 5ecf39fea..36554d402 100644 --- a/codes/quantum/oecc.yml +++ b/codes/quantum/oecc.yml @@ -33,7 +33,7 @@ notes: relations: parents: - code_id: oaecc - detail: 'An OAQECC which has gauge qubits but no block structure is a subsystem QECC.' + detail: 'An OAQECC which has gauge structure (e.g., gauge qubits) but no block structure is a subsystem QECC.' - code_id: quantum_into_quantum cousins: - code_id: qecc diff --git a/codes/quantum/oscillators/stabilizer/lattice/multimodegkp.yml b/codes/quantum/oscillators/stabilizer/lattice/multimodegkp.yml index a4ef273ae..80a065285 100644 --- a/codes/quantum/oscillators/stabilizer/lattice/multimodegkp.yml +++ b/codes/quantum/oscillators/stabilizer/lattice/multimodegkp.yml @@ -16,6 +16,8 @@ description: | The centralizer for the stabilizer group within the displacement operators case can be identified with the symplectic dual lattice \({\mathcal{L}}^{\perp}\) (i.e. all points in \(\mathbb{R}^{2n}\) that have integer symplectic inner product with all points in \({\mathcal{L}}\) ), such that logical operations are identified with the dual quotients \({\mathcal{L}}^{\perp}/{\mathcal{L}}\). The size of this dual quotient is the determinant of the Gram matrix, yielding the logical dimension \(d=\sqrt{\| \det{A}\|}\) \cite{arxiv:quant-ph/0008040}. + The space of all single-mode GKP codes is the moduli space of elliptic curves, i.e., the three sphere with a trefoil knot removed \cite{arXiv:2407.03270}. + protection: 'The level of protection against displacement errors is quantified by the Euclidean code distance \(\Delta=\min_{x\in {\mathcal{L}}^{\perp}\setminus {\mathcal{L}}} \|x\|_2\) \cite{arxiv:2109.14645}.' features: @@ -33,7 +35,9 @@ features: - 'By applying GKP error correction to Gaussian input states, computational universality can be achieved without additional non-Gaussian elements \cite{arxiv:1903.00012}.' fault_tolerance: - - 'Logical Clifford operations are given by Gaussian unitaries, which map bounded-size errors to bounded-size errors \cite{arxiv:quant-ph/0008040}.' + - 'Logical Clifford operations are given by Gaussian unitaries, which map bounded-size errors to bounded-size errors \cite{arxiv:quant-ph/0008040}. + For single-mode GKP codes, these operations correspond to non-trivial loops in the space of all single-mode GKP codes (the moduli space of elliptic curves, i.e., the three sphere with a trefoil knot removed) \cite{arXiv:2407.03270}. + Such gates provide another example of monodromy under the particular notion of parallel transport introduced in Ref. \cite{arxiv:1309.7062}.' decoders: - 'The MLD decoder for Gaussian displacement errors is realized by evaluating a lattice theta function, and in general the decision can be approximated by either solving (approximating) the closest vector problem (CVP) \cite{doi:10.1109/TIT.2002.800499} (a.k.a. closest lattice point problem) or by using other effective iterative schemes when, e.g., the lattice represents a concatenated GKP code \cite{arxiv:1810.00047,arxiv:1908.03579,arxiv:2109.14645,arxiv:2111.07029}. diff --git a/codes/quantum/properties/qecc.yml b/codes/quantum/properties/qecc.yml index 3787c6290..fee3e7329 100644 --- a/codes/quantum/properties/qecc.yml +++ b/codes/quantum/properties/qecc.yml @@ -68,7 +68,7 @@ relations: - code_id: approximate_qecc detail: 'QAECCs correcting a noise channel exactly reduce to QECCs.' - code_id: oaecc - detail: 'An OAQECC which has no gauge qubits and no block structure is a QECC.' + detail: 'An OAQECC which has no gauge degrees of freedom (e.g., gauge qubits) and no block structure is a QECC.' cousins: - code_id: ecc detail: 'Quantum information cannot be copied using a linear process \cite{doi:10.1038/299802a0}, so one cannot send several copies of a quantum state through a channel as can be done for classical information. diff --git a/codes/quantum/qubits/oa_stabilizer/hybrid_7_1-1_3.yml b/codes/quantum/qubits/oa/hybrid_7_1-1_3.yml similarity index 100% rename from codes/quantum/qubits/oa_stabilizer/hybrid_7_1-1_3.yml rename to codes/quantum/qubits/oa/hybrid_7_1-1_3.yml diff --git a/codes/quantum/qubits/oa_stabilizer/hybrid_8_2-1_3.yml b/codes/quantum/qubits/oa/hybrid_8_2-1_3.yml similarity index 100% rename from codes/quantum/qubits/oa_stabilizer/hybrid_8_2-1_3.yml rename to codes/quantum/qubits/oa/hybrid_8_2-1_3.yml diff --git a/codes/quantum/qubits/hybrid_qubits_into_qubits.yml b/codes/quantum/qubits/oa/hybrid_qubits_into_qubits.yml similarity index 78% rename from codes/quantum/qubits/hybrid_qubits_into_qubits.yml rename to codes/quantum/qubits/oa/hybrid_qubits_into_qubits.yml index 01d074330..1baaaaa79 100644 --- a/codes/quantum/qubits/hybrid_qubits_into_qubits.yml +++ b/codes/quantum/qubits/oa/hybrid_qubits_into_qubits.yml @@ -24,10 +24,13 @@ protection: | relations: parents: + - code_id: oa_qubits_into_qubits + detail: 'An OA qubit code which has no gauge qubits but has a block structure that corresponds to a classical code is a hybrid qubit code.' - code_id: hybridqecc cousins: - code_id: qubits_into_qubits - detail: 'Any qubit code can be converted into a hybrid qubit code by using some its qubits to store only classical information \cite{arxiv:0802.2414}.' + detail: 'A hybrid qubit code storing no classical information reduces to a qubit code. + Conversely, any qubit code can be converted into a hybrid qubit code by using some its qubits to store only classical information \cite{arxiv:0802.2414}.' - code_id: qubit_classical_into_quantum detail: 'A hybrid qubit code storing no quantum information reduces to a qubit c-q code.' diff --git a/codes/quantum/qubits/oa_stabilizer/hybrid_stabilizer.yml b/codes/quantum/qubits/oa/hybrid_stabilizer.yml similarity index 81% rename from codes/quantum/qubits/oa_stabilizer/hybrid_stabilizer.yml rename to codes/quantum/qubits/oa/hybrid_stabilizer.yml index 83b00302f..acd665357 100644 --- a/codes/quantum/qubits/oa_stabilizer/hybrid_stabilizer.yml +++ b/codes/quantum/qubits/oa/hybrid_stabilizer.yml @@ -15,10 +15,8 @@ description: | Usually denoted as \([[n,k:c]]\) or \([[n,k:c,d]]\), where \(k\) (\(c\)) is the number of encoded qubits (classical bits), and where \(d\) is the distance. The algebraic structure of a hybrid stabilizer code is the same as that of a USt code whose cosets are indexed by a linear binary code: - both codes utilize codewords of an inner \([[n,k]]\) qubit stabilizer code \(\mathsf{C}\) and its cosets \(t \mathsf{C}\) by \(2^c\) Pauli strings \(t\), with the coset index \(t\) corresponding to a codeword of the outer \([n,c]\) linear binary code. - However, the hybrid stabilizer code does not utilize superpositions of codewords of \(t \mathsf{C}\) and \(t^{\prime} \mathsf{C}\) for \(t \neq t^{\prime}\). - As such, a hybrid stabilizer code can be thought of as a particular USt code some of whose qubits are used for storing classical information. - + both codes utilize codewords of an inner \([[n,k]]\) qubit stabilizer code \(\mathsf{C}\) and its cosets \(t \mathsf{C}\), where the \(2^c\) Pauli strings \(t\) correspond to the outer \([n,c]\) linear binary code. + However, the hybrid stabilizer code does not utilize superpositions of codewords of \(t \mathsf{C}\) and \(t^{\prime} \mathsf{C}\) for \(t \neq t^{\prime}\) since the different coset blocks correspond to classical codewords. relations: parents: @@ -28,13 +26,14 @@ relations: detail: 'An \([[n,k:c,d]]\) hybrid stabilizer code is an \(((n,2^k:2^c,d))\) hybrid qubit code.' cousins: - code_id: qubit_stabilizer - detail: 'Any qubit stabilizer code can be converted into a hybrid stabilizer code by using some its qubits to store only classical information \cite{arxiv:0802.2414}.' + detail: 'A hybrid stabilizer code storing no classical information reduces to a qubit stabilizer code. + Conversely, any qubit stabilizer code can be converted into a hybrid stabilizer code by using some its qubits to store only classical information \cite{arxiv:0802.2414}.' - code_id: non_stabilizer detail: 'The algebraic structure of a hybrid stabilizer code is the same as that of a USt code whose cosets are indexed by a linear binary code \cite{arxiv:0802.2414}.' - code_id: shor_nine detail: 'The Shor code can be modified to store three additional classical bits to yield a \([[9,1:3,3]]\) hybrid stabilizer code \cite{arxiv:0802.2414}.' - code_id: iceberg - detail: 'The \([[2m+1,2m+2:1,2]]\) hybrid stabilizer code \cite{arxiv:1911.12260} (extendable to modular qudits \cite{arxiv:2002.11075}) is closely related to the \([[2m,2m-2,2]]\) qubit stabilizer code.' + detail: 'The \([[2m+1,2m+2:1,2]]\) hybrid stabilizer code \cite{arxiv:1911.12260} (extendable to modular qudits \cite{arxiv:2002.11075}) is closely related to the \([[2m,2m-2,2]]\) error-detecting code.' - code_id: stab_4_2_2 detail: 'The \([[4,2,2]]\) codewords can be modified by signs to yield a \([[4,1:1,2]]\) hybrid stabilizer code \cite{arxiv:1806.03702}.' - code_id: subsystem_stabilizer diff --git a/codes/quantum/qubits/oa_stabilizer/qubit_stabilizer_oaqecc.yml b/codes/quantum/qubits/oa/qubit_stabilizer_oaqecc.yml similarity index 98% rename from codes/quantum/qubits/oa_stabilizer/qubit_stabilizer_oaqecc.yml rename to codes/quantum/qubits/oa/qubit_stabilizer_oaqecc.yml index da56e4985..afb7c3378 100644 --- a/codes/quantum/qubits/oa_stabilizer/qubit_stabilizer_oaqecc.yml +++ b/codes/quantum/qubits/oa/qubit_stabilizer_oaqecc.yml @@ -28,7 +28,7 @@ protection: |- relations: parents: - - code_id: oaecc + - code_id: oa_qubits_into_qubits cousins: - code_id: bacon_shor detail: 'The OA qubit stabilizer formalism yields hybrid Bacon-Shor codes \cite{arxiv:2304.11442}.' diff --git a/codes/quantum/qubits/oa_qubits_into_qubits.yml b/codes/quantum/qubits/oa_qubits_into_qubits.yml new file mode 100644 index 000000000..9cd3ac708 --- /dev/null +++ b/codes/quantum/qubits/oa_qubits_into_qubits.yml @@ -0,0 +1,24 @@ +####################################################### +## This is a code entry in the error correction zoo. ## +## https://github.com/errorcorrectionzoo ## +####################################################### + +code_id: oa_qubits_into_qubits + +name: 'Operator-algebra (OA) qubit code' +short_name: 'OA qubit' + +description: |- + An OA code defined on \(n\) qubits. + +relations: + parents: + - code_id: oaecc + + +# Begin Entry Meta Information +_meta: + # Change log - most recent first + changelog: + - user_id: VictorVAlbert + date: '2024-07-05' diff --git a/codes/quantum/qubits/qubits_into_qubits.yml b/codes/quantum/qubits/qubits_into_qubits.yml index bb8d26702..ca1d0f1e6 100644 --- a/codes/quantum/qubits/qubits_into_qubits.yml +++ b/codes/quantum/qubits/qubits_into_qubits.yml @@ -132,6 +132,8 @@ notes: relations: parents: + - code_id: oa_qubits_into_qubits + detail: 'An OA qubit code which has no gauge qubits and no block structure is a qubit code.' - code_id: qudits_into_qudits detail: 'Modular-qudit quantum codes for \(q=2\) correspond to qubit codes.' - code_id: galois_into_galois diff --git a/codes/quantum/qubits/subsystem_qubits_into_qubits.yml b/codes/quantum/qubits/subsystem_qubits_into_qubits.yml index e6112923c..c3dd87b25 100644 --- a/codes/quantum/qubits/subsystem_qubits_into_qubits.yml +++ b/codes/quantum/qubits/subsystem_qubits_into_qubits.yml @@ -18,6 +18,8 @@ description: | relations: parents: + - code_id: oa_qubits_into_qubits + detail: 'An OA qubit code which has gauge qubits but no block structure is a subsystem qubit code.' - code_id: subsystem_qudits_into_qudits detail: 'Subsystem modular-qudit codes reduce to subsystem qubit codes for qudit dimension \(q=2\).' - code_id: subsystem_galois_into_galois diff --git a/codetree/kingdoms.yml b/codetree/kingdoms.yml index 97abfa1d6..a30d5af3f 100644 --- a/codetree/kingdoms.yml +++ b/codetree/kingdoms.yml @@ -44,9 +44,8 @@ kingdoms_by_domain_id: name: 'Qubit Kingdom' root_codes: - code_id: qubits_into_qubits - - code_id: hybrid_qubits_into_qubits - code_id: subsystem_qubits_into_qubits - - code_id: qubit_stabilizer_oaqecc + - code_id: oa_qubits_into_qubits - code_id: ea_qubits_into_qubits - code_id: qetc