Let's say I do something to a qubit, and I want to entangle it to a 2nd one, like this:
┌───┐ q_0: ┤ ? ├──■── └───┘┌─┴─┐ q_1: ─────┤ X ├ └───┘
If I measure the 2nd I know the 1st one would have the same result. Now I mess with the first one. In Qiskit, I'll have to reset the 2nd qubit and for the CNOT to maintain the entanglement:
┌───┐ ░ ┌───┐ ░ q_0: ┤ ? ├──■───░─┤???├─░───■── └───┘┌─┴─┐ ░ └───┘ ░ ┌─┴─┐ q_1: ─────┤ X ├─░──|0>──░─┤ X ├ └───┘ ░ ░ └───┘
My question is how do I make sure the 2nd qubit reflect the measurement of the first one, without the reset (which is not unitary); basically, how do I CNOT to a dirty ancilla? Obviously I can CNOT to a blank ancilla, or swap a blank one up, but say I want an universal gate that do this a million time, and I just don't have enough blank qubits; is there a way that use a finite number of qubits, no matter how many time you repeat the gate, that can achieve the task of making sure some ancilla(s) reflect the measurement of the first qubit? Or is it impossible (and why)?