论文标题
带动态提升的原始Quipper
Proto-Quipper with dynamic lifting
论文作者
论文摘要
托克是一种用于量子计算的功能编程语言。 Proto-Quipper是一种旨在为震颤提供正式基础的语言家族。在本文中,我们用一种称为动态提升的构造来扩展原始Quipper-M,该构造中存在于震颤中。由于作为电路描述语言,原始Quipper有两个单独的运行时间:电路生成时间和电路执行时间。电路生成时间已知的值称为参数,在电路执行时间已知的值称为状态。动态提升是一种使状态(例如测量结果)提升为参数的操作,可以在其中影响电路的下一个部分的产生。结果,动态提升使原始程序可以交流经典和量子计算。我们描述了我们称为原始Quipper-Dyn的语言的语法。它的类型系统使用一种模式系统来跟踪动态提升的使用。我们还提供了一种基于丰富类别理论的动态提升的操作语义以及抽象的分类语义。我们证明类型系统和操作语义相对于我们的分类语义都是合理的。最后,我们提供了一些原始Quipper-Dyn程序的示例,这些程序可以利用动态提升。
Quipper is a functional programming language for quantum computing. Proto-Quipper is a family of languages aiming to provide a formal foundation for Quipper. In this paper, we extend Proto-Quipper-M with a construct called dynamic lifting, which is present in Quipper. By virtue of being a circuit description language, Proto-Quipper has two separate runtimes: circuit generation time and circuit execution time. Values that are known at circuit generation time are called parameters, and values that are known at circuit execution time are called states. Dynamic lifting is an operation that enables a state, such as the result of a measurement, to be lifted to a parameter, where it can influence the generation of the next portion of the circuit. As a result, dynamic lifting enables Proto-Quipper programs to interleave classical and quantum computation. We describe the syntax of a language we call Proto-Quipper-Dyn. Its type system uses a system of modalities to keep track of the use of dynamic lifting. We also provide an operational semantics, as well as an abstract categorical semantics for dynamic lifting based on enriched category theory. We prove that both the type system and the operational semantics are sound with respect to our categorical semantics. Finally, we give some examples of Proto-Quipper-Dyn programs that make essential use of dynamic lifting.