5,152 research outputs found

    On proving the equivalence of concurrency primitives

    Get PDF
    Various concurrency primitives have been added to sequential programming languages, in order to turn them concurrent. Prominent examples are concurrent buffers for Haskell, channels in Concurrent ML, joins in JoCaml, and handled futures in Alice ML. Even though one might conjecture that all these primitives provide the same expressiveness, proving this equivalence is an open challenge in the area of program semantics. In this paper, we establish a first instance of this conjecture. We show that concurrent buffers can be encoded in the lambda calculus with futures underlying Alice ML. Our correctness proof results from a systematic method, based on observational semantics with respect to may and must convergence

    Thue's 1914 paper: a translation

    Get PDF
    This paper includes notes to accompany a reading of Thue's 1914 paper "Probleme uber Veranderungen von Zeichenreihen nach gegebenen Reglen", along with a translation of that paper. Thue's 1914 paper is mainly famous for proving an early example of an undecidable problem, cited prominently by Post. However, Post's paper principally makes use of the definition of Thue systems, described on the first two pages of Thue's paper, and does not depend on the more specific results in the remainder of Thue's paper. A closer study of the remaining parts of that paper highlight a number of important themes in the history of computing: the transition from algebra to formal language theory, the analysis of the "computational power" (in a pre-1936 sense) of rules, and the development of algorithms to generate rule-sets

    Adequacy of compositional translations for observational semantics

    Get PDF
    We investigate methods and tools for analysing translations between programming languages with respect to observational semantics. The behaviour of programs is observed in terms of may- and must-convergence in arbitrary contexts, and adequacy of translations, i.e., the reflection of program equivalence, is taken to be the fundamental correctness condition. For compositional translations we propose a notion of convergence equivalence as a means for proving adequacy. This technique avoids explicit reasoning about contexts, and is able to deal with the subtle role of typing in implementations of language extension

    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

    Forward and Backward Bisimulations for Chemical Reaction Networks

    Get PDF
    We present two quantitative behavioral equivalences over species of a chemical reaction network (CRN) with semantics based on ordinary differential equations. Forward CRN bisimulation identifies a partition where each equivalence class represents the exact sum of the concentrations of the species belonging to that class. Backward CRN bisimulation relates species that have the identical solutions at all time points when starting from the same initial conditions. Both notions can be checked using only CRN syntactical information, i.e., by inspection of the set of reactions. We provide a unified algorithm that computes the coarsest refinement up to our bisimulations in polynomial time. Further, we give algorithms to compute quotient CRNs induced by a bisimulation. As an application, we find significant reductions in a number of models of biological processes from the literature. In two cases we allow the analysis of benchmark models which would be otherwise intractable due to their memory requirements.Comment: Extended version of the CONCUR 2015 pape

    Consecutive Patterns in Inversion Sequences

    Full text link
    An inversion sequence of length nn is an integer sequence e=e1e2ene=e_{1}e_{2}\dots e_{n} such that 0ei<i0\leq e_{i}<i for each ii. Corteel--Martinez--Savage--Weselcouch and Mansour--Shattuck began the study of patterns in inversion sequences, focusing on the enumeration of those that avoid classical patterns of length 3. We initiate an analogous systematic study of consecutive patterns in inversion sequences, namely patterns whose entries are required to occur in adjacent positions. We enumerate inversion sequences that avoid consecutive patterns of length 3, and generalize some results to patterns of arbitrary length. Additionally, we study the notion of Wilf equivalence of consecutive patterns in inversion sequences, as well as generalizations of this notion analogous to those studied for permutation patterns. We classify patterns of length up to 4 according to the corresponding Wilf equivalence relations.Comment: Final version to appear in DMTC
    corecore