{"title":"Steadfast logic programs","authors":"Kung-Kiu Lau , Mario Ornaghi , Sten-Åke Tärnlund","doi":"10.1016/S0743-1066(98)10023-7","DOIUrl":null,"url":null,"abstract":"<div><p>We present the notion of steadfastness that at once embodies modularity, reusability, and formal correctness. A steadfast program is an open program with parameters, which is parametrically correct in the sense that it will always be correct with respect to its (open) specification whenever its parameters are computed correctly. Thus, a steadfast program is <em>correct, modular</em> and <em>reusable</em>. Therefore, steadfastness provides a basis for hierarchical construction of correct reusable modules. We first introduce the idea of steadfastness in an informal manner. Then we give a model-theoretic characterisation of steadfastness, followed by an operational semantics based on the (open) completion of an open program. Finally, we apply our general results to program correctness with respect to parametric specifications.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"38 3","pages":"Pages 259-294"},"PeriodicalIF":0.0000,"publicationDate":"1999-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10023-7","citationCount":"37","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"The Journal of Logic Programming","FirstCategoryId":"1085","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0743106698100237","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 37
Abstract
We present the notion of steadfastness that at once embodies modularity, reusability, and formal correctness. A steadfast program is an open program with parameters, which is parametrically correct in the sense that it will always be correct with respect to its (open) specification whenever its parameters are computed correctly. Thus, a steadfast program is correct, modular and reusable. Therefore, steadfastness provides a basis for hierarchical construction of correct reusable modules. We first introduce the idea of steadfastness in an informal manner. Then we give a model-theoretic characterisation of steadfastness, followed by an operational semantics based on the (open) completion of an open program. Finally, we apply our general results to program correctness with respect to parametric specifications.