21 research outputs found
Q# as a Quantum Algorithmic Language
Q# is a standalone domain-specific programming language from Microsoft for
writing and running quantum programs. Like most industrial languages, it was
designed without a formal specification, which can naturally lead to ambiguity
in its interpretation. We aim to provide a formal language definition for Q#,
placing the language on a solid mathematical foundation and enabling further
evolution of its design and type system. This paper presents -Q#, an
idealized version of Q# that illustrates how we may view Q# as a quantum Algol
(algorithmic language). We show the safety properties enforced by
-Q#'s type system and present its equational semantics based on a
fully complete algebraic theory by Staton.Comment: In Proceedings QPL 2022, arXiv:2311.0837
Linear/non-Linear Types For Embedded Domain-Specific Languages
Domain-specific languages are often embedded inside of general-purpose host languages so that the embedded language can take advantage of host-language data structures, libraries, and tools. However, when the domain-specific language uses linear types, existing techniques for embedded languages fall short. Linear type systems, which have applications in a wide variety of programming domains including mutable state, I/O, concurrency, and quantum computing, can manipulate embedded non-linear data via the linear type !σ. However, prior work has not been able to produce linear embedded languages that have full and easy access to host-language data, libraries, and tools.
This dissertation proposes a new perspective on linear, embedded, domain-specific languages derived from the linear/non-linear (LNL) interpretation of linear logic. The LNL model consists of two distinct fragments---one with linear types and another with non-linear types---and provides a simple categorical interface between the two. This dissertation identifies the linear fragment with the linear embedded language and the non-linear fragment with the general-purpose host language.
The effectiveness of this framework is illustrated via a number of examples, implemented in a variety of host languages. In Haskell, linear domain-specific languages using mutable state and concurrency can take advantage of the monad that arises from the LNL model. In Coq, the QWIRE quantum circuit language uses linearity to enforce the no-cloning axiom of quantum mechanics. In homotopy type theory, quantum transformations can be encoded as higher inductive types to simplify the presentation of a quantum equational theory. These examples serve as case studies that prove linear/non-linear type theory is a natural and expressive interface in which to embed linear domain-specific languages
In Search of Effectful Dependent Types
Real world programming languages crucially depend on the availability of
computational effects to achieve programming convenience and expressive power
as well as program efficiency. Logical frameworks rely on predicates, or
dependent types, to express detailed logical properties about entities.
According to the Curry-Howard correspondence, programming languages and logical
frameworks should be very closely related. However, a language that has both
good support for real programming and serious proving is still missing from the
programming languages zoo. We believe this is due to a fundamental lack of
understanding of how dependent types should interact with computational
effects. In this thesis, we make a contribution towards such an understanding,
with a focus on semantic methods.Comment: PhD thesis, Version submitted to Exam School
The Quantum Monadology
The modern theory of functional programming languages uses monads for
encoding computational side-effects and side-contexts, beyond bare-bone program
logic. Even though quantum computing is intrinsically side-effectful (as in
quantum measurement) and context-dependent (as on mixed ancillary states),
little of this monadic paradigm has previously been brought to bear on quantum
programming languages.
Here we systematically analyze the (co)monads on categories of parameterized
module spectra which are induced by Grothendieck's "motivic yoga of operations"
-- for the present purpose specialized to HC-modules and further to set-indexed
complex vector spaces. Interpreting an indexed vector space as a collection of
alternative possible quantum state spaces parameterized by quantum measurement
results, as familiar from Proto-Quipper-semantics, we find that these
(co)monads provide a comprehensive natural language for functional quantum
programming with classical control and with "dynamic lifting" of quantum
measurement results back into classical contexts.
We close by indicating a domain-specific quantum programming language (QS)
expressing these monadic quantum effects in transparent do-notation, embeddable
into the recently constructed Linear Homotopy Type Theory (LHoTT) which
interprets into parameterized module spectra. Once embedded into LHoTT, this
should make for formally verifiable universal quantum programming with linear
quantum types, classical control, dynamic lifting, and notably also with
topological effects.Comment: 120 pages, various figure
Multimodal Dependent Type Theory
We introduce MTT, a dependent type theory which supports multiple modalities.
MTT is parametrized by a mode theory which specifies a collection of modes,
modalities, and transformations between them. We show that different choices of
mode theory allow us to use the same type theory to compute and reason in many
modal situations, including guarded recursion, axiomatic cohesion, and
parametric quantification. We reproduce examples from prior work in guarded
recursion and axiomatic cohesion, thereby demonstrating that MTT constitutes a
simple and usable syntax whose instantiations intuitively correspond to
previous handcrafted modal type theories. In some cases, instantiating MTT to a
particular situation unearths a previously unknown type theory that improves
upon prior systems. Finally, we investigate the metatheory of MTT. We prove the
consistency of MTT and establish canonicity through an extension of recent
type-theoretic gluing techniques. These results hold irrespective of the choice
of mode theory, and thus apply to a wide variety of modal situations
Axiomatic Architecture of Scientific Theories
The received concepts of axiomatic theory and axiomatic method, which stem from David Hilbert, need a systematic revision in view of more recent mathematical and scientific axiomatic practices, which do not fully follow in Hilbert’s steps and re-establish some older historical patterns of axiomatic thinking in unexpected new forms. In this work I motivate, formulate and justify such a revised concept of axiomatic theory, which for a variety of reasons I call constructive, and then argue that it can better serve as a formal representational tool in mathematics and science than the received concept