operation () EPR (Quibit q1, Qubit q2) {
Body {
H (q1)
CNOT (q1,q2)
}
}

operation () Teleport (Qubit msg, Qubit here, Qubit there) {
Body {
EPR (here, there)
CNOT (msg, here)
H (msg)

let m_here = M (here)
if (m_here == One) {
X (there)
}

let m_msg = M (msg)
if (m_msg == One) {
Z (there)
}
}
}

Operation (Result) teleportTest (Result msg) {
Body {
mutable res = Zero
using (qubits = Qubits[3]) {
let msgQ = quibts[0]

// Set msgQ to message state
SetQubit (msg, msgQ)

Teleport (msgQ, qubits[1], qubits[2])

set res = M (qubits[2])
}
return res
}
}


ADDRESS
11 rue Elie Rochette
69007 Lyon

PHONE
+33 7 82 22 55 83

EMAIL
jean-michel@muzard.eu