Performing a Bell test#
Performing a Bell test on quantum hardware using discopy.
[1]:
from discopy.quantum import *
circuit = H @ Id(1) >> CX >> Measure() @ Measure()
circuit.draw()
[2]:
tk_circ = circuit.to_tk()
list(tk_circ)
[2]:
[H q[0];, CX q[0], q[1];, Measure q[0] --> c[0];, Measure q[1] --> c[1];]
[3]:
from pytket.extensions.qiskit import IBMQBackend, AerBackend
[4]:
backend = IBMQBackend('ibmq_bogota')
# backend = AerBackend()
circuit.get_counts(
backend=backend,
n_shots=2**13,
compilation=backend.default_compilation_pass(2)
)
Job Status: job has successfully run
[4]:
{(0, 0): 0.4539794921875,
(0, 1): 0.0257568359375,
(1, 0): 0.0218505859375,
(1, 1): 0.4984130859375}
[5]:
(Ket(0, 0) >> H @ Id(1) >> CX >> Measure() @ Measure()).eval(mixed=True).array
[5]:
array([[0.5+0.j, 0. +0.j],
[0. +0.j, 0. +0.j]])
[6]:
(Ket(0, 0) >> circuit)
[6]:
Circuit(dom=Ty(), cod=bit @ bit, boxes=[Ket(0, 0), H, CX, Measure(), Measure()], offsets=[0, 0, 0, 0, 1])