Library / Circuits / noise

Noise

Noise in Lumen Lattice is a channel with a name, a wire, and a parameter. It is not a random gate inserted invisibly. Reviewers can replay the noise story from the request body alone.

Documents on this site

Why a vector is the wrong object

A pure state can be written as one ray. A laboratory register that has leaked which-path information into a bath cannot. The honest object is the density operator, and expectations become traces Tr(ρP). Lumen Drift is that object. Using Lumen State and ‘averaging a few random circuits’ is a Monte Carlo estimator of a channel, and the product will label it as such only if the caller built that estimator themselves and says so.

Data-T does not ship a hidden noise model on State. A State session is unitary unless the circuit contains an explicit reset, which is documented as a channel and will move the session to Drift.

Parameters a model card can quote

Quote the channel family, the wire set, the layer, and the scalar. ‘Depolarising, wires 0–3, after each entangling layer, p = 0.002’ is a complete 1.0 noise sentence. ‘Realistic device noise’ is not a parameter and will not appear in Data-T responses.

Correlated two-wire channels are allowed as a Kraus list. There is no shorthand for them in 1.0 besides the list. That is deliberate: a correlated model should be visible as data, not as a flag named ‘crosstalk’.

  • Kraus lists longer than 16 operators on one wire require an explicit allow header.
  • Non-trace-preserving maps are rejected. Post-selection is a query, not a channel.
  • Purity is returned so a downstream risk model can refuse answers below a floor.

Checking Drift against State

Every shipped channel family has a small-width test: the same unitary circuit on State, the channel-free Drift run, and the agreement of probabilities. A second test applies the channel and checks trace and positivity. A release that fails either test does not carry the Lumen Drift 1.0 name.