liveBook · Manning

Bennett’s trick

As explained in Quantum Programming in Depth

Bennett’s trick is a reversible computation technique that copies an output to a separate register and then runs the computation backward to reset intermediate qubits.

Bennett’s trick disentangles auxiliary qubits in a reversible computation without measuring them. It copies the computed basis-state output into a separate register, then runs the original computation backward to reset its intermediate qubits. section 6.5.1

For an input encoded as |x⟩ and an existing output register |y⟩:

  • Initialize input, auxiliary, and temporary output registers as |x⟩, |0⟩, and |0⟩, with the final output in |y⟩. section 6.5.1
  • Use CNOT gates to copy the basis-state output into the final register, changing it to |y ⊕ f(x)⟩. section 6.5.1
  • Apply the computation backward, returning the auxiliary and temporary output registers to |0⟩. section 6.5.1

Measuring only the auxiliary qubits can collapse part of a superposition and discard input basis states. Bennett’s trick preserves the full superposition; its copying step copies basis states, not an arbitrary quantum state. section 6.5.1

How Quantum Programming in Depth covers it

How deep it goes
Derives a four-register sequence through computation, basis-state copying, and reverse execution.
Examples
Uses input, auxiliary, temporary-output, and final-output registers with states |x⟩, |0⟩, |0⟩, and |y⟩.
What it assumes
Assumes basis-state registers, superposition measurement, CNOT copying, and reversible computation.
What you can do after
Build reversible function evaluations that return intermediate qubits to |0⟩ without measuring them.
How it connects
Connects reversible computation with quantum measurement, entanglement, CNOT gates, and the no-cloning theorem.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Quantum Programming in Depth. The section links point to the parts of the book it draws on.