24 research outputs found
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
An Introduction to Different Approaches to Initial Semantics
Characterizing programming languages with variable binding as initial
objects, was first achieved by Fiore, Plotkin, and Turi in their seminal paper
published at LICS'99. To do so, in particular to prove initiality theorems,
they developed a framework based on monoidal categories, functors with
strengths, and -monoids. An alternative approach using modules over
monads was later introduced by Hirschowitz and Maggesi, for endofunctor
categories, that is, for particular monoidal categories. This approach has the
advantage of providing a more general and abstract definition of signatures and
models; however, no general initiality result is known for this notion of
signature. Furthermore, Matthes and Uustalu provided a categorical formalism
for constructing (initial) monads via Mendler-style recursion, that can also be
used for initial semantics. The different approaches have been developed
further in several articles. However, in practice, the literature is difficult
to access, and links between the different strands of work remain
underexplored.
In the present work, we give an introduction to initial semantics that
encompasses the three different strands. We develop a suitable "pushout" of
Hirschowitz and Maggesi's framework with Fiore's, and rely on Matthes and
Uustalu's formalism to provide modular proofs. For this purpose, we generalize
both Hirschowitz and Maggesi's framework, and Matthes and Uustalu's formalism
to the general setting of monoidal categories studied by Fiore and
collaborators. Moreover, we provide fully worked out presentation of some basic
instances of the literature, and an extensive discussion of related work
explaining the links between the different approaches
Programming Languages and Systems
This open access book constitutes the proceedings of the 31st European Symposium on Programming, ESOP 2022, which was held during April 5-7, 2022, in Munich, Germany, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022. The 21 regular papers presented in this volume were carefully reviewed and selected from 64 submissions. They deal with fundamental issues in the specification, design, analysis, and implementation of programming languages and systems
Programming Languages and Systems
This open access book constitutes the proceedings of the 30th European Symposium on Programming, ESOP 2021, which was held during March 27 until April 1, 2021, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2021. The conference was planned to take place in Luxembourg and changed to an online format due to the COVID-19 pandemic. The 24 papers included in this volume were carefully reviewed and selected from 79 submissions. They deal with fundamental issues in the specification, design, analysis, and implementation of programming languages and systems
A Petri net view of covalent bonds
In nature and chemistry the interactions among elements often form bonds and among them covalent bonds are relevant, involving the sharing of electrons. Another relevant and compelling facet of calculi modelling covalent bonds is that certain steps in reactions are the result of concerting different activities, possibly reversing some of them. Starting from a calculus for covalent bonds, we investigate on how it can be done in a compositional fashion and how it can be encoded in suitable Petri nets. The outcome gives us a compositional covalent bond calculus and a truly distributed implementation. On these results it is possible to build a behavioural equivalence among terms.Fil: Melgratti, Hernan Claudio. Consejo Nacional de Investigaciones Cient铆ficas y T茅cnicas. Oficina de Coordinaci贸n Administrativa Ciudad Universitaria. Instituto de Investigaci贸n en Ciencias de la Computaci贸n. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales. Instituto de Investigaci贸n en Ciencias de la Computaci贸n; ArgentinaFil: Mezzina, Claudio Antares. Universit脿 Degli Studi Di Urbino Carlo Bo; ItaliaFil: Pinna, G. Michele. Universit脿 degli Studi di Cagliari; Itali
Programming Languages and Systems
This open access book constitutes the proceedings of the 29th European Symposium on Programming, ESOP 2020, which was planned to take place in Dublin, Ireland, in April 2020, as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020. The actual ETAPS 2020 meeting was postponed due to the Corona pandemic. The papers deal with fundamental issues in the specification, design, analysis, and implementation of programming languages and systems
Programming Languages and Systems
This open access book constitutes the proceedings of the 31st European Symposium on Programming, ESOP 2022, which was held during April 5-7, 2022, in Munich, Germany, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022. The 21 regular papers presented in this volume were carefully reviewed and selected from 64 submissions. They deal with fundamental issues in the specification, design, analysis, and implementation of programming languages and systems
Foundations of Software Science and Computation Structures
This open access book constitutes the proceedings of the 23rd International Conference on Foundations of Software Science and Computational Structures, FOSSACS 2020, which took place in Dublin, Ireland, in April 2020, and was held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020. The 31 regular papers presented in this volume were carefully reviewed and selected from 98 submissions. The papers cover topics such as categorical models and logics; language theory, automata, and games; modal, spatial, and temporal logics; type theory and proof theory; concurrency theory and process calculi; rewriting theory; semantics of programming languages; program analysis, correctness, transformation, and verification; logics of programming; software specification and refinement; models of concurrent, reactive, stochastic, distributed, hybrid, and mobile systems; emerging models of computation; logical aspects of computational complexity; models of software security; and logical foundations of data bases.