Conversão para Why3 de formalizações em Coq

Detalhes bibliográficos
Autor(a) principal: Ferreira, Bárbara Andreia Cardoso
Data de Publicação: 2021
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: https://hdl.handle.net/1822/83231
Resumo: Dissertação de mestrado integrado em Informatics Engineering
id RCAP_c9df31939691f329fb8d6f0158696995
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/83231
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 Conversão para Why3 de formalizações em CoqAlgoritmos de ordenaçãoCoqInduçãoLógicaProvas formaisWhy3WhyMLInductionLogicFormal proofsSorting algorithmsEngenharia e Tecnologia::Outras Engenharias e TecnologiasDissertação de mestrado integrado em Informatics EngineeringO presente documento consiste no relatório da dissertação que descreve todo o trabalho desenvolvido no âmbito do projeto “Conversão para Why3 de Formalizações em Coq”. Este trabalho tem como objetivo principal a conversão das definições de alguns algoritmos funcionais, bem como as suas provas, desenvolvidas em Coq, para Why3. Ou seja, utilizar as duas linguagens do Why3 para perceber até que ponto é possível formalizar algoritmos definidos em Coq. Estas formalizações pertencem ao livro da “Software Foundations” sobre algoritmos funcionais. Este demonstra como uma variedade de algoritmos fundamentais podem ser especificados e verificados mecanicamente. Através da conversão de três algoritmos diferentes foi possível perceber que o Why3 apresenta uma linguagem bastante versátil. Este revela ser possível sem grandes dificuldades a conversão das formalizações Coq para a sua linguagem, principalmente utilizando a sua linguagem de programas, WhyML. A intenção, para além da definição, é também explorar o tipo de provas que as duas linguagens (lógica e de programas) do Why3 permitem realizar. Na linguagem de programas, as provas são extremamente simples, conseguidas, na sua grande maioria, através apenas dos solvers automáticos. Na linguagem lógica do Why3 é possível realizar algumas provas indutivas recorrendo às transformações de prova. No entanto, estas ficam restritas apenas às provas que utilizem a indução estrutural. O mais natural é utilizar a linguagem de programas, pois nesta a prova indutiva é automática e segue a estrutura da definição da função, não sendo necessário a definição de princípios de indução. Comparando as duas linguagens do Why3, a linguagem de programas é efetivamente mais interessante que a linguagem lógica.The present document is the dissertation report that describes all the work developed in the scope of the project "Conversion of Coq Formalizations to Why3". This work has as main objective the conversion of the definitions of some functional algorithms, as well as their proofs, developed in Coq, to Why3. That is, to use the two languages of Why3 to realize to what extent it is possible to formalize algorithms defined in Coq. These formalizations belong to the "Software Foundations"book on functional algorithms. This demonstrates how a variety of fundamental algorithms can be specified and verified mechanically. Through the conversion of three different algorithms it was possible to see that Why3 is a very versatile language. It shows that it is possible to convert Coq formalizations to its language without too much difficulty, especially using its program language, WhyML. The intention, beyond the definition, is also to explore the kind of proofs that the two languages (logical and program) of Why3 allow one to perform. In the program language, proofs are extremely simple, achieved, for the most part, through just the automatic solvers. In the Why3 logic language it is possible to perform some inductive proofs using proof transformations. However, these are restricted only to proofs that use structural induction. It is more natural to use the program language, because in this language the inductive proof is automatic and follows the structure of the function definition, without the need to define induction principles. Comparing the two Why3 languages, the program language is actually more interesting than the logical language.Pinto, Jorge SousaFrade, M. J.Universidade do MinhoFerreira, Bárbara Andreia Cardoso20212021-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1822/83231por203231333info: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:21:36Zoai:repositorium.sdum.uminho.pt:1822/83231Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T19:14:53.736084Repositó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 Conversão para Why3 de formalizações em Coq
title Conversão para Why3 de formalizações em Coq
spellingShingle Conversão para Why3 de formalizações em Coq
Ferreira, Bárbara Andreia Cardoso
Algoritmos de ordenação
Coq
Indução
Lógica
Provas formais
Why3
WhyML
Induction
Logic
Formal proofs
Sorting algorithms
Engenharia e Tecnologia::Outras Engenharias e Tecnologias
title_short Conversão para Why3 de formalizações em Coq
title_full Conversão para Why3 de formalizações em Coq
title_fullStr Conversão para Why3 de formalizações em Coq
title_full_unstemmed Conversão para Why3 de formalizações em Coq
title_sort Conversão para Why3 de formalizações em Coq
author Ferreira, Bárbara Andreia Cardoso
author_facet Ferreira, Bárbara Andreia Cardoso
author_role author
dc.contributor.none.fl_str_mv Pinto, Jorge Sousa
Frade, M. J.
Universidade do Minho
dc.contributor.author.fl_str_mv Ferreira, Bárbara Andreia Cardoso
dc.subject.por.fl_str_mv Algoritmos de ordenação
Coq
Indução
Lógica
Provas formais
Why3
WhyML
Induction
Logic
Formal proofs
Sorting algorithms
Engenharia e Tecnologia::Outras Engenharias e Tecnologias
topic Algoritmos de ordenação
Coq
Indução
Lógica
Provas formais
Why3
WhyML
Induction
Logic
Formal proofs
Sorting algorithms
Engenharia e Tecnologia::Outras Engenharias e Tecnologias
description Dissertação de mestrado integrado em Informatics Engineering
publishDate 2021
dc.date.none.fl_str_mv 2021
2021-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 https://hdl.handle.net/1822/83231
url https://hdl.handle.net/1822/83231
dc.language.iso.fl_str_mv por
language por
dc.relation.none.fl_str_mv 203231333
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_ 1799132592810754048