Jorge A. Navas

Jorge A. Navas

Senior Researcher/Engineer @ Certora

Contact: navasjorgea@gmail.com

About me

My passion is the design and implementation of automatic tools that can boost programmers' productivity to make more reliable and secure code. The goal of my research is to improve the process of formally verifying complex software systems.

At Certora, I am developing a new verification tool for Solana smart contracts. These contracts, together with their specs, are written in Rust and compiled to Solana Binary Format (SBF), which is a variation of eBPF.

Before joining Certora, I worked at SRI International (2016-2021) and NASA Ames Research Center (2013-2016).
Before that, I enjoyed my post-doc life at University of Melbourne (2011-2013) and National University of Singapore (2008-2011).
I got a PhD in Computer Science from the University of New Mexico in 2008, and a B.Sc in Computer Science from Technical University of Madrid in 2003.
Outside of work, I enjoy spending time with my family and running.

Software

Current Projects

Past Projects

Recent Service Activitives

Peer-Reviewed Publications [ DBLP | Google Scholar ]

  1. Inductive Predicate Synthesis Modulo Programs (PDF).
    Scott Wesley, M. Christakis, J. A. Navas, R. Trefler, V. Wustholz, A. Gurfinkel
    ECOOP'24.
  2. Efficient Modular SMT-Based Model Checking of Pointer Programs (PDF).
    I. Garcia-Contreras, A. Gurfinkel, J. A. Navas
    SAS'22.
  3. Verifying Solidity Smart Contracts Via Communication Abstraction in SmartACE (PDF).
    Scott Wesley, M. Christakis, A. Gurfinkel, J. A. Navas, R. Trefler, V. Wustholz.
    VMCAI'22.
  4. Compositional Verification of Smart Contracts Through Communication Abstraction (PDF).
    Scott Wesley, M. Christakis, A. Gurfinkel, J. A. Navas, R. Trefler, V. Wustholz.
    SAS'21.
  5. Disjunctive Interval Analysis (PDF).
    G. Gange, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    SAS'21.
  6. Abstract Interpretation of LLVM with a Region-Based Memory Model (PDF).
    A. Gurfinkel , J. A. Navas
    VSTTE'21. These are the scripts to reproduce the experimental evaluation.
  7. Automated Safety Verification of Programs Invoking Neural Networks (PDF).
    M. Christakis, H. Ferit Eniser, H. Hermanns, J. Hoffmann, Y. Kothari, Jianlin Li, J. A. Navas, V. Wustholz .
    CAV'21. The code is available here, and the benchmarks here .
  8. Automatically Tailoring Abstract Interpretation to Custom Usage Scenarios (PDF).
    M. N. Mansur, B.  Mariano , M. Christakis, J. A. Navas, V. Wustholz .
    CAV'21. The code is available here.
  9. A Fresh Look at Zones and Octagons (PDF).
    G. Gange, Zequn Ma, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    ACM TOPLAS Volume 43, Issue 3 September 2021.
  10. Verification of an Optimized NTT Algorithm (PDF).
    J. A. Navas, B. Dutertre, I. Mason,
    VSTTE'20. The code of the verifier is available here.
  11. Dissecting Widening: Separating Termination from Information (PDF).
    **Distinguished Paper Award**
    G. Gange, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    APLAS'19.
  12. Unification-based Pointer Analysis without Oversharing (PDF).
    J. Kuderski , J. A. Navas, A. Gurfinkel .
    FMCAD'19.
  13. Simple and Precise Static Analysis of Untrusted Linux Kernel Extensions (PDF).
    E. Gershuni, N. Amit, A. Gurfinkel , N. Narodytska, J. A. Navas, N. Rinetzky, L. Ryzhyk and M. Sagiv.
    PLDI'19.
  14. Generating Component Interfaces by Integrating Static and Symbolic Analysis, Learning, and Runtime Monitoring (PDF).
    Falk Howard, Dimitra Giannakopoulou, Malte Maus, J. A. Navas.
    ISoLA'18.
  15. Executable Counterexamples in Software Model Checking (PDF).
    J. Gennari, A. Gurfinkel , T. Kahsai, J. A. Navas, E. J. Schwartz.
    VSTTE'18. Video 1(3m51s)   Video 2(4m37s).
  16. Verification of Fault-Tolerant Protocols with Sally (PDF).
    B. Dutertre, D. Jovanovic, J. A. Navas.
    NFM'18.
  17. A Context-Sensitive Memory Model for Verification of C/C++ Programs (PDF).
    A. Gurfinkel , J. A. Navas.
    SAS'17.
  18. Exploiting Sparsity in Difference-Bound Matrices (PDF).
    G. Gange, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    SAS'16.
  19. An Abstract Domain of Uninterpreted Functions (PDF).
    G. Gange, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    VMCAI'16.
  20. A Complete Refinement Procedure for Regular Separability of Context-Free Languages (PDF).
    G. Gange, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    TCS 2016.
  21. Finding Inconsistencies in Programs with Loops (PDF).
    T. Kahsai, J. A. Navas, D. Jovanovic, M. Schäf.
    LPAR'15.
  22. The SeaHorn Verification Framework (PDF).
    A. Gurfinkel , T. Kahsai, A.   Komuravelli, J. A. Navas.
    CAV'15.
  23. Horn-Clauses as an Intermediate Representation for Program Analysis and Transformation (PDF).
    G. Gange, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    ICLP'15.
  24. A Tool for Intersecting Context-Free Grammars and Its Applications (PDF).
    G. Gange, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    NFM'15.
  25. SeaHorn: A Framework for Verifying C Programs (Competition Contribution) (PDF).
    A. Gurfinkel , T. Kahsai, J. A. Navas.
    TACAS'15.
  26. Interval Analysis and Machine Arithmetic: Why Signedness Ignorance is Bliss (PDF).
    G. Gange, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    ACM TOPLAS Volume 37, Issue 1 January 2015.
  27. Analyzing array manipulating programs by program transformation (PDF) .
    J. R. Cornish, G. Gange, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    LOPSTR'14.
  28. IKOS: A Framework for Static Analysis based on Abstract Interpretation (PDF).
    G. Brat, J. A. Navas, N. Shi, A. Venet.
    SEFM'14.
  29. Verification of Programs by Combining Iterated Specialization with Interpolation (PDF) .
    E. De Angelis, F. Fioravanti, J. A. Navas, M. Proietti.
    HCVS'14.
  30. Abstract Interpretation over Non-Lattice Abstract Domains (PDF).
    G. Gange, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    SAS'13.
  31. Unbounded Model Checking with Interpolation for Regular Language Constraints (PDF).
    G. Gange, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    TACAS'13.
  32. Boosting Concolic Testing with Interpolation (PDF).
    J. Jaffar, V. Murali, J. A. Navas.
    FSE'13.
  33. Failure Tabled Constraint Logic Programming by Interpolation (PDF) (PDF appendix).
    G. Gange, J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    ICLP'13.
  34. Modelling Destructive Assignments (PDF).
    K.  Francis, J. A. Navas, P. J. Stuckey.
    CP'13.
  35. Signedness-Agnostic Program Analysis: Precise Integer Bounds for Low-Level Code (PDF).
    J. A. Navas, P. Schachte, H. Sondergaard, P. J. Stuckey.
    APLAS'12.
  36. TRACER: A Symbolic Execution Tool for Verification (PDF).
    J. Jaffar, V. Murali, J. A. Navas, A. E. Santosa.
    CAV'12.
  37. Path-Sensitive Backward Slicing (PDF).
    J. Jaffar, V. Murali, J. A. Navas, A. E. Santosa.
    SAS'12.
  38. Unbounded Symbolic Execution for Program Verification (PDF).
    RV'11.
    J. Jaffar, J. A. Navas, A. E. Santosa.
  39. Negative Ternary Set-Sharing (PDF).
    E. Trias, J. A. Navas, E. S. Ackley, S. Forrest, M. Hermenegildo.
    ICLP'08.
  40. User-Definable Resource Bounds Analysis for Logic Programs (PDF).
    **Test of Time Award (10 years)**
    J. A. Navas, E. Mera, P. Lopez-Garcia, M. Hermenegildo.
    ICLP'07.
  41. A Flexible, (C)LP-based Approach to the Analysis of Object-Oriented Programs (PDF).
    M. Mendez-Lojo, J. A. Navas, M. Hermenegildo.
    LOPSTR'07.
  42. Efficient, Parametric Fixpoint Algorithm for Analysis of Java Bytecode (PDF).
    M. Mendez-Lojo, J. A. Navas, M. Hermenegildo.
    BYTECODE'07.
  43. Efficient top-down set-sharing analysis using cliques (PDF).
    J. A. Navas, F. Bueno, M. Hermenegildo .
    PADL'06.

Non-Peer-Reviewed Publications

Unpublished Technical Reports

Doctoral Dissertation