12 research outputs found

    The Relative Power of Composite Loop Agreement Tasks

    Get PDF
    Loop agreement is a family of wait-free tasks that includes set agreement and simplex agreement, and was used to prove the undecidability of wait-free solvability of distributed tasks by read/write memory. Herlihy and Rajsbaum defined the algebraic signature of a loop agreement task, which consists of a group and a distinguished element. They used the algebraic signature to characterize the relative power of loop agreement tasks. In particular, they showed that one task implements another exactly when there is a homomorphism between their respective signatures sending one distinguished element to the other. In this paper, we extend the previous result by defining the composition of multiple loop agreement tasks to create a new one with the same combined power. We generalize the original algebraic characterization of relative power to compositions of tasks. In this way, we can think of loop agreement tasks in terms of their basic building blocks. We also investigate a category-theoretic perspective of loop agreement by defining a category of loops, showing that the algebraic signature is a functor, and proving that our definition of task composition is the "correct" one, in a categorical sense.Comment: 18 page

    On correctness of buffer implementations in a concurrent lambda calculus with futures

    Get PDF
    Motivated by the question of correctness of a specific implementation of concurrent buffers in the lambda calculus with futures underlying Alice ML, we prove that concurrent buffers and handled futures can correctly encode each other. Correctness means that our encodings preserve and reflect the observations of may- and must-convergence. This also shows correctness wrt. program semantics, since the encodings are adequate translations wrt. contextual semantics. While these translations encode blocking into queuing and waiting, we also provide an adequate encoding of buffers in a calculus without handles, which is more low-level and uses busy-waiting instead of blocking. Furthermore we demonstrate that our correctness concept applies to the whole compilation process from high-level to low-level concurrent languages, by translating the calculus with buffers, handled futures and data constructors into a small core language without those constructs

    Separating Functional Computation from Relations

    Get PDF
    The logical foundation of arithmetic generally starts with a quantificational logic over relations. Of course, one often wishes to have a formal treatment of functions within this setting. Both Hilbert and Church added choice operators (such as the epsilon operator) to logic in order to coerce relations that happen to encode functions into actual functions. Others have extended the term language with confluent term rewriting in order to encode functional computation as rewriting to a normal form. We take a different approach that does not extend the underlying logic with either choice principles or with an equality theory. Instead, we use the familiar two-phase construction of focused proofs and capture functional computation entirely within one of these phases. As a result, our logic remains purely relational even when it is computing functions

    Focused and Synthetic Nested Sequents (Extended Technical Report)

    Get PDF
    Focusing is a general technique for transforming a sequent proof system into one with a syntactic separation of non-deterministic choices without sacrificing completeness. This not only improves proof search, but also has the representational benefit of distilling sequent proofs into synthetic normal forms. We show how to apply the focusing technique to nested sequent calculi, a generalization of ordinary sequent calculi to tree-like instead of list-like structures. We thus improve the reach of focusing to the most commonly studied modal logics, the logics of the modal S5 cube. Among our key contributions is a focused cut-elimination theorem for focused nested sequents.This is an extended version of a paper with the same title and authors that appears in the Proceedings of the 19th International Conference on Foundations of Software Science and Computation Structures (FoSSaCS), Eindhoven, Netherlands, 2-4 April 2016. This version contains full proofs of all the important lemmas and theorems

    Two Applications of Logic Programming to Coq

    Get PDF
    The logic programming paradigm provides a flexible setting for representing, manipulating, checking, and elaborating proof structures. This is particularly true when the logic programming language allows for bindings in terms and proofs. In this paper, we make use of two recent innovations at the intersection of logic programming and proof checking. One of these is the foundational proof certificate (FPC) framework which provides a flexible means of defining the semantics of a range of proof structures for classical and intuitionistic logic. A second innovation is the recently released Coq-Elpi plugin for Coq in which the Elpi implementation of ?Prolog can send and retrieve information to and from the Coq kernel. We illustrate the use of both this Coq plugin and FPCs with two example applications. First, we implement an FPC-driven sequent calculus for a fragment of the Calculus of Inductive Constructions and we package it into a tactic to perform property-based testing of inductive types corresponding to Horn clauses. Second, we implement in Elpi a proof checker for first-order intuitionistic logic and demonstrate how proof certificates can be supplied by external (to Coq) provers and then elaborated into the fully detailed proof terms that can be checked by the Coq kernel

    Adequacy Issues in Reactive Systems: Barbed Semantics for Mobile Ambients

    Get PDF
    Reactive systems represent a meta-framework aimed at deriving behavioral congruences for those specification formalisms whose operational semantics is provided by rewriting rules. The aim of this thesis is to address one of the main issues of the framework, concerning the adequacy of the standard observational semantics (the IPO and the saturated one) in modelling the concrete semantics of actual formalisms. The problem is that IPO-bisimilarity (obtained considering only minimal labels) is often too discriminating, while the saturated one (via all labels) may be too coarse, and intermediate proposals should then be put forward. We then introduce a more expressive semantics for reactive systems which, thanks to its flexibility, allows for recasting a wide variety of observational, bisimulation-based equivalences. In particular, we propose suitable notions of barbed and weak barbed semantics for reactive systems, and an efficient characterization of them through the IPO-transition systems. We also propose a novel, more general behavioural equivalence: L-bisimilarity, which is able to recast both its IPO and saturated counterparts, as well as the barbed one. The equivalence is parametric with respect to a set L of reactive systems labels, and it is shown that under mild conditions on L it is a congruence. In order to provide a suitable test-bed, we instantiate our proposal over the asynchronous CCS and, most importantly, over the mobile ambients calculus, whose semantics is still in a flux

    RPO Semantics for Mobile Ambients

    Get PDF
    The paper focuses on the synthesis of labelled transition systems (LTSs) for process calculi, choosing as testbed Mobile Ambients (MAs). The proposal is based on a graphical encoding: a process is mapped into a graph equipped with interfaces, such that the denotation is fully abstract with respect to the standard structural congruence. Graphs with interfaces are amenable to the synthesis mechanism based on borrowed contexts (BCs), an instance of relative pushouts (RPOs). The BC mechanism allows the effective construction of a LTS that has graphs with interfaces as states and labels, and such that the associated bisimilarity is a congruence. Our paper focuses on the analysis of a LTS over processes as graphs with interfaces: we use the LTS on graphs to recover a LTS directly defined over the structure of MAs processes, further defining a set of SOS inference rules capturing the same operational semantics
    corecore