VLDB 2026 Research / reviewers in the wild / expert
Lucas C. Cordeiro
dblp:42/4311 · also Lucas Carvalho Cordeiro
· DBLP profile ↗
81ranked-venue papers
9as first author
35since 2021 · last 2025
0000-0002-6235-4272ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 65 · 9 first-author · 29 since 2021Theory of computation · 7 · 1 first-author · 1 since 2021Systems, architecture and hardware · 5 · 1 since 2021Artificial intelligence and machine learning · 4 · 4 since 2021Human-computer interaction and ubiquitous computing · 3Applied, interdisciplinary, general and emerging computing · 2 · 1 since 2021Databases, data management, data science and information retrieval · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | A New Era in Software Security: Towards Self-Healing Software via Large Language Models and Formal VerificationabstractThis paper presents a novel approach integrating Large Language Models (LLMs) with Formal Verification for automatic software vulnerability repair. Initially, we employ Bounded Model Checking (BMC) to identify vulnerabilities and extract counterexamples. Mathematical proofs and the stack trace of the vulnerabilities support these counterexamples. Using a specially designed prompt, we combine the source code with the identified vulnerability, including its stack trace and counterexample that specifies the line number and error type. This combined information is then fed into an LLM, which is instructed to attempt to fix the code. The new code is subsequently verified again using BMC to ensure the fix succeeded. We present the ESBMC-AI framework as a proof of concept, leveraging the well-recognized and industry-adopted Efficient SMT-based Context-Bounded Model Checker (ESBMC) and a pre-trained transformer model to detect and fix errors in C programs, particularly in critical software components. We evaluated our approach on 50, 000 C programs randomly selected from the FormAI dataset with their respective vulnerability classifications. Our results demonstrate ESBMC-AI’s capability to automate the detection and repair of issues such as buffer overflow, arithmetic overflow, and pointer dereference failures with high accuracy. ESBMC-AI is a pioneering initiative, integrating LLMs with BMC techniques, offering potential integration into the continuous integration and deployment (CI/CD) process within the software development lifecycle. Norbert Tihanyi, Yiannis Charalambous, Ridhi Jain, Mohamed Amine Ferrag, Lucas C. Cordeiro |
AST | 5 |
| 2025 | Montague semantics and modifier consistency measurement in neural language modelsabstractThis work proposes a novel methodology for measuring compositional behavior in contemporary language embedding models. Specifically, we focus on adjectival modifier phenomena in adjective-noun phrases. In recent years, distributional language representation models have demonstrated great practical success. At the same time, the need for interpretability has elicited questions on their intrinsic properties and capabilities. Crucially, distributional models are often inconsistent when dealing with compositional phenomena in natural language, which has significant implications for their safety and fairness. Despite this, most current research on compositionality is directed towards improving their performance on similarity tasks only. This work takes a different approach, introducing three novel tests of compositional behavior inspired by Montague semantics. Our experimental results indicate that current neural language models do not behave according to the expected linguistic theories. This indicates that current language models may lack the capability to capture the semantic properties we evaluated on limited context, or that linguistic theories from Montagovian tradition may not match the expected capabilities of distributional models. Danilo S. Carvalho, Edoardo Manino, Julia Rozanova, Lucas C. Cordeiro, André Freitas |
COLING | 4 |
| 2025 | Neural Network Verification is a Programming Language ChallengeabstractAbstract Neural network verification is a new and rapidly developing field of research. So far, the main priority has been establishing efficient verification algorithms and tools, while proper support from the programming language perspective has been considered secondary or unimportant. Yet, there is mounting evidence that insights from the programming language community may make a difference in the future development of this domain. In this paper, we formulate neural network verification challenges as programming language challenges and suggest possible future solutions. Lucas C. Cordeiro, Matthew L. Daggitt, Julien Girard-Satabin, Omri Isac, Taylor T. Johnson, Guy Katz, Ekaterina Komendantskaya, Augustin Lemesle, Edoardo Manino, Artjoms Sinkarovs, Haoze Wu 0001 |
ESOP (1) | 1 |
| 2025 | ESBMC v7.7: Automating Branch Coverage Analysis Using CFG-Based Instrumentation and SMT Solving - (Competition Contribution)abstractAbstract ESBMC, a bounded model checking (BMC) verifier based on SMT solving, has demonstrated its effectiveness in bug detection in recent software verification competitions. We extend its capabilities to enable branch coverage analysis and test suite generation. Our contributions are twofold: (1) we define a branch coverage property and instrument the control flow graph (CFG) to compute branch coverage using SMT solving, and (2) we propose an incremental multi-property reasoning algorithm for efficient and sound test case generation. ESBMC is ranked 7th in the category of Test-Comp 2025. Chenfeng Wei, Tong Wu 0028, Rafael Menezes, Fedor Shmarov, Fatimah Aljaafari, Sangharatna Godboley, Kaled M. Alshmrany, Rosiane de Freitas, Lucas C. Cordeiro |
FASE | 9 |
| 2025 | VeriExploit: Automatic Bug Reproduction in Smart Contracts via LLMs and Formal MethodsabstractBug reproduction is becoming an important task in the security analysis of Solidity smart contracts. By simulating attacks, developers and auditors can better understand how a vulnerability is triggered in practice. To reproduce a bug, one often needs to define an attacker contract and a specific sequence of interactions that exploit the vulnerability. However, in smart contracts, there are rarely automated tools that can generate such contracts and sequences and validate their correctness. Existing security tools, such as formal verifiers, are effective at detecting bugs, but they are not designed for bug reproduction. They often omit execution traces or produce incomplete ones. Moreover, their reports rarely reflect the behaviour patterns of attacker contracts. This gap motivates our work. We propose VeriExploit, a framework that combines formal methods and large language models to automatically generate, validate, and refine reproduction contracts and execution steps. Given a vulnerable contract and its counterexample, VeriExploit produces a contract that re-triggers the same bug and outputs a concrete trace showing how the exploit works. Experiments show that VeriExploit is effective at automating bug reproduction, achieving a success rate of 85.60% on our benchmark dataset. Chenfeng Wei, Shiyu Cai, Yiannis Charalambous, Tong Wu 0028, Sangharatna Godboley, Lucas C. Cordeiro |
ASE | 6 |
| 2025 | Supporting Software Formal Verification with Large Language Models: An Experimental StudyabstractFormal methods have been employed for requirements verification for a long time. However, it is difficult to automatically derive properties from natural language requirements. SpecVerify addresses this challenge by integrating large language models (LLMs) with formal verification tools, providing a more flexible mechanism for expressing requirements. This framework combines Claude 3.5 Sonnet with the ESBMC verifier to form an automated workflow. Evaluated on nine cyber-physical systems from Lockheed Martin, SpecVerify achieves 46.5% verification accuracy, comparable to NASA’s CoCoSim, but with lower false positives. Our framework formulates assertions that extend beyond the expressive power of LTL and identifies falsifiable cases that are missed by more traditional methods. Counterexample analysis reveals CoCoSim’s limitations stemming from model connection errors and numerical approximation issues. While SpecVerify advances verification automation, our comparative study of Claude, ChatGPT, and Llama shows that high-quality requirements documentation and human monitoring remain critical, as models occasionally misinterpret specifications. Our results demonstrate that LLMs can significantly reduce the barriers to formal verification, while highlighting the continued importance of human-machine collaboration in achieving optimal results. Marie Farrell, Lucas C. Cordeiro, Liping Zhao 0001 |
RE | 3 |
| 2025 | ReqInOne: A Large Language Model-Based Agent for Software Requirements Specification GenerationabstractSoftware Requirements Specification (SRS) is one of the most important documents in software projects, but writing it manually is time-consuming and often leads to ambiguity. Existing automatic methods rely heavily on manual analysis, while recent Large Language Model (LLM)-based approaches suffer from hallucinations and poor controllability. In this paper, we propose ReqInOne, an LLM-based agent that follows the common steps taken by human requirements engineers when writing an SRS to convert natural language into a structured SRS. ReqInOne features a modular architecture by decomposing SRS generation into three tasks: summary, requirement extraction, and requirement classification, each supported by tailored prompt templates to improve the quality and consistency of LLM outputs.We evaluate ReqInOne using GPT-4o, LLaMA 3, and DeepSeek-R1, and compare the generated SRSs against those produced by the holistic GPT-4-based SRS generation method from existing work as well as by entry-level requirements engineers. Expert evaluations show that ReqInOne produces more accurate and well-structured SRS documents. The performance advantage of ReqInOne benefits from its modular design, and experimental results further demonstrate that its requirement classification component achieves comparable or even better results than the state-of-the-art requirement classification model. Taohong Zhu, Lucas C. Cordeiro, Youcheng Sun |
RE | 2 |
| 2025 | ESBMC v7.7: Efficient Concurrent Software Verification with Scheduling, Incremental SMT and Partial Order Reduction - (Competition Contribution)abstractAbstract ESBMC v7.7 improves the verification of concurrent C programs by incorporating techniques such as dynamic thread scheduling, incremental SMT solving, and partial order reduction (POR). These improvements enhance the tool’s performance, particularly in exploring complex multi-threaded executions. The new scheduler prioritizes higher-thread identifiers during context switches, which helps explore deeper program states. The use of incremental SMT solving and a refined POR algorithm reduces the exploration of unreachable interleavings and redundant states. These updates enable ESBMC to detect bugs faster, making it a more effective tool for ensuring the safety of multi-threaded applications. Tong Wu 0028, Xianzhiyu Li, Edoardo Manino, Rafael Menezes, Mikhail R. Gadelha, Shale Xiong, Norbert Tihanyi, Pavlos Petoumenos, Lucas C. Cordeiro |
TACAS (3) | 9 |
| 2025 | CASTLE: Benchmarking Dataset for Static Code Analyzers and LLMs Towards CWE Detection
Richard A. Dubniczky, Krisztofer Zoltán Horvát, Tamás Bisztray, Mohamed Amine Ferrag, Lucas C. Cordeiro, Norbert Tihanyi |
TASE | 5 |
| 2025 | How secure is AI-generated code: a large-scale comparison of large language models
Norbert Tihanyi, Tamás Bisztray, Mohamed Amine Ferrag, Ridhi Jain, Lucas C. Cordeiro |
Empir. Softw. Eng. | 5 |
| 2025 | ESBMC v7.6: Enhanced model checking of C++ programs with clang ASTabstractThis paper presents Efficient SMT-Based Context-Bounded Model Checker (ESBMC) v7.6, an extended version based on previous work on ESBMC v7.3 by K. Song et al. [1] . The v7.3 introduced a new Clang-based C++ front-end to address the challenges posed by modern C++ programs. Although the new front-end has demonstrated significant potential in previous studies, it remains in the developmental stage and lacks several essential features. ESBMC v7.6 further enhanced this foundation by adding and extending features based on the Clang AST, such as exception handling, extended memory management and memory safety verification, including dangling pointers, duplicate deallocation, memory leaks and rvalue references and new operational models for STL updating the outdated C++ operational models. Our extensive experiments demonstrate that ESBMC v7.6 can handle a significantly broader range of C++ features introduced in recent versions of the C++ standard. Xianzhiyu Li, Kunjian Song, Mikhail R. Gadelha, Franz Brauße, Rafael Menezes, Konstantin Korovin, Lucas C. Cordeiro |
Sci. Comput. Program. | 7 |
| 2025 | SecureFalcon: Are We There Yet in Automated Software Vulnerability Detection With LLMs?
Mohamed Amine Ferrag, Ammar Ayman Battah, Norbert Tihanyi, Ridhi Jain, Diana Maimut, Fatima Alwahedi, Thierry Lestable, Narinderjit Singh Thandi, Abdechakour Mechri, Mérouane Debbah, Lucas C. Cordeiro |
IEEE Trans. Software Eng. | 11 |
| 2024 | Dynamic Intelligence Assessment: Benchmarking LLMs on the Road to AGI with a Focus on Model ConfidenceabstractAs machine intelligence evolves, the need to test and compare the problem-solving abilities of different AI models grows. However, current benchmarks are often simplistic, allowing models to perform uniformly well and making it difficult to distinguish their capabilities. Additionally, benchmarks typically rely on static question-answer pairs that the models might memorize or guess. To address these limitations, we introduce Dynamic Intelligence Assessment (DIA), a novel methodology for testing AI models using dynamic question templates and improved metrics across multiple disciplines such as mathematics, cryptography, cybersecurity, and computer science. The accompanying dataset, DIA-Bench, contains a diverse collection of challenge templates with mutable parameters presented in various formats, including text, PDFs, compiled binaries, visual puzzles, and CTF-style cybersecurity challenges. Our framework introduces four new metrics to assess a model’s reliability and confidence across multiple attempts. These metrics revealed that even simple questions are frequently answered incorrectly when posed in varying forms, highlighting significant gaps in models’ reliability. Notably, API models like GPT-4o often overestimated their mathematical capabilities, while ChatGPT-4o demonstrated better performance due to effective tool usage. In self-assessment OpenAI’s o1-mini proved to have the best judgement on what tasks it should attempt to solve. We evaluated 25 state-of-the-art LLMs using DIA-Bench, showing that current models struggle with complex tasks and often display unexpectedly low confidence, even with simpler questions. The DIA framework sets a new standard for assessing not only problem-solving, but also a model’s adaptive intelligence and ability to assess its limitations. The dataset is publicly available on the project’s page: https://github.com/DIA-Bench. Norbert Tihanyi, Tamás Bisztray, Richard A. Dubniczky, Rebeka Tóth, Bertalan Borsos, Bilel Cherif, Ridhi Jain, Lajos Muzsai, Mohamed Amine Ferrag, Ryan Marinelli, Lucas C. Cordeiro, Mérouane Debbah, Vasileios Mavroeidis, Audun Jøsang |
IEEE Big Data | 11 |
| 2024 | ESBMC-Python: A Bounded Model Checker for Python ProgramsabstractThis paper introduces a tool for verifying Python programs, which, using type annotation and front-end processing, can harness the capabilities of a bounded model-checking (BMC) pipeline. It transforms an input program into an abstract syntax tree to infer and add type information. Then, it translates Python expressions and statements into an intermediate representation. Finally, it converts this description into formulae evaluated with satisfiability modulo theories (SMT) solvers. The proposed approach was realized with the efficient SMT-based bounded model checker (ESBMC), which resulted in a tool called ESBMC-Python, the first BMC-based Python-code verifier. Experimental results, with a test suite specifically developed for this purpose, showed its effectiveness, where successful and failed tests were correctly evaluated. Moreover, it found a real problem in the Ethereum Consensus Specification. Bruno Farias 0001, Rafael Menezes, Eddie Batista de Lima Filho, Youcheng Sun, Lucas C. Cordeiro |
ISSTA | 5 |
| 2024 | JCWIT: A Correctness-Witness Validator for Java Programs Based on Bounded Model CheckingabstractWitness validation is a formal verification method to independently verify software verification tool results, with two main categories: violation and correctness witness validators. Validators for violation witnesses in Java include Wit4Java and GWIT, but no dedicated correctness witness validators exist. To address this gap, this paper presents the Java Correctness-Witness Validator (JCWIT), the first tool to validate correctness witnesses in Java programs. JCWIT accepts an original program, a specification, and a correctness witness as inputs. Then, it uses invariants of each witness’s execution state as conditions to be incorporated into the original program in the form of assertions, thus instrumenting it. Next, JCWIT employs an established tool, Java Bounded Model Checker (JBMC), to verify the transformed program, hence examining the reproducibility of correct witness results. We evaluated JCWIT in the SV-COMP ReachSafety benchmark, and the results show that JCWIT can correctly validate the correctness witnesses generated by Java verifiers. Zaiyu Cheng, Tong Wu 0028, Peter Schrammel, Norbert Tihanyi, Eddie Batista de Lima Filho, Lucas C. Cordeiro |
ISSTA | 6 |
| 2024 | LLM-Generated Invariants for Bounded Model Checking Without Loop UnrollingabstractWe investigate a modification of the classical Bounded Model Checking (BMC) procedure that does not handle loops through unrolling but via modifications to the control flow graph (CFG). A portion of the CFG representing a loop is replaced by a node asserting invariants of the loop. We generate these invariants using Large Language Models (LLMs) and use a first-order theorem prover to ensure the correctness of the generated statements. We thus transform programs to loop-free variants in a sound manner. Our experimental results show that the resulting tool, ESBMC ibmc, is competitive with state-of-the-art formal verifiers for programs with unbounded loops, significantly improving the number of programs verified by the industrial-strength software verifier ESBMC and verifying programs that state-of-the-art software verifiers such as SeaHorn and VeriAbs could not. Muhammad A. A. Pirzada, Giles Reger, Ahmed Bhayat, Lucas C. Cordeiro |
ASE | 4 |
| 2024 | Verifying Components of Arm® Confidential Computing Architecture with ESBMC
Tong Wu 0028, Shale Xiong, Edoardo Manino, Gareth Stockwell, Lucas C. Cordeiro |
SAS | 5 |
| 2024 | ESBMC v7.4: Harnessing the Power of Intervals - (Competition Contribution)abstractAbstract ESBMC implements many state-of-the-art techniques that combine abstract interpretation and model checking. Here, we report on new and improved features that allow us to obtain verification results for previously unsupported programs and properties. ESBMC now employs a new static interval analysis of expressions in programs to increase verification performance. This includes interval-based reasoning over booleans and integers, and forward-backward contractors. Other relevant improvements concern the verification of concurrent programs, as well as several operational models, internal ones, and also those of libraries such as pthread and the C mathematics library. An extended memory safety analysis now allows tracking of memory leaks that are considered still reachable. Rafael Menezes, Mohannad Aldughaim, Bruno Farias 0001, Xianzhiyu Li, Edoardo Manino, Fedor Shmarov, Kunjian Song, Franz Brauße, Mikhail R. Gadelha, Norbert Tihanyi, Konstantin Korovin, Lucas C. Cordeiro |
TACAS (3) | 12 |
| 2024 | A comprehensive review of model compression techniques in machine learningabstractAbstract This paper critically examines model compression techniques within the machine learning (ML) domain, emphasizing their role in enhancing model efficiency for deployment in resource-constrained environments, such as mobile devices, edge computing, and Internet of Things (IoT) systems. By systematically exploring compression techniques and lightweight design architectures, it is provided a comprehensive understanding of their operational contexts and effectiveness. The synthesis of these strategies reveals a dynamic interplay between model performance and computational demand, highlighting the balance required for optimal application. As machine learning (ML) models grow increasingly complex and data-intensive, the demand for computational resources and memory has surged accordingly. This escalation presents significant challenges for the deployment of artificial intelligence (AI) systems in real-world applications, particularly where hardware capabilities are limited. Therefore, model compression techniques are not merely advantageous but essential for ensuring that these models can be utilized across various domains, maintaining high performance without prohibitive resource requirements. Furthermore, this review underscores the importance of model compression in sustainable artificial intelligence (AI) development. The introduction of hybrid methods, which combine multiple compression techniques, promises to deliver superior performance and efficiency. Additionally, the development of intelligent frameworks capable of selecting the most appropriate compression strategy based on specific application needs is crucial for advancing the field. The practical examples and engineering applications discussed demonstrate the real-world impact of these techniques. By optimizing the balance between model complexity and computational efficiency, model compression ensures that the advancements in AI technology remain sustainable and widely applicable. This comprehensive review thus contributes to the academic discourse and guides innovative solutions for efficient and responsible machine learning practices, paving the way for future advancements in the field. Graphical abstract Pierre V. Dantas, Waldir S. S. Júnior, Lucas C. Cordeiro, Celso B. Carvalho |
Appl. Intell. | 3 |
| 2024 | FuSeBMC v4: Improving Code Coverage with Smart Seeds via BMC, Fuzzing and Static AnalysisabstractBounded model checking (BMC) and fuzzing techniques are among the most effective methods for detecting errors and security vulnerabilities in software. However, there are still shortcomings in detecting these errors due to the inability of existing methods to cover large areas in target code. We proposeFuSeBMCv4, a test generator that synthesizes seeds with useful properties, that we refer to assmart seeds, to improve the performance of its hybrid fuzzer thereby achieving high C program coverage.FuSeBMCworks by first analyzing and incrementally injecting goal labels into the given C program to guide BMC and Evolutionary Fuzzing engines. After that, the engines are employed for an initial period to produce the so–called smart seeds. Finally, the engines are run again, with these smart seeds as starting seeds, in an attempt to achieve maximum code coverage/find bugs. During seed generation and normal running, theTracersubsystem aids coordination between the engines. This subsystem conducts additional coverage analysis and updates a shared memory with information on goals covered so far. Furthermore, theTracerevaluates test-cases dynamically to convert cases into seeds for subsequent test fuzzing. Thus, the BMC engine can provide the seed that allows the fuzzing engine to bypass complex mathematical guards (e.g., input validation). As a result, we received three awards for participation in the fourth international competition in software testing (Test-Comp 2022), outperforming all state-of-the-art tools in every category, including the coverage category. Kaled M. Alshmrany, Mohannad Aldughaim, Ahmed Bhayat, Lucas C. Cordeiro |
Formal Aspects Comput. | 4 |
| 2024 | Counterexample Guided Neural Network Quantization RefinementabstractDeploying Neural networks (NNs) in low-resource domains is challenging because of their high computing, memory, and power requirements. For this reason, NNs are often quantized before deployment, but such an approach degrades their accuracy. Thus, we propose the counterexample guided neural network quantization refinement (CEG4N) framework, which combines search-based quantization and equivalence checking. The former minimizes computational requirements, while the latter guarantees that the behavior of an NN does not change after quantization. We evaluate CEG4N on a diverse set of benchmarks, including large and small NNs. Our technique successfully quantizes the networks in the chosen evaluation set, while producing models with up to 163% better accuracy than state-of-the-art techniques. João Batista Pereira Matos Jr., Eddie Batista de Lima Filho, Iury Bessa, Edoardo Manino, Xidan Song, Lucas C. Cordeiro |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 6 |
| 2023 | FuSeBMC_IA: Interval Analysis and Methods for Test Case Generation - (Competition Contribution)abstractAbstract The cooperative verification of Bounded Model Checking and Fuzzing has proved to be one of the most effective techniques when testing C programs. FuSeBMC is a test-generation tool that employs BMC and Fuzzing to produce test cases. In Test-Comp 2023, we present an interval approach to FuSeBMC_IA, improving the test generator to use interval methods and abstract interpretation (via Frama-C) to strengthen our instrumentation and fuzzing. Here, an abstract interpretation engine instruments the program as follows. It analyzes different program branches, combines the conditions of each branch, and produces a Constraint Satisfaction Problem (CSP), which is solved using Constraint Programming (CP) by interval manipulation techniques called Contractor Programming. This process has a set of invariants for each branch, which are introduced back into the program as constraints. Experimental results show improvements in reducing CPU time (37%) and memory (13%), while retaining a high score. Mohannad Aldughaim, Kaled M. Alshmrany, Mikhail R. Gadelha, Rosiane de Freitas, Lucas C. Cordeiro |
FASE | 5 |
| 2023 | QNNRepair: Quantized Neural Network Repair
Xidan Song, Youcheng Sun, Mustafa A. Mustafa, Lucas C. Cordeiro |
SEFM | 4 |
| 2023 | EBF 4.2: Black-Box Cooperative Verification for Concurrent Programs - (Competition Contribution)abstractAbstract Combining different verification and testing techniques together could, at least in theory, achieve better results than each individual one on its own. The challenge in doing so is how to take advantage of the strengths of each technique while compensating for their weaknesses. EBF 4.2 addresses this challenge for concurrency vulnerabilities by creating Ensembles of Bounded model checkers and gray-box Fuzzers. In contrast with portfolios, which simply run all possible techniques in parallel, EBF strives to obtain closer cooperation between them. This goal is achieved in a black-box fashion. On the one hand, the model checkers are forced to provide seeds to the fuzzers by injecting additional vulnerabilities in the program under test. On the other hand, off-the-shelf fuzzers are forced to explore different interleavings by adding lightweight instrumentation and systematically re-seeding them. Fatimah Aljaafari, Fedor Shmarov, Edoardo Manino, Rafael Menezes, Lucas C. Cordeiro |
TACAS (2) | 5 |
| 2023 | Towards global neural network abstractions with locally-exact reconstructionabstractNeural networks are a powerful class of non-linear functions. However, their black-box nature makes it difficult to explain their behaviour and certify their safety. Abstraction techniques address this challenge by transforming the neural network into a simpler, over-approximated function. Unfortunately, existing abstraction techniques are slack, which limits their applicability to small local regions of the input domain. In this paper, we propose Global Interval Neural Network Abstractions with Center-Exact Reconstruction (GINNACER). Our novel abstraction technique produces sound over-approximation bounds over the whole input domain while guaranteeing exact reconstructions for any given local input. Our experiments show that GINNACER is several orders of magnitude tighter than state-of-the-art global abstraction techniques, while being competitive with local ones. Edoardo Manino, Iury Bessa, Lucas C. Cordeiro |
Neural Networks | 3 |
| 2023 | A fuzzing-based test-creation approach for evaluating digital TV receivers via transport streamsabstractAbstract Digital TV (DTV) receivers are usually submitted to testing systems for conformity and robustness assessment, and their approval implies correct operation under a given DTV specification protocol. However, many broadcasters inadvertently misconfigure their devices and transmit the wrong information concerning data structures and protocol format. Since most receivers were not designed to operate under such conditions, malfunction and incorrect behaviour may be noticed, often recognized as field problems, thus compromising a given system's operation. Moreover, the way those problems are usually introduced in DTV signals presents some randomness, but with known restrictions given by the underlying transport protocols used in DTV systems, which resembles fuzzing techniques. Indeed, everything may happen since any deviation can incur problems, depending on each specific implementation. This error scenario is addressed here, and a novel receiver robustness evaluation methodology based on non‐compliance tests using grammar‐based guided fuzzing is proposed. In particular, devices are submitted to unforeseen conditions and incorrect configuration. They are created with guided fuzzing based on real problems, protocol structure, and system architecture to provide resources for handling them, thus ensuring correct operation. Experiments using such a fuzzing scheme have shown its efficacy and provided opportunities to improve robustness regarding commercial DTV platforms. Fabrício Izumi, Eddie Batista de Lima Filho, Lucas C. Cordeiro, Orlewilson Bentes Maia, Romulo Fabricio, Bruno Farias 0001, Aguinaldo Silva |
Softw. Test. Verification Reliab. | 3 |
| 2022 | FuSeBMC v4: Smart Seed Generation for Hybrid Fuzzing - (Competition Contribution)abstractAbstract FuSeBMC is a test generator for finding security vulnerabilities in C programs. In Test-Comp 2021, we described a previous version that incrementally injected labels to guide Bounded Model Checking (BMC) and Evolutionary Fuzzing engines to produce test cases for code coverage and bug finding. This paper introduces an improved version of FuSeBMC that utilizes both engines to produce smart seeds. First, the engines run with a short time limit on a lightly instrumented version of the program to produce the seeds. The BMC engine is particularly useful in producing seeds that can pass through complex mathematical guards. Then, FuSeBMC runs its engines with extended time limits using the smart seeds created in the previous round. FuSeBMC manages this process in two main ways. Firstly, it uses shared memory to record the labels covered by each test case. Secondly, it evaluates test cases, and those of high impact are turned into seeds for subsequent test fuzzing. In this year’s competition, we participate in the Cover-Error, Cover-Branches, and Overall categories. The Test-Comp 2022 results show that we significantly increased our code coverage score from last year, outperforming all tools in all categories. Kaled M. Alshmrany, Mohannad Aldughaim, Ahmed Bhayat, Lucas C. Cordeiro |
FASE | 4 |
| 2022 | Summary of Model Checking C++ ProgramsabstractThis is an extended abstract of the article “Model Checking C++ Programs” by Felipe R. Monteiro, Mikhail R. Gadelha, and Lucas C. Cordeiro published at the journal of Software Testing, Verification and Reliability. We describe and evaluate a novel verification approach based on bounded model checking (BMC) and satisfiability modulo theories (SMT) to verify C++ programs. Our verification approach analyses bounded C++ programs by encoding into SMT various sophisticated features that the C++ programming language offers, such as templates, inheritance, polymorphism, exception handling, and the Standard Template Libraries. We implemented our verification approach on top of ESBMC. We compare ESBMC to LLBMC and DIVINE, which are state-of-the-art verifiers to check C++ programs directly from the LLVM bitcode. Experimental results show that ESBMC can handle a wide range of C++ programs, presenting a higher number of correct verification results. Additionally, ESBMC has been applied to a commercial C++ application in the telecommunication domain and successfully detected arithmetic-overflow errors, which could lead to security vulnerabilities. Felipe R. Monteiro, Mikhail R. Gadelha, Lucas C. Cordeiro |
ICST | 3 |
| 2022 | ESBMC-CHERI: towards verification of C programs for CHERI platforms with ESBMCabstractThis paper presents ESBMC-CHERI -- the first bounded model checker capable of formally verifying C programs for CHERI-enabled platforms. CHERI provides run-time protection for the memory-unsafe programming languages such as C/C++ at the hardware level. At the same time, it introduces new semantics to C programs, making some safe C programs cause hardware exceptions on CHERI-extended platforms. Hence, it is crucial to detect memory safety violations and compatibility issues ahead of compilation. However, there are no current verification tools for reasoning over CHERI-C programs. We demonstrate the work undertaken towards implementing support for CHERI-C in our state-of-the-art bounded model checker ESBMC and the plans for future work and extensive evaluation of ESBMC-CHERI. The ESBMC-CHERI demonstration and the source code are available at https://github.com/esbmc/esbmc/tree/cheri-clang. Franz Brauße, Fedor Shmarov, Rafael Menezes, Mikhail R. Gadelha, Konstantin Korovin, Giles Reger, Lucas C. Cordeiro |
ISSTA | 7 |
| 2022 | ESBMC-Jimple: verifying Kotlin programs via jimple intermediate representationabstractWe describe and evaluate the first model checker for verifying Kotlin programs through the Jimple intermediate representation. The verifier, named ESBMC-Jimple, is built on top of the Efficient SMT-based Context-Bounded Model Checker (ESBMC). It uses the Soot framework to obtain the Jimple IR, representing a simplified version of the Kotlin source code, containing a maximum of three operands per instruction. ESBMC-Jimple processes Kotlin source code together with a model of the standard Kotlin libraries and checks a set of safety properties. Experimental results show that ESBMC-Jimple can correctly verify a set of Kotlin benchmarks from the literature; it is competitive with state-of-the-art Java bytecode verifiers. A demonstration is available at https://youtu.be/J6WhNfXvJNc. Rafael Menezes, Daniel Moura, Helena Cavalcante, Rosiane de Freitas, Lucas C. Cordeiro |
ISSTA | 5 |
| 2022 | Wit4Java: A Violation-Witness Validator for Java Verifiers (Competition Contribution)abstractAbstract We describe and evaluate a violation-witness validator for Java verifiers called Wit4Java. It takes a Java program with a safety property and the respective violation-witness output by a Java verifier to generate a new Java program whose execution deterministically violates the property. We extract the value of the program variables from the counterexample represented by the violation-witness and feed this information back into the original program. In addition, we have two implementations for instantiating source programs by injecting counterexamples. Experimental results show that Wit4Java can correctly validate the violation-witnesses produced by JBMC and GDart in a few seconds. Tong Wu 0028, Peter Schrammel, Lucas C. Cordeiro |
TACAS (2) | 3 |
| 2022 | Model checking C++ programsabstractSummary In the last three decades, memory safety issues in system programming languages such as C or C++ have been one of the most significant sources of security vulnerabilities. However, there exist only a few attempts with limited success to cope with the complexity of C++ program verification. We describe and evaluate a novel verification approach based on bounded model checking (BMC) and satisfiability modulo theories (SMT) to verify C++ programs. Our verification approach analyses bounded C++ programs by encoding into SMT various sophisticated features that the C++ programming language offers, such as templates, inheritance, polymorphism, exception handling, and the Standard Template Libraries. We formalize these features within our formal verification framework using a decidable fragment of first‐order logic and then show how state‐of‐the‐art SMT solvers can efficiently handle that. We implemented our verification approach on top of ESBMC. We compare ESBMC to LLBMC and DIVINE, which are state‐of‐the‐art verifiers to check C++ programs directly from the LLVM bitcode. Experimental results show that ESBMC can handle a wide range of C++ programs, presenting a higher number of correct verification results. Additionally, ESBMC has been applied to a commercial C++ application in the telecommunication domain and successfully detected arithmetic‐overflow errors, which could potentially lead to security vulnerabilities. Felipe R. Monteiro, Mikhail R. Gadelha, Lucas C. Cordeiro |
Softw. Test. Verification Reliab. | 3 |
| 2021 | FuSeBMC: A White-Box Fuzzer for Finding Security Vulnerabilities in C Programs (Competition Contribution)abstractAbstract We describe and evaluate a novel white-box fuzzer for C programs named , which combines fuzzing and symbolic execution, and applies Bounded Model Checking (BMC) to find security vulnerabilities in C programs. explores and analyzes C programs (1) to find execution paths that lead to property violations and (2) to incrementally inject labels to guide the fuzzer and the BMC engine to produce test-cases for code coverage. successfully participates in Test-Comp’21 and achieves first place in the category and second place in the category. Kaled M. Alshmrany, Rafael Menezes, Mikhail R. Gadelha, Lucas C. Cordeiro |
FASE | 4 |
| 2021 | Verification and refutation of C programs based on k-induction and invariant inferenceabstractAbstract DepthK is a source-to-source transformation tool that employs bounded model checking (BMC) to verify and falsify safety properties in single- and multi-threaded C programs, without manual annotation of loop invariants. Here, we describe and evaluate a proof-by-induction algorithm that combines k-induction with invariant inference to prove and refute safety properties. We apply two invariant generators to produce program invariants and feed these into a k-induction-based verification algorithm implemented in DepthK, which uses the efficient SMT-based context-bounded model checker (ESBMC) as sequential verification back-end. A set of C benchmarks from the International Competition on Software Verification (SV-COMP) and embedded-system applications extracted from the available literature are used to evaluate the effectiveness of the proposed approach. Experimental results show that k-induction with invariants can handle a wide variety of safety properties, in typical programs with loops and embedded software applications from the telecommunications, control systems, and medical domains. The results of our comparative evaluation extend the knowledge about approaches that rely on both BMC and k-induction for software verification, in the following ways. (1) The proposed method outperforms the existing implementations that use k-induction with an interval-invariant generator (e.g., 2LS and ESBMC), in the category ConcurrencySafety, and overcame, in others categories, such as SoftwareSystems, other software verifiers that use plain BMC (e.g., CBMC). Also, (2) it is more precise than other verifiers based on the property-directed reachability (PDR) algorithm (i.e., SeaHorn, Vvt and CPAchecker-CTIGAR). This way, our methodology demonstrated improvement over existing BMC and k-induction-based approaches. Omar M. Alhawi, Herbert Rocha, Mikhail R. Gadelha, Lucas C. Cordeiro, Eddie Batista de Lima Filho |
Int. J. Softw. Tools Technol. Transf. | 4 |
| 2021 | ESBMC 6.1: automated test case generation using bounded model checking
Mikhail R. Gadelha, Rafael Menezes, Lucas C. Cordeiro |
Int. J. Softw. Tools Technol. Transf. | 3 |
| 2020 | ESBMC: Scalable and Precise Test Generation based on the Floating-Point Theory - (Competition Contribution)abstractESBMC is an SMT-based bounded model checker for real-world C programs. Such programs often represent real numbers using the floating-points, most commonly, the IEEE floating-point standard (IEEE 754-2008). Thus, ESBMC now includes a new floating-point arithmetic encoding layer in our SMT backend, that encodes floating-point operations into bit-vector operations. In particular, ESBMC can use off-the-shelf SMT solvers that offer support for bit-vectors only to encode floating-point arithmetic. Mikhail R. Gadelha, Rafael Menezes, Felipe R. Monteiro, Lucas C. Cordeiro, Denis A. Nicole |
FASE | 4 |
| 2020 | Map2Check: Using Symbolic Execution and Fuzzing - (Competition Contribution)abstractAbstract Map2Check is a software verification tool that combines fuzzing, symbolic execution, and inductive invariants. It automatically checks safety properties in C programs by adopting source code instrumentation to monitor data (e.g., memory pointers) from the program’s executions using LLVM compiler infrastructure. For SV-COMP 2020, we extended Map2Check to exploit an iterative deepening approach using LibFuzzer and Klee to check for safety properties. We also use Crab-LLVM to infer program invariants based on reachability analysis. Experimental results show that Map2Check can handle a wide variety of safety properties in several intricate verification tasks from SV-COMP 2020. Herbert Rocha, Rafael Menezes, Lucas C. Cordeiro, Raimundo S. Barreto |
TACAS (2) | 3 |
| 2020 | Automated formal synthesis of provably safe digital controllers for continuous plantsabstractWe present a sound and automated approach to synthesizing safe, digital controllers for physical plants represented as time-invariant models. Models are linear differential equations with inputs, evolving over a continuous state space. The synthesis precisely accounts for the effects of finite-precision arithmetic introduced by the controller. The approach uses counterexample-guided inductive synthesis: an inductive generalization phase produces a controller that is known to stabilize the model but that may not be safe for all initial conditions of the model. Safety is then verified via bounded model checking: if the verification step fails, a counterexample is provided to the inductive generalization, and the process further iterates until a safe controller is obtained. We demonstrate the practical value of this approach by automatically synthesizing safe controllers for physical plant models from the digital control literature. Alessandro Abate, Iury Bessa, Lucas C. Cordeiro, Cristina David, Pascal Kesseli, Daniel Kroening, Elizabeth Polgreen |
Acta Informatica | 3 |
| 2019 | JBMC: Bounded Model Checking for Java Bytecode - (Competition Contribution)abstractJBMC is a bounded model checking tool for verifying Java bytecode. It is built on top of the CPROVER framework. JBMC processes Java bytecode together with a model of the standard Java libraries. It checks a set of desired properties, such as assertions and absence of uncaught exceptions, under given bounds on loops, recursion and data structures. Internally, it uses the same bounded model checking engine as its sibling tool CBMC and discharges the generated verification conditions with the help of MiniSAT 2.2.1. Lucas C. Cordeiro, Daniel Kroening, Peter Schrammel |
TACAS (3) | 1 |
| 2019 | ESBMC v6.0: Verifying C Programs Using k-Induction and Invariant Inference - (Competition Contribution)abstractESBMC v6.0 employs a k -induction algorithm to both falsify and prove safety properties in C programs. We have developed a new interval-invariant generator that pre-processes the program, inferring invariants based on intervals and introducing them in the program as assumptions. Our experiments show that ESBMC v6.0 using k -induction can prove up to 7% more programs when the invariant generation is enabled. Mikhail R. Gadelha, Felipe R. Monteiro, Lucas C. Cordeiro, Denis A. Nicole |
TACAS (3) | 3 |
| 2019 | Verifying fragility in digital systems with uncertainties using DSVerifier v2.0
Lennon C. Chaves, Hussama Ismail, Iury Bessa, Lucas C. Cordeiro, Eddie Batista de Lima Filho |
J. Syst. Softw. | 4 |
| 2018 | JBMC: A Bounded Model Checking Tool for Verifying Java BytecodeabstractWe present a bounded model checking tool for verifying Java bytecode, which is built on top of the CPROVER framework, named Java Bounded Model Checker (JBMC). JBMC processes Java bytecode together with a model of the standard Java libraries and checks a set of desired properties. Experimental results show that JBMC can correctly verify a set of Java benchmarks from the literature and that it is competitive with two state-of-the-art Java verifiers. These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves. Lucas C. Cordeiro, Pascal Kesseli, Daniel Kroening, Peter Schrammel, Marek Trtík |
CAV (1) | 1 |
| 2018 | DSValidator: An Automated Counterexample Reproducibility Tool for Digital SystemsabstractWe present an automated counterexample reproducibility tool based on MATLAB, called DSValidator, with the goal of reproducing counterexamples that refute specific properties related to digital systems. We exploit counterexamples generated by the Digital System Verifier (DSVerifier), which is a model checking tool based on satisfiability modulo theories for digital systems. DSValidator reproduces the execution of a digital system, relating its input with the counterexample, in order to establish trust in a verification result. We show that DSValidator can validate a set of intricate counterexamples for digital controllers used in a real quadrotor attitude system within seconds and also expose incorrect verification results in DSVerifier. The resulting toolbox leverages the potential of combining different verification tools for validating digital systems via an exchangeable counterexample format. Lennon C. Chaves, Iury Bessa, Lucas C. Cordeiro, Daniel Kroening |
HSCC | 3 |
| 2018 | ESBMC 5.0: an industrial-strength C model checkerabstractESBMC is a mature, permissively licensed open-source context-bounded model checker for the verification of single- and multi-threaded C programs. It can verify both predefined safety properties (e.g., bounds check, pointer safety, overflow) and user-defined program assertions automatically. ESBMC provides C++ and Python APIs to access internal data structures, allowing inspection and extension at any stage of the verification process. We discuss improvements over previous versions of ESBMC, including the description of new front- and back-ends, IEEE floating-point support, and an improved k-induction algorithm. A demonstration is available at https://www.youtube.com/watch?v=YcJjXHlN1v8 . Mikhail R. Gadelha, Felipe R. Monteiro, Jeremy Morse, Lucas C. Cordeiro, Bernd Fischer 0002, Denis A. Nicole |
ASE | 4 |
| 2018 | Bounded model checking of C++ programs based on the Qt cross-platform framework (journal-first abstract)abstractThis work proposes an abstraction of the Qt framework, named as Qt Operational Model (QtOM), which is integrated into two different verification approaches: explicit-state model checking and symbolic (bounded) model checking. The proposed methodology is the first one to formally verify Qt-based applications, which has the potential to devise new directions for software verification of portable code. The full version of this paper is published in Software Testing, Verification and Reliability, on 02 March 2017 and it is available at https://doi.org/10.1002/stvr.1632. Felipe R. Monteiro, Mário Garcia, Lucas C. Cordeiro, Eddie Batista de Lima Filho |
ASE | 3 |
| 2018 | Towards counterexample-guided k-induction for fast bug detectionabstractRecently, the k-induction algorithm has proven to be a successful approach for both finding bugs and proving correctness. However, since the algorithm is an incremental approach, it might waste resources trying to prove incorrect programs. In this paper, we extend the k-induction algorithm to shorten the number of steps required to find a property violation. We convert the algorithm into a meet-in-the-middle bidirectional search algorithm, using the counterexample produced from over-approximating the program. The main advantage is in the reduction of the state explosion by reducing the maximum required steps from k to ⌊k/2 + 1⌋. Mikhail R. Gadelha, Felipe R. Monteiro, Lucas C. Cordeiro, Denis A. Nicole |
ESEC/SIGSOFT FSE | 3 |
| 2018 | Map2Check Using LLVM and KLEE - (Competition Contribution)
Rafael Menezes, Herbert Rocha, Lucas C. Cordeiro, Raimundo S. Barreto |
TACAS (2) | 3 |
| 2018 | Counterexample guided inductive optimization based on satisfiability modulo theories
Rodrigo F. Araujo 0001, Higo F. Albuquerque, Iury Bessa, Lucas C. Cordeiro, João Edgar Chaves Filho |
Sci. Comput. Program. | 4 |
| 2018 | ESBMC-GPU A context-bounded model checking tool to verify CUDA programs
Felipe R. Monteiro, Erickson H. da S. Alves, Isabela da Silva, Hussama Ismail, Lucas C. Cordeiro, Eddie Batista de Lima Filho |
Sci. Comput. Program. | 5 |
| 2018 | DSVerifier-Aided Verification Applied to Attitude Control Software in Unmanned Aerial VehiclesabstractDuring the last decades, model checking techniques have been applied to improve overall system reliability, in unmanned aerial vehicle (UAV) approaches. Nonetheless, there is little effort focused on applying those methods to the control-system domain, especially when it comes to the investigation of low-level implementation errors, which are related to digital controllers and hardware compatibility. The present study addresses the mentioned problems and proposes the application of a bounded model checking tool, named as Digital System Verifier (DSVerifier), to the verification of digital-system implementation issues, in order to investigate problems that emerge in digital controllers designed for UAV attitude systems. A verification methodology to search for implementation errors related to finite word-length effects (e.g., arithmetic overflows and limit cycles), in UAV attitude controllers, is presented, along with its evaluation, which aims to ensure correct-by-design systems. Experimental results show that low-level failures in UAV attitude control software used in aerial surveillance are identified by DSVerifier, which can also be used for developing sound and correct implementations, through its integration into development processes. Finally, given that the proposed approach handles C code and takes into account hardware specifications, it is suitable for verifying final controller implementations, which is a more practical scenario. Lennon C. Chaves, Iury Bessa, Hussama Ismail, Adriano Bruno dos Santos Frutuoso, Lucas C. Cordeiro, Eddie Batista de Lima Filho |
IEEE Trans. Reliab. | 5 |
| 2017 | Automated Formal Synthesis of Digital Controllers for State-Space Physical Plants
Alessandro Abate, Iury Bessa, Dario Cattaruzza, Lucas C. Cordeiro, Cristina David, Pascal Kesseli, Daniel Kroening, Elizabeth Polgreen |
CAV (1) | 4 |
| 2017 | Sound and Automated Synthesis of Digital Stabilizing Controllers for Continuous PlantsabstractModern control is implemented with digital microcontrollers, embedded within a dynamical plant that represents physical components. We present a new algorithm based on counterexample guided inductive synthesis that automates the design of digital controllers that are correct by construction. The synthesis result is sound with respect to the complete range of approximations, including time discretization, quantization effects, and finite-precision arithmetic and its rounding errors. We have implemented our new algorithm in a tool called DSSynth, and are able to automatically generate stable controllers for a set of intricate plant models taken from the literature within minutes. Alessandro Abate, Iury Bessa, Dario Cattaruzza, Lucas C. Cordeiro, Cristina David, Pascal Kesseli, Daniel Kroening |
HSCC | 4 |
| 2017 | Verifying digital systems with MATLABabstractA MATLAB toolbox is presented, with the goal of checking occurrences of design errors typically found in fixed-point digital systems, considering finite word-length effects. In particular, the present toolbox works as a front-end to a recently introduced verification tool, known as Digital-System Verifier (DSVerifier), and checks overflow, limit cycle, quantization, stability, and minimum phase errors in digital systems represented by transfer-function and state-space equations. It provides a command-line version with simplified access to specific functionality and a graphical-user interface, which was developed as a MATLAB application. The resulting toolbox enables application of verification to real-world systems by control engineers. Lennon C. Chaves, Iury Bessa, Lucas C. Cordeiro, Daniel Kroening, Eddie Batista de Lima Filho |
ISSTA | 3 |
| 2017 | DSSynth: an automated digital controller synthesis tool for physical plantsabstractWe present an automated MATLAB Toolbox, named DSSynth (Digital-System Synthesizer), to synthesize sound digital controllers for physical plants that are represented as linear timeinvariant systems with single input and output. In particular, DSSynth synthesizes digital controllers that are sound w.r.t. stability and safety specifications. DSSynth considers the complete range of approximations, including time discretization, quantization effects and finite-precision arithmetic (and its rounding errors). We demonstrate the practical value of this toolbox by automatically synthesizing stable and safe controllers for intricate physical plant models from the digital control literature. The resulting toolbox enables the application of program synthesis to real-world control engineering problems. A demonstration can be found at https://youtu.be_hLQslRcee8. Alessandro Abate, Iury Bessa, Dario Cattaruzza, Lennon C. Chaves, Lucas C. Cordeiro, Cristina David, Pascal Kesseli, Daniel Kroening, Elizabeth Polgreen |
ASE | 5 |
| 2017 | DepthK: A k-Induction Verifier Based on Invariant Inference for C Programs - (Competition Contribution)
Williame Rocha, Herbert Rocha, Hussama Ismail, Lucas C. Cordeiro, Bernd Fischer 0002 |
TACAS (2) | 4 |
| 2017 | SMT-based context-bounded model checking for CUDA programsabstractSummary We present ESBMC‐GPU tool, an extension to the Efficient SMT‐Based Context‐Bounded Model Checker (ESBMC), which is aimed at verifying Graphics Processing Unit (GPU) programs written for the Compute Unified Device Architecture (CUDA) platform. ESBMC‐GPU uses an operational model, that is, an abstract representation of the standard CUDA libraries, which conservatively approximates their semantics, in order to verify CUDA‐based programs. It then explicitly explores the possible interleavings (up to the given context bound), while treats each interleaving itself symbolically. Additionally, ESBMC‐GPU employs the monotonic partial order reduction and the two‐thread analysis to prune the state space exploration. Experimental results show that ESBMC‐GPU can successfully verify 82%of all benchmarks, while keeping lower rates of false results. Going further than previous attempts, ESBMC‐GPU is able to detect more properties violations than other existing GPU verifiers due to its ability to verify errors of the program execution flow and to detect array out‐of‐bounds and data race violations. Copyright © 2016 John Wiley & Sons, Ltd. Phillipe A. Pereira, Higo F. Albuquerque, Isabela da Silva, Hendrio Marques, Felipe R. Monteiro, Lucas C. Cordeiro |
Concurr. Comput. Pract. Exp. | 7 |
| 2017 | A method to localize faults in concurrent C programs
Erickson H. da S. Alves, Lucas C. Cordeiro, Eddie Batista de Lima Filho |
J. Syst. Softw. | 2 |
| 2017 | Handling loops in bounded model checking of C programs via k-induction
Mikhail R. Gadelha, Hussama Ismail, Lucas C. Cordeiro |
Int. J. Softw. Tools Technol. Transf. | 3 |
| 2017 | Bounded model checking of C++ programs based on the Qt cross-platform frameworkabstractSummary The software development process for embedded systems is getting faster and faster, which generally incurs an increase in the associated complexity. As a consequence, technology companies tend to invest in fast and automatic verification mechanisms, to create robust systems and reduce product recall rates. In addition, further development‐time reduction and system robustness can be achieved through cross‐platform frameworks, such as Qt, which favor the reliable port of software stacks to different devices. Based on that, the present paper proposes a simplified version of the Qt framework, which is integrated into a checker based on satisfiability modulo theories (SMT), known as the Efficient SMT‐based Context‐Bounded Model Checker, for verifying actual Qt‐based applications, with a success rate of 89%, for the developed benchmark suite. Furthermore, the simplified version of the Qt framework, named as Qt Operational Model, was also evaluated using other state‐of‐the‐art verifiers for C++ programs. In fact, Qt Operational Model was combined with 2 different verification approaches: explicit‐state model checking and also symbolic (bounded) model checking, during the experimental evaluation, which highlights its flexibility. The proposed methodology is the first one to formally verify Qt‐based applications, which has the potential to devise new directions for software verification of portable code. Felipe R. Monteiro, Mário Garcia, Lucas C. Cordeiro, Eddie Batista de Lima Filho |
Softw. Test. Verification Reliab. | 3 |
| 2017 | Formal Non-Fragile Stability Verification of Digital Control Systems with UncertaintyabstractA verification methodology is described and evaluated to formally determine uncertain linear systems stability in digital controllers with considerations to the implementation aspects. In particular, this methodology is combined with the digital-system verifier (DSVerifier), which is a verification tool that employs Bounded Model Checking based on Satisfiability Modulo Theories to check the stability of digital control systems with uncertainty. DSVerifier determines the control system stability, considering all the plant interval variation set, together with the Finite Word-length (FWL) effects in the digital controller implementation; DSVerifier checks the robust non-fragile stability of a given closed-loop system. The proposed methodology and respective tool are evaluated considering non-fragile control examples from literature. Experimental results show that the approach used in this study is able to foresee fragility problems in robust controllers, which could be overlooked by other existing approaches due to underestimating of FWL effects. Iury Bessa, Hussama Ismail, Reinaldo M. Palhares, Lucas C. Cordeiro, João Edgar Chaves Filho |
IEEE Trans. Computers | 4 |
| 2016 | Complementary training programme for electrical and computer engineering students through an industrial-academic collaborationabstractWe describe the results of an industrial-academic collaboration among the Graduate Program in Electrical Engineering (PPGEE), the Electronics and Information Research Centre (CETELI), and Samsung Eletrônica da Amazônia Ltda. (Samsung), which aims at training human resources for Samsung's research and development (R&D) areas. Inspired by co-operative education systems, this collaboration offers an academic experience by means of a complementary training programme (CTP), in order to train undergraduates and graduate students in electrical and computer engineering, with especial emphasis on digital television (TV), industrial automation, and mobile devices technologies. In particular, this cooperation has provided scholarships for students and financial support for professors and coordinators in addition to the construction of a new building with new laboratories, classrooms, and staff rooms, to assist all research and development activities. Additionally, the cooperation outcomes led to applications developed for Samsung's mobile devices, digital TV, and production processes, an increase of 37% in CETELI's scientific production (i.e., conference and journal papers) as well as professional training for undergraduates and graduate students. Felipe R. Monteiro, Phillipe A. Pereira, Lucas C. Cordeiro, Cicero Ferreira Fernandes Costa Filho, Marly G. F. Costa |
FIE | 3 |
| 2016 | ESBMCQtOM: A Bounded Model Checking Tool to Verify Qt Applications
Mário Garcia, Felipe R. Monteiro, Lucas C. Cordeiro, Eddie Batista de Lima Filho |
SPIN | 3 |
| 2016 | Hunting Memory Bugs in C Programs with Map2Check - (Competition Contribution)
Herbert Rocha, Raimundo S. Barreto, Lucas C. Cordeiro |
TACAS | 3 |
| 2015 | Memory Management Test-Case Generation of C Programs Using Bounded Model Checking
Herbert Rocha, Raimundo S. Barreto, Lucas C. Cordeiro |
SEFM | 3 |
| 2015 | DSVerifier: A Bounded Model Checking Tool for Digital Systems
Hussama Ismail, Iury Bessa, Lucas C. Cordeiro, Eddie Batista de Lima Filho, João Edgar Chaves Filho |
SPIN | 3 |
| 2015 | Model checking LTL properties over ANSI-C programs with bounded traces
Jeremy Morse, Lucas C. Cordeiro, Denis A. Nicole, Bernd Fischer 0002 |
Softw. Syst. Model. | 2 |
| 2014 | SMT-based bounded model checking of fixed-point digital controllersabstractDigital controllers have several advantages with respect to their flexibility and design's simplicity. However, they are subject to problems that are not faced by analog controllers. In particular, these problems are related to the finite word-length implementation that might lead to overflows, limit cycles, and time constraints in fixed-point or floating-point processors. This paper proposes a new method to detect design's errors in fixed-point digital controllers using a state-of-the art bounded model checker based on satisfiability modulo theories. The experiments with a commercial plant demonstrate that the proposed method can be effective in finding errors in digital controllers than other existing approaches, which are based on traditional simulations tools. The verification results are conclusive in 93.5% of the benchmarks, determining the absence or occurrence of errors. Iury Bessa, Renato Abreu, João Edgar Chaves Filho, Lucas C. Cordeiro |
IECON | 4 |
| 2014 | ESBMC 1.22 - (Competition Contribution)
Jeremy Morse, Mikhail Ramalho, Lucas C. Cordeiro, Denis A. Nicole, Bernd Fischer 0002 |
TACAS | 3 |
| 2014 | Applying symbolic bounded model checking to the 2012 RERS greybox challenge
Jeremy Morse, Lucas C. Cordeiro, Denis A. Nicole, Bernd Fischer 0002 |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2013 | Handling Unbounded Loops with ESBMC 1.20 - (Competition Contribution)
Jeremy Morse, Lucas C. Cordeiro, Denis A. Nicole, Bernd Fischer 0002 |
TACAS | 2 |
| 2012 | Understanding Programming Bugs in ANSI-C Software Using Bounded Model Checking Counter-Examples
Herbert Rocha, Raimundo S. Barreto, Lucas C. Cordeiro, Arilo Claudio Dias-Neto |
IFM | 3 |
| 2012 | Context-Bounded Model Checking with ESBMC 1.17 - (Competition Contribution)
Lucas C. Cordeiro, Jeremy Morse, Denis A. Nicole, Bernd Fischer 0002 |
TACAS | 1 |
| 2012 | SMT-Based Bounded Model Checking for Embedded ANSI-C SoftwareabstractPropositional bounded model checking has been applied successfully to verify embedded software, but remains limited by increasing propositional formula sizes and the loss of high-level information during the translation preventing potential optimizations to reduce the state space to be explored. These limitations can be overcome by encoding high-level information in theories richer than propositional logic and using SMT solvers for the generated verification conditions. Here, we propose the application of different background theories and SMT solvers to the verification of embedded software written in ANSI-C in order to improve scalability and precision in a completely automatic way. We have modified and extended the encodings from previous SMT-based bounded model checkers to provide more accurate support for variables of finite bit width, bit-vector operations, arrays, structures, unions, and pointers. We have integrated the CVC3, Boolector, and Z3 solvers with the CBMC front-end and evaluated them using both standard software model checking benchmarks and typical embedded software applications from telecommunications, control systems, and medical devices. The experiments show that our ESBMC model checker can analyze larger problems than existing tools and substantially reduce the verification time. Lucas C. Cordeiro, Bernd Fischer 0002, João Marques-Silva 0001 |
IEEE Trans. Software Eng. | 1 |
| 2011 | Gift young engineers: An extra-curricular initiative for updating computer and electrical engineering coursesabstractThe curricula of engineering courses are well defined by the central government for all Brazilian universities. Indeed, there are some mandatory determinations that must be fulfilled prior to the accreditation of any engineering course in Brazil. Modifications must be submitted for evaluation beforehand, resulting in a process that sometimes takes years to be approved. That is a secure way to guarantee that the fundamentals of each engineering program will be part of the students' carrier all over the country, and at the same time a problem when you need to introduce new technological subjects. That poses a problem when you have new demands for technological curricular components that could express the actual state of the art of modern subjects. Trying to solve these issues some professors from the Federal University of Amazonas developed a flexible extra-curricular program for electrical and computer engineering courses, named Gift Young Engineers. This paper describes the philosophy of these extra-curricular programs. Some examples of successful particular partnerships are also discussed. Indeed the proposed training programs for Digital TV Systems (hardware and software) will be presented and analyzed in details. The obtained results will also be discussed in order to contribute to similar experiences worldwide. Vicente Ferreira de Lucena Jr., José Pinheiro de Queiroz Neto, João Edgar Chaves Filho, Waldir S. S. Júnior, Lucas C. Cordeiro |
FIE | 5 |
| 2011 | Verifying multi-threaded software using smt-based context-bounded model checkingabstractWe describe and evaluate three approaches to model check multi-threaded software with shared variables and locks using bounded model checking based on Satisfiability Modulo Theories (SMT) and our modelling of the synchronization primitives of the Pthread library. In the lazy approach, we generate all possible interleavings and call the SMT solver on each of them individually, until we either find a bug, or have systematically explored all interleavings. In the schedule recording approach, we encode all possible interleavings into one single formula and then exploit the high speed of the SMT solvers. In the underapproximation and widening approach, we reduce the state space by abstracting the number of interleavings from the proofs of unsatisfiability generated by the SMT solvers. In all three approaches, we bound the number of context switches allowed among threads in order to reduce the number of interleavings explored. We implemented these approaches in ESBMC, our SMT-based bounded model checker for ANSI-C programs. Our experiments show that ESBMC can analyze larger problems and substantially reduce the verification time compared to state-of-the-art techniques that use iterative context-bounding algorithms or counter-example guided abstraction refinement. Lucas C. Cordeiro, Bernd Fischer 0002 |
ICSE | 1 |
| 2011 | Context-Bounded Model Checking of LTL Properties for ANSI-C Software
Jeremy Morse, Lucas C. Cordeiro, Denis A. Nicole, Bernd Fischer 0002 |
SEFM | 2 |
| 2010 | SMT-based bounded model checking for multi-threaded software in embedded systemsabstractThe transition from single-core to multi-core processors has made multi-threaded software an important subject over the last years in computer-aided verification. Model checkers have been successfully applied to discover subtle errors, but they suffer from combinatorial state space explosion when verifying multi-threaded software. In our previous work, we have extended the encodings from SMT-based bounded model checking (BMC) to provide more accurate support for program verification and to use different background theories and solvers in order to improve scalability and precision in a completely automatic way. We now focus on extending this work to support an SMT-based BMC formulation of multithreaded software which allows the state space to be reduced by abstracting the number of state variables and interleavings from the proof of unsatisfiability generated by the SMT solvers. The core idea of our approach aims to extract the proof objects produced by the SMT solvers in order to control the number of interleavings and to remove logic that is not relevant to a given property. This work aims to develop a new algorithmic method and corresponding tools based on SMT to verify embedded software in multi-core systems. Lucas C. Cordeiro |
ICSE (2) | 1 |
| 2009 | SMT-Based Bounded Model Checking for Embedded ANSI-C SoftwareabstractPropositional bounded model checking has been applied successfully to verify embedded software but is limited by the increasing propositional formula size and the loss of structure during the translation. These limitations can be reduced by encoding word-level information in theories richer than propositional logic and using SMT solvers for the generated verification conditions. Here, we investigate the application of different SMT solvers to the verification of embedded software written in ANSI-C. We have extended the encodings from previous SMT-based bounded model checkers to provide more accurate support for variables of finite bit width, bit-vector operations, arrays, structures, unions and pointers. We have integrated the CVC3, Boolector, and Z3 solvers with the CBMC front-end and evaluated them using both standard software model checking benchmarks and typical embedded software applications from telecommunications, control systems, and medical devices. The experiments show that our approach can analyze larger problems and substantially reduce the verification time. Lucas C. Cordeiro, Bernd Fischer 0002, João Marques-Silva 0001 |
ASE | 1 |
| 2008 | Mandos: A User Interaction Method in Embedded Applications for Mobile TelephonyabstractWith the intense use of applicative in mobile device, the question "usability" begins to invigorate strongly as a study object, it is being considered a determinant factor of the success of this segment of the mobile computation. This article proposes an improvement way in the usability of the embedded applicative in mobile devices, considering a new method of user interaction. The Mandos interaction method is based on task idea, which consists in a possible operation that could be executed in an applicative by the user and probabilities between task changes. The cited probabilities will be used for construction of the user interface to interact dynamically with the user. To validate the considered method was developed a framework, called Mandos, which propitiates functionalities to the applicative developer that uses Java technology. A case study will be presented where some prototypes of embedded applicative mobile was developed, using Mandos framework for the interaction method evaluation. The evaluation was established in order to identify any relation of usability gain or loss of applicative, having like approvers the own users of the embedded applicative in mobile telephones. Mauro Teófilo, Lucas C. Cordeiro, Raimundo S. Barreto, José Raimundo Pereira, Ayres Mardem, Pedro Freitas |
ACHI | 2 |
| 2008 | ezRealtime: A Domain-Specific Modeling Tool for Embedded Hard Real-Time Software SynthesisabstractIn this paper, we introduce the ezRealtime project, which relies on the Time Petri Net (TPN) formalism and defines a Domain-Specific Modeling (DSM) tool to provide an easy- to-use environment for specifying Embedded Hard Real-Time (EHRT) systems and for synthesizing timely and predictable scheduled C code. Therefore, this paper presents a generative programming method in order to boost code quality and improve substantially developer productivity by making use of automated software synthesis. The ezRealtime tool reads and automatically translates the system's specification to a time Petri net model through composition of building blocks with the purpose of providing a complete model of all tasks in the system. Hence, this model is used to find a feasible schedule by applying a depth-first search algorithm. Finally, the scheduled code is generated by traversing the feasible schedule, and replacing transition's instances by the respective code segments. We also present the application of the proposed method in an expressive case study. Fabiano Cruz, Raimundo S. Barreto, Lucas C. Cordeiro, Paulo Romero Martins Maciel |
DATE | 3 |
| 2008 | Towards a Semiformal Development Methodology for Embedded Systems
Lucas C. Cordeiro, Raimundo S. Barreto, Meuse N. Oliveira Jr. |
ENASE | 1 |