Declarative Semantics for Pruning Operators in Logic Programming