import proveit
from proveit import Function, IndexedVar, ExprRange, ExprTuple, VertExprArray
from proveit import i, j, k, l, m, n, A, B, P, Q, R, S
from proveit.logic import Set
from proveit.numbers import one, two, three
from proveit.core_expr_types import a_i, b_i, c_i
from proveit.core_expr_types.expr_arrays import Aij, Bij, Cij, Dij, Eij, Pij, Qij, Rij, Sij, Tij, Uij, Vij, B11_to_Bmn, D11_to_Dmn, S11_to_Smn
from proveit.physics.quantum import I, X, Y, Z, H, CONTROL
from proveit.physics.quantum.circuits import Qcircuit, Input, Output, MultiQubitElem, Gate, target
%begin demonstrations