Why doesn't this copy circuit violate the no cloning theorem? This circuit appears to clone bits.
The first picture is the copy circuit which takes |1000> to |1010>.
The second picture is the same copy circuit but it's copying hadamard states.
The third picture is copying a bell pair.
Since the final non-zero amplitude are all on the diagonal, and the phases are the same, the circuit is able to copy these states perfectly.
I'm guessing there must always be some state which this cannot copy or else the no cloning theorem would be violated.
I assumed the no cloning theorem was stating that there are no quantum states that can be cloned. But it appears this circuit can clone some states. Is this a more correct statement, "The no cloning theorem implies that there is no quantum circuit which can in general clone any state, although a circuit may clone some states"?



 A: The mistake is in your understanding of exactly what is meant by "cloning". It is certainly possible to have two of the same state (i.e., a procedure that produces two qubits that are both in the $|0\rangle$ state isn't "cloning" one), and it is also possible to "copy" by creating the same identical state. However, applying a CNOT does not "clone" anything from the first register into the third, because while they are identical, they are not independent.
Measuring a $1$ in the first register (in the bell circuit for example), there is a 50% chance. Similarly, there is a 50% chance of measuring a $1$ in the third register. However, once a $1$ is measured in the first register, there is a 100% chance of measuring $1$ in the third register. Cloning should produce identical and also independent samples, this is not an example of cloning.
You can look at this question for more info
A: You can "clone" orthogonal states, in the sense that given a basis of orthonormal vectors $\lvert v_k\rangle\in\mathcal H_1$ and some ancillary state $\lvert 0\rangle\in\mathcal H_1$, you can find a unitary $U$ such that $U\lvert v_k\rangle\lvert 0\rangle=\lvert v_k\rangle\lvert v_k\rangle$ for all $k$.
The problem arises when you want to clone arbitrary states. In particular, if now you wanted to clone some superposition state such as $\lvert v_1\rangle+\lvert v_2\rangle$, you'd find that $U$ doesn't work on those:
$$U(\lvert v_1\rangle+\lvert v_2\rangle)\lvert 0\rangle=\lvert v_1\rangle\lvert v_1\rangle+\lvert v_2\rangle\lvert v_2\rangle,$$
which is not the same as $(\lvert v_1\rangle+\lvert v_2\rangle)(\lvert v_1\rangle+\lvert v_2\rangle)$, and you thus see that if you can clone $\lvert v_k\rangle$ you cannot clone any superposition of them.
