bit flip code (Rev #2) in nLab
- ️Invalid Date
Context
Quantum systems
\linebreak
\linebreak
quantum probability theory – observables and states
\linebreak
\linebreak
quantum algorithms:
\linebreak
\linebreak
Computation
constructive mathematics, realizability, computability
propositions as types, proofs as programs, computational trinitarianism
Constructive mathematics
Realizability
Computability
Contents
Idea
In quantum information theory a bit flip code is a quantum error correcting code to correct for quantum noise caused by bit flip channels.
Details
3-qbit flip code
The following basic example of a bit flip code encodes single logical qbits in triples of physical qbits. Here the Hilbert space
LogicalQBit≔QBit⊗QBit⊗QBit LogicalQBit \;\coloneqq\; QBit \otimes QBit \otimes QBit
of a single logical qbit has complex dimension 2 2=82^2 \,=\, 8. Inside this is the space of undisturbed logical qbits
(1)QBit→∼encodeDisturbedQBit 0 ↪−−− LogicalQBit →P s=0≔|0,0,0⟩⟨0,0,0|+|1,1,1⟩⟨1,1,1| DisturbedQBit 0 q 0|0⟩+q 1|1⟩ ↦ q 0|0,0,0⟩+q 1|1,1,1⟩ \begin{array}{ccccc} QBit \xrightarrow[\sim]{encode} DisturbedQBit_{0} &\overset{\phantom{---}}{\hookrightarrow}& LogicalQBit &\xrightarrow{ P_{s = 0} \;\coloneqq\; \left\vert 0,0,0 \right\rangle \left\langle 0,0,0 \right\vert + \left\vert 1,1,1 \right\rangle \left\langle 1,1,1 \right\vert }& DisturbedQBit_0 \\ q_0 \left\vert 0 \right\rangle + q_1 \left\vert 1 \right\rangle &\mapsto& q_0 \left\vert 0, 0, 0 \right\rangle + q_1 \left\vert 1, 1, 1 \right\rangle \end{array}
as well as three further orthogonal subspaces which are the images of this one under one of the three single bit flips, respectively:
DisturbedQBit 1 ↪−−− LogicalQBit →P s=1≔|1,0,0⟩⟨1,0,0|+|0,1,1⟩⟨0,1,1| DisturbedQBit 1 q 0|0⟩+q 1|1⟩ ↦ q 0|1,0,0⟩+q 1|0,1,1⟩ A DisturbedQBit 2 ↪−−− LogicalQBit →P s=2≔|0,1,0⟩⟨0,1,0|+|1,0,1⟩⟨1,0,1| DisturbedQBit 2 q 0|0⟩+q 1|1⟩ ↦ q 0|0,1,0⟩+q 1|1,0,1⟩ A DisturbedQBit 3 ↪−−− LogicalQBit →P s=3≔|0,0,1⟩⟨0,0,1|+|1,1,0⟩⟨1,1,0| DisturbedQBit 3 q 0|0⟩+q 1|1⟩ ↦ q 0|0,0,1⟩+q 1|1,1,0⟩ \begin{array}{ccc} DisturbedQBit_{1} &\overset{\phantom{---}}{\hookrightarrow}& LogicalQBit &\xrightarrow{ P_{s=1} \;\coloneqq\; \left\vert 1,0,0 \right\rangle \left\langle 1,0,0 \right\vert + \left\vert 0,1,1 \right\rangle \left\langle 0,1,1 \right\vert }& DisturbedQBit_1 \\ q_0 \left\vert 0 \right\rangle + q_1 \left\vert 1 \right\rangle &\mapsto& q_0 \left\vert 1, 0, 0 \right\rangle + q_1 \left\vert 0, 1, 1 \right\rangle \\ {\phantom{A}} \\ DisturbedQBit_{2} &\overset{\phantom{---}}{\hookrightarrow}& LogicalQBit &\xrightarrow{ P_{s=2} \;\coloneqq\; \left\vert 0,1,0 \right\rangle \left\langle 0,1,0 \right\vert + \left\vert 1,0,1 \right\rangle \left\langle 1,0,1 \right\vert }& DisturbedQBit_2 \\ q_0 \left\vert 0 \right\rangle + q_1 \left\vert 1 \right\rangle &\mapsto& q_0 \left\vert 0, 1, 0 \right\rangle + q_1 \left\vert 1, 0, 1 \right\rangle \\ {\phantom{A}} \\ DisturbedQBit_{3} &\overset{\phantom{---}}{\hookrightarrow}& LogicalQBit &\xrightarrow{ P_{s=3} \;\coloneqq\; \left\vert 0,0,1 \right\rangle \left\langle 0,0,1 \right\vert + \left\vert 1,1,0 \right\rangle \left\langle 1,1,0 \right\vert }& DisturbedQBit_3 \\ q_0 \left\vert 0 \right\rangle + q_1 \left\vert 1 \right\rangle &\mapsto& q_0 \left\vert 0, 0, 1 \right\rangle + q_1 \left\vert 1, 1, 0 \right\rangle \end{array}
The 4 labels of these three subspaces are called the “error syndrome”, which we collect in the 4-element set
Synd≔{0,1,2,3} Synd \;\coloneqq\; \{0,1,2,3\}
to express the logical q-bit space alternatively in this linear basis:
QBit↪encodeQBit⊗QBit⊗QBit⏟LogicalQBit→∼(P s) s:Synd⨁s:SyndDisturbedQBit s QBit \xhookrightarrow{ encode } \underset{ LogicalQBit }{ \underbrace{ QBit \otimes QBit \otimes QBit } } \xrightarrow[\sim]{ (P_s)_{s \colon Synd} } \underset{ s \colon Synd }{\bigoplus} DisturbedQBit_{s}
\begin{remark} Beware that there is no room to record the further possible errors of 2 qbits flipping at once. Instead, this error process takes pure qbits to one of the subspaces reserved for single bit flips. Similarly, if all three bits flip at once, the initial pure state remains in the subspace reserved for pure states, but now with its phases mixed up. Therefore, the following error correction code fails on flips of more than one of the 3-qbits and will reduce the overall error probability only if single bit flips are sufficiently more likely than double and triple spin flips. \end{remark}
The error correction now proceeds by:
-
Performing a quantum measurement of the above error syndrome ss on the logical Qbit space. While this measurement collapses the quantum state onto the subspace DisturbedQBit sDisturbedQBit_s the particular logical qbit states of the pure form (1) lose no information under this collapse, in that there is a unitary operator on DisturbedQBit sDisturbedQBit_s which turns any such collapse state back into the original qbit state.
-
applying this correcting unitary X sX_s, which is evidently the “Pauli X-” (or “NOT-”)quantum gate X:QBit→QBitX \,\colon\, QBit \to QBit acting on the ss-th qbit:
X 0 ≔ id⊗id⊗id X 1 ≔ X⊗id⊗id X 2 ≔ id⊗X⊗id X 3 ≔ id⊗id⊗X:QBit⊗QBit⊗QBit⏟LogicalQBit⊸QBit⊗QBit⊗QBit⏟LogicalQBit \begin{array}{cccc} X_0 &\coloneqq& id \otimes id \otimes id \\ X_1 &\coloneqq& X \otimes id \otimes id \\ X_2 &\coloneqq& id \otimes X \otimes id \\ X_3 &\coloneqq& id \otimes id \otimes X \end{array} \;\;\;\colon\;\;\; \underset{ LogicalQBit }{ \underbrace{ QBit \otimes QBit \otimes QBit } } \multimap \underset{ LogicalQBit }{ \underbrace{ QBit \otimes QBit \otimes QBit } }
-
re-preparing a logical QBit from the recovered Qbit.
In the notation from quantum circuits via dependent linear types, this is, in summary, the following operation:
correct:LogicalQBit→measure Synd◯ s:SyndQBit→(X s) s:Synd◯ s:SyndQBit→◯ s:Syndencode◯ s:SyndLogicalQBit correct \;\colon\; LogicalQBit \xrightarrow{ measure_{Synd} } \bigcirc_{ s \colon Synd } QBit \xrightarrow{ (X_s)_{s \colon Synd} } \bigcirc_{ s \colon Synd } QBit \xrightarrow{ \bigcirc_{s \colon Synd} encode } \bigcirc_{ s \colon Synd } LogicalQBit
and the verification of the protocol is the statement that
verify:∀s(encode>X s⏟singlebit fliperror>correct=alwaysencode) verify \;\colon\; \underset{s}{\forall} \;\; \Big( encode \;\text{>}\; \underset{ \mathclap{ \array{ single\; bit \\ flip \; error } } }{ \underbrace{ X_s } } \;\text{>}\; correct \;\;\; = \;\;\; always \; encode \Big)
References
-
Michael A. Nielsen, Isaac L. Chuang, §10.1.1 in: Quantum computation and quantum information, Cambridge University Press (2000) [[doi:10.1017/CBO9780511976667](https://doi.org/10.1017/CBO9780511976667), pdf, pdf]
-
Simon J. Devitt, Kae Nemoto, William J. Munro, §IV of: Quantum Error Correction for Beginners, Rep. Prog. Phys. 76 (2013) 076001 [[arXiv:0905.2794](https://arxiv.org/abs/0905.2794), doi:10.1088/0034-4885/76/7/076001]
Revision on November 23, 2022 at 06:54:34 by Urs Schreiber See the history of this page for a list of all contributions to it.