Jorge A. Navas

dblp:77/4230a · DBLP profile ↗
← Back
39ranked-venue papers
3as first author
10since 2021 · last 2025
0000-0002-0516-1167ORCID · verified

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

Software engineering, systems software and programming languages · 37 · 3 first-author · 10 since 2021Theory of computation · 11 · 1 first-author · 2 since 2021Artificial intelligence and machine learning · 2
YearPublicationVenuePosition
2025 Automatic Inference of Relational Object Invariants
Yusen Su, Jorge A. Navas, Arie Gurfinkel, Isabel Garcia-Contreras
VMCAI (1)2
2025 A Flow-Sensitive Refinement Type System for Verifying eBPF Programs
abstract
The Extended Berkeley Packet Filter ( eBPF ) subsystem within an operating system’s kernel enables userspace programs to extend kernel functionality dynamically. Due to the security risks associated with runtime modification of the operating system, eBPF requires all programs to be verified before deploying them within the kernel. Existing approaches to eBPF verification are monolithic, requiring their entire analysis to be done in a secure environment, resulting in the need for extensive trusted codebases. We present a typebased verification approach that automatically infers proof certificates in userspace, thus reducing the size and complexity of the trusted codebase. At the same time, only the proof-checking component needs to be deployed in a secure environment. Moreover, compared to previous techniques, our type system enhances the debuggability of the programs for users through ergonomic type annotations when verification fails. We implemented our type inference algorithm in a tool called VeRefine and evaluated it against an existing eBPF verifier, Prevail . VeRefine outperformed Prevail on most of the industrial benchmarks.
Lucas Zavalía, Arie Gurfinkel, Jorge A. Navas, Grigory Fedyukovich
Proc. ACM Program. Lang.4
2024 Inductive Predicate Synthesis Modulo Programs
abstract
A growing trend in program analysis is to encode verification conditions within the language of the input program. This simplifies the design of analysis tools by utilizing off-the-shelf verifiers, but makes communication with the underlying solver more challenging. Essentially, the analyzer operates at the level of input programs, whereas the solver operates at the level of problem encodings. To bridge this gap, the verifier must pass along proof-rules from the analyzer to the solver. For example, an analyzer for concurrent programs built on an inductive program verifier might need to declare Owicki-Gries style proof-rules for the underlying solver. Each such proof-rule further specifies how a program should be verified, meaning that the problem of passing proof-rules is a form of invariant synthesis. Similarly, many program analysis tasks reduce to the synthesis of pure, loop-free Boolean functions (i.e., predicates), relative to a program. From this observation, we propose Inductive Predicate Synthesis Modulo Programs (IPS-MP) which extends high-level languages with minimal synthesis features to guide analysis. In IPS-MP, unknown predicates appear under assume and assert statements, acting as specifications modulo the program semantics. Existing synthesis solvers are inefficient at IPS-MP as they target more general problems. In this paper, we show that IPS-MP admits an efficient solution in the Boolean case, despite being generally undecidable. Moreover, we show that IPS-MP reduces to the satisfiability of constrained Horn clauses, which is less general than existing synthesis problems, yet expressive enough to encode verification tasks. We provide reductions from challenging verification tasks -- such as parameterized model checking -- to IPS-MP. We realize these reductions with an efficient IPS-MP-solver based on SeaHorn, and describe a application to smart-contract verification.
Scott Wesley, Maria Christakis, Jorge A. Navas, Richard J. Trefler, Valentin Wüstholz, Arie Gurfinkel
ECOOP3
2022 Efficient Modular SMT-Based Model Checking of Pointer Programs
Isabel Garcia-Contreras, Arie Gurfinkel, Jorge A. Navas
SAS3
2022 Verifying Solidity Smart Contracts via Communication Abstraction in SmartACE
Scott Wesley, Maria Christakis, Jorge A. Navas, Richard J. Trefler, Valentin Wüstholz, Arie Gurfinkel
VMCAI3
2021 Automated Safety Verification of Programs Invoking Neural Networks
abstract
Abstract State-of-the-art program-analysis techniques are not yet able to effectively verify safety properties of heterogeneous systems, that is, systems with components implemented using diverse technologies. This shortcoming is pinpointed by programs invoking neural networks despite their acclaimed role as innovation drivers across many application areas. In this paper, we embark on the verification of system-level properties for systems characterized by interaction between programs and neural networks. Our technique provides a tight two-way integration of a program and a neural-network analysis and is formalized in a general framework based on abstract interpretation. We evaluate its effectiveness on 26 variants of a widely used, restricted autonomous-driving benchmark.
Maria Christakis, Hasan Ferit Eniser, Holger Hermanns, Jörg Hoffmann 0001, Yugesh Kothari, Jorge A. Navas, Valentin Wüstholz
CAV (1)7
2021 Automatically Tailoring Abstract Interpretation to Custom Usage Scenarios
abstract
Abstract In recent years, there has been significant progress in the development and industrial adoption of static analyzers, specifically of abstract interpreters. Such analyzers typically provide a large, if not huge, number of configurable options controlling the analysis precision and performance. A major hurdle in integrating them in the software-development life cycle is tuning their options to custom usage scenarios, such as a particular code base or certain resource constraints. In this paper, we propose a technique that automatically tailors an abstract interpreter to the code under analysis and any given resource constraints. We implement this technique in a framework, tAIlor, which we use to perform an extensive evaluation on real-world benchmarks. Our experiments show that the configurations generated by tAIlor are vastly better than the default analysis options, vary significantly depending on the code under analysis, and most remain tailored to several subsequent code versions.
Muhammad Numair Mansur, Benjamin Mariano, Maria Christakis, Jorge A. Navas, Valentin Wüstholz
CAV (2)4
2021 Disjunctive Interval Analysis
Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, Peter J. Stuckey
SAS2
2021 Compositional Verification of Smart Contracts Through Communication Abstraction
Scott Wesley, Maria Christakis, Jorge A. Navas, Richard J. Trefler, Valentin Wüstholz, Arie Gurfinkel
SAS3
2021 A Fresh Look at Zones and Octagons
abstract
Zones and Octagons are popular abstract domains for static program analysis. They enable the automated discovery of simple numerical relations that hold between pairs of program variables. Both domains are well understood mathematically but the detailed implementation of static analyses based on these domains poses many interesting algorithmic challenges. In this article, we study the two abstract domains, their implementation and use. Utilizing improved data structures and algorithms for the manipulation of graphs that represent difference-bound constraints, we present fast implementations of both abstract domains, built around a common infrastructure. We compare the performance of these implementations against alternative approaches offering the same precision. We quantify the differences in performance by measuring their speed and precision on standard benchmarks. We also assess, in the context of software verification, the extent to which the improved precision translates to better verification outcomes. Experiments demonstrate that our new implementations improve the state of the art for both Zones and Octagons significantly.
Graeme Gange, Zequn Ma, Jorge A. Navas, Peter Schachte, Harald Søndergaard, Peter J. Stuckey
ACM Trans. Program. Lang. Syst.3
2019 Dissecting Widening: Separating Termination from Information
Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, Peter J. Stuckey
APLAS2
2019 Unification-based Pointer Analysis without Oversharing
abstract
Pointer analysis is indispensable for effectively verifying heap-manipulating programs. Even though it has been studied extensively, there are no publicly available pointer analyses that are moderately precise while scalable to large real-world programs. In this paper, we show that existing context-sensitive unification-based pointer analyses suffer from the problem of oversharing - propagating too many abstract objects across the analysis of different procedures, which prevents them from scaling to large programs. We present a new pointer analysis for LLVM, called TEADSA, without such an oversharing. We show how to further improve precision and speed of TEADSA with extra contextual information, such as flow-sensitivity at call- and return-sites, and type information about memory accesses. We evaluate TEADSA on the verification problem of detecting unsafe memory accesses and compare it against two state-of-the-art pointer analyses: SVF and SEADSA. We show that TEADSA is one order of magnitude faster than either SVF or SEADSA, strictly more precise than SEADSA, and, surprisingly, sometimes more precise than SVF.
Jakub Kuderski, Jorge A. Navas, Arie Gurfinkel
FMCAD2
2019 Simple and precise static analysis of untrusted Linux kernel extensions
abstract
Extended Berkeley Packet Filter (eBPF) is a Linux subsystem that allows safely executing untrusted user-defined extensions inside the kernel. It relies on static analysis to protect the kernel against buggy and malicious extensions. As the eBPF ecosystem evolves to support more complex and diverse extensions, the limitations of its current verifier, including high rate of false positives, poor scalability, and lack of support for loops, have become a major barrier for developers.
Elazar Gershuni, Nadav Amit, Arie Gurfinkel, Nina Narodytska, Jorge A. Navas, Noam Rinetzky, Leonid Ryzhyk, Shmuel Sagiv
PLDI5
2018 Generating Component Interfaces by Integrating Static and Symbolic Analysis, Learning, and Runtime Monitoring
Falk Howar, Dimitra Giannakopoulou, Malte Mues, Jorge A. Navas
ISoLA (2)4
2017 A Context-Sensitive Memory Model for Verification of C/C++ Programs
Arie Gurfinkel, Jorge A. Navas
SAS2
2016 Exploiting Sparsity in Difference-Bound Matrices
Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, Peter J. Stuckey
SAS2
2016 An Abstract Domain of Uninterpreted Functions
Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, Peter J. Stuckey
VMCAI2
2016 A complete refinement procedure for regular separability of context-free languages
Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, Peter J. Stuckey
Theor. Comput. Sci.2
2015 The SeaHorn Verification Framework
Arie Gurfinkel, Temesghen Kahsai, Anvesh Komuravelli, Jorge A. Navas
CAV (1)4
2015 Finding Inconsistencies in Programs with Loops
Temesghen Kahsai, Jorge A. Navas, Dejan Jovanovic, Martin Schäf
LPAR2
2015 SeaHorn: A Framework for Verifying C Programs (Competition Contribution)
Arie Gurfinkel, Temesghen Kahsai, Jorge A. Navas
TACAS3
2015 Horn clauses as an intermediate representation for program analysis and transformation
abstract
Abstract Many recent analyses for conventional imperative programs begin by transforming programs into logic programs, capitalising on existing LP analyses and simple LP semantics. We propose using logic programs as an intermediate program representation throughout the compilation process. With restrictions ensuring determinism and single-modedness, a logic program can easily be transformed to machine language or other low-level language, while maintaining the simple semantics that makes it suitable as a language for program analysis and transformation. We present a simple LP language that enforces determinism and single-modedness, and show that it makes a convenient program representation for analysis and transformation.
Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, Peter J. Stuckey
Theory Pract. Log. Program.2
2014 Analyzing Array Manipulating Programs by Program Transformation
J. Robert M. Cornish, Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, Peter J. Stuckey
LOPSTR3
2014 IKOS: A Framework for Static Analysis Based on Abstract Interpretation
Guillaume Brat, Jorge A. Navas, Nija Shi, Arnaud Venet
SEFM2
2014 Interval Analysis and Machine Arithmetic: Why Signedness Ignorance Is Bliss
abstract
The most commonly used integer types have fixed bit-width, making it possible for computations to “wrap around,” and many programs depend on this behaviour. Yet much work to date on program analysis and verification of integer computations treats integers as having infinite precision, and most analyses that do respect fixed width lose precision when overflow is possible. We present a novel integer interval abstract domain that correctly handles wrap-around. The analysis is signedness agnostic. By treating integers as strings of bits, only considering signedness for operations that treat them differently, we produce precise, correct results at a modest cost in execution time.
Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, Peter J. Stuckey
ACM Trans. Program. Lang. Syst.2
2013 Modelling Destructive Assignments
Kathryn Francis, Jorge A. Navas, Peter J. Stuckey
CP2
2013 Abstract Interpretation over Non-lattice Abstract Domains
Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, Peter J. Stuckey
SAS2
2013 Boosting concolic testing via interpolation
abstract
Concolic testing has been very successful in automatically generating test inputs for programs. However one of its major limitations is path-explosion that limits the generation of high coverage inputs. Since its inception several ideas have been proposed to attack this problem from various angles: defining search heuristics that increase coverage, caching of function summaries, pruning of paths using static/dynamic information etc.
Joxan Jaffar, Vijayaraghavan Murali, Jorge A. Navas
ESEC/SIGSOFT FSE3
2013 Unbounded Model-Checking with Interpolation for Regular Language Constraints
Graeme Gange, Jorge A. Navas, Peter J. Stuckey, Harald Søndergaard, Peter Schachte
TACAS2
2013 Failure tabled constraint logic programming by interpolation
abstract
Abstract We present a new execution strategy for constraint logic programs called Failure Tabled CLP. Similarly to Tabled CLP our strategy records certain derivations in order to prune further derivations. However, our method only learns from failed derivations. This allows us to compute interpolants rather than constraint projection for generation of reuse conditions. As a result, our technique can be used where projection is too expensive or does not exist. Our experiments indicate that Failure Tabling can speed up the execution of programs with many redundant failed derivations as well as achieve termination in the presence of infinite executions.
Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, Peter J. Stuckey
Theory Pract. Log. Program.2
2012 Signedness-Agnostic Program Analysis: Precise Integer Bounds for Low-Level Code
Jorge A. Navas, Peter Schachte, Harald Søndergaard, Peter J. Stuckey
APLAS1
2012 TRACER: A Symbolic Execution Tool for Verification
Joxan Jaffar, Vijayaraghavan Murali, Jorge A. Navas, Andrew E. Santosa
CAV3
2012 Path-Sensitive Backward Slicing
Joxan Jaffar, Vijayaraghavan Murali, Jorge A. Navas, Andrew E. Santosa
SAS3
2011 Unbounded Symbolic Execution for Program Verification
Joxan Jaffar, Jorge A. Navas, Andrew E. Santosa
RV2
2010 Abstraction Learning
Joxan Jaffar, Jorge A. Navas, Andrew E. Santosa
ATVA2
2008 Negative Ternary Set-Sharing
Eric D. Trias, Jorge A. Navas, Elena S. Ackley, Stephanie Forrest, Manuel V. Hermenegildo
ICLP2
2007 User-Definable Resource Bounds Analysis for Logic Programs
Jorge A. Navas, Edison Mera, Pedro López-García 0001, Manuel V. Hermenegildo
ICLP1
2007 A Flexible, (C)LP-Based Approach to the Analysis of Object-Oriented Programs
Mario Méndez-Lojo, Jorge A. Navas, Manuel V. Hermenegildo
LOPSTR2
2006 Efficient Top-Down Set-Sharing Analysis Using Cliques
Jorge A. Navas, Francisco Bueno, Manuel V. Hermenegildo
PADL1