Files in this item
Proving renaming for Haskell via dependent types : a case-study in refactoring soundness
Item metadata
dc.contributor.author | Barwell, Adam David | |
dc.contributor.author | Brown, Christopher Mark | |
dc.contributor.author | Sarkar, Susmit | |
dc.date.accessioned | 2021-07-29T10:30:09Z | |
dc.date.available | 2021-07-29T10:30:09Z | |
dc.date.issued | 2021-07-18 | |
dc.identifier | 275239759 | |
dc.identifier | 8d71d5b3-2472-4fde-afda-55c21286ccf2 | |
dc.identifier.citation | Barwell , A D , Brown , C M & Sarkar , S 2021 , Proving renaming for Haskell via dependent types : a case-study in refactoring soundness . in 8 th International workshop on rewriting techniques for program transformations and evaluation (WPTE 2021) . 8th International Workshop on Rewriting Techniques for Program Transformations and Evaluation , Buenos Aeires , Argentina , 18/07/21 . | en |
dc.identifier.citation | workshop | en |
dc.identifier.other | ORCID: /0000-0001-6030-2885/work/97885026 | |
dc.identifier.other | ORCID: /0000-0003-1236-7160/work/97885332 | |
dc.identifier.other | ORCID: /0000-0002-4259-9213/work/125727588 | |
dc.identifier.uri | https://hdl.handle.net/10023/23673 | |
dc.description.abstract | We present a formally verified renaming refactoring for a subset of Haskell 98 giving a case-study in proving soundness properties of Haskell refactorings. Our renaming is implemented in the dependently- typed language Idris, which allows us to encode soundness proofs as an integral part of the implementation. We give the formal definition of our static semantics for our Haskell 98 subset, which we encode as part of the AST, ensuring that only well-formed programs may be represented and transformed. This forms a foundation upon which refactorings can be formally specified. We then define soundness of refactoring implementations as conformity to their specification. We demonstrate our approach via renaming, a canonical and well-understood refactoring, giving its implementation alongside its formal specification and soundness proof. | |
dc.format.extent | 10 | |
dc.format.extent | 218677 | |
dc.language.iso | eng | |
dc.relation.ispartof | 8th International workshop on rewriting techniques for program transformations and evaluation (WPTE 2021) | en |
dc.subject | Haskell | en |
dc.subject | Refactoring | en |
dc.subject | Dependent types | en |
dc.subject | Idris | en |
dc.subject | Renaming | en |
dc.subject | Proof-carrying code | en |
dc.subject | Soundness | en |
dc.subject | QA75 Electronic computers. Computer science | en |
dc.subject | T-NDAS | en |
dc.subject | NIS | en |
dc.subject | MCC | en |
dc.subject.lcc | QA75 | en |
dc.title | Proving renaming for Haskell via dependent types : a case-study in refactoring soundness | en |
dc.type | Conference item | en |
dc.contributor.sponsor | EPSRC | en |
dc.contributor.sponsor | European Commission | en |
dc.contributor.sponsor | EPSRC | en |
dc.contributor.institution | University of St Andrews. School of Computer Science | en |
dc.identifier.url | https://www.ipl.riec.tohoku.ac.jp/wpte2021/ | en |
dc.identifier.url | https://www.sciencedirect.com/journal/journal-of-logical-and-algebraic-methods-in-programming/special-issues | en |
dc.identifier.url | https://fscd2021.dc.uba.ar/ | en |
dc.identifier.grantnumber | EP/V006290/1 | en |
dc.identifier.grantnumber | 779882 | en |
dc.identifier.grantnumber | EP/P020631/1 | en |
This item appears in the following Collection(s)
Items in the St Andrews Research Repository are protected by copyright, with all rights reserved, unless otherwise indicated.