Abstract

We claim that the well-known equivalence of declarative and procedural interpretations for Horn clauses (predicate logic or Prolog programs) has been unjustifiably used when discussing computation. The reason for this is that the Apt, van Emden and Kowalski theory is based on a 2-valued logic {true, false} whereas computation requires at least a 3-valued logic {true, false, "still computing"}. We introduce such logics and relate the results obtained to the traditional ones. This gives a characterization of under-defined clauses which naturally correspond to looping programs. Moreover, it further supports the view that strong correctness (including termination) should be considered, rather than weak correctness (eg 2-valued logic) together with a separate analysis of termination.KeywordsLogic ProgramLogic ProgrammingPredicate LogicHorn ClauseDenotational SemanticThese keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.