Skip to content

Commit

Permalink
self-dual CSS
Browse files Browse the repository at this point in the history
  • Loading branch information
valbert4 committed Aug 27, 2024
1 parent 8164429 commit 7fd5743
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 11 deletions.
6 changes: 4 additions & 2 deletions codes/quantum/qubits/majorana/majorana_stab.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,15 @@ relations:
- code_id: qubit_stabilizer
detail: |
The Majorana stabilizer code is a stabilizer code whose stabilizers are composed of Majorana fermion operators.
In addition, any \([[n,k,d]]\) stabilizer code can be mapped into a \([[2n,k,2d]]_{f}\) Majorana stabilizer code \cite{arxiv:cond-mat/0506438,arxiv:1004.3791}.
In addition, any \([[n,k,d]]\) stabilizer code can be mapped into a \([[2n,k,2d]]_{f}\) Majorana stabilizer code \cite{arxiv:cond-mat/0506438}\cite[Lemma 1]{arxiv:1004.3791}.
cousins:
- code_id: dual
detail: 'Classical self-orthogonal codes can be used to construct Majorana stabilizer codes \cite{arxiv:1703.00459}. The direct relationship between the two codes follows from expressing the Majorana strings as binary vectors – akin to the \hyperref[topic:binary-symplectic-representation]{symplectic representation} – and observing that the binary stabilizer matrix \(S\) for such a Majorana stabilizer code satisfies \(S\cdot S^T=0\) because it has commuting stabilizers, which is precisely the condition \(G\cdot G^T=0\) on the generator matrix \(G\) of a self-orthogonal classical code. A self-orthogonal classical code \(C\) with parameters \([2N,k,d]\) yields a Majorana stabilizer code with parameters \([[N,N-k,d^\perp]]_f\), where \(d^\perp\) is the code distance of the dual code \(C^\perp\).'
- code_id: qubit_css
detail: 'When constructing a Majorana stabilizer code from a self-orthogonal classical code with an odd number of bits and generator matrix \(G\), a more complex procedure must be applied to ensure that the fermion code has an even number of Majorana zero modes, and thus a physical Hilbert space \cite{arxiv:1004.3791,arxiv:1703.00459}. Rather than taking \(G\) to be the stabilizer matrix as in the even case, we take \(G\oplus G\). This is a concatenation of classical codes as in the CSS construction and it yields a mapping \([2N-1,k,d]\rightarrow [[2N-1,2N-1-k,d^\perp]]_f\). This procedure may be further generalized by concatenating two different self-orthogonal classical codes with an odd number of bits, as is often done in the CSS construction.'
detail: 'Every \([[n,k,d]]_f) Majorana stabilizer code is associated with a \([[2n,2k,d]]\) self-dual qubit CSS code \cite[Lemma 2]{arxiv:1004.3791}.'
- code_id: binary_linear
detail: 'When constructing a Majorana stabilizer code from a self-orthogonal classical code with an odd number of bits and generator matrix \(G\), a more complex procedure must be applied to ensure that the fermion code has an even number of Majorana zero modes, and thus a physical Hilbert space \cite{arxiv:1004.3791,arxiv:1703.00459}. Rather than taking \(G\) to be the stabilizer matrix as in the even case, we take \(G\oplus G\). This is a concatenation of classical codes as in the CSS construction and it yields a mapping \([2n-1,k,d]\rightarrow [[2n-1,2n-1-k,d^\perp]]_f\). This procedure may be further generalized by concatenating two different self-orthogonal classical codes with an odd number of bits, as is often done in the CSS construction.'
- code_id: binary_cyclic
detail: 'Cyclic binary linear codes can be used to construct translation-invariant Majorana stabilizer codes, provided that they are also self-orthogonal \cite{arxiv:1703.00459}.'
- code_id: reed_muller
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ short_name: 'Steane'
introduced: '\cite{doi:10.1098/rspa.1996.0136}'

description: |
A \([[7,1,3]]\) CSS code that is the smallest qubit CSS code to correct a single-qubit error \cite{arxiv:0803.1495}.
A \([[7,1,3]]\) self-dual CSS code that is the smallest qubit CSS code to correct a single-qubit error \cite{arxiv:0803.1495}.
The code is constructed using the classical binary \([7,4,3]\) Hamming code for protecting against both \(X\) and \(Z\) errors.
The code's stabilizer generator matrix blocks \(H_{X}\) and \(H_{Z}\) are both the parity-check matrix for the \([7,4,3]\) Hamming code,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ relations:
parents:
- code_id: qubit_css
detail: 'Generalized quantum divisible codes are CSS codes.
Any weakly self-dual CSS code yields a level-three generalized quantum divisible code when level-lifted \cite[Sec. VI.C]{arxiv:1709.08658}.'
Any self-dual CSS code yields a level-three generalized quantum divisible code when level-lifted \cite[Sec. VI.C]{arxiv:1709.08658}.'
cousins:
- code_id: quantum_triorthogonal
detail: 'Triorthogonal codes are stabilizer codes, while generalized quantum divisible codes are CSS codes.
Expand Down
11 changes: 7 additions & 4 deletions codes/quantum/qubits/stabilizer/qubit_css.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,14 @@ description: |
The resulting CSS code has \(k=k_X+k_Z-n\) logical qubits and distance \(d\geq\min\{d_X,d_Z\}\).
The \(H_X\) (\(H_Z\)) block of \(H\) \eqref{eq:parity} is the parity-check matrix of the code \(C_Z\) (\(C_X\)).
The requirement \(C_X^\perp \subseteq C_Z\) guarantees \eqref{eq:comm} and also implies \(C_Z^\perp \subseteq C_X \).
Specializing to the case when \(C_Z=[n,k,d]\) is dual-containing yields an \([[n,2k-n,\geq d_Z]]\) \textit{weakly self-dual qubit CSS code} with \(C_X = C_Z^\perp\).
Basis states for the code are, for \(\gamma \in C_X\),
\begin{align}
|\gamma + C_Z^\perp \rangle = \frac{1}{\sqrt{|C_Z^\perp|}} \sum_{\eta \in C_Z^\perp} |\gamma + \eta\rangle.
\end{align}
Specializing to the case when \(C_Z=[n,k,d]\) is dual-containing yields an \([[n,2k-n,\geq d_Z]]\) \textit{self-dual qubit CSS code} (a.k.a. weakly self-dual qubit CSS code) with \(C_X = C_Z^\perp\).
Its \(X\)-type and \(Z\)-type stabilizers are identically supported.
A CSS code has \textit{stabilizer weight} \(w\) if the highest weight of any stabilizer generator is \(w\), i.e., any row of \(H_X\) and \(H_Z\) has weight at most \(w\).
In the context of comparing weight as well as of determining distances for noise models biased toward \(X\)- or \(Z\)-type errors, an extended notation for asymmetric qubit CSS codes is \([[n,k,(d_X,d_Z),w]]\) or \([[n,k,d_X/d_Z,w]]\).
The quantity \(\min\{d_X,d_Z\}\) is often called the \textit{worst-case minimum distance} and is often less than the actual code distance due to \hyperref[topic:degeneracy]{degeneracy} \cite{preset:GottesmanBook}.
Expand Down Expand Up @@ -170,14 +172,15 @@ relations:
- code_id: movassagh_ouyang
detail: 'Movassagh-Ouyang codes stem from a prescription that converts an \textit{arbitrary} classical code into a quantum code.'
- code_id: qudit_css
detail: 'Modular-qudit CSS codes for \(q=2\) are (qubit) CSS codes.'
detail: 'Modular-qudit CSS codes for \(q=2\) are qubit CSS codes.'
- code_id: galois_css
detail: 'Galois-qudit CSS codes for \(q=2\) are (qubit) CSS codes.'
detail: 'Galois-qudit CSS codes for \(q=2\) are qubit CSS codes.'
cousins:
- code_id: qubit_stabilizer
detail: 'Qubit CSS codes are qubit stabilizer codes whose stabilizer groups admit a generating set of pure-\(X\) and pure-\(Z\) Pauli strings.
Any \([[n,k,d]]\) stabilizer code can be mapped into a \([[4n,2k,2d]]\) self-dual CSS code via the \textit{Bravyi-Leemhuis-Terhal mapping} \cite[Corr. 1]{arxiv:1004.3791}, which preserves geometric locality of a code up to a constant factor.
Any \([[n,k,d]]\) stabilizer code can be mapped onto a \([[2n,2k,\geq d]]\) \hyperref[code:two_block_quantum]{two-block CSS code} via \hyperref[topic:symplectic-doubling]{symplectic doubling}, which preserves geometric locality of a code up to a constant factor.
For any non-CSS code \(\mathsf{C}\), there exists a CSS code \(\mathsf{C}^{\prime}\) such that \(\mathsf{C} = DQ\mathsf{C}^{\prime}\), where \(D\) is a diagonal Clifford operator and \(Q\) is an element of an XP stabilizer group \cite[Prop. B.3.1]{manual:{Webster, Mark. The XP Stabilizer Formalism. Dissertation, University of Sydney, 2023.}}.'
For any non-CSS code \(\mathsf{C}\), there exists a CSS code \(\mathsf{C}^{\prime}\) such that \(\mathsf{C} = DQ\mathsf{C}^{\prime}\), where \(D\) is a diagonal Clifford operator, and where \(Q\) is an element of an XP stabilizer group \cite[Prop. B.3.1]{manual:{Webster, Mark. The XP Stabilizer Formalism. Dissertation, University of Sydney, 2023.}}.'
- code_id: two_block_quantum
detail: 'Any \([[n,k,d]]\) stabilizer code can be mapped onto a \([[2n,2k,\geq d]]\) \hyperref[code:two_block_quantum]{two-block CSS code} via \hyperref[topic:symplectic-doubling]{symplectic doubling}, which preserves geometric locality of a code up to a constant factor.'
- code_id: binary_linear
Expand Down
2 changes: 1 addition & 1 deletion codes/quantum/qudits/stabilizer/qudit_css.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ description: |
For composite \(q\), such codes need not encode an integer number of qudits, but the relation to homology allows for a general structure theorem \cite[Thm. 8.1.1]{arxiv:2405.03559}.
For prime \(q=p\), properties reminiscent of qubit CSS codes are restored: encoding is based on two related \hyperref[code:q-ary_linear]{\(p\)-ary linear codes}, an \([n,k_X,d_X]_p \) code \(C_X\) and \([n,k_Z,d_Z]_p \) code \(C_Z\),
satisfying \(C_X^\perp \subseteq C_Z\). The resulting CSS code has \(k=k_X+k_Z-n\) logical qubits and distance \(d\geq\min\{d_X,d_Z\}\).
Specializing to the case when \(C_Z=[n,k,d]_p\) is dual-containing yields an \([[n,2k-n,\geq d_Z]]_p\) \textit{weakly self-dual prime-qudit CSS code} with \(C_X = C_Z^\perp\).
Specializing to the case when \(C_Z=[n,k,d]_p\) is dual-containing yields an \([[n,2k-n,\geq d_Z]]_p\) \textit{self-dual prime-qudit CSS code} with \(C_X = C_Z^\perp\).
The \(H_X\) (\(H_Z\)) block of \(H\) \eqref{eq:parityq} is the parity-check matrix of the code \(C_X\) (\(C_Z\)). The requirement \(C_X^\perp \subseteq C_Z\) guarantees \eqref{eq:commQ}.
Basis states for the code are, for \(\gamma \in C_X\),
\begin{align}
Expand Down
2 changes: 1 addition & 1 deletion codes/quantum/qudits_galois/stabilizer/css/galois_css.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ description: |
satisfying \(C_X^\perp \subseteq C_Z\).
The resulting CSS code has \(k=k_X+k_Z-n\) logical Galois qudits and distance \(d\geq\min\{d_X,d_Z\}\).
The \(H_X\) (\(H_Z\)) block of \(H\) \eqref{eq:parityg} is the parity-check matrix of the code \(C_X\) (\(C_Z\)). The requirement \(C_X^\perp \subseteq C_Z\) guarantees \eqref{eq:commG}.
Specializing to the case when \(C_Z=[n,k,d]_q\) is dual-containing yields a \([[n,2k-n,\geq d_Z]]_q\) \textit{weakly self-dual Galois-qudit CSS code} with \(C_X = C_Z^\perp\).
Specializing to the case when \(C_Z=[n,k,d]_q\) is dual-containing yields a \([[n,2k-n,\geq d_Z]]_q\) \textit{self-dual Galois-qudit CSS code} with \(C_X = C_Z^\perp\).
Basis states for the code are, for \(\gamma \in C_X\),
\begin{align}
|\gamma + C_Z^\perp \rangle = \frac{1}{\sqrt{|C_Z^\perp|}} \sum_{\eta \in C_Z^\perp} |\gamma + \eta\rangle.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ short_name: 'Quantum QR code'
introduced: '\cite{arxiv:quant-ph/9703048,arxiv:quant-ph/0508070,arxiv:0712.0103}'

description: |
Galois-qudit \([[n,1]]_q\) \hyperref[topic:quantum-weight-enumerator]{pure} CSS code constructed from a dual-containing QR code via the Galois-qudit CSS construction.
Galois-qudit \([[n,1]]_q\) \hyperref[topic:quantum-weight-enumerator]{pure} self-dual CSS code constructed from a dual-containing QR code via the Galois-qudit CSS construction.
For \(q\) not divisible by \(n\), its distance satisfies \(d^2-d+1 \geq n\) when \(n \equiv 3\) modulo 4 \cite[Thm. 40]{arxiv:quant-ph/0508070} and \(d \geq \sqrt{n}\) when \(n\equiv 1\) modulo 4 \cite[Thm. 41]{arxiv:quant-ph/0508070}.
features:
Expand Down

0 comments on commit 7fd5743

Please sign in to comment.