Published online by Cambridge University Press: 25 September 2013
We present a new execution strategy for constraint logic programs called Failure Tabled CLP. Similarly to Tabled CLP our strategy records certain derivations in order to prune further derivations. However, our method only learns from failed derivations. This allows us to compute interpolants rather than constraint projection for generation of reuse conditions. As a result, our technique can be used where projection is too expensive or does not exist. Our experiments indicate that Failure Tabling can speed up the execution of programs with many redundant failed derivations as well as achieve termination in the presence of infinite executions.
We wish to thank Jose. F. Morales for providing support integrating MathSAT into Ciao and Manuel Carro and Corneliu Popeea for fruitful discussions about tabling and interpolation, respectively. We acknowledge support of the Australian Research Council through Discovery Project Grant DP110102579.