Verificação automática de programas utilizando Lógica Dinâmica com aplicações a smart contracts

Detalhes bibliográficos
Autor(a) principal: Santana, Allan Patrick de Freitas
Data de Publicação: 2020
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da Universidade Federal Fluminense (RIUFF)
Texto Completo: https://app.uff.br/riuff/handle/1/22647
Resumo: Em sistemas críticos falhas ou erros podem causar catástrofes, como mortes ou grandes perdas de dinheiro. A verificação de modelos provê uma forma automatizada para provar a corretude dos requisitos de um programa. E uma técnica conveniente para ser ´ utilizada em sistemas que necessitam de confiabilidade. Lógica Dinâmica Proposicional (PDL) é um sistema formal feito para se raciocinar sobre programas. Ela possui um modelo de Kripke simples e bom desempenho de verificação. Este trabalho apresenta uma implementação de compilação de programas em um subconjunto da linguagem C e tamb´em para Json sobre o modelo Smacco, ambos para a linguagem de PDL e desta para a linguagem de um verificador de modelos. Esta implementação está acoplada a um sistema de geração de modelos de Blockchain para modelar e verificar smart contracts
id UFF-2_48496bb9312d5ad6b58a5aff3c798de8
oai_identifier_str oai:app.uff.br:1/22647
network_acronym_str UFF-2
network_name_str Repositório Institucional da Universidade Federal Fluminense (RIUFF)
repository_id_str 2120
spelling Verificação automática de programas utilizando Lógica Dinâmica com aplicações a smart contractsVerificação de modelosPDLBlockchainCiência da computaçãoModel checkingPDLBlockchainEm sistemas críticos falhas ou erros podem causar catástrofes, como mortes ou grandes perdas de dinheiro. A verificação de modelos provê uma forma automatizada para provar a corretude dos requisitos de um programa. E uma técnica conveniente para ser ´ utilizada em sistemas que necessitam de confiabilidade. Lógica Dinâmica Proposicional (PDL) é um sistema formal feito para se raciocinar sobre programas. Ela possui um modelo de Kripke simples e bom desempenho de verificação. Este trabalho apresenta uma implementação de compilação de programas em um subconjunto da linguagem C e tamb´em para Json sobre o modelo Smacco, ambos para a linguagem de PDL e desta para a linguagem de um verificador de modelos. Esta implementação está acoplada a um sistema de geração de modelos de Blockchain para modelar e verificar smart contractsIn critical systems, failures or errors can cause catastrophes, such as deaths or considerably losses of money. Model checking provides an automated way to prove the correctness of programs’ requirements. It is a convenient technique to be used in systems that need reliability. Propositional Dynamic Logic (PDL) is a formal system designed to reason about programs. It has a simple Kripke model and good verification performance. This work presents a compiler implementation from a subset of the C language and also for Json on the Smacco model, both to the PDL language, and after that to the language of a model checker. This implementation is coupled with a Blockchain model generation system to model and reason about smart contractsLopes, BrunoSantos, Jefferson de BarrosCoelho, Igor MachadoSantana, Allan Patrick de Freitas2021-07-16T11:35:03Z2021-07-16T11:35:03Z2020info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisapplication/pdfhttps://app.uff.br/riuff/handle/1/22647Attribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/CC-BY-SAinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da Universidade Federal Fluminense (RIUFF)instname:Universidade Federal Fluminense (UFF)instacron:UFF2021-09-16T17:49:22Zoai:app.uff.br:1/22647Repositório InstitucionalPUBhttps://app.uff.br/oai/requestriuff@id.uff.bropendoar:21202021-09-16T17:49:22Repositório Institucional da Universidade Federal Fluminense (RIUFF) - Universidade Federal Fluminense (UFF)false
dc.title.none.fl_str_mv Verificação automática de programas utilizando Lógica Dinâmica com aplicações a smart contracts
title Verificação automática de programas utilizando Lógica Dinâmica com aplicações a smart contracts
spellingShingle Verificação automática de programas utilizando Lógica Dinâmica com aplicações a smart contracts
Santana, Allan Patrick de Freitas
Verificação de modelos
PDL
Blockchain
Ciência da computação
Model checking
PDL
Blockchain
title_short Verificação automática de programas utilizando Lógica Dinâmica com aplicações a smart contracts
title_full Verificação automática de programas utilizando Lógica Dinâmica com aplicações a smart contracts
title_fullStr Verificação automática de programas utilizando Lógica Dinâmica com aplicações a smart contracts
title_full_unstemmed Verificação automática de programas utilizando Lógica Dinâmica com aplicações a smart contracts
title_sort Verificação automática de programas utilizando Lógica Dinâmica com aplicações a smart contracts
author Santana, Allan Patrick de Freitas
author_facet Santana, Allan Patrick de Freitas
author_role author
dc.contributor.none.fl_str_mv Lopes, Bruno
Santos, Jefferson de Barros
Coelho, Igor Machado
dc.contributor.author.fl_str_mv Santana, Allan Patrick de Freitas
dc.subject.por.fl_str_mv Verificação de modelos
PDL
Blockchain
Ciência da computação
Model checking
PDL
Blockchain
topic Verificação de modelos
PDL
Blockchain
Ciência da computação
Model checking
PDL
Blockchain
description Em sistemas críticos falhas ou erros podem causar catástrofes, como mortes ou grandes perdas de dinheiro. A verificação de modelos provê uma forma automatizada para provar a corretude dos requisitos de um programa. E uma técnica conveniente para ser ´ utilizada em sistemas que necessitam de confiabilidade. Lógica Dinâmica Proposicional (PDL) é um sistema formal feito para se raciocinar sobre programas. Ela possui um modelo de Kripke simples e bom desempenho de verificação. Este trabalho apresenta uma implementação de compilação de programas em um subconjunto da linguagem C e tamb´em para Json sobre o modelo Smacco, ambos para a linguagem de PDL e desta para a linguagem de um verificador de modelos. Esta implementação está acoplada a um sistema de geração de modelos de Blockchain para modelar e verificar smart contracts
publishDate 2020
dc.date.none.fl_str_mv 2020
2021-07-16T11:35:03Z
2021-07-16T11:35:03Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://app.uff.br/riuff/handle/1/22647
url https://app.uff.br/riuff/handle/1/22647
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
CC-BY-SA
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
CC-BY-SA
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da Universidade Federal Fluminense (RIUFF)
instname:Universidade Federal Fluminense (UFF)
instacron:UFF
instname_str Universidade Federal Fluminense (UFF)
instacron_str UFF
institution UFF
reponame_str Repositório Institucional da Universidade Federal Fluminense (RIUFF)
collection Repositório Institucional da Universidade Federal Fluminense (RIUFF)
repository.name.fl_str_mv Repositório Institucional da Universidade Federal Fluminense (RIUFF) - Universidade Federal Fluminense (UFF)
repository.mail.fl_str_mv riuff@id.uff.br
_version_ 1802135358487396352