logo

Fredkin/CSWAP Gate

Fredkin/CSWAP Gate

양자정보이론
[ 펼치기 · 접기 ]

Definition1

The following vector-valued Boolean function is referred to as a Fredkin Gate.

F:{0,1}3{0,1}3 F : \left\{ 0, 1 \right\}^{3} \to \left\{ 0, 1 \right\}^{3}

F(a,b,c)=(a,(¬ab)(ac),(¬ac)(ab)) F (a, b, c) = \Big(a, (\lnot a \land b) \lor (a \land c), (\lnot a \land c) \lor (a \land b) \Big)

  • CSWAP\text{CSWAP} Gate is also known as.

Description

Introduced by Edward Fredkin, the Fredkin Gate swaps the remaining two values without altering the first input, if the first input is 11. The specific computation is as follows.

F(0,0,0)=(0,(¬00)(00),(¬00)(00))=(0,00,00)=(0,0,0)F(0,0,1)=(0,(¬00)(01),(¬01)(00))=(0,00,10)=(0,0,1)F(0,1,0)=(0,(¬01)(00),(¬00)(01))=(0,10,00)=(0,1,0)F(0,1,1)=(0,(¬01)(01),(¬01)(01))=(0,10,10)=(0,1,1)F(1,0,0)=(1,(¬10)(10),(¬10)(10))=(1,00,00)=(1,0,0)F(1,0,1)=(1,(¬10)(11),(¬11)(10))=(1,01,00)=(1,1,0)F(1,1,0)=(1,(¬11)(10),(¬10)(11))=(1,00,01)=(1,0,1)F(1,1,1)=(1,(¬11)(11),(¬11)(11))=(1,01,01)=(1,1,1) \begin{align*} F (0,0,0) &= (0, (\lnot 0 \land 0) \lor (0 \land 0), (\lnot 0 \land 0) \lor (0 \land 0)) = (0, 0 \lor 0, 0 \lor 0) = (0, 0, 0) \\ F (0,0,1) &= (0, (\lnot 0 \land 0) \lor (0 \land 1), (\lnot 0 \land 1) \lor (0 \land 0)) = (0, 0 \lor 0, 1 \lor 0) = (0, 0, 1) \\ F (0,1,0) &= (0, (\lnot 0 \land 1) \lor (0 \land 0), (\lnot 0 \land 0) \lor (0 \land 1)) = (0, 1 \lor 0, 0 \lor 0) = (0, 1, 0) \\ F (0,1,1) &= (0, (\lnot 0 \land 1) \lor (0 \land 1), (\lnot 0 \land 1) \lor (0 \land 1)) = (0, 1 \lor 0, 1 \lor 0) = (0, 1, 1) \\ F (1,0,0) &= (1, (\lnot 1 \land 0) \lor (1 \land 0), (\lnot 1 \land 0) \lor (1 \land 0)) = (1, 0 \lor 0, 0 \lor 0) = (1, 0, 0) \\ F (1,0,1) &= (1, (\lnot 1 \land 0) \lor (1 \land 1), (\lnot 1 \land 1) \lor (1 \land 0)) = (1, 0 \lor 1, 0 \lor 0) = (1, 1, 0) \\ F (1,1,0) &= (1, (\lnot 1 \land 1) \lor (1 \land 0), (\lnot 1 \land 0) \lor (1 \land 1)) = (1, 0 \lor 0, 0 \lor 1) = (1, 0, 1) \\ F (1,1,1) &= (1, (\lnot 1 \land 1) \lor (1 \land 1), (\lnot 1 \land 1) \lor (1 \land 1)) = (1, 0 \lor 1, 0 \lor 1) = (1, 1, 1) \\ \end{align*}

From the table, it is evident that FF is a reversible function and that composing FF twice results in an identity function.

Id=FF \operatorname{Id} = F \circ F

Furthermore, since {F}\left\{ F \right\} is functionally complete, FF is a universal gate.

Boolean FunctionSymbol
FF
Truth Table
InputOutput
aabbccaa(¬ab)(ac) (\lnot a \land b) \lor (a \land c)(¬ac)(ab) (\lnot a \land c) \lor (a \land b)
000000000000
000011000011
001100001100
001111001111
110000110000
110011111100
111100110011
111111111111

Theorem

Assuming unrestricted use of projection and injection, the Fredkin Gate FF is a universal gate. In other words, {F}\left\{ F \right\} is functionally complete.

Proof

Theorem

The set of NOT\text{NOT} Gate and AND\text{AND} Gate, {¬,}\left\{ \lnot, \land \right\}, is functionally complete.

Following the theorem, demonstrating that projection, injection, and FF can appropriately represent NOT\text{NOT} and AND\text{AND} concludes the proof.

  • NOT\text{NOT} Gate

    ¬=p0p1Fȷ2ı1 \lnot = p_{0} \circ p_{1} \circ F \circ \jmath_{2} \circ \imath_{1}

    Holds true. Since ȷ2ı1(a)=(a,0,1)\jmath_{2} \circ \imath_{1} (a) = (a, 0, 1), the following is obtained:

    Fȷ2ı1(a)=F(a,0,1)=(a,a,¬a) \begin{equation} F \circ \jmath_{2} \circ \imath_{1}(a) = F(a, 0, 1) = (a, a, \lnot a) \end{equation}

    To eliminate the first two values, take p0p1p_{0} \circ p_{1}, resulting in:

    p0p1Fȷ2ı1(a)=p0p1(a,a,¬a)=¬a p_{0} \circ p_{1} \circ F \circ \jmath_{2} \circ \imath_{1} (a) = p_{0} \circ p_{1} (a, a, \lnot a) = \lnot a

    ※ Additionally, applying p2p_{2} to (1)(1) yields a duplication function.

  • AND\text{AND} Gate

    =p0p1Fı2 \land = p_{0} \circ p_{1} \circ F \circ \imath_{2}

    Holds true. Initially, Fȷ2(a,b)F \circ \jmath_{2} (a, b) is as follows:

    Fȷ2(a,b)=F(a,b,0)=(a,(¬ab)(a0),(¬a0)(ab))=(a,(¬ab)0,0(ab))=(a,¬ab,ab) \begin{align*} F \circ \jmath_{2} (a, b) = F(a, b, 0) &= (a, (\lnot a \land b) \lor (a \land 0), (\lnot a \land 0) \lor (a \land b)) \\ &= (a, (\lnot a \land b) \lor 0, 0 \lor (a \land b)) \\ &= (a, \lnot a \land b, a \land b) \end{align*}

    Therefore, taking p0p1p_{0} \circ p_{1} results in:

    p0p1Fı2(a,b)=p0p1(a,¬ab,ab)=ab p_{0} \circ p_{1} \circ F \circ \imath_{2} (a, b) = p_{0} \circ p_{1} (a, \lnot a \land b, a \land b) = a \land b

See Also


  1. Kim Young-Hoon & Heo Jae-Sung, Quantum Information Theory (2020), p90-93 ↩︎