The z-y-z Euler decomposition of a 2 × 2 unitary, and the ABC identity #
Category: 1-Mathlib (CSD-free; staged for upstream). BACKLOG #84, part (e2) of R-005
(specs/magic-plan.md, "The split"); the piece #81 and #85 share.
Nielsen–Chuang Theorem 4.1: every 2 × 2 unitary is a phase times a product of three rotations
about the z, y and z axes — ★★ exists_euler. The proof is the textbook trigonometry, with
one economy: passing to determinant one first (★★ exists_euler_of_det_one) leaves only two
entries to match, because a determinant-one unitary is !![a, -star b; b, star a]
(adjugate_entries, from Uᴴ = adjugate U). Writing a and b in polar form then gives the three
angles outright,
γ = 2 arccos ‖a‖, β = arg b - arg a, δ = -arg a - arg b,
with no case split: where a column degenerates the matching entry is killed by
cos (γ/2) = ‖a‖ = 0 or sin (γ/2) = ‖b‖ = 0, and Complex.norm_mul_exp_arg_mul_I holds at 0
too.
Then Nielsen–Chuang Corollary 4.2, the ABC identity: ★ abc_identity and ★ abc_prod_eq_one
exhibit A, B, C with
A X B X C = R_z(β) R_y(γ) R_z(δ) and A B C = 1,
so ★★ exists_abc writes any 2 × 2 unitary as e^{iα} · A X B X C with A B C = 1. That is the
form a controlled gate needs: the Xs become the two CNOTs of a one-control circuit, since the
control bit 0 leaves A B C = 1 and the control bit 1 inserts them.
expI,expI_add,star_expI,polar,polar_star— the unit circle written additively;rzMat,ryMat(SU2.axisRotaboutzandy),rzMat_eq,ryMat_eq,rzMat_mul,ryMat_mul, and their unitarity through the newSU2.su2_mem_unitaryGroup,SU2.axisRot_mem_unitaryGroup;xMat,xMat_mul_self,xMat_conj_rzMat,xMat_conj_ryMat,xMat_conj_mul— conjugation byXnegates both angles, and distributes over products;- ★
rz_ry_rz_eq— the Euler product as an explicit matrix; normSq_col_zero,adjugate_entries— what unitarity anddet = 1give;- ★★
exists_euler_of_det_one, ★★exists_euler, ★abc_prod_eq_one, ★abc_identity, ★★exists_abc; SU2.axisRot_det,expI_smul_mem_unitaryGroup,exists_su2_of_det_one,exists_axisRot_of_det_one,exists_sqrt_of_det_one,rz_ry_rz_detand ★★exists_sqrt— every2 × 2unitary has a unitary square root, through the axis–angle form of its determinant-one part.
Honest scope #
⚠️ This file is 2 × 2 matrices only. The circuit-level statement — that the one-control gate
ctrlSet {a} j of #83 is a product of two CNOTs and single-qubit gates — is
CsdLean4/Mathlib/QuantumInfo/ControlledSingle.lean, which turns exists_abc into that product.
⚠️ expI t is Complex.exp (t * I), kept as a definition only to keep the entries of the rotation
matrices readable; upstream it would be Circle.exp t. Nothing here needs the circle group.
References: M. A. Nielsen, I. L. Chuang, Quantum Computation and Quantum Information Theorem 4.1
and Corollary 4.2 (§4.2, §4.3); CsdLean4/Mathlib/QuantumInfo/SU2Rotation.lean for the axis–angle
layer; specs/magic-plan.md; specs/BACKLOG.md #84, #81, #85; specs/future-work.md.
Unitarity of the quaternion matrices #
The 2 × 2 layer of SU2Rotation.lean gains the three facts this file needs: a unit quaternion is
a unitary matrix.
The unit circle, written additively #
expI t = e^{it}. A definition only so that the entries of the rotation matrices below read as
phases; upstream this is Circle.exp t.
Equations
- QuantumInfo.Euler.expI t = Complex.exp (↑t * Complex.I)
Instances For
The two rotations and the bit flip #
R_z(β): the rotation by β about the z axis, diag (e^{-iβ/2}, e^{iβ/2}).
Equations
- QuantumInfo.Euler.rzMat β = QuantumInfo.SU2.axisRot 0 0 1 β
Instances For
R_y(γ): the rotation by γ about the y axis, the real rotation matrix.
Equations
- QuantumInfo.Euler.ryMat γ = QuantumInfo.SU2.axisRot 0 1 0 γ
Instances For
The 2 × 2 bit flip (X, the first Pauli matrix).
Equations
- QuantumInfo.Euler.xMat = !![0, 1; 1, 0]
Instances For
The Euler product #
★ The z-y-z product as an explicit matrix (Nielsen–Chuang (4.12)).
What unitarity gives #
The Euler decomposition #
★★ The z-y-z Euler decomposition in SU(2): a determinant-one 2 × 2 unitary is
R_z(β) R_y(γ) R_z(δ). Half of Nielsen–Chuang Theorem 4.1, and the half that carries the
trigonometry: passing to determinant one leaves only two entries to match.
The ABC identity #
★ The ABC identity (Nielsen–Chuang Corollary 4.2): inserting the two Xs turns the
product of the three factors into the Euler product.
★★ Every 2 × 2 unitary is e^{iα} A X B X C with A B C = 1 — the form a controlled gate
needs: on the control bit 0 the two Xs are absent and the target gets A B C = 1, on the control
bit 1 they are present and it gets e^{-iα} U.
Axis–angle form and square roots #
Two consequences of the decomposition that the control-count recursion of #85 and the density
argument of #81 both need: a determinant-one unitary is a rotation about some unit axis, and
every 2 × 2 unitary has a unitary square root.
★★ Every 2 × 2 unitary has a unitary square root. The control-count recursion of #85
consumes this: C^k(U) is built from C^{k-1} of a square root of U.