Formal verification of kLIBC with the WP frama-C plug-in

Bibliographic Details
Main Author: Carvalho, Nuno
Publication Date: 2014
Other Authors: Sousa, Cristiano da Silva, Pinto, Jorge Sousa, Tomb, Aaron
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: http://hdl.handle.net/1822/35224
Summary: This paper presents our results in the formal verification of kLIBC, a minimalistic C library, using the Frama-C/WP tool. We report how we were able to completely verify a significant number of functions from <string.h> and <stdio.h>. We discuss difficulties encountered and describe in detail a problem in the implementation of common <string.h> functions, for which we suggest alternative implementations. Our work shows that it is presently already viable to verify low-level C code, with heavy usage of pointers. Although the properties proved tend to be shallower as the code becomes of a lower-level nature, it is our view that this is an important direction towards real-world software verification, which cannot be attained by focusing on deep properties of cleaner code, written specifically to be verified.
id RCAP_4db6517ecc6e9ee5d0f3acb3f0b0f34f
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/35224
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling Formal verification of kLIBC with the WP frama-C plug-inDeductive VerificationFrama-CC librariesCiências Naturais::Ciências da Computação e da InformaçãoEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaThis paper presents our results in the formal verification of kLIBC, a minimalistic C library, using the Frama-C/WP tool. We report how we were able to completely verify a significant number of functions from <string.h> and <stdio.h>. We discuss difficulties encountered and describe in detail a problem in the implementation of common <string.h> functions, for which we suggest alternative implementations. Our work shows that it is presently already viable to verify low-level C code, with heavy usage of pointers. Although the properties proved tend to be shallower as the code becomes of a lower-level nature, it is our view that this is an important direction towards real-world software verification, which cannot be attained by focusing on deep properties of cleaner code, written specifically to be verified.This work is funded by ERDF - European Regional Development Fund through the COMPETE Programme (operational programme for competitiveness) and by National Funds through the FCT - Fundação para a Ciência e a Tecnologia (Portuguese Foundation for Science and Technology) within project FCOMP-01-0124-FEDER-020486.SpringerUniversidade do MinhoCarvalho, NunoSousa, Cristiano da SilvaPinto, Jorge SousaTomb, Aaron20142014-01-01T00:00:00Zconference paperinfo:eu-repo/semantics/publishedVersionapplication/pdfhttp://hdl.handle.net/1822/35224engN. Carvalho, C. S. Sousa, J. S. Pinto, and A. Tomb. Formal Verification of kLIBC with the WP Frama-C plug-in. In Proceedings of the Sixth NASA Formal Methods Symposium (NFM 2014), volume 8430 of Lecture Notes in Computer Science, pages 343–358, Berlin, Heidelberg, 2014. Springer-Verlag.978-3-319-06199-30302-974310.1007/978-3-319-06200-6_29The original publication is available at www.springerlink.cominfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-11T05:14:25Zoai:repositorium.sdum.uminho.pt:1822/35224Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T15:12:02.486150Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv Formal verification of kLIBC with the WP frama-C plug-in
title Formal verification of kLIBC with the WP frama-C plug-in
spellingShingle Formal verification of kLIBC with the WP frama-C plug-in
Carvalho, Nuno
Deductive Verification
Frama-C
C libraries
Ciências Naturais::Ciências da Computação e da Informação
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Formal verification of kLIBC with the WP frama-C plug-in
title_full Formal verification of kLIBC with the WP frama-C plug-in
title_fullStr Formal verification of kLIBC with the WP frama-C plug-in
title_full_unstemmed Formal verification of kLIBC with the WP frama-C plug-in
title_sort Formal verification of kLIBC with the WP frama-C plug-in
author Carvalho, Nuno
author_facet Carvalho, Nuno
Sousa, Cristiano da Silva
Pinto, Jorge Sousa
Tomb, Aaron
author_role author
author2 Sousa, Cristiano da Silva
Pinto, Jorge Sousa
Tomb, Aaron
author2_role author
author
author
dc.contributor.none.fl_str_mv Universidade do Minho
dc.contributor.author.fl_str_mv Carvalho, Nuno
Sousa, Cristiano da Silva
Pinto, Jorge Sousa
Tomb, Aaron
dc.subject.por.fl_str_mv Deductive Verification
Frama-C
C libraries
Ciências Naturais::Ciências da Computação e da Informação
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Deductive Verification
Frama-C
C libraries
Ciências Naturais::Ciências da Computação e da Informação
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description This paper presents our results in the formal verification of kLIBC, a minimalistic C library, using the Frama-C/WP tool. We report how we were able to completely verify a significant number of functions from <string.h> and <stdio.h>. We discuss difficulties encountered and describe in detail a problem in the implementation of common <string.h> functions, for which we suggest alternative implementations. Our work shows that it is presently already viable to verify low-level C code, with heavy usage of pointers. Although the properties proved tend to be shallower as the code becomes of a lower-level nature, it is our view that this is an important direction towards real-world software verification, which cannot be attained by focusing on deep properties of cleaner code, written specifically to be verified.
publishDate 2014
dc.date.none.fl_str_mv 2014
2014-01-01T00:00:00Z
dc.type.driver.fl_str_mv conference paper
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/1822/35224
url http://hdl.handle.net/1822/35224
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv N. Carvalho, C. S. Sousa, J. S. Pinto, and A. Tomb. Formal Verification of kLIBC with the WP Frama-C plug-in. In Proceedings of the Sixth NASA Formal Methods Symposium (NFM 2014), volume 8430 of Lecture Notes in Computer Science, pages 343–358, Berlin, Heidelberg, 2014. Springer-Verlag.
978-3-319-06199-3
0302-9743
10.1007/978-3-319-06200-6_29
The original publication is available at www.springerlink.com
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Springer
publisher.none.fl_str_mv Springer
dc.source.none.fl_str_mv reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833595163139637249