In computer science, the controlled NOT gate (also C-NOT or CNOT), controlled-X gate, controlled-bit-flip gate, Feynman gate or controlled Pauli-X is a quantum logic gate that is an essential component in the construction of a gate-based quantum computer. It can be used to entangle and disentangle Bell states. Any quantum circuit can be simulated to an arbitrary degree of accuracy using a combination of CNOT gates and single qubit rotations. The gate is sometimes named after Richard Feynman who developed an early notation for quantum gate diagrams in 1986. The CNOT can be expressed in the Pauli basis as: Being both unitary and Hermitian, CNOT has the property and , and is involutory. The CNOT gate can be further decomposed as products of rotation operator gates and exactly one two qubit interaction gate, for example In general, any single qubit unitary gate can be expressed as , where H is a Hermitian matrix, and then the controlled U is . The CNOT gate is also used in classical reversible computing. Operation The CNOT gate operates on a quantum register consisting of 2 qubits. The CNOT gate flips the second qubit (the target qubit) if and only if the first qubit (the control qubit) is . If are the only allowed input values for both qubits, then the TARGET output of the CNOT gate corresponds to the result of a classical XOR gate. Fixing CONTROL as , the TARGET output of the CNOT gate yields the result of a classical NOT gate. More generally, the inputs are allowed to be a linear superposition of . The CNOT gate transforms the quantum state: into: The action of the CNOT gate can be represented by the matrix (permutation matrix form): The first experimental realization of a CNOT gate was accomplished in 1995. Here, a single Beryllium ion in a trap was used. The two qubits were encoded into an optical state and into the vibrational state of the ion within the trap. At the time of the experiment, the reliability of the CNOT-operation was measured to be on the order of 90%. In addition to a regular controlled NOT gate, one could construct a function-controlled NOT gate, which accepts an arbitrary number n+1 of qubits as input, where n+1 is greater than or equal to 2 (a quantum register). This gate flips the last qubit of the register if and only if a