Bounded Model Checking de programas imperativos
Autor(a) principal: | |
---|---|
Data de Publicação: | 2013 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
Texto Completo: | http://hdl.handle.net/1822/28327 |
Resumo: | Dissertação de mestrado em Matemática e Computação |
id |
RCAP_9aa9014bb866db587ee22b6210a4ac4d |
---|---|
oai_identifier_str |
oai:repositorium.sdum.uminho.pt:1822/28327 |
network_acronym_str |
RCAP |
network_name_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository_id_str |
7160 |
spelling |
Bounded Model Checking de programas imperativos681.3519.876.2Dissertação de mestrado em Matemática e ComputaçãoA detecção de erros em sistemas computacionais, em particular em sistemas críticos, é uma tarefa fundamental para garantir o correcto funcionamento dos sistemas e, por este motivo, a verificação formal é um elemento primordial no desenvolvimento de sistemas computacionais. Muitas das técnicas de verificação formal de sistemas computacionais são baseadas em Model Checking (MC). O MC é uma técnica de verificação automática que assenta na modelação de sistemas através de máquinas de estados finitas e na especificação das propriedades pretendidas para os sistemas através de fórmulas lógicas (tipicamente em alguma lógica temporal). O Bounded Model Checking (BMC) é uma técnica de MC que restringe a exploração do espaço de estados até um determinado comprimento (bound) dos traços de execução, como forma de evitar o problema da explosão de estados do MC tradicional. Por isso, as propriedades garantidas por este método aplicam-se apenas à execução até um certo bound. Nesta tese focamos no Bounded Model Checking aplicado a software (BMCsw), no contexto de linguagens imperativas, cujas ideias essenciais passam por usar asserts ao longo dos programas, como forma de declarar propriedades que devem ser satisfeitas por qualquer execução desses programas, e por expandir ciclos, escrevendo-os a custa de construções if then else. O BMCsw pode ser visto como uma sequência de transformações ao nível do programa e por uma transformação final que produz uma fórmula lógica, cuja validade garante a correcção do programa. Especificamente, nesta tese de mestrado estudamos a validade do método BMC no contexto de programas While com asserts. Por um lado, estabelecemos uma semântica operacional para uma linguagem While com asserts, que designamos por Whileassert, onde o estado de erro desempenha um papel fundamental. Por outro lado, estudamos propriedades desta linguagem e, com base nestas propriedades, provamos a validade (correcção e completude) da transformação final envolvida no método BMCsw. O BMC apresenta problemas de escalabilidade que são amenizados pelo actual poder de decisão dos Satisfiability problem (SAT) solvers. Durante esta tese foi desenvolvida uma ferramenta de software que implementa o método BMC para a linguagem minimalista Whileassert. Dado um programa Whileassert, esta ferramenta produz uma fórmula lógica, codificando as propriedades do programa, cuja validade garante a correcção do programa. A validade da fórmula é então avaliada com recurso ao SAT solver Z3.Error detection in computer systems, particularly in critical systems, is a key task to ensure the correct functioning of systems and, therefore, formal verification is a key element in the development of computer systems. Many of the techniques of formal verification of computer systems are based on Model Checking (MC). MC is an automatic verification technique which is based on using finite state machines to model systems, and on the specification of the desired properties for the systems by logical formulas (typically in some temporal logic). Bounded Model Checking (BMC) is a technique of MC that restricts the exploration of the state space up to a certain execution trace length (bound), in order to avoid the problem of state explosion in traditional MC. Therefore, the properties guaranteed by this method apply only to a certain bound enforcement. In this thesis we focus on Bounded Model Checking applied to software (BMCsw), in the context of imperative languages, whose key ideas are to use assertions throughout programs as a way to declare properties that must be satisfied by any execution of these programs, and to expand cycles, rewriting them in terms of the construct if then else. The BMCsw can be seen as a sequence of transformations at the level of the program and a final transformation which produces a logical formula whose validity ensures the correctness of the program. Specifically, in this master thesis we study the validity of the method BMC in the context of While programs with asserts. On the one hand, we establish an operational semantics for a While language with assertions, which we call Whileassert, where the error state plays a key role. On the other hand, we study properties of this language and, based on these properties, we prove the validity (correctness and completeness) involved in the final transformation of the BMCsw method. BMC presents scalability issues that are mitigated by the decision-making power of the current Satis ability problem (SAT) solvers. During this thesis we have developed a software tool that implements the BMC method for the minimal language Whileassert. Given a program Whileassert, this tool produces a logical formula, encoding properties of the program, whose validity ensures the correctness of the program. The validity of the formula is then evaluated using the Z3 SAT solver .Pinto, Luís F.Pinto, Jorge SousaUniversidade do MinhoPereira, José João Peixoto20132013-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/1822/28327por201347245info:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-07-21T12:23:23Zoai:repositorium.sdum.uminho.pt:1822/28327Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T19:17:05.109811Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse |
dc.title.none.fl_str_mv |
Bounded Model Checking de programas imperativos |
title |
Bounded Model Checking de programas imperativos |
spellingShingle |
Bounded Model Checking de programas imperativos Pereira, José João Peixoto 681.3 519.876.2 |
title_short |
Bounded Model Checking de programas imperativos |
title_full |
Bounded Model Checking de programas imperativos |
title_fullStr |
Bounded Model Checking de programas imperativos |
title_full_unstemmed |
Bounded Model Checking de programas imperativos |
title_sort |
Bounded Model Checking de programas imperativos |
author |
Pereira, José João Peixoto |
author_facet |
Pereira, José João Peixoto |
author_role |
author |
dc.contributor.none.fl_str_mv |
Pinto, Luís F. Pinto, Jorge Sousa Universidade do Minho |
dc.contributor.author.fl_str_mv |
Pereira, José João Peixoto |
dc.subject.por.fl_str_mv |
681.3 519.876.2 |
topic |
681.3 519.876.2 |
description |
Dissertação de mestrado em Matemática e Computação |
publishDate |
2013 |
dc.date.none.fl_str_mv |
2013 2013-01-01T00:00:00Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/1822/28327 |
url |
http://hdl.handle.net/1822/28327 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.relation.none.fl_str_mv |
201347245 |
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.source.none.fl_str_mv |
reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação instacron:RCAAP |
instname_str |
Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
instacron_str |
RCAAP |
institution |
RCAAP |
reponame_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
collection |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository.name.fl_str_mv |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
repository.mail.fl_str_mv |
|
_version_ |
1799132621778714624 |