Verification of Logic Programs
We propose a proof method in the style of Hoare's logic,
aimed at providing a unifying framework for the verification of
logic and Prolog programs with respect to their specifications.
The method, which relies on purely declarative
reasoning, has been designed as a trade-off
between expressive power 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, total
correctness, absence of run-time errors, safe omission of the
occur-check, computed answers, modular program
development.
We finally generalize the method to general programs.