I’m still studying the online course on quantum computing where Prof. Vazirani went through the no cloning theorem. It is very interesting to see that something that can lead to some very subtle consequence can also have a very simple proof. Below is a summary.

Basically, the theorem states that no quantum state can be cloned by quantum evolution, the only allowed operation in reality. Let say we want to clone a quantum state by passing the product state through some unitary operator. The desired output should then be . In particular, if we consider the cases when and , the outputs should be and , respectively. However, by linearity, this implies that the output when should be instead. Therefore, cloning is possible only when , i.e. when is either or .