A transitional semantics of full Prolog