497 research outputs found
Relational Parametricity and Control
We study the equational theory of Parigot's second-order
λμ-calculus in connection with a call-by-name continuation-passing
style (CPS) translation into a fragment of the second-order λ-calculus.
It is observed that the relational parametricity on the target calculus induces
a natural notion of equivalence on the λμ-terms. On the other hand,
the unconstrained relational parametricity on the λμ-calculus turns
out to be inconsistent with this CPS semantics. Following these facts, we
propose to formulate the relational parametricity on the λμ-calculus
in a constrained way, which might be called ``focal parametricity''.Comment: 22 pages, for Logical Methods in Computer Scienc
Bounded Refinement Types
We present a notion of bounded quantification for refinement types and show
how it expands the expressiveness of refinement typing by using it to develop
typed combinators for: (1) relational algebra and safe database access, (2)
Floyd-Hoare logic within a state transformer monad equipped with combinators
for branching and looping, and (3) using the above to implement a refined IO
monad that tracks capabilities and resource usage. This leap in expressiveness
comes via a translation to "ghost" functions, which lets us retain the
automated and decidable SMT based checking and inference that makes refinement
typing effective in practice.Comment: 14 pages, International Conference on Functional Programming, ICFP
201
Relational Parametricity for Computational Effects
According to Strachey, a polymorphic program is parametric if it applies a
uniform algorithm independently of the type instantiations at which it is
applied. The notion of relational parametricity, introduced by Reynolds, is one
possible mathematical formulation of this idea. Relational parametricity
provides a powerful tool for establishing data abstraction properties, proving
equivalences of datatypes, and establishing equalities of programs. Such
properties have been well studied in a pure functional setting. Many programs,
however, exhibit computational effects, and are not accounted for by the
standard theory of relational parametricity. In this paper, we develop a
foundational framework for extending the notion of relational parametricity to
programming languages with effects.Comment: 31 pages, appears in Logical Methods in Computer Scienc
Tracing monadic computations and representing effects
In functional programming, monads are supposed to encapsulate computations,
effectfully producing the final result, but keeping to themselves the means of
acquiring it. For various reasons, we sometimes want to reveal the internals of
a computation. To make that possible, in this paper we introduce monad
transformers that add the ability to automatically accumulate observations
about the course of execution as an effect. We discover that if we treat the
resulting trace as the actual result of the computation, we can find new
functionality in existing monads, notably when working with non-terminating
computations.Comment: In Proceedings MSFP 2012, arXiv:1202.240
Codensity Lifting of Monads and its Dual
We introduce a method to lift monads on the base category of a fibration to
its total category. This method, which we call codensity lifting, is applicable
to various fibrations which were not supported by its precursor, categorical
TT-lifting. After introducing the codensity lifting, we illustrate some
examples of codensity liftings of monads along the fibrations from the category
of preorders, topological spaces and extended pseudometric spaces to the
category of sets, and also the fibration from the category of binary relations
between measurable spaces. We also introduce the dual method called density
lifting of comonads. We next study the liftings of algebraic operations to the
codensity liftings of monads. We also give a characterisation of the class of
liftings of monads along posetal fibrations with fibred small meets as a limit
of a certain large diagram.Comment: Extended version of the paper presented at CALCO 2015, accepted for
publication in LMC
Coalgebraic Weak Bisimulation from Recursive Equations over Monads
Strong bisimulation for labelled transition systems is one of the most
fundamental equivalences in process algebra, and has been generalised to
numerous classes of systems that exhibit richer transition behaviour. Nearly
all of the ensuing notions are instances of the more general notion of
coalgebraic bisimulation. Weak bisimulation, however, has so far been much less
amenable to a coalgebraic treatment. Here we attempt to close this gap by
giving a coalgebraic treatment of (parametrized) weak equivalences, including
weak bisimulation. Our analysis requires that the functor defining the
transition type of the system is based on a suitable order-enriched monad,
which allows us to capture weak equivalences by least fixpoints of recursive
equations. Our notion is in agreement with existing notions of weak
bisimulations for labelled transition systems, probabilistic and weighted
systems, and simple Segala systems.Comment: final versio
Logical Relations for Monadic Types
Logical relations and their generalizations are a fundamental tool in proving
properties of lambda-calculi, e.g., yielding sound principles for observational
equivalence. We propose a natural notion of logical relations able to deal with
the monadic types of Moggi's computational lambda-calculus. The treatment is
categorical, and is based on notions of subsconing, mono factorization systems,
and monad morphisms. Our approach has a number of interesting applications,
including cases for lambda-calculi with non-determinism (where being in logical
relation means being bisimilar), dynamic name creation, and probabilistic
systems.Comment: 83 page
Dynamic IFC Theorems for Free!
We show that noninterference and transparency, the key soundness theorems for
dynamic IFC libraries, can be obtained "for free", as direct consequences of
the more general parametricity theorem of type abstraction. This allows us to
give very short soundness proofs for dynamic IFC libraries such as faceted
values and LIO. Our proofs stay short even when fully mechanized for Agda
implementations of the libraries in terms of type abstraction.Comment: CSF 2021 final versio
Enhancing Semantic Bidirectionalization via Shape Bidirectionalizer Plug-ins
Matsuda et al. (2007) and Voigtlander (2009) have introduced two techniques that given a source-to-view function provide an update propagation function mapping an original source and an updated view back to an updated source, subject to standard consistency conditions. Previously, we developed a synthesis of the two techniques, based on a separation of shape and content aspects (Voigtlander et al. 2010). Here, we carry that idea further, reworking the technique of Voigtlander such that any shape bidirectionalizer (based on the work of Matsuda et al. or not) can be used as a plug-in, to good effect. We also provide a data-type-generic account, enabling wider reuse, including the use of
pluggable bidirectionalization itself as a plug-in
- âŚ