I'm reading quantum computation in Arora and Barak, on page 215 they provide the Lemma 10.10 proving that quantum circuits can simulate boolean circuits.
Lemma 10.10 (Boolean circuits as a subcase of quantum circuits) If $f :\{0,1\}^n\rightarrow\{0, 1\}^m$ is computable by a Boolean circuit of size $S$ then there is a sequence of 2ドルS+m+n$ quantum operations computing the mapping $|x0^{2m+S}\rangle\rightarrow |x\rangle,円|f(x)0^{S+m}\rangle$.
Proof: Replace each Boolean gate (AND, OR, NOT) by its quantum analog as already outlined. The resulting computation maps $|x\rangle,円|0^{2m}\rangle,円|0^S\rangle\rightarrow |x\rangle,円|f(x)0^m\rangle,円 |z\rangle$, where $z$ is the string of values taken by the internal wires in the Boolean circuit (these correspond to scratchpad memory used by the quantum operations at the gates) and the string 0ドル^m$ consists of qubits unused so far. Now copy $f(x)$ onto the string 0ドル^m$ using $m$ operations of the form $|bc\rangle\rightarrow |b(b\oplus c)\rangle$. Then run the operations corresponding to the Boolean operations in reverse (applying the inverse of each operation). This erases the original copy of $f(x)$ as well as $|z\rangle$ and leaves behind clean bits in state $|0\rangle$, together with one copy of $f(x)$.
How do we write $f(x)$ immediately after $x$ after applying the gates to get $|x\rangle,円|f(x)0^m\rangle,円 |z\rangle$? As far as I know, the "reversible Boolean gates", for example, the "reversible AND" gate is to map $|b_1b_2b_3\rangle\rightarrow|b_1b_2\rangle,円|b_3\oplus(b_1\land b_2)\rangle$, so the result, say, $f(x)$ should be placed after $z$.
Furthermore, why must we copy $f(x)$ onto the unused 0ドル^m$ before reversing the previous operations to erase the original copy of $f(x)$ and $|z\rangle$? In particular, at the state $|x\rangle,円|f(x)0^m\rangle,円|z\rangle$, why don't we just reverse the operations compute $z$ to get $|x\rangle,円|f(x)0^{S+m}\rangle$, but copying $f(x)$ onto 0ドル^m$ to gain $|x\rangle,円|f(x)f(x)\rangle,円|z\rangle$ before reversing? I do not understand the term "reversible" in quantum computation at all.
-
$\begingroup$ To give some intuition on why reversibility is important for quantum computation: If we have a qubit $|x\rangle\ = \alpha |0\rangle + \beta |1\rangle,ドル then we always have $|\alpha|^2 + |\beta|^2 = 1,ドル since probabilities always need to add up to 1ドル$. Mathematically any operation that preserves this property is called unitary, and one can prove that all unitary operations are reversible. $\endgroup$Tobi– Tobi2025年04月04日 17:10:02 +00:00Commented Apr 4 at 17:10
-
$\begingroup$ @Tobi But why we should copy the result before reversing? $\endgroup$minh quý lê– minh quý lê2025年04月06日 13:41:17 +00:00Commented Apr 6 at 13:41
-
$\begingroup$ I think the aim is to save the value f(x) on those m unused qbits, so that we don't loose it when reversing. But I'm not really able to answer the full question of your post $\endgroup$Tobi– Tobi2025年04月07日 13:08:54 +00:00Commented Apr 7 at 13:08