Uma formalização da teoria nominal em Coq

Detalhes bibliográficos
Autor(a) principal: Paranhos, Fabrício Sanches
Data de Publicação: 2022
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFG
dARK ID: ark:/38995/0013000009d3w
Texto Completo: http://repositorio.bc.ufg.br/tede/handle/tede/12314
Resumo: In the implementations and analysis of programming languages, the need for manipulation, or demonstration, of terms containing variable binding structures is recurrent. However, in practice, this is not a trivial task. The main problems are the capture of free variables, the identification of α-equivalent terms and inductive demonstrations about terms containing bound variables, in which several variable renaming lemmas are needed. In the informal context, several devices were developed to mitigate problems related to bound variables, such as, for example, the Barendregt Variable Convention. While in the context of proofs verification, formalized in a proof assistant, it is still an open problem with several solutions and proposals for the representation of bound variables. Among them, nominal techniques have been praised for their ability to formalize grammars with binding structures closer to their informal developments, through a uniform metatheory based on name permutation. Due to the lack of a nominal library for constructive proof assistants, we present in this dissertation an ongoing formalization of the nominal theory in Coq, where we highlight the main design and project decisions. We implemented and compared two methods, a pragmatic one, supported by the basic pillars of nominal theory, and a constructive formalization of the main elements of nominal theory: nominal sets, support, freshness, supported functions, nominal α-equivalence and name abstraction. Our main contribution was to present a class hierarchy for the definition of nominal sets, which combined with the generalized rewriting mechanism, achieve concise definitions and proofs, while avoiding the well-known “setoid hell” scenario.
id UFG-2_cd56b6ffbb762500d77dc28d34a59e51
oai_identifier_str oai:repositorio.bc.ufg.br:tede/12314
network_acronym_str UFG-2
network_name_str Repositório Institucional da UFG
repository_id_str
spelling Ventura, Daniel Limahttp://lattes.cnpq.br/4443822193261575Ventura, Daniel LimaVieira, Bruno LopesNantes Sobrinho, Danielehttp://lattes.cnpq.br/1761338898583628Paranhos, Fabrício Sanches2022-09-12T15:09:20Z2022-09-12T15:09:20Z2022-08-10PARANHOS, F. S. Uma formalização da teoria nominal em Coq. 2022. 70 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Goiás, Goiânia, 2022.http://repositorio.bc.ufg.br/tede/handle/tede/12314ark:/38995/0013000009d3wIn the implementations and analysis of programming languages, the need for manipulation, or demonstration, of terms containing variable binding structures is recurrent. However, in practice, this is not a trivial task. The main problems are the capture of free variables, the identification of α-equivalent terms and inductive demonstrations about terms containing bound variables, in which several variable renaming lemmas are needed. In the informal context, several devices were developed to mitigate problems related to bound variables, such as, for example, the Barendregt Variable Convention. While in the context of proofs verification, formalized in a proof assistant, it is still an open problem with several solutions and proposals for the representation of bound variables. Among them, nominal techniques have been praised for their ability to formalize grammars with binding structures closer to their informal developments, through a uniform metatheory based on name permutation. Due to the lack of a nominal library for constructive proof assistants, we present in this dissertation an ongoing formalization of the nominal theory in Coq, where we highlight the main design and project decisions. We implemented and compared two methods, a pragmatic one, supported by the basic pillars of nominal theory, and a constructive formalization of the main elements of nominal theory: nominal sets, support, freshness, supported functions, nominal α-equivalence and name abstraction. Our main contribution was to present a class hierarchy for the definition of nominal sets, which combined with the generalized rewriting mechanism, achieve concise definitions and proofs, while avoiding the well-known “setoid hell” scenario.Nas implementações e análises de linguagens de programação é recorrente a necessidade de manipulação, ou demonstração, de termos contendo ligantes. Entretanto, na prática, esta não é uma tarefa trivial. Dentre os principais problemas pode-se citar a captura de variável livre, a identificação de termos α-equivalentes e em demonstrações indutivas sobre termos contendo variáveis ligadas, nos quais são necessários diversos lemas de renomeação de variável. No contexto informal, diversos dispositivos foram elaborados a fim de mitigar os problemas relacionados a variáveis ligadas, como, por exemplo, a convenção de variável de Barendregt. Enquanto no contexto de verificação de provas formalizadas num assistente, ainda é um problema em aberto, com diversas soluções e propostas de representação de variáveis ligadas. Dentre elas, as técnicas nominais têm sido elogiadas por sua capacidade formalizar gramáticas com estruturas ligantes mais próximas de seus desenvolvimentos informais, através de uma metateoria uniforme baseada em permutação de nomes. Devido à falta de uma biblioteca nominal para assistentes de provas construtivos, apresentamos nesta dissertação uma formalização em progresso da teoria nominal em Coq, salientando as principais decisões de design e projeto. Implementamos e comparamos dois métodos, um pragmático, apoiado nos pilares básicos da teoria nominal, e uma formalização construtiva dos principais elementos da teoria nominal: conjuntos nominais, suporte, frescor, funções suportadas, α-equivalência nominal e abstração de nomes. Apresentamos uma hierarquia de classes para definição de conjuntos nominais, que aliado ao mecanismo de reescrita generalizada, alcançamos definições e provas concisas, em simultâneo evitando o conhecido cenário “setoid hell”.Submitted by Luciana Ferreira (lucgeral@gmail.com) on 2022-09-09T11:44:27Z No. of bitstreams: 2 Dissertação - Fabrício Sanches Paranhos - 2022.pdf: 652185 bytes, checksum: a20d84efb85e4d9581fe1f8a70809031 (MD5) license_rdf: 805 bytes, checksum: 4460e5956bc1d1639be9ae6146a50347 (MD5)Approved for entry into archive by Luciana Ferreira (lucgeral@gmail.com) on 2022-09-12T15:09:20Z (GMT) No. of bitstreams: 2 Dissertação - Fabrício Sanches Paranhos - 2022.pdf: 652185 bytes, checksum: a20d84efb85e4d9581fe1f8a70809031 (MD5) license_rdf: 805 bytes, checksum: 4460e5956bc1d1639be9ae6146a50347 (MD5)Made available in DSpace on 2022-09-12T15:09:20Z (GMT). No. of bitstreams: 2 Dissertação - Fabrício Sanches Paranhos - 2022.pdf: 652185 bytes, checksum: a20d84efb85e4d9581fe1f8a70809031 (MD5) license_rdf: 805 bytes, checksum: 4460e5956bc1d1639be9ae6146a50347 (MD5) Previous issue date: 2022-08-10Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPESporUniversidade Federal de GoiásPrograma de Pós-graduação em Ciência da Computação (INF)UFGBrasilInstituto de Informática - INF (RG)Attribution-NonCommercial-NoDerivatives 4.0 Internationalhttp://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccessConjuntos nominaisTécnicas nominaisFormalizaçãoCoqNominal setsNominal techniquesFormalizationCoqCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::MATEMATICA DA COMPUTACAOUma formalização da teoria nominal em CoqA formalization of the nominal theory in Coqinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesis20500500500500261231reponame:Repositório Institucional da UFGinstname:Universidade Federal de Goiás (UFG)instacron:UFGLICENSElicense.txtlicense.txttext/plain; charset=utf-81748http://repositorio.bc.ufg.br/tede/bitstreams/886da394-4208-4362-8a02-90bd7531216c/download8a4605be74aa9ea9d79846c1fba20a33MD51ORIGINALDissertação - Fabrício Sanches Paranhos - 2022.pdfDissertação - Fabrício Sanches Paranhos - 2022.pdfapplication/pdf652185http://repositorio.bc.ufg.br/tede/bitstreams/bcb0d0cc-c73f-4c48-868b-7dd106cb40a9/downloada20d84efb85e4d9581fe1f8a70809031MD53CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8805http://repositorio.bc.ufg.br/tede/bitstreams/8dc0354c-b196-483e-9094-81452826e4ef/download4460e5956bc1d1639be9ae6146a50347MD52tede/123142022-09-12 12:09:21.137http://creativecommons.org/licenses/by-nc-nd/4.0/Attribution-NonCommercial-NoDerivatives 4.0 Internationalopen.accessoai:repositorio.bc.ufg.br:tede/12314http://repositorio.bc.ufg.br/tedeRepositório InstitucionalPUBhttp://repositorio.bc.ufg.br/oai/requesttasesdissertacoes.bc@ufg.bropendoar:2022-09-12T15:09:21Repositório Institucional da UFG - Universidade Federal de Goiás (UFG)falseTk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=
dc.title.pt_BR.fl_str_mv Uma formalização da teoria nominal em Coq
dc.title.alternative.eng.fl_str_mv A formalization of the nominal theory in Coq
title Uma formalização da teoria nominal em Coq
spellingShingle Uma formalização da teoria nominal em Coq
Paranhos, Fabrício Sanches
Conjuntos nominais
Técnicas nominais
Formalização
Coq
Nominal sets
Nominal techniques
Formalization
Coq
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::MATEMATICA DA COMPUTACAO
title_short Uma formalização da teoria nominal em Coq
title_full Uma formalização da teoria nominal em Coq
title_fullStr Uma formalização da teoria nominal em Coq
title_full_unstemmed Uma formalização da teoria nominal em Coq
title_sort Uma formalização da teoria nominal em Coq
author Paranhos, Fabrício Sanches
author_facet Paranhos, Fabrício Sanches
author_role author
dc.contributor.advisor1.fl_str_mv Ventura, Daniel Lima
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/4443822193261575
dc.contributor.referee1.fl_str_mv Ventura, Daniel Lima
dc.contributor.referee2.fl_str_mv Vieira, Bruno Lopes
dc.contributor.referee3.fl_str_mv Nantes Sobrinho, Daniele
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/1761338898583628
dc.contributor.author.fl_str_mv Paranhos, Fabrício Sanches
contributor_str_mv Ventura, Daniel Lima
Ventura, Daniel Lima
Vieira, Bruno Lopes
Nantes Sobrinho, Daniele
dc.subject.por.fl_str_mv Conjuntos nominais
Técnicas nominais
Formalização
Coq
topic Conjuntos nominais
Técnicas nominais
Formalização
Coq
Nominal sets
Nominal techniques
Formalization
Coq
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::MATEMATICA DA COMPUTACAO
dc.subject.eng.fl_str_mv Nominal sets
Nominal techniques
Formalization
Coq
dc.subject.cnpq.fl_str_mv CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::MATEMATICA DA COMPUTACAO
description In the implementations and analysis of programming languages, the need for manipulation, or demonstration, of terms containing variable binding structures is recurrent. However, in practice, this is not a trivial task. The main problems are the capture of free variables, the identification of α-equivalent terms and inductive demonstrations about terms containing bound variables, in which several variable renaming lemmas are needed. In the informal context, several devices were developed to mitigate problems related to bound variables, such as, for example, the Barendregt Variable Convention. While in the context of proofs verification, formalized in a proof assistant, it is still an open problem with several solutions and proposals for the representation of bound variables. Among them, nominal techniques have been praised for their ability to formalize grammars with binding structures closer to their informal developments, through a uniform metatheory based on name permutation. Due to the lack of a nominal library for constructive proof assistants, we present in this dissertation an ongoing formalization of the nominal theory in Coq, where we highlight the main design and project decisions. We implemented and compared two methods, a pragmatic one, supported by the basic pillars of nominal theory, and a constructive formalization of the main elements of nominal theory: nominal sets, support, freshness, supported functions, nominal α-equivalence and name abstraction. Our main contribution was to present a class hierarchy for the definition of nominal sets, which combined with the generalized rewriting mechanism, achieve concise definitions and proofs, while avoiding the well-known “setoid hell” scenario.
publishDate 2022
dc.date.accessioned.fl_str_mv 2022-09-12T15:09:20Z
dc.date.available.fl_str_mv 2022-09-12T15:09:20Z
dc.date.issued.fl_str_mv 2022-08-10
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 PARANHOS, F. S. Uma formalização da teoria nominal em Coq. 2022. 70 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Goiás, Goiânia, 2022.
dc.identifier.uri.fl_str_mv http://repositorio.bc.ufg.br/tede/handle/tede/12314
dc.identifier.dark.fl_str_mv ark:/38995/0013000009d3w
identifier_str_mv PARANHOS, F. S. Uma formalização da teoria nominal em Coq. 2022. 70 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Goiás, Goiânia, 2022.
ark:/38995/0013000009d3w
url http://repositorio.bc.ufg.br/tede/handle/tede/12314
dc.language.iso.fl_str_mv por
language por
dc.relation.program.fl_str_mv 20
dc.relation.confidence.fl_str_mv 500
500
500
500
dc.relation.department.fl_str_mv 26
dc.relation.cnpq.fl_str_mv 123
dc.relation.sponsorship.fl_str_mv 1
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivatives 4.0 International
http://creativecommons.org/licenses/by-nc-nd/4.0/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivatives 4.0 International
http://creativecommons.org/licenses/by-nc-nd/4.0/
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Goiás
dc.publisher.program.fl_str_mv Programa de Pós-graduação em Ciência da Computação (INF)
dc.publisher.initials.fl_str_mv UFG
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv Instituto de Informática - INF (RG)
publisher.none.fl_str_mv Universidade Federal de Goiás
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFG
instname:Universidade Federal de Goiás (UFG)
instacron:UFG
instname_str Universidade Federal de Goiás (UFG)
instacron_str UFG
institution UFG
reponame_str Repositório Institucional da UFG
collection Repositório Institucional da UFG
bitstream.url.fl_str_mv http://repositorio.bc.ufg.br/tede/bitstreams/886da394-4208-4362-8a02-90bd7531216c/download
http://repositorio.bc.ufg.br/tede/bitstreams/bcb0d0cc-c73f-4c48-868b-7dd106cb40a9/download
http://repositorio.bc.ufg.br/tede/bitstreams/8dc0354c-b196-483e-9094-81452826e4ef/download
bitstream.checksum.fl_str_mv 8a4605be74aa9ea9d79846c1fba20a33
a20d84efb85e4d9581fe1f8a70809031
4460e5956bc1d1639be9ae6146a50347
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFG - Universidade Federal de Goiás (UFG)
repository.mail.fl_str_mv tasesdissertacoes.bc@ufg.br
_version_ 1815172610735996928