839 research outputs found
On the discriminating power of tests in resource lambda-calculus
Since its discovery, differential linear logic (DLL) inspired numerous
domains. In denotational semantics, categorical models of DLL are now commune,
and the simplest one is Rel, the category of sets and relations. In proof
theory this naturally gave birth to differential proof nets that are full and
complete for DLL. In turn, these tools can naturally be translated to their
intuitionistic counterpart. By taking the co-Kleisly category associated to the
! comonad, Rel becomes MRel, a model of the \Lcalcul that contains a notion of
differentiation. Proof nets can be used naturally to extend the \Lcalcul into
the lambda calculus with resources, a calculus that contains notions of
linearity and differentiations. Of course MRel is a model of the \Lcalcul with
resources, and it has been proved adequate, but is it fully abstract? That was
a strong conjecture of Bucciarelli, Carraro, Ehrhard and Manzonetto. However,
in this paper we exhibit a counter-example. Moreover, to give more intuition on
the essence of the counter-example and to look for more generality, we will use
an extension of the resource \Lcalcul also introduced by Bucciarelli et al for
which \Minf is fully abstract, the tests
Full Abstraction for the Resource Lambda Calculus with Tests, through Taylor Expansion
We study the semantics of a resource-sensitive extension of the lambda
calculus in a canonical reflexive object of a category of sets and relations, a
relational version of Scott's original model of the pure lambda calculus. This
calculus is related to Boudol's resource calculus and is derived from Ehrhard
and Regnier's differential extension of Linear Logic and of the lambda
calculus. We extend it with new constructions, to be understood as implementing
a very simple exception mechanism, and with a "must" parallel composition.
These new operations allow to associate a context of this calculus with any
point of the model and to prove full abstraction for the finite sub-calculus
where ordinary lambda calculus application is not allowed. The result is then
extended to the full calculus by means of a Taylor Expansion formula. As an
intermediate result we prove that the exception mechanism is not essential in
the finite sub-calculus
Call-by-value non-determinism in a linear logic type discipline
We consider the call-by-value lambda-calculus extended with a may-convergent
non-deterministic choice and a must-convergent parallel composition. Inspired
by recent works on the relational semantics of linear logic and non-idempotent
intersection types, we endow this calculus with a type system based on the
so-called Girard's second translation of intuitionistic logic into linear
logic. We prove that a term is typable if and only if it is converging, and
that its typing tree carries enough information to give a bound on the length
of its lazy call-by-value reduction. Moreover, when the typing tree is minimal,
such a bound becomes the exact length of the reduction
Processes, Systems \& Tests: Defining Contextual Equivalences
In this position paper, we would like to offer and defend a new template to
study equivalences between programs -- in the particular framework of process
algebras for concurrent computation.We believe that our layered model of
development will clarify the distinction that is too often left implicit
between the tasks and duties of the programmer and of the tester. It will also
enlighten pre-existing issues that have been running across process algebras as
diverse as the calculus of communicating systems, the -calculus -- also
in its distributed version -- or mobile ambients.Our distinction starts by
subdividing the notion of process itself in three conceptually separated
entities, that we call \emph{Processes}, \emph{Systems} and \emph{Tests}.While
the role of what can be observed and the subtleties in the definitions of
congruences have been intensively studied, the fact that \emph{not every
process can be tested}, and that \emph{the tester should have access to a
different set of tools than the programmer} is curiously left out, or at least
not often formally discussed.We argue that this blind spot comes from the
under-specification of contexts -- environments in which comparisons takes
place -- that play multiple distinct roles but supposedly always \enquote{stay
the same}.We illustrate our statement with a simple Java example, the
\enquote{usual} concurrent languages, but also back it up with
-calculus and existing implementations of concurrent languages as
well
On the Taylor expansion of probabilistic \u3bb-terms
We generalise Ehrhard and Regnier\u2019s Taylor expansion from pure to probabilistic \u3bb-terms. We prove that the Taylor expansion is adequate when seen as a way to give semantics to probabilistic \u3bb-terms, and that there is a precise correspondence with probabilistic B\uf6hm trees, as introduced by the second author. We prove this adequacy through notions of probabilistic resource terms and explicit Taylor expansion
Bisimulations for Delimited-Control Operators
We present a comprehensive study of the behavioral theory of an untyped
-calculus extended with the delimited-control operators shift and
reset. To that end, we define a contextual equivalence for this calculus, that
we then aim to characterize with coinductively defined relations, called
bisimilarities. We consider different styles of bisimilarities (namely
applicative, normal-form, and environmental) within a unifying framework, and
we give several examples to illustrate their respective strengths and
weaknesses. We also discuss how to extend this work to other delimited-control
operators
An introduction to Differential Linear Logic: proof-nets, models and antiderivatives
Differential Linear Logic enriches Linear Logic with additional logical rules
for the exponential connectives, dual to the usual rules of dereliction,
weakening and contraction. We present a proof-net syntax for Differential
Linear Logic and a categorical axiomatization of its denotational models. We
also introduce a simple categorical condition on these models under which a
general antiderivative operation becomes available. Last we briefly describe
the model of sets and relations and give a more detailed account of the model
of finiteness spaces and linear and continuous functions
Categorical structure of continuation passing style
Laboratory for Foundations of Computer ScienceThis thesis attempts to make precise the structure inherent in Continuation Passing Style (CPS).
We emphasize that CPS translates lambda-calculus into a very basic calculus that does not have functions as primitive.
We give an abstract categorical presentation of continuation semantics by taking the continuation type constructor (cont in Standard ML of New Jersey) as primitive. This constructor on types extends to a contravariant functor on terms which is adjoint to itself on the left; restricted to the subcategory of those programs that do not manipulate the current continuation, it is adjoint to itself on the right.
The motivating example of such a category is built from (equivalence classes of typing judgements for) continuation passing style (CPS) terms. The categorical approach suggests a notion of effect-free term as well as some operators for manipulating continuations. We use these for writing programs that illustrate our categorical approach and refute some conjectures about control effects.
A call-by-value lambda-calculus with the control operator callcc can be interpreted. Arrow types are broken down into continuation types for argument/result-continuations pairs, reflecting the fact that CPS compiles functions into a special case of continuations. Variant translations are possible, among them lazy call-by-name, which can be derived by way of argument thunking, and a genuinely call-by-name transform. Specialising the semantics to the CPS term model allows a rational reconstruction of various CPS transforms
Meta-F*: Proof Automation with SMT, Tactics, and Metaprograms
We introduce Meta-F*, a tactics and metaprogramming framework for the F*
program verifier. The main novelty of Meta-F* is allowing the use of tactics
and metaprogramming to discharge assertions not solvable by SMT, or to just
simplify them into well-behaved SMT fragments. Plus, Meta-F* can be used to
generate verified code automatically.
Meta-F* is implemented as an F* effect, which, given the powerful effect
system of F*, heavily increases code reuse and even enables the lightweight
verification of metaprograms. Metaprograms can be either interpreted, or
compiled to efficient native code that can be dynamically loaded into the F*
type-checker and can interoperate with interpreted code. Evaluation on
realistic case studies shows that Meta-F* provides substantial gains in proof
development, efficiency, and robustness.Comment: Full version of ESOP'19 pape
- …