Lógica da separação e verificação formal de programas
Autor(a) principal: | |
---|---|
Data de Publicação: | 2012 |
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/22804 |
Resumo: | Dissertação de mestrado em Matemática e Computação |
id |
RCAP_45e434604815b6e9f0e319c336665760 |
---|---|
oai_identifier_str |
oai:repositorium.sdum.uminho.pt:1822/22804 |
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 |
Lógica da separação e verificação formal de programas519.6510Dissertação de mestrado em Matemática e ComputaçãoA lógica da separação é uma lógica de programas talhada para a verificação dedutiva de programas imperativos que lidam com memória dinâmica. Uma das técnicas mais populares na verificação dedutiva de programas é usar a semântica axiomática para gerar condições de verificação, que são depois enviadas para ferramentas de prova. A componente responsável por gerar estas condições, para um dado triplo de Hoare, denomina-se gerador de condições de verificação (ou VCGen). Esta dissertação apresenta um estudo sobre verificação dedutiva de programas imperativos com memória dinâmica, baseado na lógica da separação, onde é desenvolvido um VCGen para esta lógica de programas e é provada a correcção do VCGen. No estudo, introduz-se uma linguagem imperativa simples com memória dinâmica, a linguagemWhilepr, apresentando a sua sintaxe e a sua semântica operacional. Apresenta-se uma variante adequada da lógica da separação para esta linguagem (sintaxe, semântica e um sistema dedutivo base–o sistema S), sendo provada a correcção do sistema deductivo face à semântica dos triplos de Hoare. Para encontrar um algoritmo de VCGen devidamente fundamentado, foram desenvolvidos sistemas dedutivos intermédios, mais adequados à mecanização do processo de prova, nomeadamente, o sistema Sg e o sistema Sgb (que é já um sistema goal directed), e foi provada a equivalência destes sistemas formais. O VCGen obtido resulta da escolha de uma estratégia de prova no sistema Sgb baseada no cálculo da weakest precondition. É demonstrada a correcção deste VCGen face ao sistema dedutivo Sgb, e, consequentemente, face ao sistema original S e face à semântica. Foi construído um protótipo na linguagem Haskell que implementa o algoritmo de VCGen desenvolvido.Separation logic is an appropriate program logic for deductive verification of imperative programs which manipulate heap. One of the most popular approaches for deductive verification of programs is the use of axiomatic semantics for generation of the verification conditions, which are then passed to a proof tool for validation. The component of the verification arquitechture that generates the verification conditions relative to an Hoare triple is called a VCGen (verification conditions generator). This dissertation presents a study on deductive verification of imperative programs with heap manipulation, based on separation logic, in which a VCGen for the underlying program logic was defined and the correctness of the VCGen was proved. An imperative language with heap manipulation calledWhilepr was introduced, and its syntax and operational semantics were defined. A variant of separation logic adequate to this language was defined (syntax, semantics and a deductive system –called system S), and soundness of the deductive system w.r.t. the semantics was proved. In order to develop a correct VCGen, two intermediate deductive systems, more adequate for mechanization, were designed: system Sg and system Sgb (where the latter is already goal directed). Equivalence of all systems was established. The VCGen obtained, derived from system Sgb, implements a proof strategy based on the calculation of weakest preconditions. Correctness of the VCGen w.r.t. Sgb (hence also w.r.t. the base system S, and to the semantics) was proved. A prototype for the VCGen developed in the study was implemented in Haskell.Fundação para a Ciência e a Tecnologia (FCT) - Projeto PTDC/EIA-CCO/105034/2008Pinto, Luís F.Frade, M. J.Universidade do MinhoSantos, Isabel Maria Ventura20122012-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/1822/22804porinfo: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:48:59Zoai:repositorium.sdum.uminho.pt:1822/22804Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T19:47:23.219366Repositó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 |
Lógica da separação e verificação formal de programas |
title |
Lógica da separação e verificação formal de programas |
spellingShingle |
Lógica da separação e verificação formal de programas Santos, Isabel Maria Ventura 519.6 510 |
title_short |
Lógica da separação e verificação formal de programas |
title_full |
Lógica da separação e verificação formal de programas |
title_fullStr |
Lógica da separação e verificação formal de programas |
title_full_unstemmed |
Lógica da separação e verificação formal de programas |
title_sort |
Lógica da separação e verificação formal de programas |
author |
Santos, Isabel Maria Ventura |
author_facet |
Santos, Isabel Maria Ventura |
author_role |
author |
dc.contributor.none.fl_str_mv |
Pinto, Luís F. Frade, M. J. Universidade do Minho |
dc.contributor.author.fl_str_mv |
Santos, Isabel Maria Ventura |
dc.subject.por.fl_str_mv |
519.6 510 |
topic |
519.6 510 |
description |
Dissertação de mestrado em Matemática e Computação |
publishDate |
2012 |
dc.date.none.fl_str_mv |
2012 2012-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/22804 |
url |
http://hdl.handle.net/1822/22804 |
dc.language.iso.fl_str_mv |
por |
language |
por |
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_ |
1799133046974185472 |