We propose a quantum programming language that generalizes the $\lambda$-calculus. The language is non-linear; duplicated variables denote, not cloning of quantum data, but sharing a qubit's state; that is, producing an entangled pair of qubits whose amplitudes are identical with respect to a chosen basis. The language has two abstraction operators, $\zeta$ and $\xi$, corresponding to the Z- and X-bases; each abstraction operator is also parameterised by a phase, indicating a rotation that is applied to the input before it is shared. We give semantics for the language in the ZX-calculus and prove its equational theory sound. We show how this language can provide a good representation of higher-order functions in the quantum world.
翻译:我们提出了一种扩展$\lambda$-演算的量子编程语言——Zeta演算。该语言是非线性的;重复出现的变量不表示量子数据的克隆,而是共享qubit的状态;也就是说,产生一个对在所选基准下的amplitude完全相同的qubit的纠缠对。该语言有两个抽象运算符$\zeta$和$\xi$,分别对应于Z-基和X-基;每个抽象运算符还具有一个相位参数,表示在共享输入之前应用的旋转。我们在ZX演算中为该语言提供了语义并证明了其等式理论的正确。我们展示了该语言如何在量子世界中提供高阶函数的良好表示。