Semantics for a Higher Order Functional Programming Language for Quantum Computation
Résumé
The objective of this thesis is to develop a semantics for higher order quantum information. Following the work done in the author's M.Sc. thesis, we study a lambda calculus for quantum computation with classical control. The language features two important properties. The first one, arising from the so-called no-cloning theorem of quantum computation, is the need for a distinction between duplicable and non-duplicable elements. For keeping track of duplicability at higher order, we use a type system inspired by the resource-sensitive linear logic. The second important aspect is the probability inherent to measurement, the only operation for retrieving classical data from quantum data. This forces us into choosing a reduction strategy for being able to define an operational semantics. We address the question of a denotational semantics in two respects. First, we restrict the study to the strictly linear aspect of the language. Doing so, we suppress the need for distinguishing between duplicable and non-duplicable elements and we can focus on the description of quantum features at higher order. Using the category of completely positive maps as a framework, we build a fully abstract denotational model of the strictly linear fragment of the language. The study of the full language is more demanding. For dealing with the probabilistic aspect of the language, we use a method inspired by Moggi and build a computational model with a distinction between values and computations. For the distinction between duplicability and non-duplicability in the calculus, we adapt Bierman's linear category, where the duplication is considered as a comonad with specific properties. The resulting model is what we call a linear category for duplication. Finally, we only focus on the fragment of the language that contains the aforementioned elements, and remove the classical Boolean and quantum Boolean features to get a generic computational linear lambda-calculus. In this idealized setting, we show that such a language have a full and complete interpretation in a linear category for duplication.
L'objectif de cette thèse est de développer une sémantique d'ordre supérieur pour l'information quantique. S'appuyant sur les travaux de master (M.Sc.) de l'auteur, nous étudions un lambda-calcul pour le calcul quantique avec contrôle classique. Le langage comporte deux aspects. Le premier, émanant du théorème dit de « no-cloning » de l'information quantique, est le besoin de distinguer entre les données duplicables et celles non-duplicables. Pour tenir compte de la duplicabilité à l'ordre supérieur, nous utilisons un système de types inspiré par la logique linéaire, logique sensible à la notion de ressource. Le deuxième aspect important est l'effet de bord probabiliste émanant de la mesure, seule opération permettant de récupérer une information classique à partir de données quantiques. Cet effet de bord nous oblige à choisir une stratégie de réduction pour pouvoir être en mesure de définir une sémantique opérationnelle. Nous résolvons le problème de la sémantique dénotationnelle de deux façons. D'abord, en restreignant l'étude du langage au fragment strictement linéaire. Ce faisant, on supprime le besoin de distinguer entre structure duplicable et structure non-duplicable. Il est alors possible de se concentrer sur la description des caractéristiques du calcul quantique. En utilisant la catégorie des fonctions strictement positives (CPM), nous construisons un modèle dénotationnel « fully-abstract », c'est-à-dire caractérisant exactement l'équivalence opérationnelle du fragment strictement linéaire. L'étude du langage au complet est plus compliquée. Pour tenir compte de l'aspect probabiliste du langage, nous utilisons une méthode développée par Moggi et construisons un modèle distinguant la notion de résultat, ou valeur, de la notion de calcul (« computational model »). Pour traiter la distinction entre donnée duplicable et donnée non-duplicable, nous adaptons la notion de catégorie linéaire développée par Bierman, où la notion de duplication est interprétée comme une comonade avec des propriétés particulières. Le modèle issu de ce travail est ce que nous avons appelé une catégorie linéaire pour la duplication. Dans un dernier temps, le langage est restreint en ne considérant que la notion d'effet de bord et la distinction éléments duplicables – éléments non-duplicables pour obtenir un lambda-calcul linéaire générique. Dans ce contexte, nous montrons que la notion de catégorie linéaire de duplication est une interprétation « full and complete » pour le langage.