{"title":"逻辑程序验证","authors":"Dino Pedreschi, Salvatore Ruggieri","doi":"10.1016/S0743-1066(98)10035-3","DOIUrl":null,"url":null,"abstract":"<div><p>We present a proof method in the style of Hoare's logic, aimed at providing a unifying framework for the verification of <em>total</em> correctness of logic and Prolog programs. The method, which relies on purely declarative reasoning, has been designed as a trade-off between expresiveness and ease of use. On the basis of a few simple principles, we reason uniformly on several properties of logic and Prolog programs, including partial correctness, call patterns, absence of run-time errors, safe omission of the occur-check, computed instances, termination and modula program development. We finally generalize the method to general programs.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"39 1","pages":"Pages 125-176"},"PeriodicalIF":0.0000,"publicationDate":"1999-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10035-3","citationCount":"20","resultStr":"{\"title\":\"Verification of logic programs\",\"authors\":\"Dino Pedreschi, Salvatore Ruggieri\",\"doi\":\"10.1016/S0743-1066(98)10035-3\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div><p>We present a proof method in the style of Hoare's logic, aimed at providing a unifying framework for the verification of <em>total</em> correctness of logic and Prolog programs. The method, which relies on purely declarative reasoning, has been designed as a trade-off between expresiveness and ease of use. On the basis of a few simple principles, we reason uniformly on several properties of logic and Prolog programs, including partial correctness, call patterns, absence of run-time errors, safe omission of the occur-check, computed instances, termination and modula program development. We finally generalize the method to general programs.</p></div>\",\"PeriodicalId\":101236,\"journal\":{\"name\":\"The Journal of Logic Programming\",\"volume\":\"39 1\",\"pages\":\"Pages 125-176\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1999-04-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10035-3\",\"citationCount\":\"20\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"The Journal of Logic Programming\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://www.sciencedirect.com/science/article/pii/S0743106698100353\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"The Journal of Logic Programming","FirstCategoryId":"1085","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0743106698100353","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
We present a proof method in the style of Hoare's logic, aimed at providing a unifying framework for the verification of total correctness of logic and Prolog programs. The method, which relies on purely declarative reasoning, has been designed as a trade-off between expresiveness and ease of use. On the basis of a few simple principles, we reason uniformly on several properties of logic and Prolog programs, including partial correctness, call patterns, absence of run-time errors, safe omission of the occur-check, computed instances, termination and modula program development. We finally generalize the method to general programs.