Quantum Topology/CCNOT Gate Quantum Topology/CCNOT Gate Definition (From the definition of the classical Toffoli gate ( a , b , c ) ↦ ( a , b , ( a ∧ b ) ⊕ c ) (a, b, c) \mapsto (a, b, (a \land b) \oplus c) ( a , b , c ) ↦ ( a , b , ( a ∧ b ) ⊕ c ) ) The quantum Toffoli gate for qubits ∣ a , b , c ⟩ = ∣ a ⟩ ⊗ ∣ b ⟩ ⊗ ∣ c ⟩ \ket{a, b, c} = \ket{a} \otimes \ket{b} \otimes \ket{c} ∣ a , b , c ⟩ = ∣ a ⟩ ⊗ ∣ b ⟩ ⊗ ∣ c ⟩ is defined as follows.
T q : ( C 2 ) ⊗ 3 → ( C 2 ) ⊗ 3 ∣ a , b , c ⟩ ↦ ∣ a , b , ( a ∧ b ) ⊕ c ⟩ , ∀ a , b , c ∈ { 0 , 1 }
\begin{align*}
T_{q} : (\mathbb{C}^{2})^{\otimes 3} &\to (\mathbb{C}^{2})^{\otimes 3} \\
\ket{a, b, c} &\mapsto \ket{a, b, (a \land b) \oplus c},\quad \forall a,b,c \in \left\{ 0, 1 \right\}
\end{align*}
T q : ( C 2 ) ⊗ 3 ∣ a , b , c ⟩ → ( C 2 ) ⊗ 3 ↦ ∣ a , b , ( a ∧ b ) ⊕ c ⟩ , ∀ a , b , c ∈ { 0 , 1 }
CNOT q ( ∣ a ⟩ ⊗ ∣ b ⟩ ⊗ ∣ c ⟩ ) = ∣ a ⟩ ⊗ ∣ b ⟩ ⊗ ∣ ( a ∧ b ) ⊕ c ⟩
\operatorname{CNOT}_{q} (\ket{a} \otimes \ket{b} \otimes \ket{c}) = \ket{a} \otimes \ket{b} \otimes \ket{ (a \land b) \oplus c }
CNOT q ( ∣ a ⟩ ⊗ ∣ b ⟩ ⊗ ∣ c ⟩ ) = ∣ a ⟩ ⊗ ∣ b ⟩ ⊗ ∣ ( a ∧ b ) ⊕ c ⟩
Here ( C 2 ) ⊗ 3 (\mathbb{C}^{2})^{\otimes 3} ( C 2 ) ⊗ 3 is the tensor product of vector spaces , ∣ a ⟩ ⊗ ∣ b ⟩ ⊗ ∣ c ⟩ \ket{a} \otimes \ket{b} \otimes \ket{c} ∣ a ⟩ ⊗ ∣ b ⟩ ⊗ ∣ c ⟩ is the product vector , ∧ \land ∧ is the logical AND , and ⊕ \oplus ⊕ is the exclusive OR (XOR) .
Description It is the quantum computer version of the classical Toffoli gate. Whereas the classical Toffoli gate is a universal gate , the quantum Toffoli gate is not a universal gate. Not only the quantum Toffoli gate, but also there are no universal gates in quantum computing.
The specific input and output of T q T_{q} T q are as follows. The output changes only when the input is ∣ 110 ⟩ , ∣ 111 ⟩ \ket{110}, \ket{111} ∣ 110 ⟩ , ∣ 111 ⟩ .
T q ( ∣ 000 ⟩ ) = ∣ 0 , 0 , ( 0 ∧ 0 ) ⊕ 0 ⟩ = ∣ 000 ⟩ T q ( ∣ 001 ⟩ ) = ∣ 0 , 0 , ( 0 ∧ 0 ) ⊕ 1 ⟩ = ∣ 001 ⟩ T q ( ∣ 010 ⟩ ) = ∣ 0 , 1 , ( 0 ∧ 1 ) ⊕ 0 ⟩ = ∣ 010 ⟩ T q ( ∣ 011 ⟩ ) = ∣ 0 , 1 , ( 0 ∧ 1 ) ⊕ 1 ⟩ = ∣ 011 ⟩ T q ( ∣ 100 ⟩ ) = ∣ 1 , 0 , ( 1 ∧ 0 ) ⊕ 0 ⟩ = ∣ 100 ⟩ T q ( ∣ 101 ⟩ ) = ∣ 1 , 0 , ( 1 ∧ 0 ) ⊕ 1 ⟩ = ∣ 101 ⟩ T q ( ∣ 110 ⟩ ) = ∣ 1 , 1 , ( 1 ∧ 1 ) ⊕ 0 ⟩ = ∣ 111 ⟩ T q ( ∣ 111 ⟩ ) = ∣ 1 , 1 , ( 1 ∧ 1 ) ⊕ 1 ⟩ = ∣ 110 ⟩
T_{q} (\ket{000}) = \ket{0, 0, (0 \land 0) \oplus 0} = \ket{000} \\[0.5em]
T_{q} (\ket{001}) = \ket{0, 0, (0 \land 0) \oplus 1} = \ket{001} \\[0.5em]
T_{q} (\ket{010}) = \ket{0, 1, (0 \land 1) \oplus 0} = \ket{010} \\[0.5em]
T_{q} (\ket{011}) = \ket{0, 1, (0 \land 1) \oplus 1} = \ket{011} \\[0.5em]
T_{q} (\ket{100}) = \ket{1, 0, (1 \land 0) \oplus 0} = \ket{100} \\[0.5em]
T_{q} (\ket{101}) = \ket{1, 0, (1 \land 0) \oplus 1} = \ket{101} \\[0.5em]
T_{q} (\ket{110}) = \ket{1, 1, (1 \land 1) \oplus 0} = \ket{111} \\[0.5em]
T_{q} (\ket{111}) = \ket{1, 1, (1 \land 1) \oplus 1} = \ket{110} \\[0.5em]
T q ( ∣ 000 ⟩ ) = ∣ 0 , 0 , ( 0 ∧ 0 ) ⊕ 0 ⟩ = ∣ 000 ⟩ T q ( ∣ 001 ⟩ ) = ∣ 0 , 0 , ( 0 ∧ 0 ) ⊕ 1 ⟩ = ∣ 001 ⟩ T q ( ∣ 010 ⟩ ) = ∣ 0 , 1 , ( 0 ∧ 1 ) ⊕ 0 ⟩ = ∣ 010 ⟩ T q ( ∣ 011 ⟩ ) = ∣ 0 , 1 , ( 0 ∧ 1 ) ⊕ 1 ⟩ = ∣ 011 ⟩ T q ( ∣ 100 ⟩ ) = ∣ 1 , 0 , ( 1 ∧ 0 ) ⊕ 0 ⟩ = ∣ 100 ⟩ T q ( ∣ 101 ⟩ ) = ∣ 1 , 0 , ( 1 ∧ 0 ) ⊕ 1 ⟩ = ∣ 101 ⟩ T q ( ∣ 110 ⟩ ) = ∣ 1 , 1 , ( 1 ∧ 1 ) ⊕ 0 ⟩ = ∣ 111 ⟩ T q ( ∣ 111 ⟩ ) = ∣ 1 , 1 , ( 1 ∧ 1 ) ⊕ 1 ⟩ = ∣ 110 ⟩
The matrix representation is as follows.
T q = [ 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 ]
T_{q} =
\begin{bmatrix}
1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\
0 & 0 & 0 & 0 & 0 & 0 & 1 & 0
\end{bmatrix}
T q = 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0