# Trying to make irreversable operation in the quantum circuit

I want to make a 2 qubit circuit such that the non-unitary program will transform the regular basis in the way that:

$$|0 0\rangle \to |00\rangle$$

$$|0 1\rangle \to |01\rangle$$

$$|10\rangle \to |01\rangle$$ (the only one that affected)

$$|11\rangle \to |11\rangle$$

The only way I think of doing it, is after measuring the circuit I will change the classical outcomes so it will fit the transformation, for example in the classic way I would code:

if c==1 & c==0
c==0
c==1


but I didn$$`$$t find a way to write it in Qiskit language, please help.

• Just hint: first q-bit of result is logical product (AND) of both input q-bits, second one is logical sum (OR) of both inputs. AND and OR can be implemented with Toffoli gate. Nov 12, 2019 at 17:13
• The use of "unreversible" and "ununitary" in your question is unusual. All operations on a quantum circuit must be unitary, and therefore reversible. Nov 12, 2019 at 20:55
• @ChainedSymmetry: It bring to my mind one question: What about reset gate? Naturaly, it is not reversible operation. How does this fit to the concept of quantum computation? Nov 12, 2019 at 22:10
• @MartinVesely It's a good question, and DaftWullie gives a good answer here (short answer, you have to take a measurement and possibly bit-flip). I'm guessing this is not easy to implement in hardware, which is why it's only available in IBM Q simulations. Nov 13, 2019 at 3:03

I tried to implement your transformation on IBM Q. Here is the result: Input is $$|00\rangle$$ in this case. You can set input values by application of $$X$$ gates on q-bits $$|q0\rangle$$ and $$|q1\rangle$$.
Please note that this circuit run on a simulator only as reset gate has not been implemented on real IBM Q quantum hardware. But it is possible to simply measure $$|q2\rangle$$ and $$|q3\rangle$$. In that case your transformation become reversible.