Learn More
We give a categorical semantics to the call-by-name and call-by-value versions of Parigot's-calculus with disjunction types. We introduce the class of control categories, which combine a cartesian-closed structure with a premonoidal structure in the sense of Power and Robinson. We prove, via a categorical structure theorem, that the categorical semantics is(More)
It differs from the present version in that it has been copy-edited and reformatted. Abstract Many familiar models of the untyped lambda calculus are constructed by order theoretic methods. This paper provides some basic new facts about ordered models of the lambda calculus. We show that in any partially ordered model that is complete for the theory of β-or(More)
In this paper, we develop a functional programming language for quantum computers, by extending the simply-typed lambda calculus with quantum types and operations. The design of this language adheres to the " quantum data, classical control " paradigm, following the first author's work on quantum flow-charts. We define a call-by-value operational semantics,(More)
The field of quantum algorithms is vibrant. Still, there is currently a lack of programming languages for describing quantum computation on a practical scale, i.e., not just at the level of toy problems. We address this issue by introducing Quipper, a scalable, expressive, functional, higher-order quantum programming language. Quipper has been used to(More)
We give an efficient randomized algorithm for approximating an arbitrary element of SU(2) by a product of Clifford+T operators, up to any given error threshold ε > 0. Under a mild hypothesis on the distribution of primes, the algorithm's expected runtime is polynomial in log(1/ε). If the operator to be approximated is a z-rotation, the resulting gate(More)
In this paper, we propose an adversary-centric, logical framework for formalizing cryptographic protocols. The formalism is inspired by the work of Compton and Dexter and of Cervesato et al., but we do not focus on proof search, but instead on logical validity. A novel contribution of this paper is a technique for giving very short proofs of protocol(More)
Overview Given a gate set S universal for quantum computing, the problem of decomposing a unitary operator U into a circuit over S is known as the synthesis problem. This problem can be solved exactly, if U belongs to the set of circuits generated by S. Otherwise, it can be solved approximately, by finding a circuit U such that ||U − U || < for some chosen(More)