Pauli weight, and the k_h - 1 bound on how far a rotation can move it #
This file defines the support and the weight of a Pauli string (def:pauli_weight) and proves the
weight estimate the damped ladder is built on: if a Pauli string G anticommutes with s, then
the product G s satisfies | |G s| - |s| | ≤ |G| - 1, hence ≤ k_h - 1 for a k_h-local G.
Main definitions #
PauliString.site: the single-qubit Pauli type carried at a site, as a pair of bits.PauliString.support,PauliString.weight: the qubits on which a string acts non-trivially, and their number (def:pauli_weight).PauliString.cancelSites,PauliString.antiSites,PauliString.createSites: the three kinds of site ofsupp G, relative to a second strings.
Main results #
PauliString.card_cancelSites_add_card_antiSites_add_card_createSites,PauliString.weight_mul_add_card_cancelSites: the exact site bookkeeping.PauliString.sympForm_eq_card_antiSites: the symplectic form is#antiSitesmodulo two.PauliString.weight_mul_le,PauliString.weight_le_weight_mul_add_weight: the bounds with the full weight|G|, which need no hypothesis.PauliString.abs_weight_mul_sub_weight_le: the two-sided bound with|G| - 1for an anticommuting pair.PauliString.weight_sub_le_weight_mul,PauliString.weight_le_weight_mul_add_kh,PauliString.weight_mul_le_weight_add_kh: thek_hforms the ladder consumes.PauliString.exists_commuting_weight_increase_by_full_weight: the anticommutation hypothesis cannot be dropped.
The estimate, and why it is k_h - 1 rather than k_h #
The proof of apd:thm:local_flow_k_local needs: when G anticommutes with s, the partner Pauli
G s satisfies
|G s| ≥ |s| - (k_h - 1) for |G| ≤ k_h,
which places the partner one rung down rather than k_h rungs down, and so supports the rung
spacing w_m = k_o + (m-1)(k_h-1). In the other direction, |G s| ≤ |s| + (k_h - 1) is the
one-step bound behind reading w_m as the largest weight reachable from weight k_o by m-1
anticommuting k_h-local rotations. The recursion needs only these inequalities; that the weight
w_m is actually attained is not formalized. The two-sided statement, that the weight changes by
at most k - 1 when G has weight at most k, is one of the consequences of
apd:eq:pauli_rotation_branch on which the paper's analysis rests.
The arithmetic is exact rather than estimated. Split the support of G by what it does to s:
cancelSites G s—Gandscarry the same non-identity Pauli, so the site drops out;antiSites G s— both non-identity and different, so the site survives inG s;createSites G s—Gacts wheresdoes not, so the site is new.
These three partition supp G (card_cancelSites_add_card_antiSites_add_card_createSites), and
separately |G s| + #cancel = |s| + #create (weight_mul_add_card_cancelSites). So the weight
moves by #create - #cancel, and each of those is at most |G| - #anti.
The whole of the -1 is then one observation: sympForm counts antiSites mod 2
(sympForm_eq_card_antiSites), so anticommuting forces #anti odd, hence non-zero. A pair
that merely commutes gets #anti even, which may be 0, and then only the weaker |G| is
available — which is why the bound is a statement about the anticommuting branch and not a
general fact about Pauli products.
Naming #
weight is def:pauli_weight's |P|. k_h appears in the corollaries as a variable kh : ℕ,
implicit and inferred from the hypothesis weight G ≤ kh, so the statements read as they do in
the paper. Bounds of the form |s| - (k_h - 1) ≤ … use natural-number subtraction; this is
harmless, because the additive forms (weight_le_weight_mul_add, weight_le_weight_mul_add_kh)
are proved first and the subtractive ones are derived from them.
Sites #
The single-qubit Pauli type that s carries at site i, as a pair of bits: (0,0) is
identity, (1,0) is X-type, (0,1) is Z-type, (1,1) is Y-type.
These are labels up to phase, which is all the weight needs. At phase zero the (1,1) factor is
literally X Z = −i Y, not Y; which of Y, −Y or a non-Hermitian multiple it is depends on
the string's global phase, and the weight cannot see that (weight_phaseMul).
Instances For
The support of a Pauli string: the qubits it acts on non-trivially. Defined here as a
Finset, since def:pauli_weight takes its cardinality.
This is the support of a single Pauli string. def:support builds the support of a general
operator from it, as the union of the supports of the Pauli strings that carry a non-zero
coefficient.
Instances For
The weight |s| of a Pauli string, def:pauli_weight: the number of
qubits on which it acts non-trivially.
Instances For
The weight does not see the phase: it is a function of the bit vectors alone. The partner
Pauli in the proof of apd:thm:local_flow_k_local is ±i G s rather than the bare product
G s, and this is why bounding |G s| bounds it too.
The three kinds of site #
Sites of s that the product G * s cancels: G and s carry the same non-identity
Pauli there, so it drops out.
Instances For
Sites that G * s creates: G acts there and s does not.
Instances For
The partition of supp G #
The three kinds of site exhaust supp G.
The site count of G. Every site G acts on either cancels a site of s, survives as a
locally anticommuting site, or is new.
The weight bookkeeping. Cancelled sites are exactly what s loses and created sites
exactly what it gains, so the weight moves by #create - #cancel.
The symplectic form counts locally anticommuting sites #
⟪G,s⟫ is #antiSites modulo two. This is what turns a parity statement into a counting
statement, and it is the whole source of the -1 in |G s| ≥ |s| - (k_h - 1).
Anticommuting Pauli strings share at least one site at which they locally anticommute.
A Pauli string that anticommutes with something is not a phase: it acts on at least one qubit.
The general bound, and why the sharp one needs anticommutation #
Without any hypothesis only |G| is available: the weight can move by up to the full weight of
G in either direction.
The companion lower bound, again with no hypothesis.
The anticommutation hypothesis cannot be dropped. For the commuting pair G = X₁X₂,
s = Z₃ on three qubits, the supports are disjoint, so |G s| = 3 = |s| + |G| and the sharp
bound |G s| ≤ |s| + (|G| - 1) = 2 fails.
This is why weight_mul_le_weight_add carries sympForm G s = 1 and why the general statement
weight_mul_le is the best available without it. It is also why "a k_h-local rotation
increases the weight by at most k_h - 1" is a statement about anticommuting rotations. A
commuting rotation leaves the Pauli operator unchanged (pauli_rotation_branch_commute in
Pauli/Branch.lean), so the bare product G s never arises in that branch and its weight is
irrelevant there.
The weight bound #
At most |G| - 1 sites of s can be cancelled by an anticommuting G.
At most |G| - 1 new sites can be created by an anticommuting G.
The lower half, |G s| ≥ |s| - (|G| - 1) in the form that avoids truncated subtraction.
This is the direction the proof of apd:thm:local_flow_k_local uses.
The upper half, |G s| ≤ |s| + (|G| - 1). This is the direction behind the rung spacing
w_m = k_o + (m-1)(k_h-1): applied m - 1 times, it bounds by w_m the weight reachable from
weight k_o by anticommuting k_h-local rotations. That w_m is attained is not
formalized.
The two-sided weight bound: an anticommuting generator of weight |G| changes the weight
of s by at most |G| - 1. Stated over ℤ so that no truncated subtraction is hiding in it.
The bound is in terms of the actual weight |G|, which is slightly stronger than the paper's
statement in terms of a locality parameter k ≥ |G| (the weight changes by at most k - 1, one
of the consequences drawn from apd:eq:pauli_rotation_branch). The parameterized forms are the
k_h corollaries weight_sub_le_weight_mul and weight_mul_le_weight_add_kh below, which follow
from the two halves above.
The k_h form the ladder consumes #
|s| ≤ |G s| + (k_h - 1) for |G| ≤ k_h: the lower bound on the partner's weight used in
the proof of apd:thm:local_flow_k_local, in additive form.
|G s| ≥ |s| - (k_h - 1) — the same bound in subtractive form, which is where the proof
of apd:thm:local_flow_k_local places the partner Pauli one rung down rather than k_h rungs
down. The natural-number subtraction is harmless: when |s| < k_h - 1 the left-hand side is 0
and the bound is trivially true, and otherwise it is the additive form rearranged.
The same bound for the Hermitian partner i G s. In the proof of
apd:thm:local_flow_k_local a high-weight Pauli s is connected to its partner i G s, not to
the bare product G s. The two have the same weight, because the weight cannot see a phase
(weight_phaseMul), so this is weight_sub_le_weight_mul restated for the object the proof
actually uses.
|G s| ≤ |s| + (k_h - 1) for |G| ≤ k_h — the direction that fixes the rung spacing
w_m = k_o + (m-1)(k_h-1) of apd:thm:local_flow_k_local.