Hernán C. Melgratti

dblp:24/2104 · DBLP profile ↗
← Back
42ranked-venue papers
13as first author
16since 2021 · last 2026
0000-0003-0760-0618ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Theory of computation · 25 · 9 first-author · 10 since 2021Software engineering, systems software and programming languages · 12 · 3 first-author · 6 since 2021Applied, interdisciplinary, general and emerging computing · 3 · 2 first-author · 2 since 2021Computer networks · 1 · 1 first-author · 1 since 2021Databases, data management, data science and information retrieval · 1
YearPublicationVenuePosition
2026 Compositional Design, Implementation, and Verification of Swarms
abstract
Swarm protocols are a recently introduced formalism for specifying, implementing, and verifying peer-to-peer systems called swarms. A swarm consists of distributed agents called machines that communicate by asynchronous event propagation. Following a local-first model, each machine can progress without requiring continuous connectivity to other machines. Existing models of swarms are not compositional, making the modular development of large and complex swarm applications as well as the reuse of code difficult. We address these issues by presenting novel theory and techniques for the compositional specification, verification, and implementation of swarms. These results enable the correct compositional reuse of pre-existing swarm protocols and machine implementations. We implement these contributions in a companion software artifact which enables the automatic integration of independently designed and verified swarm components.
Florian Furbach, Lucas Clorius, Roland Kuhn 0002, Hernán C. Melgratti, Alceste Scalas, Emilio Tuosto
ECOOP4
2026 On Reversibility in Petri Nets
Hernán C. Melgratti, Claudio Antares Mezzina, G. Michele Pinna
FoSSaCS1
2026 A Lean Mechanization of Reversible Occurrence Nets
Daniel Dávalos, Hernán C. Melgratti
RC2
2025 Behavioural, Functional, and Non-functional Contracts for Dynamic Selection of Services
Carlos López Pombo, Hernán C. Melgratti, Agustín E. Martinez Suñé, Diego Senarruzza Anabia, Emilio Tuosto
COORDINATION2
2025 Relating Reversible Petri Nets and Reversible Event Structures, categorically
abstract
Causal nets (CNs) are Petri nets where causal dependencies are modelled via inhibitor arcs. They play the role of occurrence nets when representing the behaviour of a concurrent and distributed system, even when reversibility is considered. In this paper we extend CNs to account also for asymmetric conflicts and study (i) how this kind of nets, and their reversible versions, can be turned into a category; and (ii) their relation with the categories of reversible asymmetric event structures.
Hernán C. Melgratti, Claudio Antares Mezzina, G. Michele Pinna
Log. Methods Comput. Sci.1
2024 Fair Join Pattern Matching for Actors
abstract
Join patterns provide a promising approach to the development of concurrent and distributed message-passing applications. Several variations and implementations have been presented in the literature - but various aspects remain under-explored: in particular, how to specify a suitable notion of message matching, how to implement it correctly and efficiently, and how to systematically evaluate the implementation performance. In this work we focus on actor-based programming, and study the application of join patterns with conditional guards (i.e., the most expressive and challenging version of join patterns in literature). We formalise a novel specification of fair and deterministic join pattern matching, ensuring that older messages are always consumed if they can be matched. We present a stateful, tree-based join pattern matching algorithm and prove that it correctly implements our fair and deterministic matching specification. We present a novel Scala 3 actor library (called JoinActors) that implements our join pattern formalisation, leveraging macros to provide an intuitive API. Finally, we evaluate the performance of our implementation, by introducing a systematic benchmarking approach that takes into account the nuances of join pattern matching (in particular, its sensitivity to input traffic and complexity of patterns and guards).
Philipp Haller, Ayman Hussein, Hernán C. Melgratti, Alceste Scalas, Emilio Tuosto
ECOOP3
2024 A Truly Concurrent Semantics for Reversible CCS
abstract
Reversible CCS (RCCS) is a well-established, formal model for reversible communicating systems, which has been built on top of the classical Calculus of Communicating Systems (CCS). In its original formulation, each CCS process is equipped with a memory that records its performed actions, which is then used to reverse computations. More recently, abstract models for RCCS have been proposed in the literature, basically, by directly associating RCCS processes with (reversible versions of) event structures. In this paper we propose a different abstract model: starting from one of the well-known encoding of CCS into Petri nets we apply a recently proposed approach to incorporate causally-consistent reversibility to Petri nets, obtaining as result the (reversible) net counterpart of every RCCS term.
Hernán C. Melgratti, Claudio Antares Mezzina, G. Michele Pinna
Log. Methods Comput. Sci.1
2024 A Reversible Perspective on Petri Nets and Event Structures
abstract
Event structures have emerged as a foundational model for concurrent computation, explaining computational processes by outlining the events and the relationships that dictate their execution. They play a pivotal role in the study of key aspects of concurrent computation models, such as causality and independence, and have found applications across a broad range of languages and models, spanning realms like persistence, probabilities, and quantum computing. Recently, event structures have been extended to address reversibility, where computational processes can undo previous computations. In this context, reversible event structures provide abstract representations of processes capable of both forward and backward steps in a computation. Since their introduction, event structures have played a crucial role in bridging operational models, traditionally exemplified by Petri nets and process calculi, with denotational ones, i.e., algebraic domains. In this context, we revisit the standard connection between Petri nets and event structures under the lenses of reversibility. Specifically, we introduce a subset of contextual Petri nets, dubbed reversible causal nets , that precisely correspond to reversible prime event structures. The distinctive feature of reversible causal nets lies in deriving causality from inhibitor arcs, departing from the conventional dependence on the overlap between the postset and preset of transitions. In this way, we are able to operationally explain the full model of reversible prime event structures.
Hernán C. Melgratti, Claudio Antares Mezzina, G. Michele Pinna
ACM Trans. Comput. Log.1
2023 Behavioural Types for Local-First Software
Roland Kuhn 0002, Hernán C. Melgratti, Emilio Tuosto
ECOOP2
2023 Relating Reversible Petri Nets and Reversible Event Structures, Categorically
Hernán C. Melgratti, Claudio Antares Mezzina, G. Michele Pinna
FORTE1
2023 Multiparty testing preorders
abstract
Variants of the must testing approach have been successfully applied in service oriented computing for analysing the compliance between (contracts exposed by) clients and servers or, more generally, between two peers. It has however been argued that multiparty scenarios call for more permissive notions of compliance because partners usually do not have full coordination capabilities. We propose two new testing preorders, which are obtained by restricting the set of potential observers. For the first preorder, called uncoordinated, we allow only sets of parallel observers that use different parts of the interface of a given service and have no possibility of intercommunication. For the second preorder, that we call individualistic, we instead rely on parallel observers that perceive as silent all the actions that are not in the interface of interest. We have that the uncoordinated preorder is coarser than the classical must testing preorder and finer than the individualistic one. We also provide a characterisation in terms of decorated traces for both preorders: the uncoordinated preorder is defined in terms of must-sets and Mazurkiewicz traces while the individualistic one is described in terms of classes of filtered traces that only contain designated visible actions and must-sets.
Rocco De Nicola, Hernán C. Melgratti
Log. Methods Comput. Sci.2
2022 Towards refinable choreographies
abstract
We investigate refinement in the context of choreographies. We introduce refinable global choreographies allowing for the underspecification of protocols, whose interactions can be refined into actual protocols. Arbitrary refinements may spoil well-formedness, which are sufficient conditions that guarantee a protocol to be implementable. We introduce a typing discipline that enforces well-formedness of typed choreographies. Then we unveil the relation among refinable choreographies and their admissible refinements in terms of an axiom scheme.
Ugo de'Liguoro, Hernán C. Melgratti, Emilio Tuosto
J. Log. Algebraic Methods Program.2
2022 Categorical specification and implementation of Replicated Data Types
Fabio Gadducci, Hernán C. Melgratti, Christian Roldán, Matteo Sammartino
Theor. Comput. Sci.2
2022 A Petri net view of covalent bonds
Hernán C. Melgratti, Claudio Antares Mezzina, G. Michele Pinna
Theor. Comput. Sci.1
2021 A distributed operational view of Reversible Prime Event Structures
abstract
Reversible prime event structures extend the well-known model of prime event structures to represent reversible computational processes. Essentially, they give abstract descriptions of processes capable of undoing computation steps. Since their introduction, event structures have played a pivotal role in connecting operational models (traditionally, Petri nets and process calculi) with denotational ones (algebraic domains). For this reason, there has been a lot of interest in linking different classes of operational models with different kinds of event structures. Hence, it is natural to ask which is the operational counterpart of reversible prime event structures. Such question has been previously addressed for a subclass of reversible prime event structures in which the interplay between causality and reversibility is restricted to the so-called cause-respecting reversible structures. In this paper, we present an operational characterisation of the full-fledged model and show that reversible prime event structures correspond to a subclass of contextual Petri nets, called reversible causal nets. The distinctive feature of reversible causal nets is that causality is recovered from inhibitor arcs instead of the usual overlap between post and presets of transitions. In this way, we are able to operationally explain also out-of-causal order reversibility.
Hernán C. Melgratti, Claudio Antares Mezzina, G. Michele Pinna
LICS1
2021 Towards a Truly Concurrent Semantics for Reversible CCS
Hernán C. Melgratti, Claudio Antares Mezzina, G. Michele Pinna
RC1
2020 Probabilistic Analysis of Binary Sessions
abstract
We study a probabilistic variant of binary session types that relate to a class of Finite-State Markov Chains. The probability annotations in session types enable the reasoning on the probability that a session terminates successfully, for some user-definable notion of successful termination. We develop a type system for a simple session calculus featuring probabilistic choices and show that the success probability of well-typed processes agrees with that of the sessions they use. To this aim, the type system needs to track the propagation of probabilistic choices across different sessions.
Omar Inverso, Hernán C. Melgratti, Luca Padovani, Catia Trubiani, Emilio Tuosto
CONCUR2
2020 A Choreography-Driven Approach to APIs: The OpenDXL Case Study
Leonardo Frittelli, Facundo Maldonado, Hernán C. Melgratti, Emilio Tuosto
COORDINATION3
2020 Implementation Correctness for Replicated Data Types, Categorically
Fabio Gadducci, Hernán C. Melgratti, Christian Roldán, Matteo Sammartino
ICTAC2
2020 Reversible Occurrence Nets and Causal Reversible Prime Event Structures
Hernán C. Melgratti, Claudio Antares Mezzina, Iain Phillips 0001, G. Michele Pinna, Irek Ulidowski
RC1
2020 On Resolving Non-determinism in Choreographies
Laura Bocchi, Hernán C. Melgratti, Emilio Tuosto
Log. Methods Comput. Sci.2
2020 Reversing Place Transition Nets
Hernán C. Melgratti, Claudio Antares Mezzina, Irek Ulidowski
Log. Methods Comput. Sci.1
2020 Bayesian network semantics for Petri nets
Roberto Bruni 0001, Hernán C. Melgratti, Ugo Montanari
Theor. Comput. Sci.2
2019 Reversing P/T Nets
Hernán C. Melgratti, Claudio Antares Mezzina, Irek Ulidowski
COORDINATION1
2019 A Categorical Account of Replicated Data Types
abstract
Replicated Data Types (RDTs) have been introduced as a suitable abstraction for dealing with weakly consistent data stores, which may (temporarily) expose multiple, inconsistent views of their state. In the literature, RDTs are commonly specified in terms of two relations: visibility, which accounts for the different views that a store may have, and arbitration, which states the logical order imposed on the operations executed over the store. Different flavours, e.g., operational, axiomatic and functional, have recently been proposed for the specification of RDTs. In this work, we propose an algebraic characterisation of RDT specifications. We define categories of visibility relations and arbitrations, show the existence of relevant limits and colimits, and characterize RDT specifications as functors between such categories that preserve these additional structures.
Fabio Gadducci, Hernán C. Melgratti, Christian Roldán, Matteo Sammartino
FSTTCS2
2019 Concurrency and Probability: Removing Confusion, Compositionally
abstract
Assigning a satisfactory truly concurrent semantics to Petri nets with confusion and distributed decisions is a long standing problem, especially if one wants to resolve decisions by drawing from some probability distribution. Here we propose a general solution based on a recursive, static decomposition of (occurrence) nets in loci of decision, called structural branching cells (s-cells). Each s-cell exposes a set of alternatives, called transactions. Our solution transforms a given Petri net into another net whose transitions are the transactions of the s-cells and whose places are those of the original net, with some auxiliary structure for bookkeeping. The resulting net is confusion-free, and thus conflicting alternatives can be equipped with probabilistic choices, while nonintersecting alternatives are purely concurrent and their probability distributions are independent. The validity of the construction is witnessed by a tight correspondence with the recursively stopped configurations of Abbes and Benveniste. Some advantages of our approach are that: i) s-cells are defined statically and locally in a compositional way; ii) our resulting nets faithfully account for concurrency.
Roberto Bruni 0001, Hernán C. Melgratti, Ugo Montanari
Log. Methods Comput. Sci.2
2018 Concurrency and Probability: Removing Confusion, Compositionally
abstract
Assigning a satisfactory truly concurrent semantics to Petri nets with confusion and distributed decisions is a long standing problem, especially if one wants to resolve decisions by drawing from some probability distribution. Here we propose a general solution based on a recursive, static decomposition of (occurrence) nets in loci of decision, called structural branching cells (s-cells). Each s-cell exposes a set of alternatives, called transactions. Our solution transforms a given Petri net into another net whose transitions are the transactions of the s-cells and whose places are those of the original net, with some auxiliary structure for bookkeeping. The resulting net is confusion-free, and thus conflicting alternatives can be equipped with probabilistic choices, while nonintersecting alternatives are purely concurrent and their probability distributions are independent. The validity of the construction is witnessed by a tight correspondence with the recursively stopped configurations of Abbes and Benveniste. Some advantages of our approach are that: i) s-cells are defined statically and locally in a compositional way; ii) our resulting nets faithfully account for concurrency.
Roberto Bruni 0001, Hernán C. Melgratti, Ugo Montanari
LICS2
2018 Event Structures for Petri nets with Persistence
abstract
Event structures are a well-accepted model of concurrency. In a seminal paper by Nielsen, Plotkin and Winskel, they are used to establish a bridge between the theory of domains and the approach to concurrency proposed by Petri. A basic role is played by an unfolding construction that maps (safe) Petri nets into a subclass of event structures, called prime event structures, where each event has a uniquely determined set of causes. Prime event structures, in turn, can be identified with their domain of configurations. At a categorical level, this is nicely formalised by Winskel as a chain of coreflections. Contrary to prime event structures, general event structures allow for the presence of disjunctive causes, i.e., events can be enabled by distinct minimal sets of events. In this paper, we extend the connection between Petri nets and event structures in order to include disjunctive causes. In particular, we show that, at the level of nets, disjunctive causes are well accounted for by persistent places. These are places where tokens, once generated, can be used several times without being consumed and where multiple tokens are interpreted collectively, i.e., their histories are inessential. Generalising the work on ordinary nets, Petri nets with persistence are related to a new subclass of general event structures, called locally connected, by means of a chain of coreflections relying on an unfolding construction.
Paolo Baldan, Roberto Bruni 0001, Andrea Corradini 0001, Fabio Gadducci, Hernán C. Melgratti, Ugo Montanari
Log. Methods Comput. Sci.5
2018 On the semantics and implementation of replicated data types
Fabio Gadducci, Hernán C. Melgratti, Christian Roldán
Sci. Comput. Program.2
2017 A Denotational View of Replicated Data Types
Fabio Gadducci, Hernán C. Melgratti, Christian Roldán
COORDINATION2
2017 Chaperone contracts for higher-order sessions
abstract
Contracts have proved to be an effective mechanism that helps developers in identifying those modules of a program that violate the contracts of the functions and objects they use. In recent years, sessions have established as a key mechanism for realizing inter-module communications in concurrent programs. Just like values flow into or out of a function or object, messages are sent on, and received from, a session endpoint. Unlike conventional functions and objects, however, the kind, direction, and properties of messages exchanged in a session may vary over time, as the session progresses. This feature of sessions calls for contracts that evolve along with the session they describe. In this work, we extend to sessions the notion of chaperone contract (roughly, a contract that applies to a mutable object) and investigate the ramifications of contract monitoring in a higher-order language that features sessions. We give a characterization of correct module, one that honors the contracts of the sessions it uses, and prove a blame theorem. Guided by the calculus, we describe a lightweight implementation of monitored sessions as an OCaml module with which programmers can benefit from static session type checking and dynamic contract monitoring using an off-the-shelf version of OCaml.
Hernán C. Melgratti, Luca Padovani
Proc. ACM Program. Lang.1
2016 A Formal Analysis of the Global Sequence Protocol
Hernán C. Melgratti, Christian Roldán
COORDINATION1
2015 cJoin: Join with communicating transactions
abstract
This paper proposes a formal approach to the design and programming of long running transactions (LRTs). We exploit techniques from process calculi to define cJoin, which is an extension of the Join calculus with few well-disciplined primitives for LRT. Transactions in cJoin are intended to describe the transactional interaction of several partners, under the assumption that any partner executing a transaction may communicate only with other transactional partners. In such case, the transactions run by any party are bound to achieve the same outcome (i.e., all succeed or all fail). Hence, a distinguishing feature of cJoin, called dynamic joinability, is that ongoing transactions can be merged to complete their tasks and when this happens either all succeed or all abort. Additionally, cJoin is based on compensations i.e., partial executions of transactions are recovered by executing user-defined programs instead of providing automatic rollback. The expressiveness and generality of cJoin is demonstrated by many examples addressing common programming patterns. The mathematical foundation is accompanied by a prototype language implementation, which is an extension of the JoCaml compiler.
Roberto Bruni 0001, Hernán C. Melgratti, Ugo Montanari
Math. Struct. Comput. Sci.2
2015 On the behaviour of general purpose applications on cloud storages
Laura Bocchi, Hernán C. Melgratti
Serv. Oriented Comput. Appl.2
2014 Resolving Non-determinism in Choreographies
Laura Bocchi, Hernán C. Melgratti, Emilio Tuosto
ESOP2
2011 A Connector Algebra for P/T Nets Interactions
Roberto Bruni 0001, Hernán C. Melgratti, Ugo Montanari
CONCUR2
2009 Abstract Processes in Orchestration Languages
Maria Grazia Buscemi, Hernán C. Melgratti
ESOP2
2008 Multiparty Sessions in SOC
Roberto Bruni 0001, Ivan Lanese, Hernán C. Melgratti, Emilio Tuosto
COORDINATION3
2006 Event Structure Semantics for Nominal Calculi
Roberto Bruni 0001, Hernán C. Melgratti, Ugo Montanari
CONCUR2
2006 Dynamic Graph Transformation Systems
Roberto Bruni 0001, Hernán C. Melgratti
ICGT2
2005 Comparing Two Approaches to Compensable Flow Composition
Roberto Bruni 0001, Michael J. Butler, Carla Ferreira 0001, Tony Hoare, Hernán C. Melgratti, Ugo Montanari
CONCUR5
2005 Theoretical foundations for compensations in flow composition languages
abstract
A key aspect when aggregating business processes and web services is to assure transactional properties of process ex-ecutions. Since transactions in this context may require long periods of time to complete, traditional mechanisms for guaranteeing atomicity are not always appropriate. Gen-erally the concept of long running transactions relies on a weaker notion of atomicity based on compensations. For this reason, programming languages for service composition cannot leave out two key aspects: compensations, i.e. ad hoc activities that can undo the effects of a process that fails to complete, and transactional boundaries to delimit the scope of a transactional flow. This paper presents a hierarchy of transactional calculi with increasing expressiveness. We start from a very small language in which activities can only be composed sequentially. Then, we progressively introduce parallel composition, nesting, programmable compensations and exception handling. A running example illustrates the main features of each calculus in the hierarchy.
Roberto Bruni 0001, Hernán C. Melgratti, Ugo Montanari
POPL2