Albert Rubio

dblp:29/6684 · DBLP profile ↗
← Back
73ranked-venue papers
5as first author
15since 2021 · last 2025
0000-0002-0501-9830ORCID · verified

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

Theory of computation · 46 · 5 first-author · 2 since 2021Software engineering, systems software and programming languages · 31 · 12 since 2021Artificial intelligence and machine learning · 17Security and privacy · 3 · 3 since 2021Applied, interdisciplinary, general and emerging computing · 1
YearPublicationVenuePosition
2025 Securely Optimized (Ethereum) Smart Contracts Using Formal Methods
Elvira Albert, Samir Genaim, Pablo Gordillo, Alejandro Hernández-Cerezo, Enrique Martin-Martin, Albert Rubio
SEFM6
2025 Neural-guided superoptimization in ethereum
abstract
Context: Superoptimization is a synthesis technique that, given a loop-free sequence of instructions, searches for an equivalent sequence that is optimal wrt. an objective function. Superoptimization of Ethereum smart contracts aims at minimizing the size of their bytecode and the gas consumption of executing the contract’s functions. The search for the optimal solution poses huge computational demands –as the search space to find the optimal sequence is exponential on the given size-bound – being the main challenge for superoptimization today to scale up to real, industrial software. Even if the underlying problem for finding the optimal solution is decidable, practical tools often prioritize efficiency over completeness. This means they might be implemented to find a sub-optimal solution or even time out. Objective: This work aims at leveraging superoptimization to a real setting: Ethereum blockchain. This paper proposes a neural-guided superoptimization (NGS) approach which incorporates deep neural networks using (supervised) learning into superoptimization to improve scalability by predicting: (1) if a sequence is already optimal and hence the search can be skipped; (2) the size-bound for the optimal solution in order to reduce the search space. Method: We have downloaded over 13,000 smart contracts deployed on the blockchain for training and testing the machine learning models, and a disjoint set with 100 of the smart contracts with more transactions to prove our scalability gains and impact for the Ethereum community. Results: Incorporating DNNs resulted in a 16x overall speedup (12x for gas) with only 12% optimization loss (14% for gas), or a 3-4x speedup with no optimization loss. For the 100 analyzed contracts, this approach reduced the average compilation time to 3 min per contract and achieved monetary savings of $1.24M. Conclusions: The integration of machine learning models mitigates several limitations of traditional superoptimization by drastically reducing execution times while maintaining most of the original optimization gains.
Matheus Araújo Aguiar, Elvira Albert, Samir Genaim, Pablo Gordillo, Alejandro Hernández-Cerezo, Daniel Kirchner, Albert Rubio
Inf. Softw. Technol.7
2025 Harnessing heap analysis for the synthesis of superoptimized bytecode
Elvira Albert, Jesús Correas Fernández, Pablo Gordillo, Guillermo Román-Díez, Albert Rubio
J. Syst. Softw.5
2024 Synthesis of Sound and Precise Storage Cost Bounds via Unsound Resource Analysis and Max-SMT
abstract
A storage is a persistent memory whose contents are kept across different program executions. In the blockchain technology, storage contents are replicated and incur the largest costs of a program’s execution (a.k.a. gas fees). Storage costs are dynamically calculated using a rather complex model which assigns a much larger cost to the first access made in an execution to a storage key, and besides assigns different costs to write accesses depending on whether they change the values w.r.t. the initial and previous contents. Safely assuming the largest cost for all situations, as done in existing gas analyzers, is an overly-pessimistic approach that might render useless bounds because of being too loose. The challenge is to soundly, and yet accurately, synthesize storage bounds which take into account the dynamicity implicit to the cost model. Our solution consists in using an off-the-shelf static resource analysis —but do not always assuming a worst-case cost— and hence yielding unsound bounds; and then, in a posterior stage, computing corrections to recover soundness in the bounds by using a new Max-SMT based approach. We have implemented our approach and used it to improve the precision of two gas analyzers for Ethereum, gastap and asparagus. Experimental results on more than 400,000 functions show that we achieve great accuracy gains, up to 75%, on the storage bounds, being the most frequent gains between 10-20%.
Elvira Albert, Jesús Correas Fernández, Pablo Gordillo, Guillermo Román-Díez, Albert Rubio
ISSTA5
2024 Scalable Verification of Zero-Knowledge Protocols
abstract
The application of Zero-Knowledge (ZK) proofs is rapidly growing in the industry and has become a key element to enable privacy and enhance scalability in public distributed ledgers. In most practical ZK systems, the statement to be proven is expressed by means of a set of polynomial equations in a prime field that describe an arithmetic circuit. Describing general statements using this kind of constraints is a complex and error-prone task. This can be partly mitigated by using high-level programming languages, but at the cost of losing control over the added constraints and, as a result, obtaining too large systems for complex statements. In this context, having tools to automatically verify properties of the constraint systems is of paramount importance to guarantee the security of the protocol. However, since non-linear polynomial reasoning over a finite field is needed for checking challenging properties, existing automatic tools either do not scale or cannot detect non-trivial bugs. In this paper, we present a new scalable modular technique based on the application of transformation and deduction rules that have proven to be very effective in verifying properties over the signals of a circuit given as a set of polynomial equations in a large prime field. Our technique has been implemented in a tool called CIVER and applied to verify safety properties for circuits implemented in circom, which is one of the most popular languages for defining ZK protocols. We have been able to analyze large industrial circuits and detect subtle vulnerabilities in circuits designed by expert programmers.
Miguel Isabel, Clara Rodríguez-Núñez, Albert Rubio
SP3
2024 SuperStack: Superoptimization of Stack-Bytecode via Greedy, Constraint-Based, and SAT Techniques
abstract
Given a loop-free sequence of instructions, superoptimization techniques use a constraint solver to search for an equivalent sequence that is optimal for a desired objective. The complexity of the search grows exponentially with the length of the solution being constructed and the problem becomes intractable for large sequences of instructions. This paper presents a new approach to superoptimizing stack-bytecode via three novel components: (1) a greedy algorithm to refine the bound on the length of the optimal solution; (2) a new representation of the optimization problem as a set of weighted soft clauses in MaxSAT; (3) a series of domain-specific dominance and redundant constraints to reduce the search space for optimal solutions. We have developed a tool, named S uper S tack , which can be used to find optimal code translations of modern stack-based bytecode, namely WebAssembly or Ethereum bytecode. Experimental evaluation on more than 500,000 sequences shows the proposed greedy, constraint-based and SAT combination is able to greatly increase optimization gains achieved by existing superoptimizers and reduce to at least a fourth the optimization time.
Elvira Albert, Maria Garcia de la Banda, Alejandro Hernández-Cerezo, Alexey Ignatiev, Albert Rubio, Peter J. Stuckey
Proc. ACM Program. Lang.5
2023 Inferring Needless Write Memory Accesses on Ethereum Bytecode
abstract
Abstract Efficiency is a fundamental property of any type of program, but it is even more so in the context of the programs executing on the blockchain (known as smart contracts ). This is because optimizing smart contracts has direct consequences on reducing the costs of deploying and executing the contracts, as there are fees to pay related to their bytes-size and to their resource consumption (called gas ). Optimizing memory usage is considered a challenging problem that, among other things, requires a precise inference of the memory locations being accessed. This is also the case for the Ethereum Virtual Machine (EVM) bytecode generated by the most-widely used compiler, , whose rather unconventional and low-level memory usage challenges automated reasoning. This paper presents a static analysis, developed at the level of the EVM bytecode generated by , that infers write memory accesses that are needless and thus can be safely removed. The application of our implementation on more than 19,000 real smart contracts has detected about 6,200 needless write accesses in less than 4 hours. Interestingly, many of these writes were involved in memory usage patterns generated by that can be greatly optimized by removing entire blocks of bytecodes. To the best of our knowledge, existing optimization tools cannot infer such needless write accesses, and hence cannot detect these inefficiencies that affect both the deployment and the execution costs of Ethereum smart contracts.
Elvira Albert, Jesús Correas Fernández, Pablo Gordillo, Guillermo Román-Díez, Albert Rubio
TACAS (1)5
2023 Relaxed Effective Callback Freedom: A Parametric Correctness Condition for Sequential Modules With Callbacks
abstract
Callbacks are an essential mechanism for event-driven programming. Unfortunately, callbacks make reasoning challenging because they introduce behaviors where calls to the module are interleaved. We present a parametric method that, from a particular invariant of the program, allows reducing the problem of verifying the invariant in the presence of callbacks, to the callback-free setting. Intuitively, we allow callbacks to introduce behaviors that cannot be produced by callback free executions, as long as they do not affect correctness. A chief insight is that the user is aware of the potential effect of the callbacks on the program state. To this end, we present a parametric verification technique which accepts this insight as a relation between callback and callback free executions. We implemented our approach and applied it successfully to a large set of real-world programs.
Elvira Albert, Shelly Grossman, Noam Rinetzky, Clara Rodríguez-Núñez, Albert Rubio, Shmuel Sagiv
IEEE Trans. Dependable Secur. Comput.5
2023 Circom: A Circuit Description Language for Building Zero-Knowledge Applications
abstract
A zero-knowledge (ZK) proof guarantees that the result of a computation is correct while keeping part of the computation details private. Some ZK proofs are tiny and can be verified in short time, which makes them one of the most promising technologies for solving two key aspects: the challenge of enabling privacy to public and transparent distributed ledgers and enhancing their scalability limitations. Most practical ZK systems require the computation to be expressed as an arithmetic circuit that is encoded as a set of equations called rank-1 constraint system (R1CS). In this paper, we presentCircom, a programming language and a compiler for designing arithmetic circuits that are compiled to R1CS. More precisely, withCircom, programmers can design arithmetic circuits at a constraint level, and the compiler outputs a file with the R1CS description, and WebAssembly andC++programs to efficiently compute all values of the circuit. We also provide an open-source library calledcircomlibwith multiple circuit templates.Circomcan be complemented withsnarkjs, a library for generating and validating ZK proofs from R1CS. Altogether, our software tools abstract the complexity of ZK proving mechanisms and provide a unique and friendly interface to model low-level descriptions of arithmetic circuits.
Marta Bellés-Muñoz, Miguel Isabel, Jose L. Muñoz, Albert Rubio, Jordi Baylina Melé
IEEE Trans. Dependable Secur. Comput.4
2022 Distilling Constraints in Zero-Knowledge Protocols
abstract
Abstract The most widely used Zero-Knowledge (ZK) protocols require provers to prove they know a solution to a computational problem expressed as a Rank-1 Constraint System (R1CS). An R1CS is essentially a system of non-linear arithmetic constraints over a set of signals, whose security level depends on its non-linear part only, as the linear (additive) constraints can be easily solved by an attacker. Distilling the essential constraints from an R1CS by removing the part that does not contribute to its security is important, not only to reduce costs (time and space) of producing the ZK proofs, but also to reveal to cryptographic programmers the real hardness of their proofs. In this paper, we formulate the problem of distilling constraints from an R1CS as the (hard) problem of simplifying constraints in the realm of non-linearity. To the best of our knowledge, it is the first time that constraint-based techniques developed in the context of formal methods are applied to the challenging problem of analysing and optimizing ZK protocols.
Elvira Albert, Marta Bellés-Muñoz, Miguel Isabel, Clara Rodríguez-Núñez, Albert Rubio
CAV (1)5
2022 A Max-SMT Superoptimizer for EVM handling Memory and Storage
abstract
Abstract Superoptimization is a compilation technique that searches for the optimal sequence of instructions semantically equivalent to a given (loop-free) initial sequence. With the advent of SMT solvers, it has been successfully applied to LLVM code (to reduce the number of instructions) and to Ethereum EVM bytecode (to reduce its gas consumption). Both applications, when proven practical, have left out memory operations and thus missed important optimization opportunities. A main challenge to superoptimization today is handling memory operations while remaining scalable. We present $$\textsf {GASOL}^{v2}$$ GASOL v 2 , a gas and bytes-size superoptimization tool for Ethereum smart contracts, that leverages a previous Max-SMT approach for only stack optimization to optimize also wrt. memory and storage. $$\textsf {GASOL}^{v2}$$ GASOL v 2 can be used to optimize the size in bytes, aligned with the optimization criterion used by the Solidity compiler , and it can also be used to optimize gas consumption. Our experiments on 12,378 blocks from 30 randomly selected real contracts achieve gains of 16.42% in gas wrt. the previous version of the optimizer without memory handling, and gains of 3.28% in bytes-size over code already optimized by .
Elvira Albert, Pablo Gordillo, Alejandro Hernández-Cerezo, Albert Rubio
TACAS (1)4
2022 Super-optimization of Smart Contracts
abstract
Smart contracts are programs deployed on a blockchain. They are executed for a monetary fee paid in gas —a clear optimization target for smart contract compilers. Because smart contracts are a young, fast-moving field without (manually) fine-tuned compilers, they highly benefit from automated and adaptable approaches, especially as smart contracts are effectively immutable, and as such need a high level of assurance. This makes them an ideal domain for applying formal methods. Super-optimization is a technique to find the best translation of a block of instructions by trying all possible sequences of instructions that produce the same result. We present a framework for super-optimizing smart contracts based on Max-SMT with two main ingredients: (1) a stack functional specification extracted from the basic blocks of a smart contract, which is simplified using rules capturing the semantics of arithmetic, bit-wise, and relational operations, and (2) the synthesis of optimized blocks , which finds—by means of an efficient SMT encoding—basic blocks with minimal gas cost whose stack functional specification is equal (modulo commutativity) to the extracted one. We implemented our framework in the tool syrup 2.0 . Through large-scale experiments on real-world smart contracts, we analyze performance improvements for different SMT encodings, as well as tradeoffs between quality of optimizations and required optimization time.
Elvira Albert, Pablo Gordillo, Alejandro Hernández-Cerezo, Albert Rubio, Maria Anna Schett
ACM Trans. Softw. Eng. Methodol.4
2021 Lower-Bound Synthesis Using Loop Specialization and Max-SMT
abstract
Abstract This paper presents a new framework to synthesize lower-bounds on the worst-case cost for non-deterministic integer loops. As in previous approaches, the analysis searches for a metering function that under-approximates the number of loop iterations. The key novelty of our framework is the specialization of loops, which is achieved by restricting their enabled transitions to a subset of the inputs combined with the narrowing of their transition scopes. Specialization allows us to find metering functions for complex loops that could not be handled before or be more precise than previous approaches. Technically, it is performed (1) by using quasi-invariants while searching for the metering function, (2) by strengthening the loop guards, and (3) by narrowing the space of non-deterministic choices. We also propose a Max-SMT encoding that takes advantage of the use of soft constraints to force the solver look for more accurate solutions. We show our accuracy gains on benchmarks extracted from the 2020 Termination and Complexity Competition by comparing our results to those obtained by the "Image missing" system.
Elvira Albert, Samir Genaim, Enrique Martin-Martin, Alicia Merayo-Corcoba, Albert Rubio
CAV (2)5
2021 Actor-based model checking for Software-Defined Networks
Elvira Albert, Miguel Gómez-Zamalloa, Miguel Isabel, Albert Rubio, Matteo Sammartino, Alexandra Silva 0001
J. Log. Algebraic Methods Program.4
2021 Don't run on fumes - Parametric gas bounds for smart contracts
Elvira Albert, Jesús Correas Fernández, Pablo Gordillo, Guillermo Román-Díez, Albert Rubio
J. Syst. Softw.5
2020 Synthesis of Super-Optimized Smart Contracts Using Max-SMT
abstract
With the advent of smart contracts that execute on the blockchain ecosystem, a new mode of reasoning is required for developers that must pay meticulous attention to the gas spent by their smart contracts, as well as for optimization tools that must be capable of effectively reducing the gas required by the smart contracts. Super-optimization is a technique which attempts to find the best translation of a block of code by trying all possible sequences of instructions that produce the same result. This paper presents a novel approach for super-optimization of smart contracts based on Max-SMT which is split into two main phases: (i) the extraction of a stack functional specification from the basic blocks of the smart contract, which is simplified using rules that capture the semantics of the arithmetic, bit-wise, relational operations, etc. (ii) the synthesis of optimized blocks which, by means of an efficient Max-SMT encoding, finds the bytecode blocks with minimal gas cost whose stack functional specification is equal (modulo commutativity) to the extracted one. Our experimental results are very promising: we are able to optimize 55.41 % of the blocks, and prove that 34.28 % were already optimal, for more than 61000 blocks from the most called 2500 Ethereum contracts.
Elvira Albert, Pablo Gordillo, Albert Rubio, Maria Anna Schett
CAV (1)3
2020 Smart, and also Reliable and Gas-Efficient, Contracts
abstract
A smart contract is a software program that runs on top of a blockchain. It contains a collection of public functions that can be invoked within the transactions launched over the contract by parties interacting with it. Being computer programs, well-studied formal verification techniques can be applied to them. Indeed, smart contracts are a very interesting application domain for validation, verification and optimization techniques since (1) they are relatively small in size, hence the application of these techniques scales better than when applied to larger industrial code, (2) they are valuable (in the corresponding blockchain cryptocurrency), hence software bugs or inefficiencies can cause economical losses and there is much interest in formally proving their safety and security, and (3) they require proving new specific properties to ensure their reliability and efficiency.
Elvira Albert, Jesús Correas Fernández, Pablo Gordillo, Guillermo Román-Díez, Albert Rubio
ICST5
2020 GASOL: Gas Analysis and Optimization for Ethereum Smart Contracts
abstract
Abstract We present the main concepts, components, and usage of G asol , a Gas AnalysiS and Optimization tooL for Ethereum smart contracts. G asol offers a wide variety of cost models that allow inferring the gas consumption associated to selected types of EVM instructions and/or inferring the number of times that such types of bytecode instructions are executed. Among others, we have cost models to measure only storage opcodes, to measure a selected family of gas-consumption opcodes following the Ethereum’s classification, to estimate the cost of a selected program line, etc. After choosing the desired cost model and the function of interest, G asol returns to the user an upper bound of the cost for this function. As the gas consumption is often dominated by the instructions that access the storage, G asol uses the gas analysis to detect under-optimized storage patterns, and includes an (optional) automatic optimization of the selected function. Our tool can be used within an Eclipse plugin for which displays the gas and instructions bounds and, when applicable, the gas-optimized function.
Elvira Albert, Jesús Correas Fernández, Pablo Gordillo, Guillermo Román-Díez, Albert Rubio
TACAS (2)5
2020 Taming callbacks for smart contract modularity
abstract
Callbacks are an effective programming discipline for implementing event-driven programming, especially in environments like Ethereum which forbid shared global state and concurrency. Callbacks allow a callee to delegate the execution back to the caller. Though effective, they can lead to subtle mistakes principally in open environments where callbacks can be added in a new code. Indeed, several high profile bugs in smart contracts exploit callbacks. We present the first static technique ensuring modularity in the presence of callbacks and apply it to verify prominent smart contracts. Modularity ensures that external calls to other contracts cannot affect the behavior of the contract. Importantly, modularity is guaranteed without restricting programming. In general, checking modularity is undecidable—even for programs without loops. This paper describes an effective technique for soundly ensuring modularity harnessing SMT solvers. The main idea is to define a constructive version of modularity using commutativity and projection operations on program segments. We believe that this approach is also accessible to programmers, since counterexamples to modularity can be generated automatically by the SMT solvers, allowing programmers to understand and fix the error. We implemented our approach in order to demonstrate the precision of the modularity analysis and applied it to real smart contracts, including a subset of the 150 most active contracts in Ethereum. Our implementation decompiles bytecode programs into an intermediate representation and then implements the modularity checking using SMT queries. Overall, we argue that our experimental results indicate that the method can be applied to many realistic contracts, and that it is able to prove modularity where other methods fail.
Elvira Albert, Shelly Grossman, Noam Rinetzky, Clara Rodríguez-Núñez, Albert Rubio, Shmuel Sagiv
Proc. ACM Program. Lang.5
2019 SAFEVM: a safety verifier for Ethereum smart contracts
abstract
Ethereum smart contracts are public, immutable and distributed and, as such, they are prone to vulnerabilities sourcing from programming mistakes of developers. This paper presents SAFEVM, a verification tool for Ethereum smart contracts that makes use of state-of-the-art verification engines for C programs. SAFEVM takes as input an Ethereum smart contract (provided either in Solidity source code, or in compiled EVM bytecode), optionally with assert and require verification annotations, and produces in the output a report with the verification results. Besides general safety annotations, SAFEVM handles the verification of array accesses: it automatically generates SV-COMP verification assertions such that C verification engines can prove safety of array accesses. Our experimental evaluation has been undertaken on all contracts pulled from etherscan.io (more than 24,000) by using as back-end verifiers CPAchecker, SeaHorn and VeryMax.
Elvira Albert, Jesús Correas Fernández, Pablo Gordillo, Guillermo Román-Díez, Albert Rubio
ISSTA5
2019 The Termination and Complexity Competition
abstract
The termination and complexity competition ( termCOMP ) focuses on automated termination and complexity analysis for various kinds of programming paradigms, including categories for term rewriting, integer transition systems, imperative programming, logic programming, and functional programming. In all categories, the competition also welcomes the participation of tools providing certifiable output. The goal of the competition is to demonstrate the power and advances of the state-of-the-art tools in each of these areas.
Jürgen Giesl, Albert Rubio, Christian Sternagel, Johannes Waldmann, Akihisa Yamada 0002
TACAS (3)2
2019 Running on Fumes - Preventing Out-of-Gas Vulnerabilities in Ethereum Smart Contracts Using Static Resource Analysis
Elvira Albert, Pablo Gordillo, Albert Rubio, Ilya Sergey
VECoS3
2019 Incomplete SMT Techniques for Solving Non-Linear Formulas over the Integers
abstract
We present new methods for solving the Satisfiability Modulo Theories problem over the theory of Quantifier-Free Non-linear Integer Arithmetic, SMT(QF-NIA), which consists of deciding the satisfiability of ground formulas with integer polynomial constraints. Following previous work, we propose to solve SMT(QF-NIA) instances by reducing them to linear arithmetic: non-linear monomials are linearized by abstracting them with fresh variables and by performing case splitting on integer variables with finite domain. For variables that do not have a finite domain, we can artificially introduce one by imposing a lower and an upper bound and iteratively enlarge it until a solution is found (or the procedure times out). The key for the success of the approach is to determine, at each iteration, which domains have to be enlarged. Previously, unsatisfiable cores were used to identify the domains to be changed, but no clue was obtained as to how large the new domains should be. Here, we explain two novel ways to guide this process by analyzing solutions to optimization problems: (i) to minimize the number of violated artificial domain bounds, solved via a Max-SMT solver, and (ii) to minimize the distance with respect to the artificial domains, solved via an Optimization Modulo Theories (OMT) solver. Using this SMT-based optimization technology allows smoothly extending the method to also solve Max-SMT problems over non-linear integer arithmetic. Finally, we leverage the resulting Max-SMT(QF-NIA) techniques to solve ∃ ∀ formulas in a fragment of quantified non-linear arithmetic that appears commonly in verification and synthesis applications.
Cristina Borralleras, Daniel Larraz, Enric Rodríguez-Carbonell, Albert Oliveras, Albert Rubio
ACM Trans. Comput. Log.5
2019 Resource Analysis driven by (Conditional) Termination Proofs
abstract
Abstract When programs feature a complex control flow, existing techniques for resource analysis produce cost relation systems (CRS) whose cost functions retain the complex flow of the program and, consequently, might not be solvable into closed-form upper bounds. This paper presents a novel approach to resource analysis that is driven by the result of a termination analysis. The fundamental idea is that the termination proof encapsulates the flows of the program which are relevant for the cost computation so that, by driving the generation of the CRS using the termination proof, we produce a linearly-bounded CRS (LB-CRS). A LB-CRS is composed of cost functions that are guaranteed to be locally bounded by linear ranking functions and thus greatly simplify the process of CRS solving. We have built a new resource analysis tool, named MaxCore, that is guided by the VeryMax termination analyzer and uses CoFloCo and PUBS as CRS solvers. Our experimental results on the set of benchmarks from the Complexity and Termination Competition 2019 for C Integer programs show that MaxCore outperforms all other resource analysis tools.
Elvira Albert, Miquel Bofill, Cristina Borralleras, Enrique Martin-Martin, Albert Rubio
Theory Pract. Log. Program.5
2018 EthIR: A Framework for High-Level Analysis of Ethereum Bytecode
Elvira Albert, Pablo Gordillo, Benjamin Livshits, Albert Rubio, Ilya Sergey
ATVA4
2018 Constrained Dynamic Partial Order Reduction
abstract
The cornerstone of dynamic partial order reduction (DPOR) is the notion of independence that is used to decide whether each pair of concurrent events p and t are in a race and thus both $$p \cdot t$$ and $$t \cdot p$$ must be explored. We present constrained dynamic partial order reduction (CDPOR), an extension of the DPOR framework which is able to avoid redundant explorations based on the notion of conditional independence—the execution of p and t commutes only when certain independence constraints (ICs) are satisfied. ICs can be declared by the programmer, but importantly, we present a novel SMT-based approach to automatically synthesize ICs in a static pre-analysis. A unique feature of our approach is that we have succeeded to exploit ICs within the state-of-the-art DPOR algorithm, achieving exponential reductions over existing implementations.
Elvira Albert, Miguel Gómez-Zamalloa, Miguel Isabel, Albert Rubio
CAV (2)4
2018 SDN-Actors: Modeling and Verification of SDN Programs
Elvira Albert, Miguel Gómez-Zamalloa, Albert Rubio, Matteo Sammartino, Alexandra Silva 0001
FM3
2017 Proving Termination Through Conditional Termination
Cristina Borralleras, Marc Brockschmidt, Daniel Larraz, Albert Oliveras, Enric Rodríguez-Carbonell, Albert Rubio
TACAS (1)6
2016 Speeding up the Constraint-Based Method in Difference Logic
Lorenzo Candeago, Daniel Larraz, Albert Oliveras, Enric Rodríguez-Carbonell, Albert Rubio
SAT5
2015 Termination Competition (termCOMP 2015)
Jürgen Giesl, Frédéric Mesnard, Albert Rubio, René Thiemann, Johannes Waldmann
CADE3
2015 Compositional Safety Verification with Max-SMT
abstract
We present an automated compositional program verification technique for safety properties based on conditional inductive invariants. For a given program part (e.g., a single loop) and a postcondition ϕ, we show how to, using a Max-SMT solver, an inductive invariant together with a precondition can be synthesized so that the precondition ensures the validity of the invariant and that the invariant implies ϕ. From this, we build a bottom-up program verification framework that propagates preconditions of small program parts as postconditions for preceding program parts. The method recovers from failures to prove the validity of a precondition, using the obtained intermediate results to restrict the search space for further proof attempts. As only small program parts need to be handled at a time, our method is scalable and distributable. The derived conditions can be viewed as implicit contracts between different parts of the program, and thus enable an incremental program analysis.
Marc Brockschmidt, Daniel Larraz, Albert Oliveras, Enric Rodríguez-Carbonell, Albert Rubio
FMCAD5
2015 Normal Higher-Order Termination
abstract
We extend the termination proof methods based on reduction orderings to higher-order rewriting systems based on higher-order pattern matching. We accommodate, on the one hand, a weakly polymorphic, algebraic extension of Church’s simply typed λ-calculus and, on the other hand, any use of eta, as a reduction, as an expansion, or as an equation. The user’s rules may be of any type in this type system, either a base, functional, or weakly polymorphic type.
Jean-Pierre Jouannaud, Albert Rubio
ACM Trans. Comput. Log.2
2014 Proving Non-termination Using Max-SMT
Daniel Larraz, Kaustubh Nimkar, Albert Oliveras, Enric Rodríguez-Carbonell, Albert Rubio
CAV5
2014 Minimal-Model-Guided Approaches to Solving Polynomial Constraints and Extensions
Daniel Larraz, Albert Oliveras, Enric Rodríguez-Carbonell, Albert Rubio
SAT4
2013 Proving termination of imperative programs using Max-SMT
Daniel Larraz, Albert Oliveras, Enric Rodríguez-Carbonell, Albert Rubio
FMCAD4
2013 SMT-Based Array Invariant Generation
Daniel Larraz, Enric Rodríguez-Carbonell, Albert Rubio
VMCAI3
2013 Paramodulation with Non-Monotonic Orderings and Simplification
Miquel Bofill, Albert Rubio
J. Autom. Reason.2
2013 The recursive path and polynomial ordering for first-order and higher-order terms
abstract
In most termination tools two ingredients, namely recursive path orderings (RPOs) and polynomial interpretation orderings (POLOs), are used in a consecutive disjoint way to solve the final constraints generated from the termination problem. In this article we present a simple ordering that combines both RPO and POLO and defines a family of orderings that includes both, and extend them with the possibility of having, at the same time, an RPO-like treatment for some symbols and a POLO-like treatment for the others. The ordering is extended to higher-order terms, providing a new fully automatable use of polynomial interpretations in combination with beta-reduction.
Miquel Bofill, Cristina Borralleras, Enric Rodríguez-Carbonell, Albert Rubio
J. Log. Comput.4
2012 Nominal Completion for Rewrite Systems with Binders
Maribel Fernández, Albert Rubio
ICALP (2)2
2012 SAT Modulo Linear Arithmetic for Solving Polynomial Constraints
Cristina Borralleras, Salvador Lucas, Albert Oliveras, Enric Rodríguez-Carbonell, Albert Rubio
J. Autom. Reason.5
2009 Solving Non-linear Polynomial Arithmetic via SAT Modulo Linear Arithmetic
Cristina Borralleras, Salvador Lucas, Rafael Navarro-Marset, Enric Rodríguez-Carbonell, Albert Rubio
CADE5
2009 Paramodulation with Well-founded Orderings
abstract
Abstract For many years, all existing completeness results for Knuth-Bendix completion and ordered paramodulation required the term order-ing ≻ to be well-founded, monotonic and total(izable) on ground terms. Then, it was shown that well-foundedness and the subterm property were enough for ensuring completeness of ordered paramodulation. Here we show that the subterm property is not necessary either. By us-ing a new restricted form of rewriting, we obtain a completeness proof of ordered paramodulation for Horn clauses with equality, where well-foundedness of the ordering suffices. Apart from the theoretical signifi-cance of this result, some potential applications motivating the interest of dropping the subterm property are given. The proof of the results included in this paper, being still technical in some parts, is pretty much shorter and easier to read than the one we have in the preliminary version of this work presented at the CADE 2002 conference [8]. Key words: term rewriting, equational reasoning, theorem proving, paramodulation, Knuth-Bendix completion 1
Miquel Bofill, Albert Rubio
J. Log. Comput.2
2008 The Barcelogic SMT Solver
Miquel Bofill, Robert Nieuwenhuis, Albert Oliveras, Enric Rodríguez-Carbonell, Albert Rubio
CAV5
2008 A Write-Based Solver for SAT Modulo the Theory of Arrays
abstract
The extensional theory of arrays is one of the most important ones for applications of SAT modulo theories (SMT) to hardware and software verification. Here we present a new T-solver for arrays in the context of the DPLL(T) approach to SMT. The main characteristics of our solver are: (i) no translation of writes into reads is needed, (ii) there is no axiom instantiation, and (iii) the T-solver interacts with the Boolean engine by asking to split on equality literals between indices. Unlike most state-of-the-art array solvers, it is not based on a lazy instantiation of the array axioms. This novelty might make it more convenient to apply this solver in some particular environments. Moreover, it is very competitive in practice, specially on problems that require heavy reasoning on array literals.
Miquel Bofill, Robert Nieuwenhuis, Albert Oliveras, Enric Rodríguez-Carbonell, Albert Rubio
FMCAD5
2007 HORPO with Computability Closure: A Reconstruction
Frédéric Blanqui, Jean-Pierre Jouannaud, Albert Rubio
LPAR3
2007 Challenges in Satisfiability Modulo Theories
Robert Nieuwenhuis, Albert Oliveras, Enric Rodríguez-Carbonell, Albert Rubio
RTA4
2007 Polymorphic higher-order recursive path orderings
abstract
This article extends the termination proof techniques based on reduction orderings to a higher-order setting, by defining a family of recursive path orderings for terms of a typed lambda-calculus generated by a signature of polymorphic higher-order function symbols. These relations can be generated from two given well-founded orderings, on the function symbols and on the type constructors. The obtained orderings on terms are well founded, monotonic, stable under substitution and include β-reductions. They can be used to prove the strong normalization property of higher-order calculi in which constants can be defined by higher-order rewrite rules using first-order pattern matching. For example, the polymorphic version of Gödel's recursor for the natural numbers is easily oriented. And indeed, our ordering is polymorphic, in the sense that a single comparison allows to prove the termination property of all monomorphic instances of a polymorphic rewrite rule. Many nontrivial examples are given that exemplify the expressive power of these orderings. All have been checked by our implementation. This article is an extended and improved version of Jouannaud and Rubio [1999]. Polymorphic algebras have been made more expressive than in our previous framework. The intuitive notion of a polymorphic higher-order ordering has now been made precise. The higher-order recursive path ordering itself has been made much more powerful by replacing the congruence on types used there by an ordering on types satisfying some abstract properties. Besides, using a restriction of Dershowitz's recursive path ordering for comparing types, we can integrate both orderings into a single one operating uniformly on both terms and types.
Jean-Pierre Jouannaud, Albert Rubio
J. ACM2
2006 Higher-Order Termination: From Kruskal to Computability
Frédéric Blanqui, Jean-Pierre Jouannaud, Albert Rubio
LPAR3
2006 Higher-Order Orderings for Normal Rewriting
Jean-Pierre Jouannaud, Albert Rubio
RTA2
2005 Recursive Path Orderings Can Also Be Incremental
Mirtha Lina Fernández Venero, Guillem Godoy, Albert Rubio
LPAR3
2005 Orderings for Innermost Termination
Mirtha Lina Fernández Venero, Guillem Godoy, Albert Rubio
RTA3
2003 Monotonic AC-Compatible Semantic Path Orderings
Cristina Borralleras, Albert Rubio
RTA2
2003 Paramodulation and Knuth-Bendix Completion with Nontotal and Nonmonotonic Orderings
Miquel Bofill, Guillem Godoy, Robert Nieuwenhuis, Albert Rubio
J. Autom. Reason.4
2002 Well-Foundedness Is Sufficient for Completeness of Ordered Paramodulation
Miquel Bofill, Albert Rubio
CADE2
2002 Recursive Path Orderings Can Be Context-Sensitive
Cristina Borralleras, Salvador Lucas, Albert Rubio
CADE3
2002 A Fully Syntactic AC-RPO
Albert Rubio
Inf. Comput.1
2001 A Monotonic Higher-Order Semantic Path Ordering
Cristina Borralleras, Albert Rubio
LPAR2
2000 Complete Monotonic Semantic Path Orderings
Cristina Borralleras, Maria Ferreira, Albert Rubio
CADE3
1999 Paramodulation with Non-Monotonic Orderings
abstract
All current completeness results for ordered paramodulation require the term ordering > to be well-founded, monotonic and total(izable) on ground terms. Here we introduce a new proof technique where the only properties required for > are well foundedness and the subterm property: The technique is a relatively simple and elegant application of some fundamental results on the termination and confluence of ground term rewrite systems (TRS). By a careful further analysis of our technique, we obtain the first Knuth-Bendix completion procedure that finds a convergent TRS for a given set of equations E and a (possibly non-totalizable) reduction ordering p whenever it exists. Note that being a reduction ordering is the minimal possible requirement on >, since a TRS terminates if, and only if, it is contained in a reduction ordering.
Miquel Bofill, Guillem Godoy, Robert Nieuwenhuis, Albert Rubio
LICS4
1999 The Higher-Order Recursive Path Ordering
abstract
This paper extends the termination proof techniques based on reduction orderings to a higher-order setting, by adapting the recursive path ordering definition to terms of a typed lambda-calculus generated by a signature of polymorphic higher-order function symbols. The obtained ordering is well-founded, compatible with p-reductions and with polymorphic typing, monotonic with respect to the function symbols, and stable under substitution. It can therefore be used to prove the strong normalization property of higher-order calculi in which constants can be defined by higher-order rewrite rules. For example, the polymorphic version of Godel's recursor for the natural numbers is easily oriented. And indeed, our ordering is polymorphic, in the sense that a single comparison allows to prove the termination property of all monomorphic instances of a polymorphic rewrite rule. Several other non-trivial examples are given which exemplify the expressive power of the ordering.
Jean-Pierre Jouannaud, Albert Rubio
LICS2
1999 A Fully Syntactic AC-RPO
Albert Rubio
RTA1
1998 Rewrite Orderings for Higher-Order Terms in eta-Long beta-Normal Form and Recursive Path Ordering
Jean-Pierre Jouannaud, Albert Rubio
Theor. Comput. Sci.2
1997 Paramodulation with Built-in AC-Theories and Symbolic Constraints
Robert Nieuwenhuis, Albert Rubio
J. Symb. Comput.2
1996 A Recursive Path Ordering for Higher-Order Terms in eta-Long beta-Normal Form
Jean-Pierre Jouannaud, Albert Rubio
RTA2
1995 Extension Orderings
Albert Rubio
ICALP1
1995 Orderings, AC-Theories and Symbolic Constraint Solving (Extended Abstract)
abstract
We design combination techniques for symbolic constraint solving in the presence of associative and commutative (AC) function symbols. This yields an algorithm for solving AC-RPO constraints (where AC-RPO is the AC-compatible total reduction ordering of Rubio and Nieuwenhuis, 1994), which was a missing ingredient for automated deduction strategies with AC-constraint inheritance. As in the AC-unification case, for this purpose we first study the pure case, i.e. we show how to solve AC-ordering constraints built over a single AC function symbol and variables. Since AC-RPO is an interpretation-based ordering, our algorithm also requires the combination of algorithms for solving interpreted constraints and non-interpreted constraints.
Hubert Comon-Lundh, Robert Nieuwenhuis, Albert Rubio
LICS3
1995 Theorem Proving with Ordering and Equality Constrained Clauses
Robert Nieuwenhuis, Albert Rubio
J. Symb. Comput.2
1995 A Total AC-Compatible Ordering Based on RPO
Albert Rubio, Robert Nieuwenhuis
Theor. Comput. Sci.1
1994 AC-Superposition with Constraints: No AC-Unifiers Needed
Robert Nieuwenhuis, Albert Rubio
CADE2
1993 A Precedence-Based Total AC-Compatible Ordering
Albert Rubio, Robert Nieuwenhuis
RTA1
1992 Theorem Proving with Ordering Constrained Clauses
Robert Nieuwenhuis, Albert Rubio
CADE2
1992 Basic Superposition is Complete
Robert Nieuwenhuis, Albert Rubio
ESOP2
1990 TRIP: An Implementation of Clausal Rewriting
Robert Nieuwenhuis, Fernando Orejas, Albert Rubio
CADE3