QCut Subsequent Wires

QCut Subsequent Wires#

import QCut as ck
from QCut import cut, cutGate
from qiskit import QuantumCircuit, transpile
from qiskit.circuit.library import CXGate
from qiskit.quantum_info import SparsePauliOp
from qiskit.circuit.library import CXGate
from qiskit_aer import AerSimulator
from qiskit.primitives import Estimator, BackendEstimator
from iqm.qiskit_iqm import IQMFakeAdonis
#define initial circuit

circuit = QuantumCircuit(4)
circuit.h(0)
circuit.cx(0,1)
circuit.cx(0,2)
circuit.cx(1,3)
circuit.cx(2,3)

circuit.draw("mpl")
../_images/289eec707e56f23d9a5eee0600f975785ffeae935508402be4be6bb1b64f31a9.png
#insert cuts

cut_circuit = QuantumCircuit(4)
cut_circuit.h(0)
cut_circuit.cx(0,1)
cut_circuit.cx(0,2)
cut_circuit.append(cut, [1])
cut_circuit.append(cut, [2])
cut_circuit.cx(1,2)
cut_circuit.cx(2,3)

cut_circuit.draw("mpl")
../_images/7bd74253328575fcb4322c39610123007f089bbd02e7731223f53c5ce07fdbcf.png
# Now one can continue as in othrer examples