Porting the software product line refinement theory to the coq proof assistant : a case study

Detalhes bibliográficos
Autor(a) principal: ALVES, Thayonara de Pontes
Data de Publicação: 2020
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Institucional da UFPE
Texto Completo: https://repositorio.ufpe.br/handle/123456789/39492
Resumo: Proofs are not a simple task to be performed. Some barriers are also put in place when it comes to checking them, as there are proofs that are so specialized that few people can even understand them or so long that few have time to check them. Computers have been an ally in this sense, as they support those who deal with it, automating all or part of the process, in addition to performing the verification of the proof steps. In this context, we have proofs as sistants that are capable of generating some proof steps automatically, but that still need the collaboration of a user to conduct the process. There are a variety of proof assistants, how ever, with different purposes. A better understanding of strengths and weaknesses regarding these systems can lead to a choice that means less effort for formalization and proof, for instance. In this work, we codified a specification of the software product line refinement theory in the Coq proof assistant. This theory guarantees that we are not introducing errors or changing the behavior of existing products in a product line during an evolution, ensuring a safe evolution. This theory has been specified and proved using the Prototype Verification System (PVS) proof assistant. Nevertheless, the Coq proof assistant is increasingly popular among researchers and practitioners, and, given that some programming languages are al ready formalized into such tool, the refinement theory might benefit from the potential in tegration. Therefore, in this work we present a case study on porting the PVS specification of the refinement theory to Coq. This specification includes specific models such as Feature Model, Asset Mapping, and Configuration Knowledge, as well as instantiation using Type classes and formalizing templates that can be used in SPL evolution scenarios. Moreover, due to the fact that this theory has already been formalized in the PVS, we compare the proof as sistants based on the noted differences between the specifications and proofs of this theory, providing some reflections on the tactics and strategies used to compose the proofs. Accord ing to our study, PVS provided more succinct definitions than Coq, in several cases, as well as a greater number of successful automatic commands that resulted in shorter proofs. Despite that, Coq also brought facilities in definitions such as enumerated and recursive types, and features that support developers in their proofs.
id UFPE_d99c1748e5c184fad4a4c2b3d1754442
oai_identifier_str oai:repositorio.ufpe.br:123456789/39492
network_acronym_str UFPE
network_name_str Repositório Institucional da UFPE
repository_id_str 2221
spelling ALVES, Thayonara de Ponteshttp://lattes.cnpq.br/5584407561861248http://lattes.cnpq.br/2117651910340729TEIXEIRA, Leopoldo Motta2021-03-26T16:07:17Z2021-03-26T16:07:17Z2020-10-27ALVES, Thayonara de Pontes. Porting the software product line refinement theory to the coq proof assistant: a case study. 2020. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2020.https://repositorio.ufpe.br/handle/123456789/39492Proofs are not a simple task to be performed. Some barriers are also put in place when it comes to checking them, as there are proofs that are so specialized that few people can even understand them or so long that few have time to check them. Computers have been an ally in this sense, as they support those who deal with it, automating all or part of the process, in addition to performing the verification of the proof steps. In this context, we have proofs as sistants that are capable of generating some proof steps automatically, but that still need the collaboration of a user to conduct the process. There are a variety of proof assistants, how ever, with different purposes. A better understanding of strengths and weaknesses regarding these systems can lead to a choice that means less effort for formalization and proof, for instance. In this work, we codified a specification of the software product line refinement theory in the Coq proof assistant. This theory guarantees that we are not introducing errors or changing the behavior of existing products in a product line during an evolution, ensuring a safe evolution. This theory has been specified and proved using the Prototype Verification System (PVS) proof assistant. Nevertheless, the Coq proof assistant is increasingly popular among researchers and practitioners, and, given that some programming languages are al ready formalized into such tool, the refinement theory might benefit from the potential in tegration. Therefore, in this work we present a case study on porting the PVS specification of the refinement theory to Coq. This specification includes specific models such as Feature Model, Asset Mapping, and Configuration Knowledge, as well as instantiation using Type classes and formalizing templates that can be used in SPL evolution scenarios. Moreover, due to the fact that this theory has already been formalized in the PVS, we compare the proof as sistants based on the noted differences between the specifications and proofs of this theory, providing some reflections on the tactics and strategies used to compose the proofs. Accord ing to our study, PVS provided more succinct definitions than Coq, in several cases, as well as a greater number of successful automatic commands that resulted in shorter proofs. Despite that, Coq also brought facilities in definitions such as enumerated and recursive types, and features that support developers in their proofs.FACEPEAs provas não são uma tarefa simples de serem realizadas. Algumas barreiras também são postas quando se trata de verificá-las, uma vez que existem provas que são tão especial izadas que poucas pessoas são capazes de entendê-las ou tão longas que poucas dispõe de tempo para checá-las. Os computadores vêm sendo um aliado nesse sentido, pois dão su porte para aqueles que lidam com isso, automatizando todo ou parte do processo, além de realizar a verificação dos passos de provas. Nesse contexto, temos os assistentes de provas que são capazes de gerar alguns passos de provas de forma automática, mas que ainda pre cisam da colaboração de um usuário para conduzir o processo. Existem uma variedade de assistentes de provas, porém, com finalidades diferentes. Um melhor entendimento de pon tos fortes e fracos a respeito desses sistemas podem levar a uma escolha que signifique em um menor esforço de formalização e prova, por exemplo. Nesse trabalho, codificamos uma especificação da teoria de refinamento de linha de produtos de software no assistente de provas Coq. Essa teoria dá a garantia de que não estamos introduzindo erros ou alterando o comportamento dos produtos existentes de uma linha de produtos durante uma evolução, assegurando uma evolução segura. Esta teoria foi especificada e comprovada usando o as sistente de prova Prototype Verification System (PVS). No entanto, um outro assistente de prova, Coq, tem se tornado cada vez mais popular entre pesquisadores e desenvolvedores e, dado que algumas linguagens de programação já estão formalizadas em tal ferramenta, a teoria do refinamento pode se beneficiar do potencial de integração. Dessa forma, neste trabalho, apresenta-se um estudo de caso sobre a portabilidade da especificação PVS da teoria de refinamentos para Coq. Esta especificação inclui modelos específicos, tais como Feature Model, Asset Mapping e Configuration Knowlegde, como também a instanciação us ando Typeclasses, além da formalização de templates que podem ser usados em cenários de evolução de SPL. Adicionalmente, pelo fato dessa teoria já ter sido formalizada no PVS, este trabalho compara os assistentes de prova com base nas diferenças observadas entre as es pecificações e as provas dessa teoria, proporcionando algumas reflexões sobre as táticas e estratégias utilizadas para compor as provas. Como resultado, de acordo com este estudo, o PVS forneceu definições mais sucintas do que o Coq, em vários casos, bem como um maior número de comandos automáticos bem-sucedidos que resultaram em provas mais curtas. Apesar disso, Coq também trouxe facilidades nas definições, como tipos enumerados e re cursivos, e recursos que dão suporte aos desenvolvedores em suas provas.engUniversidade Federal de PernambucoPrograma de Pos Graduacao em Ciencia da ComputacaoUFPEBrasilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessEngenharia de softwareLinguagens de programaçãoPorting the software product line refinement theory to the coq proof assistant : a case studyinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesismestradoreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPELICENSElicense.txtlicense.txttext/plain; charset=utf-82310https://repositorio.ufpe.br/bitstream/123456789/39492/3/license.txtbd573a5ca8288eb7272482765f819534MD53TEXTDISSERTAÇÃO Thayonara de Pontes Alves.pdf.txtDISSERTAÇÃO Thayonara de Pontes Alves.pdf.txtExtracted texttext/plain141329https://repositorio.ufpe.br/bitstream/123456789/39492/4/DISSERTA%c3%87%c3%83O%20Thayonara%20de%20Pontes%20Alves.pdf.txtbc02193dec3c7e9ecbc2fecfe9c7c704MD54THUMBNAILDISSERTAÇÃO Thayonara de Pontes Alves.pdf.jpgDISSERTAÇÃO Thayonara de Pontes Alves.pdf.jpgGenerated Thumbnailimage/jpeg1251https://repositorio.ufpe.br/bitstream/123456789/39492/5/DISSERTA%c3%87%c3%83O%20Thayonara%20de%20Pontes%20Alves.pdf.jpg965f94dc13394b2f77838e2a05165dffMD55ORIGINALDISSERTAÇÃO Thayonara de Pontes Alves.pdfDISSERTAÇÃO Thayonara de Pontes Alves.pdfapplication/pdf1765204https://repositorio.ufpe.br/bitstream/123456789/39492/1/DISSERTA%c3%87%c3%83O%20Thayonara%20de%20Pontes%20Alves.pdf90ad625fe6761f5928eda0f2ba92c016MD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufpe.br/bitstream/123456789/39492/2/license_rdfe39d27027a6cc9cb039ad269a5db8e34MD52123456789/394922021-03-27 02:15:37.523oai:repositorio.ufpe.br:123456789/39492TGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKClRvZG8gZGVwb3NpdGFudGUgZGUgbWF0ZXJpYWwgbm8gUmVwb3NpdMOzcmlvIEluc3RpdHVjaW9uYWwgKFJJKSBkZXZlIGNvbmNlZGVyLCDDoCBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBQZXJuYW1idWNvIChVRlBFKSwgdW1hIExpY2Vuw6dhIGRlIERpc3RyaWJ1acOnw6NvIE7Do28gRXhjbHVzaXZhIHBhcmEgbWFudGVyIGUgdG9ybmFyIGFjZXNzw612ZWlzIG9zIHNldXMgZG9jdW1lbnRvcywgZW0gZm9ybWF0byBkaWdpdGFsLCBuZXN0ZSByZXBvc2l0w7NyaW8uCgpDb20gYSBjb25jZXNzw6NvIGRlc3RhIGxpY2Vuw6dhIG7Do28gZXhjbHVzaXZhLCBvIGRlcG9zaXRhbnRlIG1hbnTDqW0gdG9kb3Mgb3MgZGlyZWl0b3MgZGUgYXV0b3IuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKTGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKCkFvIGNvbmNvcmRhciBjb20gZXN0YSBsaWNlbsOnYSBlIGFjZWl0w6EtbGEsIHZvY8OqIChhdXRvciBvdSBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMpOgoKYSkgRGVjbGFyYSBxdWUgY29uaGVjZSBhIHBvbMOtdGljYSBkZSBjb3B5cmlnaHQgZGEgZWRpdG9yYSBkbyBzZXUgZG9jdW1lbnRvOwpiKSBEZWNsYXJhIHF1ZSBjb25oZWNlIGUgYWNlaXRhIGFzIERpcmV0cml6ZXMgcGFyYSBvIFJlcG9zaXTDs3JpbyBJbnN0aXR1Y2lvbmFsIGRhIFVGUEU7CmMpIENvbmNlZGUgw6AgVUZQRSBvIGRpcmVpdG8gbsOjbyBleGNsdXNpdm8gZGUgYXJxdWl2YXIsIHJlcHJvZHV6aXIsIGNvbnZlcnRlciAoY29tbyBkZWZpbmlkbyBhIHNlZ3VpciksIGNvbXVuaWNhciBlL291IGRpc3RyaWJ1aXIsIG5vIFJJLCBvIGRvY3VtZW50byBlbnRyZWd1ZSAoaW5jbHVpbmRvIG8gcmVzdW1vL2Fic3RyYWN0KSBlbSBmb3JtYXRvIGRpZ2l0YWwgb3UgcG9yIG91dHJvIG1laW87CmQpIERlY2xhcmEgcXVlIGF1dG9yaXphIGEgVUZQRSBhIGFycXVpdmFyIG1haXMgZGUgdW1hIGPDs3BpYSBkZXN0ZSBkb2N1bWVudG8gZSBjb252ZXJ0w6otbG8sIHNlbSBhbHRlcmFyIG8gc2V1IGNvbnRlw7pkbywgcGFyYSBxdWFscXVlciBmb3JtYXRvIGRlIGZpY2hlaXJvLCBtZWlvIG91IHN1cG9ydGUsIHBhcmEgZWZlaXRvcyBkZSBzZWd1cmFuw6dhLCBwcmVzZXJ2YcOnw6NvIChiYWNrdXApIGUgYWNlc3NvOwplKSBEZWNsYXJhIHF1ZSBvIGRvY3VtZW50byBzdWJtZXRpZG8gw6kgbyBzZXUgdHJhYmFsaG8gb3JpZ2luYWwgZSBxdWUgZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBhIHRlcmNlaXJvcyBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2Ugb3MgZGlyZWl0b3MgZGUgb3V0cmEgcGVzc29hIG91IGVudGlkYWRlOwpmKSBEZWNsYXJhIHF1ZSwgbm8gY2FzbyBkbyBkb2N1bWVudG8gc3VibWV0aWRvIGNvbnRlciBtYXRlcmlhbCBkbyBxdWFsIG7Do28gZGV0w6ltIG9zIGRpcmVpdG9zIGRlCmF1dG9yLCBvYnRldmUgYSBhdXRvcml6YcOnw6NvIGlycmVzdHJpdGEgZG8gcmVzcGVjdGl2byBkZXRlbnRvciBkZXNzZXMgZGlyZWl0b3MgcGFyYSBjZWRlciDDoApVRlBFIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgTGljZW7Dp2EgZSBhdXRvcml6YXIgYSB1bml2ZXJzaWRhZGUgYSB1dGlsaXrDoS1sb3MgbGVnYWxtZW50ZS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBlc3NlIG1hdGVyaWFsIGN1am9zIGRpcmVpdG9zIHPDo28gZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3UgY29udGXDumRvIGRvIGRvY3VtZW50byBlbnRyZWd1ZTsKZykgU2UgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgYmFzZWFkbyBlbSB0cmFiYWxobyBmaW5hbmNpYWRvIG91IGFwb2lhZG8gcG9yIG91dHJhIGluc3RpdHVpw6fDo28gcXVlIG7Do28gYSBVRlBFLCBkZWNsYXJhIHF1ZSBjdW1wcml1IHF1YWlzcXVlciBvYnJpZ2HDp8O1ZXMgZXhpZ2lkYXMgcGVsbyByZXNwZWN0aXZvIGNvbnRyYXRvIG91IGFjb3Jkby4KCkEgVUZQRSBpZGVudGlmaWNhcsOhIGNsYXJhbWVudGUgbyhzKSBub21lKHMpIGRvKHMpIGF1dG9yIChlcykgZG9zIGRpcmVpdG9zIGRvIGRvY3VtZW50byBlbnRyZWd1ZSBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIHBhcmEgYWzDqW0gZG8gcHJldmlzdG8gbmEgYWzDrW5lYSBjKS4KRepositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212021-03-27T05:15:37Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false
dc.title.pt_BR.fl_str_mv Porting the software product line refinement theory to the coq proof assistant : a case study
title Porting the software product line refinement theory to the coq proof assistant : a case study
spellingShingle Porting the software product line refinement theory to the coq proof assistant : a case study
ALVES, Thayonara de Pontes
Engenharia de software
Linguagens de programação
title_short Porting the software product line refinement theory to the coq proof assistant : a case study
title_full Porting the software product line refinement theory to the coq proof assistant : a case study
title_fullStr Porting the software product line refinement theory to the coq proof assistant : a case study
title_full_unstemmed Porting the software product line refinement theory to the coq proof assistant : a case study
title_sort Porting the software product line refinement theory to the coq proof assistant : a case study
author ALVES, Thayonara de Pontes
author_facet ALVES, Thayonara de Pontes
author_role author
dc.contributor.authorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/5584407561861248
dc.contributor.advisorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/2117651910340729
dc.contributor.author.fl_str_mv ALVES, Thayonara de Pontes
dc.contributor.advisor1.fl_str_mv TEIXEIRA, Leopoldo Motta
contributor_str_mv TEIXEIRA, Leopoldo Motta
dc.subject.por.fl_str_mv Engenharia de software
Linguagens de programação
topic Engenharia de software
Linguagens de programação
description Proofs are not a simple task to be performed. Some barriers are also put in place when it comes to checking them, as there are proofs that are so specialized that few people can even understand them or so long that few have time to check them. Computers have been an ally in this sense, as they support those who deal with it, automating all or part of the process, in addition to performing the verification of the proof steps. In this context, we have proofs as sistants that are capable of generating some proof steps automatically, but that still need the collaboration of a user to conduct the process. There are a variety of proof assistants, how ever, with different purposes. A better understanding of strengths and weaknesses regarding these systems can lead to a choice that means less effort for formalization and proof, for instance. In this work, we codified a specification of the software product line refinement theory in the Coq proof assistant. This theory guarantees that we are not introducing errors or changing the behavior of existing products in a product line during an evolution, ensuring a safe evolution. This theory has been specified and proved using the Prototype Verification System (PVS) proof assistant. Nevertheless, the Coq proof assistant is increasingly popular among researchers and practitioners, and, given that some programming languages are al ready formalized into such tool, the refinement theory might benefit from the potential in tegration. Therefore, in this work we present a case study on porting the PVS specification of the refinement theory to Coq. This specification includes specific models such as Feature Model, Asset Mapping, and Configuration Knowledge, as well as instantiation using Type classes and formalizing templates that can be used in SPL evolution scenarios. Moreover, due to the fact that this theory has already been formalized in the PVS, we compare the proof as sistants based on the noted differences between the specifications and proofs of this theory, providing some reflections on the tactics and strategies used to compose the proofs. Accord ing to our study, PVS provided more succinct definitions than Coq, in several cases, as well as a greater number of successful automatic commands that resulted in shorter proofs. Despite that, Coq also brought facilities in definitions such as enumerated and recursive types, and features that support developers in their proofs.
publishDate 2020
dc.date.issued.fl_str_mv 2020-10-27
dc.date.accessioned.fl_str_mv 2021-03-26T16:07:17Z
dc.date.available.fl_str_mv 2021-03-26T16:07:17Z
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.citation.fl_str_mv ALVES, Thayonara de Pontes. Porting the software product line refinement theory to the coq proof assistant: a case study. 2020. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2020.
dc.identifier.uri.fl_str_mv https://repositorio.ufpe.br/handle/123456789/39492
identifier_str_mv ALVES, Thayonara de Pontes. Porting the software product line refinement theory to the coq proof assistant: a case study. 2020. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2020.
url https://repositorio.ufpe.br/handle/123456789/39492
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Pernambuco
dc.publisher.program.fl_str_mv Programa de Pos Graduacao em Ciencia da Computacao
dc.publisher.initials.fl_str_mv UFPE
dc.publisher.country.fl_str_mv Brasil
publisher.none.fl_str_mv Universidade Federal de Pernambuco
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPE
instname:Universidade Federal de Pernambuco (UFPE)
instacron:UFPE
instname_str Universidade Federal de Pernambuco (UFPE)
instacron_str UFPE
institution UFPE
reponame_str Repositório Institucional da UFPE
collection Repositório Institucional da UFPE
bitstream.url.fl_str_mv https://repositorio.ufpe.br/bitstream/123456789/39492/3/license.txt
https://repositorio.ufpe.br/bitstream/123456789/39492/4/DISSERTA%c3%87%c3%83O%20Thayonara%20de%20Pontes%20Alves.pdf.txt
https://repositorio.ufpe.br/bitstream/123456789/39492/5/DISSERTA%c3%87%c3%83O%20Thayonara%20de%20Pontes%20Alves.pdf.jpg
https://repositorio.ufpe.br/bitstream/123456789/39492/1/DISSERTA%c3%87%c3%83O%20Thayonara%20de%20Pontes%20Alves.pdf
https://repositorio.ufpe.br/bitstream/123456789/39492/2/license_rdf
bitstream.checksum.fl_str_mv bd573a5ca8288eb7272482765f819534
bc02193dec3c7e9ecbc2fecfe9c7c704
965f94dc13394b2f77838e2a05165dff
90ad625fe6761f5928eda0f2ba92c016
e39d27027a6cc9cb039ad269a5db8e34
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)
repository.mail.fl_str_mv attena@ufpe.br
_version_ 1802310886676758528