{"title":"Review on Functional Algorithms, Verified!","authors":"A. Charguéraud","doi":"10.1145/3594639","DOIUrl":null,"url":null,"abstract":"The book Functional Algorithms, Verified! provides a presentation of classic functional data structures and algorithms with a fairly original perspective: that of accompanying every data structure with formal specifications. The specifications cover not only functional correctness but also time complexity bounds. The book has been used as course notes by Tobias Nipkow and colleagues over several years. It benefits from feedback from the classroom, invaluable for streamlining the presentation of the material. I would say that it is well suited for master’s students. It could also be accessible for students in the final year of a bachelor’s degree and highly valuable to Ph.D. students who wish to formalize or use formalized data structures. Interestingly, although its contents are formally verified, this book is not about mechanized proofs. It is meant to be accessible to readers with no background in proof assistants. What matters in this book is the mechanized specifications , which are provided for every data structure. Throughout the book, the reader is taught how to write formal specifications for sets, maps, sequences, functional arrays, and priority queues. These formal interfaces are the cornerstones of program verification. The proofs are presented in English, each time with formal statements and an explanation of what kind of induction principle is exploited. The proof details, which can be found in the accompanying Isabelle/HOL proof scripts, are very useful for readers interested in conducting formal proofs on functional data structures. For other readers, following the proof scripts is completely optional. The book","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":" ","pages":"1 - 2"},"PeriodicalIF":1.4000,"publicationDate":"2023-05-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Formal Aspects of Computing","FirstCategoryId":"94","ListUrlMain":"https://doi.org/10.1145/3594639","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0
Abstract
The book Functional Algorithms, Verified! provides a presentation of classic functional data structures and algorithms with a fairly original perspective: that of accompanying every data structure with formal specifications. The specifications cover not only functional correctness but also time complexity bounds. The book has been used as course notes by Tobias Nipkow and colleagues over several years. It benefits from feedback from the classroom, invaluable for streamlining the presentation of the material. I would say that it is well suited for master’s students. It could also be accessible for students in the final year of a bachelor’s degree and highly valuable to Ph.D. students who wish to formalize or use formalized data structures. Interestingly, although its contents are formally verified, this book is not about mechanized proofs. It is meant to be accessible to readers with no background in proof assistants. What matters in this book is the mechanized specifications , which are provided for every data structure. Throughout the book, the reader is taught how to write formal specifications for sets, maps, sequences, functional arrays, and priority queues. These formal interfaces are the cornerstones of program verification. The proofs are presented in English, each time with formal statements and an explanation of what kind of induction principle is exploited. The proof details, which can be found in the accompanying Isabelle/HOL proof scripts, are very useful for readers interested in conducting formal proofs on functional data structures. For other readers, following the proof scripts is completely optional. The book
期刊介绍:
This journal aims to publish contributions at the junction of theory and practice. The objective is to disseminate applicable research. Thus new theoretical contributions are welcome where they are motivated by potential application; applications of existing formalisms are of interest if they show something novel about the approach or application.
In particular, the scope of Formal Aspects of Computing includes:
well-founded notations for the description of systems;
verifiable design methods;
elucidation of fundamental computational concepts;
approaches to fault-tolerant design;
theorem-proving support;
state-exploration tools;
formal underpinning of widely used notations and methods;
formal approaches to requirements analysis.