Proto-Quipper with dynamic lifting
Peng Fu, Kohei Kishida, Neil J. Ross, Peter Selinger

TL;DR
This paper extends Proto-Quipper-M with dynamic lifting, allowing quantum programs to interleave classical and quantum computation by lifting measurement results to influence circuit generation.
Contribution
It introduces Proto-Quipper-Dyn with a new dynamic lifting construct, formalizes its syntax, type system, semantics, and categorical foundation, and demonstrates its use in quantum programming.
Findings
Dynamic lifting enables classical-quantum interleaving.
The type system tracks dynamic lifting with modalities.
Soundness is proven for the semantics.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsQuantum Computing Algorithms and Architecture · Computability, Logic, AI Algorithms · Logic, programming, and type systems
