From 4e1bd62504c3d5907e05c9d88d955eeab70ef3fc Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Fri, 24 Apr 2026 11:04:57 +0200 Subject: [PATCH] Write CSS codes section --- src/thesis/chapters/2_fundamentals.tex | 45 ++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/src/thesis/chapters/2_fundamentals.tex b/src/thesis/chapters/2_fundamentals.tex index 9f06b34..e3f2137 100644 --- a/src/thesis/chapters/2_fundamentals.tex +++ b/src/thesis/chapters/2_fundamentals.tex @@ -1359,7 +1359,8 @@ as we have to consider both the $X$ and $Z$ type operators that make up the stabilizers. Take for example the Steane code \cite[Eq.~10.83]{nielsen_quantum_2010}. We can describe it using the check matrix -\begin{align*} +\begin{align} + \label{eq:steane} \left[ \begin{array}{ccccccc|ccccccc} 0 & 0 & 0 & 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ @@ -1371,7 +1372,7 @@ We can describe it using the check matrix \end{array} \right] .% -\end{align*} +\end{align} We can understand each row as defining a stabilizer. The first $n$ columns correspond to $X$ operators acting on the corresponding physical qubit, the rest to the $Z$ operators. @@ -1405,13 +1406,43 @@ corresponding physical qubit, the rest to the $Z$ operators. Stabilizer codes are especially practical to work with when they can handle $X$- and $Z$-type errors independently. -We can then separate the stabilizer generators into some with only -$Z$ operators and some with only $X$ operators. +As $Z$ errors anti-commute with $X$ operators in the stabilizers and +vice versa, this property translates into being able to split the +stabilizers into some being made up of only $X$ +operators and some only of $Z$ operators. We call such codes \ac{css} codes. +We can see this property in \autoref{eq:steane}, in the check matrix +of the Steane code. -\indent\red{[Z-type operators for X type errors and vice versa ]} \\ -\indent\red{[Construction from two binary linear codes -\cite[p.~452,469]{nielsen_quantum_2010}]} \\ +We can exploit this separate consideration of $X$ and $Z$ errors in +the construction of \ac{css} codes. +We can combine two binary linear codes $\mathcal{C}_1$ and +$\mathcal{C}_2$, each responsible for correcting one type of error +\cite[Sec.~10.5.6]{nielsen_quantum_2010}. +Using the dual code of $\mathcal{C}_2$ \cite[Eq.~3.4]{ryan_channel_2009} +\begin{align*} + \mathcal{C}_2^\perp := \left\{ \bm{x}' \in \mathbb{F}^2 : + \bm{x}' \bm{x}^\text{T} = 0 ~\forall \bm{x} \in \mathcal{C}_2 \right\} + ,% +\end{align*} +we can construct the check matrix as +\begin{align*} + \left[ + \begin{array}{c|c} + \bm{H}(\mathcal{C}_2^\perp) & \bm{0} \\ + \bm{0} & \bm{H}(\mathcal{C}_1) + \end{array} + \right] + .% +\end{align*} +In order to yield a valid stabilizer code, $\mathcal{C}_1$ and +$\mathcal{C}_2$ must satisfy the commutativity condition +\begin{align*} + \bm{H}(\mathcal{C}_2^\perp) \bm{H}(\mathcal{C}_1)^\text{T} = \bm{0} + .% +\end{align*} +We can ensure this is the case by choosing them such that +$\mathcal{C}_2 \subset \mathcal{C}_1$. %%%%%%%%%%%%%%%% \subsection{Quantum Low-Density Parity-Check Codes}