{"title":"Design and proof of multipliers by correctness-preserving transformation","authors":"C. D. Kloos, W. Dosch, B. Moller","doi":"10.1109/CMPEUR.1992.218503","DOIUrl":null,"url":null,"abstract":"Transformational development makes it possible to design systems and simultaneously to prove them correct. Transformational developments are presented of multiplier circuits from a common specification. Careful choice of the notation (a functional language with polymorphic and dependent higher-order sub types), and of the foundations for the transformations (some lemmas over the data domains, embeddings of functions into more general ones, and use of the unfold/fold strategy) allows one to highlight the design decisions in a systematic manner. The major design decisions are discussed, and important intermediate versions of the algorithms arising during the derivation are given. One sample development is presented.<<ETX>>","PeriodicalId":390273,"journal":{"name":"CompEuro 1992 Proceedings Computer Systems and Software Engineering","volume":"15 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1992-05-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"CompEuro 1992 Proceedings Computer Systems and Software Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CMPEUR.1992.218503","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5
Abstract
Transformational development makes it possible to design systems and simultaneously to prove them correct. Transformational developments are presented of multiplier circuits from a common specification. Careful choice of the notation (a functional language with polymorphic and dependent higher-order sub types), and of the foundations for the transformations (some lemmas over the data domains, embeddings of functions into more general ones, and use of the unfold/fold strategy) allows one to highlight the design decisions in a systematic manner. The major design decisions are discussed, and important intermediate versions of the algorithms arising during the derivation are given. One sample development is presented.<>