3,572 research outputs found
Programming from Galois connections
Problem statements often resort to superlatives such as in eg. “. . . the smallest such number”, “. . . the best approximation”, “. . . the longest such list” which lead to specifications made of two parts: one defining a broad class of solutions (the easy part) and the other requesting the optimal such solution (the hard part).
This paper introduces a binary relational combinator which mirrors this linguistic structure and exploits its potential for calculating programs by optimization. This applies in particular to specifications written in the form of Galois connections, in which one of the adjoints delivers the optimal solution being sought.
The framework encompasses re-factoring of results previously developed by Bird and de Moor for greedy and dynamic programming, in a way which makes them less technically involved and therefore easier to understand and play with.Mondrian Project funded by the Portuguese NSF under contract PTDC/EIA-CCO/108302/200
On the existence of right adjoints for surjective mappings between fuzzy structures0
En este trabajo los autores continúan su estudio de la caracterización de la existencia de adjunciones (conexiones de Galois isótonas) cuyo codominio no está dotado de estructura en principio. En este artículo se considera el caso difuso en el que se tiene un orden difuso R definido en un conjunto A y una aplicación sobreyectiva f:A-> B compatible respecto de dos relaciones de similaridad definidas en el dominio A y en el condominio B, respectivamente. Concretamente, el problema es encontrar un orden difuso S en B y una aplicación g:B-> A compatible también con las correspondientes similaridades definidas en A y en B, de tal forma que el par (f,g) constituya un adjunción
A short note on Simulation and Abstraction
This short note is written in celebration of David Schmidt's sixtieth
birthday. He has now been active in the program analysis research community for
over thirty years and we have enjoyed many interactions with him. His work on
characterising simulations between Kripke structures using Galois connections
was particularly influential in our own work on using probabilistic abstract
interpretation to study Larsen and Skou's notion of probabilistic bisimulation.
We briefly review this work and discuss some recent applications of these ideas
in a variety of different application areas.Comment: In Proceedings Festschrift for Dave Schmidt, arXiv:1309.455
Injecting Abstract Interpretations into Linear Cost Models
We present a semantics based framework for analysing the quantitative
behaviour of programs with regard to resource usage. We start from an
operational semantics equipped with costs. The dioid structure of the set of
costs allows for defining the quantitative semantics as a linear operator. We
then present an abstraction technique inspired from abstract interpretation in
order to effectively compute global cost information from the program.
Abstraction has to take two distinct notions of order into account: the order
on costs and the order on states. We show that our abstraction technique
provides a correct approximation of the concrete cost computations
Variability Abstractions: Trading Precision for Speed in Family-Based Analyses (Extended Version)
Family-based (lifted) data-flow analysis for Software Product Lines (SPLs) is
capable of analyzing all valid products (variants) without generating any of
them explicitly. It takes as input only the common code base, which encodes all
variants of a SPL, and produces analysis results corresponding to all variants.
However, the computational cost of the lifted analysis still depends inherently
on the number of variants (which is exponential in the number of features, in
the worst case). For a large number of features, the lifted analysis may be too
costly or even infeasible. In this paper, we introduce variability abstractions
defined as Galois connections and use abstract interpretation as a formal
method for the calculational-based derivation of approximate (abstracted)
lifted analyses of SPL programs, which are sound by construction. Moreover,
given an abstraction we define a syntactic transformation that translates any
SPL program into an abstracted version of it, such that the analysis of the
abstracted SPL coincides with the corresponding abstracted analysis of the
original SPL. We implement the transformation in a tool, reconfigurator that
works on Object-Oriented Java program families, and evaluate the practicality
of this approach on three Java SPL benchmarks.Comment: 50 pages, 10 figure
A Constructive Framework for Galois Connections
Abstract interpretation-based static analyses rely on abstract domains of
program properties, such as intervals or congruences for integer variables.
Galois connections (GCs) between posets provide the most widespread and useful
formal tool for mathematically specifying abstract domains. Recently, Darais
and Van Horn [2016] put forward a notion of constructive Galois connection for
unordered sets (rather than posets), which allows to define abstract domains in
a so-called mechanized and calculational proof style and therefore enables the
use of proof assistants like Coq and Agda for automatically extracting verified
algorithms of static analysis. We show here that constructive GCs are
isomorphic, in a precise and comprehensive meaning including sound abstract
functions, to so-called partitioning GCs--an already known class of GCs which
allows to cast standard set partitions as an abstract domain. Darais and Van
Horn [2016] also provide a notion of constructive GC for posets, which we prove
to be isomorphic to plain GCs and therefore lose their constructive attribute.
Drawing on these findings, we put forward and advocate the use of purely
partitioning GCs, a novel class of constructive abstract domains for a
mechanized approach to abstract interpretation. We show that this class of
abstract domains allows us to represent a set partition with more flexibility
while retaining a constructive approach to Galois connections
- …