Foundations of program refinement by calculation

Bibliographic Details
Main Author: Rodrigues, César J.
Publication Date: 2009
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: http://hdl.handle.net/1822/9201
Summary: Tese de doutoramento em Informática (ramo de conhecimento em Fundamentos da Computação)
id RCAP_c07da748f2d0bff91bf44a99e8e24538
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/9201
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 Foundations of program refinement by calculation519.6681.3Tese de doutoramento em Informática (ramo de conhecimento em Fundamentos da Computação)Embora não seja prática generalizada, aceita-se hoje o valor da especificação formal de aplicações como ingrediente essencial ao desenvolvimento de software fiável. Isso pressupõe uma noção adicional — a de refinamento — capaz de sistematizar a derivação de implementações correctas a partir de modelos abstractos (ie. especificações). No chamado estilo construtivo de desenvolvimento, faz-se refinamento passo-a-passo, provando que cada passo decorre do anterior por regras que garantem a correcção. Estas provas, que são vulgarmente feitas na lógica de predicados e teoria de conjuntos, têm, porém, problemas de escalabilidade: por um lado, não é prático provar factos envolvendo muitas variáveis e quantificações. Por outro, o nível relativamente pouco ágil em que decorrem as provas impede a sua progressão e pede ferramentas automáticas de prova. Esta tese desenvolve uma técnica alternativa de refinamento baseada na chamada transformada-pointfree. A ideia é desenvolver um cálculo ágil capaz de calcular implementações a partir das suas especificações por transformações algébricas simples. A transformada actua sempre que pretendemos raciocinar, mapeando expressões da lógica de predicados em expressões do cálculo relacional com implosão das quantificações e outras construções baseadas em variáveis. Nesse sentido, esta tese aborda os fundamentos do refinamento de programas por cálculo, através de raciocínios ao nível do cálculo de relações binárias dito pointfree, nos seus dois níveis essenciais: dados e algoritmos. Para esse efeito, desenvolvem-se e generalizam-se algumas construções do cálculo relacional, nomeadamente a transposição funcional, uma técnica que tem por objectivo converter relações em funções, de modo a exprimir a álgebra de relações através da álgebra de funções. É utilizada nesta dissertação como leit-motiv. No sentido de potenciar ao máximo a pretendida algebrização do processo de cálculo de programas, a abordagem proposta capitaliza no conceito de conexão de Galois. Em particular, mostra-se como as principais leis de refinamento de dados podem ser vistas como esse tipo de conexão. No plano do refinamento algorítmico, estuda-se a ordem padrão de refinamento ao nível pointfree e calcula-se a sua factorização em duas subordens com comportamentos opostos: redução de não-determinismo e aumento da definição. Essa factorização torna a ordem original mais tratável matematicamente. Apresenta-se a sua teoria em estilo pointfree, que inclui uma prova simples do refinamento estrutural, para tipos paramétricos arbitrários. Finalmente, mostramos que só precisamos de uma regra completa de refinamento relacional—para provar o refinamento coalgébrico—e utilizámo-la para testemunhar o refinamento por cálculo de relações de transição correspondentes a coalgebras.Design of trustworthy software calls for technologies which discuss software reliability formally, ie. by writing and reasoning about mathematical models of real-life objects and activities (vulg. specifications). Such technologies involve the additional notion of refinement (or reification), which means the systematic process of ensuring correct implementations for formal specifications. In the well-known constructive style for software development, design is factored in several steps, each intermediate step being first proposed and then proved to follow from its antecedent. However, such an ”invent-and-verify” style is often impractical due to the complexity of the mathematical reasoning involved in real-size software problems. Moreover, program reasoning is normally carried out in predicate/ temporal logic and na¨ıve set theory — notations which don’t scale up to fully detailed models of complex problems. This thesis is concerned with the foundations of an alternative technique for program refinement based on so-called pointfree calculation. The idea is to develop a calculus allowing for programs to be actually calculated from their specifications. Instead of doing proofs from first principles, this strategy leads to implementations which are “correct by construction”. Conventional refinement rules are transformed into simple, elegant equations dispensing with points and involving only binary relation combinators. The pointfree binary relational calculus is therefore at the heart of the proposed refinement theory. This thesis adds to such a mathematical framework in two ways: on the one hand it shows how to apply it to data and algorithimc refinement problems. On the other hand, some constructions are proposed which prove useful not only in refinement but also in general. This includes generic functional transposition, a technique for converting relations into functions aimed at developing relational algebra via the algebra of functions. It is employed in this dissertation as a leit motiv. Our proposed theory of data refinement draws heavily on the Galois connection approach to mathematical reasoning. This includes a simple way to calculate refinement invariants induced by the Galois connected laws. Algorithmic refinement is addressed in the same way. The standard operation refinement ordering is given a pointfree treatmentwhich includes a simple calculation of Groves’ factorization and its direct application in structural refinement involving arbitrary parametric types. Finally, coalgebraic refinement is done using an equivalent single complete rule for data refinement which is used to witness refinement by calculation of transition relations corresponding to coalgebras.Oliveira, José Nuno FonsecaUniversidade do MinhoRodrigues, César J.2009-05-112009-05-11T00:00:00Zdoctoral thesisinfo:eu-repo/semantics/publishedVersionapplication/pdfhttp://hdl.handle.net/1822/9201enginfo: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:RCAAP2024-05-11T06:32:07Zoai:repositorium.sdum.uminho.pt:1822/9201Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T15:56:21.871388Repositó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 Foundations of program refinement by calculation
title Foundations of program refinement by calculation
spellingShingle Foundations of program refinement by calculation
Rodrigues, César J.
519.6
681.3
title_short Foundations of program refinement by calculation
title_full Foundations of program refinement by calculation
title_fullStr Foundations of program refinement by calculation
title_full_unstemmed Foundations of program refinement by calculation
title_sort Foundations of program refinement by calculation
author Rodrigues, César J.
author_facet Rodrigues, César J.
author_role author
dc.contributor.none.fl_str_mv Oliveira, José Nuno Fonseca
Universidade do Minho
dc.contributor.author.fl_str_mv Rodrigues, César J.
dc.subject.por.fl_str_mv 519.6
681.3
topic 519.6
681.3
description Tese de doutoramento em Informática (ramo de conhecimento em Fundamentos da Computação)
publishDate 2009
dc.date.none.fl_str_mv 2009-05-11
2009-05-11T00:00:00Z
dc.type.driver.fl_str_mv doctoral thesis
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/1822/9201
url http://hdl.handle.net/1822/9201
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_ 1833595633576968192