3,796 research outputs found
Explicit Substitutions for Contextual Type Theory
In this paper, we present an explicit substitution calculus which
distinguishes between ordinary bound variables and meta-variables. Its typing
discipline is derived from contextual modal type theory. We first present a
dependently typed lambda calculus with explicit substitutions for ordinary
variables and explicit meta-substitutions for meta-variables. We then present a
weak head normalization procedure which performs both substitutions lazily and
in a single pass thereby combining substitution walks for the two different
classes of variables. Finally, we describe a bidirectional type checking
algorithm which uses weak head normalization and prove soundness.Comment: In Proceedings LFMTP 2010, arXiv:1009.218
QPCF: higher order languages and quantum circuits
qPCF is a paradigmatic quantum programming language that ex- tends PCF with
quantum circuits and a quantum co-processor. Quantum circuits are treated as
classical data that can be duplicated and manipulated in flexible ways by means
of a dependent type system. The co-processor is essentially a standard QRAM
device, albeit we avoid to store permanently quantum states in between two
co-processor's calls. Despite its quantum features, qPCF retains the classic
programming approach of PCF. We introduce qPCF syntax, typing rules, and its
operational semantics. We prove fundamental properties of the system, such as
Preservation and Progress Theorems. Moreover, we provide some higher-order
examples of circuit encoding
Logical relations for coherence of effect subtyping
A coercion semantics of a programming language with subtyping is typically
defined on typing derivations rather than on typing judgments. To avoid
semantic ambiguity, such a semantics is expected to be coherent, i.e.,
independent of the typing derivation for a given typing judgment. In this
article we present heterogeneous, biorthogonal, step-indexed logical relations
for establishing the coherence of coercion semantics of programming languages
with subtyping. To illustrate the effectiveness of the proof method, we develop
a proof of coherence of a type-directed, selective CPS translation from a typed
call-by-value lambda calculus with delimited continuations and control-effect
subtyping. The article is accompanied by a Coq formalization that relies on a
novel shallow embedding of a logic for reasoning about step-indexing
Introducing a Calculus of Effects and Handlers for Natural Language Semantics
In compositional model-theoretic semantics, researchers assemble
truth-conditions or other kinds of denotations using the lambda calculus. It
was previously observed that the lambda terms and/or the denotations studied
tend to follow the same pattern: they are instances of a monad. In this paper,
we present an extension of the simply-typed lambda calculus that exploits this
uniformity using the recently discovered technique of effect handlers. We prove
that our calculus exhibits some of the key formal properties of the lambda
calculus and we use it to construct a modular semantics for a small fragment
that involves multiple distinct semantic phenomena
The dagger lambda calculus
We present a novel lambda calculus that casts the categorical approach to the
study of quantum protocols into the rich and well established tradition of type
theory. Our construction extends the linear typed lambda calculus with a linear
negation of "trivialised" De Morgan duality. Reduction is realised through
explicit substitution, based on a symmetric notion of binding of global scope,
with rules acting on the entire typing judgement instead of on a specific
subterm. Proofs of subject reduction, confluence, strong normalisation and
consistency are provided, and the language is shown to be an internal language
for dagger compact categories.Comment: In Proceedings QPL 2014, arXiv:1412.810
Quantum Programming Made Easy
We present IQu, namely a quantum programming language that extends Reynold's
Idealized Algol, the paradigmatic core of Algol-like languages. IQu combines
imperative programming with high-order features, mediated by a simple type
theory. IQu mildly merges its quantum features with the classical programming
style that we can experiment through Idealized Algol, the aim being to ease a
transition towards the quantum programming world. The proposed extension is
done along two main directions. First, IQu makes the access to quantum
co-processors by means of quantum stores. Second, IQu includes some support for
the direct manipulation of quantum circuits, in accordance with recent trends
in the development of quantum programming languages. Finally, we show that IQu
is quite effective in expressing well-known quantum algorithms.Comment: In Proceedings Linearity-TLLA 2018, arXiv:1904.0615
Multi-level Contextual Type Theory
Contextual type theory distinguishes between bound variables and
meta-variables to write potentially incomplete terms in the presence of
binders. It has found good use as a framework for concise explanations of
higher-order unification, characterize holes in proofs, and in developing a
foundation for programming with higher-order abstract syntax, as embodied by
the programming and reasoning environment Beluga. However, to reason about
these applications, we need to introduce meta^2-variables to characterize the
dependency on meta-variables and bound variables. In other words, we must go
beyond a two-level system granting only bound variables and meta-variables.
In this paper we generalize contextual type theory to n levels for arbitrary
n, so as to obtain a formal system offering bound variables, meta-variables and
so on all the way to meta^n-variables. We obtain a uniform account by
collapsing all these different kinds of variables into a single notion of
variabe indexed by some level k. We give a decidable bi-directional type system
which characterizes beta-eta-normal forms together with a generalized
substitution operation.Comment: In Proceedings LFMTP 2011, arXiv:1110.668
Complexity Information Flow in a Multi-threaded Imperative Language
We propose a type system to analyze the time consumed by multi-threaded
imperative programs with a shared global memory, which delineates a class of
safe multi-threaded programs. We demonstrate that a safe multi-threaded program
runs in polynomial time if (i) it is strongly terminating wrt a
non-deterministic scheduling policy or (ii) it terminates wrt a deterministic
and quiet scheduling policy. As a consequence, we also characterize the set of
polynomial time functions. The type system presented is based on the
fundamental notion of data tiering, which is central in implicit computational
complexity. It regulates the information flow in a computation. This aspect is
interesting in that the type system bears a resemblance to typed based
information flow analysis and notions of non-interference. As far as we know,
this is the first characterization by a type system of polynomial time
multi-threaded programs
- …