AssertProb operation

Asserts that measuring the given qubits in the given Pauli basis will have the given result with the given probability, within some tolerance.

operation AssertProb (bases : Pauli[], qubits : Qubit[], result : Result, prob : Double, msg : String, tol : Double) : ()
Functors
Adjoint Controlled

Input

bases
Pauli[]

A measurement effect to assert the probability of, expressed as a multi-qubit Pauli operator.

qubits
Qubit[]

A register on which to make the assertion.

result
Result

An expected result of Measure(bases, qubits).

prob
Double

The probability with which the given result is expected.

msg
String

A message to be reported if the assertion fails.

tol
Double

Output

()

Remarks

Note that the Adjoint and Controlled versions of this operation will not check the condition.

Examples

using (register = Qubit[1]) {
    H(register[0]);
    AssertProb([PauliZ], register, One, 0.5,
        "Measuring in conjugate basis did not give 50/50 results.", 1e-5);
}

See Also