CLP(?) for automatically proving program properties1
Various proof methods have been proposed to solve the implication problem, i.e. proving that properties of the form: ?(P?Q)  where P and Q denote conjunctions of atoms  are logical consequences of logic programs. Nonetheless, it is commonplace to say that it is still quite a difficult problem. Besides, the advent of the constraint logic programming scheme constitutes not only a major step towards the achievement of efficient declarative logic programming systems but also a new field to explore. By recasting and simplifying the implication problem in the constraint logic programming (CLP) framework, we define a generic proof method for the implication problem, which we prove sound from the algebraic point of view. We present four examples using CLP( ), CLP( ), CLP(?? ) and RISC-CLP( ). The logical point of view of the constraint logic programming scheme enables the automation of the proof method. At last, we prove the unsolvability of the implication problem, we point out the origins of the incompleteness of the proposed proof method and we identify two classes of programs for which we give a decision procedure for the implication problem.
constraint logic programming verifying and reasoning about programs proof theory