Lucas C. Cordeiro
University of Oxford
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Lucas C. Cordeiro.
IEEE Transactions on Software Engineering | 2012
Lucas C. Cordeiro; Bernd Fischer; Joao Marques-Silva
Propositional 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.
international conference on software engineering | 2011
Lucas C. Cordeiro; Bernd Fischer
We 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.
international conference on embedded software and systems | 2009
Lucas C. Cordeiro; Bernd Fischer; Huan Chen; Joao Marques-Silva
In recent days, the complexity of software has increased significantly in embedded products in such a way that the verification of Embedded Software (ESW) now plays an important role to ensure the products quality. Embedded systems engineers usually face the problems of verifying properties that have to meet the applications deadline, access the memory region, handle concurrency, and control the hardware registers. This work proposes a semiformal verification approach that combines dynamic and static verification to stress and cover exhaustively the state space of the system. We perform a case study on embedded software used in the medical devices domain. We conclude that the proposed approach improves the coverage and reduces substantially the verification time.
engineering of computer based systems | 2013
Mikhail Ramalho; Mauro Freitas; Felipe Rodrigues Monteiro Sousa; Hendrio Marques; Lucas C. Cordeiro; Bernd Fischer
Bounded model checking of C++ programs presents greater challenges than that of C programs due to the more complex features that the language offers, such as templates, containers, and exception handling. We present ESBMC++, a bounded model checker for C++ programs. It is based on an operational model, an abstract representation of the standard C++ libraries that conservatively approximates their semantics. ESBMC++ uses this to encode the verification conditions using different background theories supported by an SMT solver. Our experimental results show that our approach can handle a wider range of the C++ constructs than existing approaches and substantially reduces the verification time.
International Journal on Software Tools for Technology Transfer | 2017
Mikhail Y. R. Gadelha; Hussama Ismail; Lucas C. Cordeiro
The first attempts to apply the k-induction method to software verification are only recent. In this paper, we present a novel proof by induction algorithm, which is built on the top of a symbolic context-bounded model checker and uses an iterative deepening approach to verify, for each step k up to a given maximum, whether a given safety property
international conference on software engineering | 2010
Lucas C. Cordeiro
tools and algorithms for construction and analysis of systems | 2013
Jeremy Morse; Lucas C. Cordeiro; Denis A. Nicole; Bernd Fischer
\phi
tools and algorithms for construction and analysis of systems | 2012
Lucas C. Cordeiro; Jeremy Morse; Denis A. Nicole; Bernd Fischer
ACM Sigsoft Software Engineering Notes | 2008
Lucas C. Cordeiro; Carlos Mar; Eduardo Valentin; Fabiano Cruz; Daniel Patrick; Raimundo S. Barreto; Vicente Ferreira de Lucena
ϕ holds in the program. The proposed k-induction algorithm consists of three different cases, called base case, forward condition, and inductive step. Intuitively, in the base case, we aim to find a counterexample with up to k loop unwindings; in the forward condition, we check whether loops have been fully unrolled and that
international workshop on model checking software | 2015
Hussama Ismail; Iury Valente de Bessa; Lucas C. Cordeiro; Eddie Batista de Lima Filho; Joao Edgar Chaves Filho