33 research outputs found
Rewriting for Monoidal Closed Categories
This paper develops a formal string diagram language for monoidal closed categories. Previous work has shown that string diagrams for freely generated symmetric monoidal categories can be viewed as hypergraphs with interfaces, and the axioms of these categories can be realized by rewriting systems. This work proposes hierarchical hypergraphs as a suitable formalization of string diagrams for monoidal closed categories. We then show double pushout rewriting captures the axioms of these closed categories
Pushdown Normal-Form Bisimulation: A Nominal Context-Free Approach to Program Equivalence
We propose Pushdown Normal Form (PDNF) Bisimulation to verify contextual
equivalence in higher-order functional programming languages with local state.
Similar to previous work on Normal Form (NF) bisimulation, PDNF Bisimulation is
sound and complete with respect to contextual equivalence. However, unlike
traditional NF Bisimulation, PDNF Bisimulation is also decidable for a class of
program terms that reach bounded configurations but can potentially have
unbounded call stacks and input an unbounded number of unknown functions from
their context. Our approach relies on the principle that, in model-checking for
reachability, pushdown systems can be simulated by finite-state automata
designed to accept their initial/final stack content. We embody this in a
stackless Labelled Transition System (LTS), together with an on-the-fly
saturation procedure for call stacks, upon which bisimulation is defined. To
enhance the effectiveness of our bisimulation, we develop up-to techniques and
confirm their soundness for PDNF Bisimulation. We develop a prototype
implementation of our technique which is able to verify equivalence in examples
from practice and the literature that were out of reach for previous work
Introduction to the Literature On Programming Language Design
This is an introduction to the literature on programming language design and related topics. It is intended to cite the most important work, and to provide a place for students to start a literature search
A Completeness Theorem for Probabilistic Regular Expressions
We introduce Probabilistic Regular Expressions (PRE), a probabilistic
analogue of regular expressions denoting probabilistic languages in which every
word is assigned a probability of being generated. We present and prove the
completeness of an inference system for reasoning about probabilistic language
equivalence of PRE based on Salomaa's axiomatisation of Kleene Algebra
Bisimulations for Delimited-Control Operators
We present a comprehensive study of the behavioral theory of an untyped
-calculus extended with the delimited-control operators shift and
reset. To that end, we define a contextual equivalence for this calculus, that
we then aim to characterize with coinductively defined relations, called
bisimilarities. We consider different styles of bisimilarities (namely
applicative, normal-form, and environmental) within a unifying framework, and
we give several examples to illustrate their respective strengths and
weaknesses. We also discuss how to extend this work to other delimited-control
operators
A coalgebraic treatment of conditional transition systems with upgrades
We consider conditional transition systems, that model software product lines with upgrades, in a coalgebraic setting. By using Birkhoff's duality for distributive lattices, we derive two equivalent Kleisli categories in which these coalgebras live: Kleisli categories based on the reader and on the so-called lattice monad over Poset. We study two different functors describing the branching type of the coalgebra and investigate the resulting behavioural equivalence. Furthermore we show how an existing algorithm for coalgebra minimisation can be instantiated to derive behavioural equivalences in this setting
Revisiting sequential composition in process calculi
International audienceThe article reviews the various ways sequential composition is defined in traditional process calculi, and shows that such definitions are not optimal, thus limiting the dissemination of concurrency theory ideas among computer scientists. An alternative approach is proposed, based on a symmetric binary operator and write-many variables. This approach, which generalizes traditional process calculi, has been used to define the new LNT language implemented in the CADP toolbox. Feedback gained from university lectures and real-life case studies shows a high acceptance by computer-science students and industry engineers