CONTROL 块与 DAGGER 块:受控与取逆的代数
- 主信息:一整段线路当作一个算子——受控是投影分支,取逆是共轭转置
- CONTROL 推导:U = P₁₁⊗X + (I−P₁₁)⊗I,其中 P₁₁ = |11⟩⟨11|(作用于控制位 q0、q1)⇒
with c.control(0, 1): c.x(2) ≡ TOFFOLI(0,1,2)
- 演算:先 X(0)、X(1) 置控制位 → P₁₁ 分支触发 → |111⟩ = 7 ✓ 输出
{7: 8}
- 输出行:
X q[2] controlled_by (q[0], q[1])(ext 内联语法;导出官方 OriginIR 时自动转回 CONTROL 块)
- DAGGER 推导:RX(θ)† = (e^(−iθX/2))† = e^(+iθX/2) = RX(−θ)(用 X† = X、X² = I)⇒ 单旋转门取逆 = 角度变号
- 演算:RX(1.23)·RX(−1.23) = RX(0) = I → 输出
{0: 8} ✓;导出行 RX q[0], (1.23) dagger
- 警示卡片(0.1.0 顺序语义):Python 块对每个门逐个取逆、按书写顺序导出;OriginIR 文本
DAGGER...ENDDAGGER 是整段逆序取逆——(AB)† = B†A†,对不交换的多门序列两者结果不同;需要整段取逆时,块内按逆序手写各门,并先在小线路上验证
类型code-walkthrough + 推导