LOPSTR 2012

Publication date: 2012-09-19
Pages: 100 - 114

Proceedings of the 22nd International Symposium on Logic-Based Program Synthesis and Transformation

Author:

Nicholson, Colin
De Schreye, Danny ; Albert, Elvira

Keywords:

Logic Programming, Program analysis

Abstract:

CHRiSM is a probabilistic logic programming language which combines CHR, a high level programming language that uses multi-headed rewrite rules, and PRISM, a Prolog extension that allows for probabilistic predicates and learning. Tabling is often important for efficient computation in probabilistic contexts, because it can avoid frequent re-computation of probabilistic distributions. PRISM contains a tabling system which was designed to work with Prolog, but it is unclear how to make it work correctly and efficiently with the constraint store of CHR. As a result, tabling has not been used in CHRiSM. In this paper, we propose a method to make CHRiSM programs more accommodating to the tabling system of PRISM, by performing an analysis of which CHRiSM constraints can affect the outcome of a given goal and determining when it is safe to use tabled results of subgoals.