VLDB 2026 Research / reviewers in the wild / expert
Hugo Pacheco 0001
dblp:10/3783
· DBLP profile ↗
20ranked-venue papers
4as first author
6since 2021 · last 2026
0000-0003-0720-7744ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 3 first-author · 2 since 2021Security and privacy · 6 · 4 since 2021Theory of computation · 6 · 2 first-author · 1 since 2021Human-computer interaction and ubiquitous computing · 1Applied, interdisciplinary, general and emerging computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | HyperLasso: Bounded Model Checking of ∀+∃>+-Liveness HyperpropertiesabstractAbstract This paper presents the first symbolic bounded model checking technique capable of verifying $$\forall ^+\exists ^+$$ ∀ + ∃ + -liveness hyperproperties (expressed in HyperLTL) over arbitrary (non-terminating) reactive systems. Previous bounded procedures for HyperLTL handled only safety hyperproperties or arbitrary properties over terminating systems. We implement our technique as HyperLasso . Our evaluation results show that it consistently outperforms the explicit-state complete model checker AutoHyper (the only existing tool capable of automatically verifying this class of problems) at several complex bug-finding and synthesis problems. Alcino Cunha, Hugo Pacheco 0001, Nuno Macedo 0001 |
CAV (1) | 2 |
| 2025 | Faster Verification of Faster Implementations: Combining Deductive and Circuit-Based Reasoning in EasyCryptabstractWe propose a hybrid formal verification approach that combines high-level deductive reasoning and circuit-based reasoning and apply it to highly optimized cryptographic assembly code. Our approach permits scaling up formal verification in two complementary directions: 1) it reduces the proof effort required for low-level functions where the computation logics are obfuscated by the intricate use of architecture-specific instructions and 2) it permits amortizing the effort of proving one implementation by using equivalence checking to propagate the guarantees to other implementations of the same computation using different optimizations or targeting different architectures. We demonstrate our approach via an extension to the EasyCrypt proof assistant and by revisiting formally verified implementations of ML-KEM in Jasmin. As a result, we obtain the first formally verified implementation of ML-KEM that offers performance comparable to the fastest non-verified implementation in x86-64 architectures. José Bacelar Almeida, Gustavo Xavier Delerue Marinho Alves, Manuel Barbosa, Gilles Barthe, Luís Esquível, Vincent Hwang, Tiago Oliveira 0004, Hugo Pacheco 0001, Peter Schwabe, Pierre-Yves Strub |
SP | 8 |
| 2024 | Formally Verifying Kyber - Episode V: Machine-Checked IND-CCA Security and Correctness of ML-KEM in EasyCrypt
José Bacelar Almeida, Santiago Arranz-Olmos, Manuel Barbosa, Gilles Barthe, François Dupressoir, Benjamin Grégoire, Vincent Laporte, Jean-Christophe Léchenet, Cameron Low, Tiago Oliveira 0004, Hugo Pacheco 0001, Miguel Quaresma, Peter Schwabe, Pierre-Yves Strub |
CRYPTO (2) | 11 |
| 2023 | General-Purpose Secure Conflict-free Replicated Data TypesabstractConflict-free Replicated Data Types (CRDTs) are a very popular class of distributed data structures that strike a compromise between strong and eventual consistency. Ensuring the protection of data stored within a CRDT, however, cannot be done trivially using standard encryption techniques, as secure CRDT protocols would require replica-side computation. This paper proposes an approach to lift general-purpose implementations of CRDTs to secure variants using secure multiparty computation (MPC). Each replica within the system is realized by a group of MPC parties that compute its functionality. Our results include: i) an extension of current formal models used for reasoning over the security of CRDT solutions to the MPC setting; ii) a MPC language and type system to enable the construction of secure versions of CRDTs and; iii) a proof of security that relates the security of CRDT constructions designed under said semantics to the underlying MPC library. We provide an open-source system implementation with an extensive evaluation, which compares different designs with their baseline throughput and latency. Bernardo Portela, Hugo Pacheco 0001, Pedro Jorge, Rogerio Pontes |
CSF | 2 |
| 2022 | A formal treatment of the role of verified compilers in secure computation
José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, Hugo Pacheco 0001, Vitor Pereira 0002, Bernardo Portela |
J. Log. Algebraic Methods Program. | 4 |
| 2021 | Machine-checked ZKP for NP relations: Formally Verified Security Proofs and Implementations of MPC-in-the-HeadabstractMPC-in-the-Head (MitH) is a general framework that enables constructing efficient zero-knowledge (ZK) protocols for NP relations from secure multiparty computation (MPC) protocols. In this paper we present the first machine-checked implementations of MitH. José Bacelar Almeida, Manuel Barbosa, Manuel L. Correia, Karim M. El Defrawy, Stéphane Lengrand, Hugo Pacheco 0001, Vitor Pereira 0002 |
CCS | 6 |
| 2018 | Enforcing Ideal-World Leakage Bounds in Real-World Secret Sharing MPC FrameworksabstractWe give a language-based security treatment of domain-specific languages and compilers for secure multi-party computation, a cryptographic paradigm that enables collaborative computation over encrypted data. Computations are specified in a core imperative language, as if they were intended to be executed by a trusted-third party, and formally verified against an information-flow policy modelling (an upper bound to) their leakage. This allows non-experts to assess the impact of performance-driven authorized disclosure of intermediate values. Specifications are then compiled to multi-party protocols. We formalize protocol security using (distributed) probabilistic information-flow and prove security-preserving compilation: protocols only leak what is allowed by the source policy. The proof exploits a natural but previously missing correspondence between simulation-based cryptographic proofs and (composable) probabilistic non-interference. Finally, we extend our framework to justify leakage cancelling, a domain-specific optimization that allows to first write an efficient specification that fails to meet the allowed leakage upper-bound, and then apply a probabilistic pre-processing that brings leakage to the acceptable range. José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, Hugo Pacheco 0001, Vitor Pereira 0002, Bernardo Portela |
CSF | 4 |
| 2018 | Teaching how to program using automated assessment and functional glossy games (experience report)abstractOur department has long been an advocate of the functional-first school of programming and has been teaching Haskell as a first language in introductory programming course units for 20 years. Although the functional style is largely beneficial, it needs to be taught in an enthusiastic and captivating way to fight the unusually high computer science drop-out rates and appeal to a heterogeneous population of students. This paper reports our experience of restructuring, over the last 5 years, an introductory laboratory course unit that trains hands-on functional programming concepts and good software development practices. We have been using game programming to keep students motivated, and following a methodology that hinges on test-driven development and continuous bidirectional feedback . We summarise successes and missteps, and how we have learned from our experience to arrive at a model for comprehensive and interactive functional game programming assignments and a general functionally-powered automated assessment platform , that together provide a more engaging learning experience for students. In our experience, we have been able to teach increasingly more advanced functional programming concepts while improving student engagement. José Bacelar Almeida, Alcino Cunha, Nuno Macedo 0001, Hugo Pacheco 0001, José Proença |
Proc. ACM Program. Lang. | 4 |
| 2017 | Jasmin: High-Assurance and High-Speed CryptographyabstractJasmin is a framework for developing high-speed and high-assurance cryptographic software. The framework is structured around the Jasmin programming language and its compiler. The language is designed for enhancing portability of programs and for simplifying verification tasks. The compiler is designed to achieve predictability and efficiency of the output code (currently limited to x64 platforms), and is formally verified in the Coq proof assistant. Using the supercop framework, we evaluate the Jasmin compiler on representative cryptographic routines and conclude that the code generated by the compiler is as efficient as fast, hand-crafted, implementations. Moreover, the framework includes highly automated tools for proving memory safety and constant-time security (for protecting against cache-based timing attacks). We also demonstrate the effectiveness of the verification tools on a large set of cryptographic routines. José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, Arthur Blot, Benjamin Grégoire, Vincent Laporte, Tiago Oliveira 0004, Hugo Pacheco 0001, Pierre-Yves Strub |
CCS | 8 |
| 2015 | A Clear Picture of Lens Laws - Functional Pearl
Sebastian Fischer 0001, Zhenjiang Hu 0002, Hugo Pacheco 0001 |
MPC | 3 |
| 2015 | The essence of bidirectional programming
Sebastian Fischer 0001, Zhenjiang Hu 0002, Hugo Pacheco 0001 |
Sci. China Inf. Sci. | 3 |
| 2014 | Validity Checking of Putback Transformations in Bidirectional Programming
Zhenjiang Hu 0002, Hugo Pacheco 0001, Sebastian Fischer 0001 |
FM | 2 |
| 2014 | Monadic combinators for "Putback" style bidirectional programmingabstractBidirectional transformations, in particular lenses, are programs with a forward get transformation and a backward putback transformation that keep source and view data types synchronized. Several bidirectional programming languages exist to aid programmers in writing a (sort of) forward transformation, and deriving a backward transformation for free. However, the maintainability offered by such languages comes at the cost of expressiveness and (more importantly) predictability because the ambiguity of synchronization "handled by the putback transformation" is solved by default strategies over which programmers have little control. In this paper, we argue that controlling such ambiguity is essential for bidirectional transformations and propose a novel language in which programmers write a (sort of) putback transformation, and get the unique get transformation for free. Like traditional bidirectional languages, our put-oriented language allows reasoning about the correctness of defined transformations from the properties of their building blocks. But it allows programmers to describe the behavior of a bidirectional transformation much more precisely, while retaining the maintainability of writing a single program. We demonstrate the practical power of the new approach through a series of examples, ranging from simple ones that illustrate traditional lenses to complex ones for which our putback-based approach is central to specifying nontrivial update strategies. Hugo Pacheco 0001, Zhenjiang Hu 0002, Sebastian Fischer 0001 |
PEPM | 1 |
| 2014 | BiFluX: A Bidirectional Functional Update Language for XMLabstractDifferent XML formats are widely used for data exchange and processing, being often necessary to mutually convert between them. Standard XML transformation languages, like XSLT or XQuery, are unsatisfactory for this purpose since they require writing a separate transformation for each direction. Existing bidirectional transformation languages mean to cover this gap, by allowing programmers to write a single program that denotes both transformations. However, they often 1) induce a more cumbersome programming style than their traditionally unidirectional relatives, to establish the link between source and target formats, and 2) offer limited configurability, by making implicit assumptions about how modifications to both formats should be translated that may not be easy to predict. Hugo Pacheco 0001, Tao Zan, Zhenjiang Hu 0002 |
PPDP | 1 |
| 2014 | Bidirectional spreadsheet formulasabstractBidirectional transformations have potential applications in a vast number of computer science domains. Spread-sheets, on the other hand, are widely used for developing business applications, but their formulas are unidirectional, in the sense that their result can not be edited and propagated back to their input cells. In this paper, we interpret such formulas as a well-known class of bidirectional transformations that go by the name of lenses. Being aimed at users that are not proficient with programming languages, we devote particular attention to the seamless embedding of the proposed bidirectional mechanism with the typical workflow of spreadsheet environments, allowing users to have a fine control and understanding of the behavior of the derived backward transformations. Nuno Macedo 0001, Hugo Pacheco 0001, Nuno Rocha Sousa, Alcino Cunha |
VL/HCC | 2 |
| 2012 | Relations as Executable Specifications: Taming Partiality and Non-determinism Using Invariants
Nuno Macedo 0001, Hugo Pacheco 0001, Alcino Cunha |
RAMiCS | 2 |
| 2011 | Calculating with lenses: optimising bidirectional transformationsabstractThis paper presents an equational calculus to reason about bidirectional transformations specified in the point-free style. In particular, it focuses on the so-called lenses as a bidirectional idiom, and shows that many standard laws characterising point-free combinators and recursion patterns are also valid in that setting. A key result is that uniqueness also holds for bidirectional folds and unfolds, thus unleashing the power of fusion as a program optimisation technique. A rewriting system for automatic lens optimisation is also presented, to prove the usefulness of the proposed calculus. Hugo Pacheco 0001, Alcino Cunha |
PEPM | 1 |
| 2010 | Generic Point-free Lenses
Hugo Pacheco 0001, Alcino Cunha |
MPC | 1 |
| 2009 | Mapping between Alloy Specifications and Database ImplementationsabstractThe emergence of lightweight formal methods tools such as Alloy improves the software design process, by encouraging developers to model and verify their systems before engaging in hideous implementation details. However, an abstract Alloy specification is far from an actual implementation, and manually refining the former into the latter is unfortunately a non-trivial task. This paper identifies a subset of the Alloy language that is equivalent to a relational database schema with the most conventional integrity constraints, namely functional and inclusion dependencies. This semantic correspondence enables both the automatic translation of Alloy specifications into relational database schemas and the reengineering of legacy databases into Alloy. The paper also discusses how to derive an object-oriented application layer to serve as interface to the underlying database. Alcino Cunha, Hugo Pacheco 0001 |
SEFM | 2 |
| 2007 | Coupled Schema Transformation and Data Conversion for XML and SQL
Pablo Berdaguer, Alcino Cunha, Hugo Pacheco 0001, Joost Visser 0001 |
PADL | 3 |