Towards a logical semantics for pure Prolog