Declarative Logic Programming with Primitive Recursive Relations on ListsTowards a Logic Programming Methodology based on Higher-order Predicates