Discard

Contents

Discard#

class discopy.quantum.gates.Discard(name=None, dom=None, cod=None, data=None, *args, **kwargs)[source]#

Bases: SelfConjugate

Discard n qubits. If dom == bit then marginal distribution.

A gate is causal, i.e. discarding all its outputs is the same as discarding all its inputs.

>>> from discopy.monoidal import Equation
>>> Equation(CX >> Discard(2), Discard(2)).draw(
...     wire_labels=False, doctest="docs/_static/quantum/discard.svg")
../_images/discard.svg
>>> assert (CX >> Discard(2)).eval() == Discard(2).eval()

Post-selection is not causal: discarding the output of a bra is not the discard of its input.

>>> assert Bra(0).eval(mixed=True) != Discard(1).eval()
Parameters:

dom (C0)