A real device gets each gate slightly wrong. A common model is *depolarizing* noise: with probability p a gate is followed by a random error (X, Y or Z on each qubit it touches), and with probability 1 − p it is exact. Two-qubit gates are usually several times worse than one-qubit gates, and measurement has its own *readout* error. With noise, a program's state is no longer one vector but a *density matrix*, a mixture of the states each pattern of errors leaves. The engine evolves it exactly: a distribution intent under noise is still decided by proof, against the distribution the noise really gives. This exercise's job carries the noise, so the check runs your program as the device would. The lesson in numbers: the fewer gates, and above all the fewer two-qubit gates, the closer a noisy run stays to the ideal. The critique's figures (`wai-quantum critique`) count both, and its modelled fidelity multiplies one survival rate per gate. ```sh runnable cat > pair.qasm <<'QASM' OPENQASM 3.0; include "stdgates.inc"; qubit[2] q; bit[2] c; h q[0]; cx q[0], q[1]; c = measure q; QASM wai-quantum run pair.qasm --noise depolarizing_2q=0.03 --noise readout=0.02 --shots 2000 --seed 3 ```