A Categorical Model for a Quantum Circuit Description Language (Extended Abstract)
arXiv:1706.02630 · doi:10.4204/EPTCS.266.11
Abstract
Quipper is a practical programming language for describing families of quantum circuits. In this paper, we formalize a small, but useful fragment of Quipper called Proto-Quipper-M. Unlike its parent Quipper, this language is type-safe and has a formal denotational and operational semantics. Proto-Quipper-M is also more general than Quipper, in that it can describe families of morphisms in any symmetric monoidal category, of which quantum circuits are but one example. We design Proto-Quipper-M from the ground up, by first giving a general categorical model of parameters and state. The distinction between parameters and state is also known from hardware description languages. A parameter is a value that is known at circuit generation time, whereas a state is a value that is known at circuit execution time. After finding some interesting categorical structures in the model, we then define the programming language to fit the model. We cement the connection between the language and the model by proving type safety, soundness, and adequacy properties.
In Proceedings QPL 2017, arXiv:1802.09737
Cited by in corpus (16)
- A tutorial introduction to quantum circuit programming in dependently typed Proto-Quipper
- Quantum Programming with Inductive Datatypes: Causality and Affine Type Theory
- Integration of Quantum Accelerators with High Performance Computing -- A Review of Quantum Programming Tools
- On the need for effective tools for debugging quantum programs
- Quantum CPOs
- Quantum Hoare Type Theory: Extended Abstract
- A Biset-Enriched Categorical Model for Proto-Quipper with Dynamic Lifting
- The Quantum Monadology
- Quantum Programming Made Easy
- Semantics for first-order affine inductive data types via slice categories
- Computational Adequacy for Substructural Lambda Calculi
- Quantum and Reality
- Quantum Suplattices
- Reflecting Algebraically Compact Functors
- A Framework for Rewriting Families of String Diagrams
- Proto-Quipper with Reversing and Control