42,195 research outputs found

    Efficient Computation of Renaming Functions for ρ-reversible Discrete and Continuous Time Markov Chains

    Get PDF
    With the introduction of ρ-reversibility, the basic notion of reversible Markov chain has been relaxed by allowing a wider range of scenarios. Specifically, the reversibility properties are not just sought on the chain itself, but also on all the possible topology-preserving renamings of its state space. Such renamings, called Renaming Functions, exhibit many interesting properties which can be exploited in different contexts. Unfortunately, finding a renaming function for a Markov chain is a very computationally intensive task. Using a naive approach it could require to check for all the possible state space permutations, which is unfeasible for all but the most trivial chains. As a matter of fact, we prove that the corresponding decision problem is polynomially equivalent to Graph Isomorphism. Nevertheless, we introduce an algorithm that, exploiting some necessary conditions for ρ-reversibility, is able to efficiently prune the search space and then verify the remaining renaming candidates. The correctness of the method is theoretically demonstrated and its practical effectiveness is shown over a significant set of discrete and continuous ρ-reversible Markov chains

    A Framework for Datatype Transformation

    Get PDF
    We study one dimension in program evolution, namely the evolution of the datatype declarations in a program. To this end, a suite of basic transformation operators is designed. We cover structure-preserving refactorings, but also structure-extending and -reducing adaptations. Both the object programs that are subject to datatype transformations, and the meta programs that encode datatype transformations are functional programs.Comment: Minor revision; now accepted at LDTA 200

    From ACT-ONE to Miranda, a Translation Experiment

    Get PDF
    It is now almost universally acknowledged that the data language ACT-ONE associated with the formal description technique LOTOS is inappropriate for the purpose of OSI formal description. In response to this the LOTOS restandardisation activity plans to replace ACT-ONE with a functional language. Thus, compatibility between ACT-ONE and the replacement data language becomes an issue. In response to this, we present an experimental investigation of backward compatibility between ACT-ONE and the new LOTOS data language. Specifically, we investigate translating ACT-ONE data types into the functional language Miranda. Miranda has been chosen as it is a widely used functional programming language and it is close in form to the anticipated new data language. This work serves as a ``verification of concept'' for translating ACT-ONE to the E-LOTOS data language. It identifies the bounds on embedding ACT-ONE in a functional data language. In particular, it indicates what can be translated and what cannot be translated. In addition, the paper reveals pertinent issues which can inform the E-LOTOS work. For example, which constructs are needed in E-LOTOS in order to support the class of data type specifications typically made in the LOTOS setting? We conclude with a number of specific recommendations for the E-LOTOS data language

    Renaming Global Variables in C Mechanically Proved Correct

    Get PDF
    Most integrated development environments are shipped with refactoring tools. However, their refactoring operations are often known to be unreliable. As a consequence, developers have to test their code after applying an automatic refactoring. In this article, we consider a refactoring operation (renaming of global variables in C), and we prove that its core implementation preserves the set of possible behaviors of transformed programs. That proof of correctness relies on the operational semantics of C provided by CompCert C in Coq.Comment: In Proceedings VPT 2016, arXiv:1607.0183
    • 

    corecore