\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{physics}
\usepackage{yquant}


\begin{document}

\yquantdefinebox{dots}[inner sep=0pt]{$\vdots$}

\section{Spacer}

\begin{tikzpicture}
	\begin{yquant}[operator/separation=5mm, register/separation=0mm]
		qubit {$\ket{\psi}$} q;
		qubit {$\ket{0}$} z1;
		qubit {$\ket{0}$} z2;

		cnot z1 | q;
		cnot z2 | q;

		[value=$\ket{\overline{\psi}}$]
		output (q, z1, z2);
	\end{yquant}
\end{tikzpicture}

\section{Spacer}

\begin{tikzpicture}
	\begin{yquant}[operator/separation=5mm, register/separation=0mm]
		qubit {$\ket{\psi}$} q;
		qubit {$\ket{0}$} z1;
		qubit {$\ket{0}$} z2;

		cnot z1 | q;
		cnot z2 | q;

		h q;
		h z1;
		h z2;

		[value=$\ket{\overline{\psi}}$]
		output (q, z1, z2);
	\end{yquant}
\end{tikzpicture}

\section{Spacer}

\begin{tikzpicture}
	\begin{yquant}[operator/separation=2mm, register/separation=0mm]
		qubit {} q1;
		qubit {} q2;
		qubit {} q3;
		init {$\ket{\overline{\psi}}$} (q1, q2, q3);
		qubit {$\ket{0}$} z;

		cnot z | q2;
		cnot z | q3;

		measure z;
	\end{yquant}
\end{tikzpicture}

\section{Spacer}

\begin{tikzpicture}
	\begin{yquant}[operator/separation=2mm, register/separation=0mm]
		qubit {} q1;
		qubit {} q2;
		qubit {} q3;
		init {$\ket{\overline{\psi}}$} (q1, q2, q3);
		qubit {$\ket{0}$} z1;
		qubit {$\ket{0}$} z2;

		cnot z1 | q1;
		cnot z1 | q2;

		cnot z2 | q2;
		cnot z2 | q3;

		measure z1;
		measure z2;

		box {$\mathrm{Correction}$} (q1, q2, q3) | z1, z2;
		discard z1;
		discard z2;
	\end{yquant}
\end{tikzpicture}

\section{Spacer}

\begin{tikzpicture}
	\begin{yquant}[operator/separation=2mm, register/separation=1mm]
		qubit {} q1;
		qubit {} q2;
		qubit {} q3;
		init {$\ket{\overline{\psi}}$} (q1, q2, q3);
		qubit {$\ket{0}$} z1;
		qubit {$\ket{0}$} z2;

		h q1;
		h q2;
		h q3;

		cnot z1 | q1;
		cnot z1 | q2;

		cnot z2 | q2;
		cnot z2 | q3;

		measure z1;
		measure z2;

		box {$\mathrm{Correction}$} (q1, q2, q3) | z1, z2;
		discard z1;
		discard z2;

		h q1;
		h q2;
		h q3;
	\end{yquant}
\end{tikzpicture}

\section{Spacer}

\begin{tikzpicture}
	\begin{yquant}[operator/separation=4mm, register/separation=0mm]
		qubit {$\ket{\psi}$} q1;
		qubit {} q1z1;
		qubit {} q1z2;
		qubit {$\ket{0}$} q2;
		qubit {} q2z1;
		qubit {} q2z2;
		qubit {$\ket{0}$} q3;
		qubit {} q3z1;
		qubit {} q3z2;

		discard q1z1;
		discard q1z2;
		discard q2z1;
		discard q2z2;
		discard q3z1;
		discard q3z2;

		cnot q2 | q1;
		cnot q3 | q1;

		align q1, q1z1, q1z2, q2, q2z1, q2z2, q3, q3z1, q3z2;

		h q1;
		h q2;
		h q3;

		[value=$\ket{0}$]
		init q1z1;
		[value=$\ket{0}$]
		init q1z2;
		[value=$\ket{0}$]
		init q2z1;
		[value=$\ket{0}$]
		init q2z2;
		[value=$\ket{0}$]
		init q3z1;
		[value=$\ket{0}$]
		init q3z2;

		cnot q1z1 | q1;
		cnot q1z2 | q1;
		cnot q2z1 | q2;
		cnot q2z2 | q2;
		cnot q3z1 | q3;
		cnot q3z2 | q3;

		[value=]
		output (q1, q1z1, q1z2, q2);
		[value=$\ket{\overline{\psi}}$]
		output (q2, q2z1, q2z2);
		[value=]
		output (q2z2, q3, q3z1, q3z2);
	\end{yquant}
\end{tikzpicture}


\end{document}
