On Abstract Machine Semantics for Proto-Quipper-M

05/07/2021
by   Andrea Colledan, et al.
0

Quipper is a domain-specific programming language for the description of quantum circuits. Because it is implemented as an embedded language in Haskell, Quipper is a very practical functional language. However, for the same reason, it lacks a formal semantics and it is limited by Haskell's type system. In particular, because Haskell lacks linear types, it is easy to write Quipper programs that violate the non-cloning property of quantum states. In order to formalize relevant fragments of Quipper in a type-safe way, the Proto-Quipper family of research languages has been introduced over the last years. In this paper we first review Proto-Quipper-M, an instance of the Proto-Quipper family based on a categorical model for quantum circuits, which features a linear type system that guarantees that the non-cloning property holds at compile time. We then derive a tentative small-step operational semantics from the big-step semantics of Proto-Quipper-M and we prove that the two are equivalent. After proving subject reduction and progress results for the tentative semantics, we build upon it to obtain a truly small-step semantics in the style of an abstract machine, which we eventually prove to be equivalent to the original semantics.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/02/2018

QWIRE Practice: Formal Verification of Quantum Circuits in Coq

We describe an embedding of the QWIRE quantum circuit language in the Co...
research
06/08/2017

A categorical model for a quantum circuit description language

Quipper is a practical programming language for describing families of q...
research
12/21/2021

A Small-Step Operational Semantics for GP 2

The operational semantics of a programming language is said to be small-...
research
04/27/2022

Proto-Quipper with dynamic lifting

Quipper is a functional programming language for quantum computing. Prot...
research
09/15/2018

QPCF: higher order languages and quantum circuits

qPCF is a paradigmatic quantum programming language that ex- tends PCF w...
research
04/27/2022

A biset-enriched categorical model for Proto-Quipper with dynamic lifting

Quipper and Proto-Quipper are a family of quantum programming languages ...
research
04/29/2015

Automating Abstract Interpretation of Abstract Machines

Static program analysis is a valuable tool for any programming language ...

Please sign up or login with your details

Forgot password? Click here to reset