Unfolding Iterators. Specification and Verification of Higher-Order Iterators, in OCaml
| Main Author: | |
|---|---|
| Publication Date: | 2024 |
| Format: | Master thesis |
| Language: | eng |
| Source: | Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| Download full: | http://hdl.handle.net/10362/182680 |
Summary: | When it comes to software development, programmers find themselves hardly implement- ing anything from scratch, relying on internal or third-party libraries with pre-written code. Besides providing genericity, abstraction, and performant features, by encapsulat- ing everything in a library, we are more keen to standardize code that has been formally proved correct. This work aims to formally prove a subset of the OCamlGraph library, with special concern on algorithms that employ higher-order iteration. By asserting the correctness of its algorithms, its users can feel safer knowing that the library is not error-inducing. We will base ourselves on GOSPEL specifications that can be consumed by the verification framework Cameleer. As most graph algorithms in the OCamlGraph library employ some sort of higher-ordered iteration, we seek to answer the question: “How to soundly and reliably formally verify implementations and clients of OCaml higher-order iteration, using mostly automated proof tools?”. In this document, we outline some theoretical and practical background concerning deductive verification in the functional paradigm and available techniques for specifying and verifying higher-order iteration. We also present our methodology for the specifica- tion and verification of higher-order iterators in OCaml using GOSPEL specifications. We complement this methodology with a collection of case studies that sustain our work. |
| id |
RCAP_fbd0ca027e1653b28dccb674d08c05cd |
|---|---|
| oai_identifier_str |
oai:run.unl.pt:10362/182680 |
| network_acronym_str |
RCAP |
| network_name_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| repository_id_str |
https://opendoar.ac.uk/repository/7160 |
| spelling |
Unfolding Iterators. Specification and Verification of Higher-Order Iterators, in OCamlFormal VerificationHigher-Order IterationGraphsOCamlWhy3GOSPELDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaWhen it comes to software development, programmers find themselves hardly implement- ing anything from scratch, relying on internal or third-party libraries with pre-written code. Besides providing genericity, abstraction, and performant features, by encapsulat- ing everything in a library, we are more keen to standardize code that has been formally proved correct. This work aims to formally prove a subset of the OCamlGraph library, with special concern on algorithms that employ higher-order iteration. By asserting the correctness of its algorithms, its users can feel safer knowing that the library is not error-inducing. We will base ourselves on GOSPEL specifications that can be consumed by the verification framework Cameleer. As most graph algorithms in the OCamlGraph library employ some sort of higher-ordered iteration, we seek to answer the question: “How to soundly and reliably formally verify implementations and clients of OCaml higher-order iteration, using mostly automated proof tools?”. In this document, we outline some theoretical and practical background concerning deductive verification in the functional paradigm and available techniques for specifying and verifying higher-order iteration. We also present our methodology for the specifica- tion and verification of higher-order iterators in OCaml using GOSPEL specifications. We complement this methodology with a collection of case studies that sustain our work.No que toca ao desenvolvimento de software, os programadores raramente implementam muita coisa de raiz, dando uso a bibliotecas, quer internas ou de terceiros, com código pré-escrito. Para além da genericidade, da abstracção, e de componentes com um alto desempenho que costumam oferecer, a encapsulação de código numa biblioteca permite a sua normalização, se este for provado correto. Este trabalho propõe verificar formalmente um subconjunto da biblioteca OCamlGraph, com especial interesse em algoritmos que empreguem iteração de ordem superior. Ao afirmarmos a correção dos seus algoritmos, os seus utilizadores podem sentir-se mais confiantes ao saber que, pelo menos, a biblioteca não induzirá em erros. O trabalho vai ser baseado em especificações na linguagem GOSPEL que, por sua vez, serão consumidas pela plataforma de verificação Cameleer. A observação de que grande parte dos algoritmos da biblioteca OCamlGraph utiliza iteração de ordem superior, leva-nos a procurar responder à questão: “Como verificar formalmente, de modo completo e fiável, implementações e o consumo da iteração de ordem superior em OCaml, recorrendo a ferramentas de prova automática?”. Neste documento, vamos abordar algum fundamento teórico e prático no que diz respeito a verificação dedutiva no paradigma de programação funcional e algumas técnicas para especificação e verificação de iteração de ordem superior. Apresentamos ainda a nossa metodologia para a especificação e verificação destes mesmos iteradores, em OCaml, com o uso de especificaçãos na linguagem GOSPEL. Complementamos a nossa metodologia com uma coleção de casos de estudos que sustêm o nosso trabalho.Pereira, MárioRUNChirica, Ion2025-05-06T15:04:11Z2024-122024-12-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/182680enginfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2025-05-12T01:46:15Zoai:run.unl.pt:10362/182680Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-29T07:13:43.974145Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse |
| dc.title.none.fl_str_mv |
Unfolding Iterators. Specification and Verification of Higher-Order Iterators, in OCaml |
| title |
Unfolding Iterators. Specification and Verification of Higher-Order Iterators, in OCaml |
| spellingShingle |
Unfolding Iterators. Specification and Verification of Higher-Order Iterators, in OCaml Chirica, Ion Formal Verification Higher-Order Iteration Graphs OCaml Why3 GOSPEL Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| title_short |
Unfolding Iterators. Specification and Verification of Higher-Order Iterators, in OCaml |
| title_full |
Unfolding Iterators. Specification and Verification of Higher-Order Iterators, in OCaml |
| title_fullStr |
Unfolding Iterators. Specification and Verification of Higher-Order Iterators, in OCaml |
| title_full_unstemmed |
Unfolding Iterators. Specification and Verification of Higher-Order Iterators, in OCaml |
| title_sort |
Unfolding Iterators. Specification and Verification of Higher-Order Iterators, in OCaml |
| author |
Chirica, Ion |
| author_facet |
Chirica, Ion |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
Pereira, Mário RUN |
| dc.contributor.author.fl_str_mv |
Chirica, Ion |
| dc.subject.por.fl_str_mv |
Formal Verification Higher-Order Iteration Graphs OCaml Why3 GOSPEL Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| topic |
Formal Verification Higher-Order Iteration Graphs OCaml Why3 GOSPEL Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| description |
When it comes to software development, programmers find themselves hardly implement- ing anything from scratch, relying on internal or third-party libraries with pre-written code. Besides providing genericity, abstraction, and performant features, by encapsulat- ing everything in a library, we are more keen to standardize code that has been formally proved correct. This work aims to formally prove a subset of the OCamlGraph library, with special concern on algorithms that employ higher-order iteration. By asserting the correctness of its algorithms, its users can feel safer knowing that the library is not error-inducing. We will base ourselves on GOSPEL specifications that can be consumed by the verification framework Cameleer. As most graph algorithms in the OCamlGraph library employ some sort of higher-ordered iteration, we seek to answer the question: “How to soundly and reliably formally verify implementations and clients of OCaml higher-order iteration, using mostly automated proof tools?”. In this document, we outline some theoretical and practical background concerning deductive verification in the functional paradigm and available techniques for specifying and verifying higher-order iteration. We also present our methodology for the specifica- tion and verification of higher-order iterators in OCaml using GOSPEL specifications. We complement this methodology with a collection of case studies that sustain our work. |
| publishDate |
2024 |
| dc.date.none.fl_str_mv |
2024-12 2024-12-01T00:00:00Z 2025-05-06T15:04:11Z |
| 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 |
http://hdl.handle.net/10362/182680 |
| url |
http://hdl.handle.net/10362/182680 |
| dc.language.iso.fl_str_mv |
eng |
| language |
eng |
| 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órios Científicos de Acesso Aberto de Portugal (RCAAP) instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia instacron:RCAAP |
| instname_str |
FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
| instacron_str |
RCAAP |
| institution |
RCAAP |
| reponame_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| collection |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| repository.name.fl_str_mv |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
| repository.mail.fl_str_mv |
info@rcaap.pt |
| _version_ |
1833602924490522624 |