liu.seSearch for publications in DiVA
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • oxford
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Logic + control: On program construction and verification
Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering. Institute of Computer Science, Polish Academy of Sciences, Warsaw.ORCID iD: 0000-0002-4700-7272
2018 (English)In: Theory and Practice of Logic Programming, ISSN 1471-0684, E-ISSN 1475-3081, Vol. 18, no 1, p. 1-29Article in journal (Refereed) Published
Abstract [en]

This paper presents an example of formal reasoning about the semantics of a Prolog program of practical importance (the SAT solver of Howe and King). The program is treated as a definite clause logic program with added control. The logic program is constructed by means of stepwise refinement, hand in hand with its correctness and completeness proofs. The proofs are declarative – they do not refer to any operational semantics. Each step of the logic program construction follows a systematic approach to constructing programs which are provably correct and complete. We also prove that correctness and completeness of the logic program is preserved in the final Prolog program. Additionally, we prove termination, occur-check freedom and non-floundering.

Our example shows how dealing with “logic” and with “control” can be separated. Most of the proofs can be done at the “logic” level, abstracting from any operational semantics.

The example employs approximate specifications; they are crucial in simplifying reasoning about logic programs. It also shows that the paradigm of semantics-preserving program transformations may be not sufficient.  We suggest considering transformations which preserve correctness and completeness with respect to an approximate specification.

Place, publisher, year, edition, pages
Cambridge University Press, 2018. Vol. 18, no 1, p. 1-29
Keywords [en]
logic programming, declarative programming, program completeness, program correctness, specification, program transformation, floundering, occur-check
National Category
Computer Systems
Identifiers
URN: urn:nbn:se:liu:diva-141146DOI: 10.1017/S1471068417000047ISI: 000423765600001Scopus ID: 2-s2.0-85020521138OAI: oai:DiVA.org:liu-141146DiVA, id: diva2:1143910
Available from: 2017-09-23 Created: 2017-09-23 Last updated: 2020-10-19Bibliographically approved

Open Access in DiVA

No full text in DiVA

Other links

Publisher's full textScopus

Search in DiVA

By author/editor
Drabent, Wlodzimierz
By organisation
Software and SystemsFaculty of Science & Engineering
In the same journal
Theory and Practice of Logic Programming
Computer Systems

Search outside of DiVA

GoogleGoogle Scholar

doi
urn-nbn

Altmetric score

doi
urn-nbn
Total: 157 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • oxford
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf