Another remarkable difference between classical and quantum computing is the fact that **one cannot clone arbitrary qubits**. This is the flip-side of superposition; on the one hand it allows exponential processing speed on the other it disallows cloning of data.

The no-cloning is also nature’s way to avoid one cheating with the exclusion principle. One cannot measure simultaneously complementary properties of a system. This on its own is related to non-commuting operators like the well-known

$$[x,p]=i\hbar$$

relation stating that one cannot measure both the position and the momentum of a particle at the same time. Now, imagine one could identically clone a quantum particle. If so, one could measure the value of $x$ exactly in one copy and the value of $p$ in the other, which would contradict the exclusion. So, nature doesn’t allow one to clone quantum systems identically and all is well.

The ‘proof’ is really straighforward. Assume that there is a transformation $U_c$ which clones the first qubit to the second:

$U_c\,|x\,0\rangle := |x\, x\rangle.$

If $|x\rangle$ is a pure state then this can be achieve with for instance a controlled NOT gate;

$U_{CNOT}\,|10\rangle = |11\rangle, \; U_{CNOT}\,|00\rangle = |00\rangle$

if the state is not pure however, say

$|x\rangle = |+\rangle$

then this lead to a contradiction since

$U_c\,\frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)\otimes |0\rangle \\ \; = U_c\,\frac{1}{\sqrt{2}}|00\rangle + U_c\,\frac{1}{\sqrt{2}}|11\rangle\\ \;=\frac{1}{\sqrt{2}}|00\rangle + \frac{1}{\sqrt{2}}|11\rangle$

but at the same time you have by definition that the superposed state is copied so

$U_c\,\frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)\otimes |0\rangle =\frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)\otimes \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)$

which contradicts the component-wise copying above.

The no-cloning theorem prevents the use of classical error correction techniques on quantum states. For example, backup copies of a state in the middle of a quantum computation cannot be created and used for correcting subsequent errors. When discussing the Shor theorem we’ll discuss quantum error correcting codes, which circumvent the no-cloning theorem.