Conversão para Why3 de formalizações em Coq
Autor(a) principal: | |
---|---|
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 |