Omar Inverso

dblp:125/8727 · DBLP profile ↗
← Back
36ranked-venue papers
10as first author
14since 2021 · last 2024
0000-0002-9348-1979ORCID · verified

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

Software engineering, systems software and programming languages · 28 · 6 first-author · 11 since 2021Theory of computation · 7 · 2 first-author · 2 since 2021Artificial intelligence and machine learning · 1 · 1 first-author · 1 since 2021Systems, architecture and hardware · 1 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1
YearPublicationVenuePosition
2024 Accurate Static Data Race Detection for C
abstract
Abstract Data races are a particular kind of subtle, unintended program behaviour arising from thread interference in shared-memory concurrency. In this paper, we propose an automated technique for static detection of data races in multi-threaded C programs with POSIX threads. The key element of our technique is a reduction to reachability. Our prototype implementation combines such reduction with context-bounded analysis. The approach proves competitive against state-of-the-art tools, finding new issues in the implementation of well-known lock-free data structures, and shows a considerably superior accuracy of analysis in the presence of complex shared-memory access patterns.
Emerson Sales, Omar Inverso, Emilio Tuosto
FM (1)2
2024 Emerging Synchrony in Applauding Audiences: Formal Analysis and Specification
Luca Di Stefano 0001, Omar Inverso
ISoLA (1)2
2024 Reproducibility Report for the Paper: Follow the Leader: Alternating CPU/GPU Computations in PDES
abstract
The paper presents a novel approach to combine CPU- and GPU-based executions for the simulation of discrete events, thus allowing to leverage the performance gains of modern GPUs. The main element of novelty is in that the computational workload is assigned dynamically (rather than statically) to the available hardware resources. The approach is shown to be beneficial w.r.t. a completely static approach. The experimental evaluation confirms such benefits on different hardware.
Omar Inverso
SIGSIM-PADS1
2023 Verifying Programs by Bounded Tree-Width Behavior Graphs
Omar Inverso, Salvatore La Torre, Gennaro Parlato, Ermenegildo Tomasco
EUMAS1
2023 Preface for the special issue on tool papers of the 23rd International Conference on Coordination Models and Languages, COORDINATION 2021
Giorgio Audrito, Omar Inverso, Hugo Torres Vieira
Sci. Comput. Program.2
2023 Modelling flocks of birds and colonies of ants from the bottom up
abstract
Abstract This paper advocates the use of compositional specifications based on formal languages as a means of modelling and analysing sophisticated collective behaviour in natural systems. With the use of appropriate linguistic constructs, models can be developed that are both compact and intuitive, and can be easily refined and extended in small steps. Automated workflows can be implemented on top of this methodology to provide quick feedback, enabling rapid design iterations. To support our argument, we present three examples from the natural world, focusing on flocks of birds and colonies of ants, which feature well-known examples of emergent behaviour in collective adaptive systems. We use an agent-based language to develop simple models that aim at capturing these collective phenomena, and discuss the specific language constructs that we use in the process. Then, we adapt an existing verification tool for the language to simulate our models, and show that our simulations do display emergent behaviour.
Rocco De Nicola, Luca Di Stefano 0001, Omar Inverso, Serenella Valiani
Int. J. Softw. Tools Technol. Transf.3
2022 Modelling Flocks of Birds from the Bottom Up
Rocco De Nicola, Luca Di Stefano 0001, Omar Inverso, Serenella Valiani
ISoLA (3)3
2022 A Prototype for Data Race Detection in CSeq 3 - (Competition Contribution)
abstract
Abstract We sketch a sequentialization-based technique for bounded detection of data races under sequential consistency, and summarise the major improvements to our verification framework over the last years.
Alex Coto-Santiesteban, Omar Inverso, Emerson Sales, Emilio Tuosto
TACAS (2)2
2022 Tight Error Analysis in Fixed-point Arithmetic
abstract
We consider the problem of estimating the numerical accuracy of programs with operations in fixed-point arithmetic and variables of arbitrary, mixed precision, and possibly non-deterministic value. By applying a set of parameterised rewrite rules, we transform the relevant fragments of the program under consideration into sequences of operations in integer arithmetic over vectors of bits, thereby reducing the problem as to whether the error enclosures in the initial program can ever exceed a given order of magnitude to simple reachability queries on the transformed program. We describe a possible verification flow and a prototype analyser that implements our technique. We present an experimental evaluation on a particularly complex industrial case study, including a preliminary comparison between bit-level and word-level decision procedures.
Stella Simic, Alberto Bemporad, Omar Inverso, Mirco Tribastone
Formal Aspects Comput.3
2022 Automated replication of tuple spaces via static analysis
abstract
Coordination languages for tuple spaces can offer significant advantages in the specification and implementation of distributed systems, but often do require manual programming effort to ensure consistency. We propose an experimental technique for automated replication of tuple spaces in distributed systems. The system of interest is modelled as a concurrent Go program where different threads represent the behaviour of the separate components, each owning its own local tuple repository. We automatically transform the initial program by combining program transformation and static analysis, so that tuples are replicated depending on the components' read-write access patterns. In this way, we turn the initial system into a replicated one where the replication of tuples is automatically achieved, while avoiding unnecessary replication overhead. Custom static analyses may be plugged in easily in our prototype implementation. We see this as a first step towards developing a fully-fledged framework to support designers to quickly evaluate many classes of replication-based systems under different consistency levels.
Rocco De Nicola, Luca Di Stefano 0001, Omar Inverso, Aline Uwimbabazi
Sci. Comput. Program.3
2022 Bounded Verification of Multi-threaded Programs via Lazy Sequentialization
abstract
Bounded verification techniques such as bounded model checking (BMC) have successfully been used for many practical program analysis problems, but concurrency still poses a challenge. Here, we describe a new approach to BMC of sequentially consistent imperative programs that use POSIX threads. We first translate the multi-threaded program into a nondeterministic sequential program that preserves reachability for all round-robin schedules with a given bound on the number of rounds. We then reuse existing high-performance BMC tools as backends for the sequential verification problem. Our translation is carefully designed to introduce very small memory overheads and very few sources of nondeterminism, so it produces tight SAT/SMT formulae, and is thus very effective in practice: Our Lazy-CSeq tool implementing this translation for the C programming language won several gold and silver medals in the concurrency category of the Software Verification Competitions (SV-COMP) 2014–2021 and was able to find errors in programs where all other techniques (including testing) failed. In this article, we give a detailed description of our translation and prove its correctness, sketch its implementation using the CSeq framework, and report on a detailed evaluation and comparison of our approach.
Omar Inverso, Ermenegildo Tomasco, Bernd Fischer 0002, Salvatore La Torre, Gennaro Parlato
ACM Trans. Program. Lang. Syst.1
2022 Verification of Distributed Systems via Sequential Emulation
abstract
Sequential emulation is a semantics-based technique to automatically reduce property checking of distributed systems to the analysis of sequential programs. An automated procedure takes as input a formal specification of a distributed system, a property of interest, and the structural operational semantics of the specification language and generates a sequential program whose execution traces emulate the possible evolutions of the considered system. The problem as to whether the property of interest holds for the system can then be expressed either as a reachability or as a termination query on the program. This allows to immediately adapt mature verification techniques developed for general-purpose languages to domain-specific languages, and to effortlessly integrate new techniques as soon as they become available. We test our approach on a selection of concurrent systems originated from different contexts from population protocols to models of flocking behaviour. By combining a comprehensive range of program verification techniques, from traditional symbolic execution to modern inductive-based methods such as property-directed reachability, we are able to draw consistent and correct verification verdicts for the considered systems.
Luca Di Stefano 0001, Rocco De Nicola, Omar Inverso
ACM Trans. Softw. Eng. Methodol.3
2021 Bit-Precise Verification of Discontinuity Errors Under Fixed-Point Arithmetic
Stella Simic, Omar Inverso, Mirco Tribastone
SEFM2
2021 Preface for the special issue on tool papers of the 21st International Conference on Coordination Models and Languages, COORDINATION 2019
Omar Inverso, Hugo Torres Vieira
Sci. Comput. Program.1
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
CONCUR1
2020 Tight Error Analysis in Fixed-Point Arithmetic
Stella Simic, Alberto Bemporad, Omar Inverso, Mirco Tribastone
IFM3
2020 Abstractions for Collective Adaptive Systems
Omar Inverso, Catia Trubiani, Emilio Tuosto
ISoLA (2)1
2020 Verifying AbC Specifications via Emulation
Rocco De Nicola, Tan Duong, Omar Inverso
ISoLA (2)3
2020 Parallel and distributed bounded model checking of multi-threaded programs
abstract
We introduce a structure-aware parallel technique for context-bounded analysis of concurrent programs. The key intuition consists in decomposing the set of concurrent traces into symbolic subsets that are separately explored by multiple instances of the same decision procedure running in parallel. The decision procedures work on different partitions of the search space without cooperating, whence distribution follows effortlessly. Our experiments on a selection of complex multi-threaded programs show significant analysis speedups and scalability, and greater performance gains than with general-purpose parallel solvers.
Omar Inverso, Catia Trubiani
PPoPP1
2020 Automated model-based performance analysis of software product lines under uncertainty
Paolo Arcaini, Omar Inverso, Catia Trubiani
Inf. Softw. Technol.2
2020 Multi-agent systems with virtual stigmergy
Rocco De Nicola, Luca Di Stefano 0001, Omar Inverso
Sci. Comput. Program.3
2018 AErlang: Empowering Erlang with attribute-based communication
Rocco De Nicola, Tan Duong, Omar Inverso, Catia Trubiani
Sci. Comput. Program.3
2017 AErlang: Empowering Erlang with Attribute-Based Communication
Rocco De Nicola, Tan Duong, Omar Inverso, Catia Trubiani
COORDINATION3
2017 AErlang at Work
Rocco De Nicola, Tan Duong, Omar Inverso, Catia Trubiani
SOFSEM3
2017 Lazy-CSeq 2.0: Combining Lazy Sequentialization with Abstract Interpretation - (Competition Contribution)
Truc L. Nguyen, Omar Inverso, Bernd Fischer 0002, Salvatore La Torre, Gennaro Parlato
TACAS (2)2
2017 On the path-width of integer linear programming
Constantin Enea, Peter Habermehl, Omar Inverso, Gennaro Parlato
Inf. Comput.3
2016 Lazy sequentialization for TSO and PSO via shared memory abstractions
abstract
Lazy sequentialization is one of the most effective approaches for the bounded verification of concurrent programs. Existing tools assume sequential consistency (SC), thus the feasibility of lazy sequentializations for weak memory models (WMMs) remains untested. Here, we describe the first lazy sequentialization approach for the total store order (TSO) and partial store order (PSO) memory models. We replace all shared memory accesses with operations on a shared memory abstraction (SMA), an abstract data type that encapsulates the semantics of the underlying WMM and implements it under the simpler SC model. We give efficient SMA implementations for TSO and PSO that are based on temporal circular doubly-linked lists, a new data structure that allows an efficient simulation of the store buffers. We show experimentally, both on the SV-COMP concurrency benchmarks and a real world instance, that this approach works well in combination with lazy sequentialization on top of bounded model checking.
Ermenegildo Tomasco, Truc L. Nguyen, Omar Inverso, Bernd Fischer 0002, Salvatore La Torre, Gennaro Parlato
FMCAD3
2016 MU-CSeq 0.4: Individual Memory Location Unwindings - (Competition Contribution)
Ermenegildo Tomasco, Truc L. Nguyen, Omar Inverso, Bernd Fischer 0002, Salvatore La Torre, Gennaro Parlato
TACAS3
2015 Lazy-CSeq: A Context-Bounded Model Checking Tool for Multi-threaded C-Programs
abstract
Lazy-CSeq is a context-bounded verification tool for sequentially consistent C programs using POSIX threads. It first translates a multi-threaded C program into a bounded nondeterministic sequential C program that preserves bounded reachability for all round-robin schedules up to a given number of rounds. It then reuses existing high-performance bounded model checkers as sequential verification backends. Lazy-CSeq handles the full C language and the main parts of the POSIX thread API, such as dynamic thread creation and deletion, and synchronization via thread join, locks, and condition variables. It supports assertion checking and deadlock detection, and returns counterexamples in case of errors. Lazy-CSeq outperforms other concurrency verification tools and has won the concurrency category of the last two SV-COMP verification competitions.
Omar Inverso, Truc L. Nguyen, Bernd Fischer 0002, Salvatore La Torre, Gennaro Parlato
ASE1
2015 MU-CSeq 0.3: Sequentialization by Read-Implicit and Coarse-Grained Memory Unwindings - (Competition Contribution)
Ermenegildo Tomasco, Omar Inverso, Bernd Fischer 0002, Salvatore La Torre, Gennaro Parlato
TACAS2
2015 Verifying Concurrent Programs by Memory Unwinding
Ermenegildo Tomasco, Omar Inverso, Bernd Fischer 0002, Salvatore La Torre, Gennaro Parlato
TACAS2
2014 Bounded Model Checking of Multi-threaded C Programs via Lazy Sequentialization
Omar Inverso, Ermenegildo Tomasco, Bernd Fischer 0002, Salvatore La Torre, Gennaro Parlato
CAV1
2014 Lazy-CSeq: A Lazy Sequentialization Tool for C - (Competition Contribution)
Omar Inverso, Ermenegildo Tomasco, Bernd Fischer 0002, Salvatore La Torre, Gennaro Parlato
TACAS1
2014 MU-CSeq: Sequentialization of C Programs by Shared Memory Unwindings - (Competition Contribution)
Ermenegildo Tomasco, Omar Inverso, Bernd Fischer 0002, Salvatore La Torre, Gennaro Parlato
TACAS2
2013 CSeq: A concurrency pre-processor for sequential C verification tools
abstract
Sequentialization translates concurrent programs into equivalent nondeterministic sequential programs so that the different concurrent schedules no longer need to be handled explicitly. It can thus be used as a concurrency preprocessing technique for automated sequential program verification tools. Our CSeq tool implements a novel sequentialization for C programs using pthreads, which extends the Lal/Reps sequentialization to support dynamic thread creation. CSeq now works with three different backend tools, CBMC, ESBMC, and LLBMC, and is competitive with state-of-the-art verification tools for concurrent programs.
Bernd Fischer 0002, Omar Inverso, Gennaro Parlato
ASE2
2013 CSeq: A Sequentialization Tool for C - (Competition Contribution)
Bernd Fischer 0002, Omar Inverso, Gennaro Parlato
TACAS2