  Logic programming with tabling and constraints (TCLP, tabled constraint logic
programming) has been shown to be more expressive and, in some cases, more
efficient than LP, CLP, or LP with tabling. In this paper we provide insights
regarding the semantics, correctness, completeness, and termination of top-down
execution strategies for full TCLP, i.e., TCLP featuring entailment checking in
the calls and in the answers. We present a top-down semantics for TCLP and show
that it is equivalent to a fixpoint semantics. We study how the constraints
that a program generates can effectively impact termination, even for
constraint classes that are not constraint compact, generalizing previous
results. We also present how different variants of constraint projection impact
the correctness and completeness of TCLP implementations. All of the presented
characteristics are implemented (or can be experimented with) in Mod TCLP, a
modular framework for Tabled Constraint Logic Programming, part of the Ciao
Prolog logic programming system.
