Skip to main contentSkip to search
Episciences
Open Access Journals
Sign in(new window)
Journal of Functional Programming logo
Journal of Functional Programming
Journal of Functional Programming logo
Journal of Functional Programming
Sign in(new window)
Articles & Issues
All articlesAll accepted articlesAll volumesSectionsAuthors
About
The journalIndexingNews
Boards
Publish
For authorsEthical charterFor reviewers
Submit
Journal of Functional Programming logo
Journal's leaflet
|
Contact
|
Credits
eISSN 1469-7653
|
RSS
|
Atom
Episciences
Documentation
|
Acknowledgements
|
Publishing policy
Accessibility: non-compliant
|
Legal mentions
|
Privacy statement
|
Terms of use
  1. Home > Articles & Issues >
  2. Articles >
  3. Proto-Quipper with d ...
Article

Proto-Quipper with dynamic lifting

Peng Fu ORCID (1), Kohei Kishida (2), Neil J. Ross (3), Peter Selinger (3)
(1) University of South Carolina [Columbia]
(2) University of Illinois at Urbana-Champaign [Urbana]
(3) Dalhousie University [Halifax]
Download article
Open on HAL
Submitted on
May 13, 2024
Accepted on
May 24, 2026
Published on
September 15, 2026
Last modified on
September 15, 2026
Volume 36
Volume 36
DOI
10.46298/jfp.18066
License
Attribution-Non Commercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)
Indicators
34
Views
20
Downloads

Proto-Quipper with dynamic lifting

Peng Fu ORCID (1), Kohei Kishida (2), Neil J. Ross (3), Peter Selinger (3)
(1) University of South Carolina [Columbia]
(2) University of Illinois at Urbana-Champaign [Urbana]
(3) Dalhousie University [Halifax]
Abstract
<div><p>Quipper is a functional language for programming quantum circuits. 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 then provide an operational semantics, as well as a notion of categorical model for dynamic lifting. We also construct a concrete instance of such a model based on biset-enrichment. 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.</p></div>
Keywords
  • [INFO]Computer Science [cs]
  • [INFO.INFO-PL]Computer Science [cs]/Programming Languages [cs.PL]
  • [MATH.MATH-CT]Mathematics [math]/Category Theory [math.CT]
  • [PHYS.QPHY]Physics [physics]/Quantum Physics [quant-ph]
Preview
Loading PDF preview...