Foundations of Logic Programming (Symbolic Computation)